From 1249b2524b232a1a47ebd0553618d711a905f13b Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Thu, 29 Sep 2022 10:29:27 +0200 Subject: [PATCH 01/56] Change to text field --- app/utils/database.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/utils/database.py b/app/utils/database.py index 56635d28..4bd277a4 100644 --- a/app/utils/database.py +++ b/app/utils/database.py @@ -480,15 +480,15 @@ class Individual(BaseModel): number = CharField(20, unique=True) sex = CharField(15, null=True) color = ForeignKeyField(Color, null=True) - color_note = CharField(100, null=True) + color_note = TextField(null=True) death_date = DateField(null=True) - death_note = CharField(50, null=True) - notes = CharField(100, null=True) + death_note = TextField(null=True) + notes = TextField(null=True) breeding = ForeignKeyField(Breeding, null=True) - eye_color = CharField(null=True) - claw_color = CharField(null=True) - belly_color = CharField(null=True) - hair_notes = CharField(null=True) + eye_color = TextField(null=True) + claw_color = TextField(null=True) + belly_color = TextField(null=True) + hair_notes = TextField(null=True) is_active = BooleanField(null=True, default=True) butchered = BooleanField(null=True, default=False) castration_date = DateField(null=True, default=None) From 65c8739bfb1763b1a42aa50f28334b0341bcb672 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Thu, 20 Oct 2022 10:49:47 +0200 Subject: [PATCH 02/56] Updated test cert make valid for long time --- app/certs/ca.pem | 58 +++++++++++++-------------- app/certs/key.pem | 100 +++++++++++++++++++++++----------------------- 2 files changed, 79 insertions(+), 79 deletions(-) diff --git a/app/certs/ca.pem b/app/certs/ca.pem index d1334388..8de8eb27 100644 --- a/app/certs/ca.pem +++ b/app/certs/ca.pem @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIUAZwziZfdf2Oepv1HxyI31XvIkzgwDQYJKoZIhvcNAQEL -BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTA5MjQxMzM0NThaFw0yMjA5 -MjQxMzM0NThaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw -HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCw54qjDfh+0T8CXNq5Yy83+swhBWfQ6Xajgh22psD4 -DE5mtFTi5cbxHrDOxKqCIg8VLJ6qnZGcs/zkEFsafk3MBFzSMCH1biTW8j28khVl -NlAf2gk8J4+OagDfrVTy7NHAOii7hMwE78JL4kpqFRadAwyZ4/9606Bl5usijANf -pQfiVHq117z2QzseeHgI4bCcKtkvKTlCAVMve9tqPjY14Zh+5/6X0EE7+rKgfd4i -4HnPUM4y0DOMDanAFgxqyuoeGYIFEALl79RTLA5IkXGDJFFBoO7pDfXYUAWu73Xd -F5dPL6LXa5et5wRKB28Rgt1CuOHg2HWiqHVK3YCZ5z9JmPZ81cB2zJv+9VxOk5jr -2MHokoy4/ZCx2fBP5evSNsfQCtsnnH92IM6D7VdD7zF+x+ghRguxt04N2QbRAD9m -jtiMAIRbDZA1rtqVAimI8Ltcp+hgkuQUsacF1uaYEbtQJ10T3CV+weenBHo3o9Jv -7F3PUcJx93K3Jo1A0Tp30crE0PWWF2Q8loyq20tvFJnuJ/hN1xbnUwVneKwhAb3L -AowKSjXDRRPR9hMSHm9wPqiO3P9YbLZE5VduY4mkk1hxK27go58xFa7hccZvuyYp -PND1TvXJRBHHS7phqKO+17eoBGQT/858CKreOHajDafoDmww9QJL8sv4Lr2VrmLf -dwIDAQABo1MwUTAdBgNVHQ4EFgQUncx/m84Ikxh9WEnzq+7bDK3RvXwwHwYDVR0j -BBgwFoAUncx/m84Ikxh9WEnzq+7bDK3RvXwwDwYDVR0TAQH/BAUwAwEB/zANBgkq -hkiG9w0BAQsFAAOCAgEAUSs7EFMm3hOwEDjSesPEqZLJ83NLUbiHY5KsdoZE6O15 -5DE8f8b7cCnlgubf4u4NkLA5aeiqkG++aIxCrYerXLxhcjSvNr0yZsL6FWhpvP1O -vHRq10AjbpD30MIDzIqScktI/PM4xXxGy/lSXtLGK/2UbiCzsQxmWcCu39T6mBku -es1Cviz7bBt3Cy5VK9ElcUzs+TZgAG6nnu2P4uLygdIZEuL3/OBDGVLHEPVUF2jX -4l0GNgpSlaagVKpwnZsAuM6wBAUZiTtxQh6JKV2Ed5eA23BmKSiK9JZx+O8VI/8O -ugg0HjWqEdcbcU4N0Aj8PS4IU2K05OFP0TxdtND+hgfzpOYf9IRUrlZE03+zDbx/ -nSdO23zEkb1aWp0UvwWGGZ0WvfcPW8DcZRSrvrXTBx9WhJktBG7gyf/T65yrR6U3 -9W9uqJlyaLdyJCCRRY2GMmnGqqHut+Kmcy93fv8dB6jNRh3KH9UoQPH/CNMzS+Qh -qETLkIfe20ihln8nY9NzEOqnsua2mgp8w/8cRRHPWO/5brzeZuiGQ9UOe4pcDRj3 -UufBnKmNwpERWtL6LfuXhAJOK+OUJ4o8FbBSH54nEG7veWNA7nNzlkQzr9eQUx+/ -tMmfb3y5I3imoT3eMTVNgge4maLqX9gXHz7lb89efmh+LXo+9CT7CKl3b80Gq4o= +MIIFQzCCAyugAwIBAgIUL5Un0SvJUoboqMzCRiZcMHO9UB0wDQYJKoZIhvcNAQEL +BQAwMTELMAkGA1UEBhMCU0UxEzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoM +BHRlc3QwHhcNMjIxMDIwMDg0ODEyWhcNNDIxMDE5MDg0ODEyWjAxMQswCQYDVQQG +EwJTRTETMBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UECgwEdGVzdDCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKqLb+fNaTgcJEKkh/UFhlMBB1RVTAI+ +8ApDy52BG1iqHXylwAx0CSpeW/CCQh0HqJKtSFR9x7d4bLneTPNKCSIZ/YRCzTYu +nAgXCcGyp3VoKAX2hDHuwNBh7LSiWAPzN1OTQy3bOoiM3AzKba3MuQej5/F1D6X6 +4eNVo3DDRVBCePa5+yuBxEwsA9kc3LOrrTU79cg8bz2C4WtyfutTleolZlTz99CD +547Wcz5tHWHKOz07kiSQNhxF7TaNSjAg/9VIR/EN3Smv1xdkKMCEFRJUuQOaWaXb +UY5iFC9JVMr2/xU4f5VVvt3f4Ukta+wrDAq82AVmYDvW6JHvNDRhx8BstMmq2UZ2 +GwbPQBbXycDs/QmARM1447b0UvULAFOlQa5b7X2vkHhovLB7xHvKvT9LtZeWQUCj +DaWPQ5tFNp6kTc9WwlaO4+OXqwJZr5FN9hYbYHHGHb5waoYBk+aGC8ibCx+LCk7L +X0fYdEN7DQlgNpmeWFEJ0OvMcySIKWHr+pSoaCXMJL8b5TmqJQWSa+L+rBFsGJB7 +J/qRMD75v6u/Hbty8AMxRBBlxKSfhk3FfUPyOafmYRpqwLDcSa3s+D5G6r3CSHYT +y0mqRQh9qjv24EamqAD70YNxEj8O7drui4zjUDwu/mpB88qWeK9dcvd+PaRvn+nZ +VBo5kaZR6BDlAgMBAAGjUzBRMB0GA1UdDgQWBBQlXnjPKMPwaA1ykBydyvwiKeMd +LjAfBgNVHSMEGDAWgBQlXnjPKMPwaA1ykBydyvwiKeMdLjAPBgNVHRMBAf8EBTAD +AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQAGP3cITrhhkOdcoykDjflYeZ5RIkidI5jX +brJQ+rVxp/zUhljMjkaatF0hUxkc6mWgwwtdLD76HREgANwqY3+uz8RwmfPHZZKX +Hpjhs4CoIvhXxG3k1X0xUukaEF8pzOSvFvWTiCfQlfxpHqJyDul7ppzAOwFO8E2i +f6IXwbmkXkIVmoF/T3PNgSOFo5eFh80pK8U5/yagqbRYcDU9hvKzvihLvW0lVz3Y +MrpKF7+yLlZjXEMTLFjRSMHJ/4sWFXnN6yhxFJcKTLbFO2dhSjgG7oFLsgDkXYIN +pHw9QoFk1xoduEqL8WvbGgHYVzUHfSLsVfbNrr9sWAA97BDmvoDUwi3rZPG333wd +pAjWV5OmmLDBzzgSiFnPppqk+VIM5AgnXoh4UdED3JGfu5L3BrKiRhyDzQcK4rlV +oz0t9Nt5nv0NpTE7JYseSwuzg8Wv5DvSfH0Elp3rfdqqYmYWrHw3ITHOBUOzTTix +d6Dq367ZXOn80GYVJRmbmpS9Vae9sWVhR1Dl+IPCaxy7Dl8qyVDmmoMKrCJpYhe6 +/e8wWhqZSm04k4ZC5wO5UPzEQuj8DNTRZdxe8ZZfiu4Cmsi5BruZ9zL7zk0KMM4o +jwbHcz1Z5hktg7zKKxQxxjvZvcJkoE35zqGQUBlHltfzSsYtGHqWSIO6dsRX9YEx +o0aDVImytw== -----END CERTIFICATE----- diff --git a/app/certs/key.pem b/app/certs/key.pem index 3867c380..07a0cfd9 100644 --- a/app/certs/key.pem +++ b/app/certs/key.pem @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCw54qjDfh+0T8C -XNq5Yy83+swhBWfQ6Xajgh22psD4DE5mtFTi5cbxHrDOxKqCIg8VLJ6qnZGcs/zk -EFsafk3MBFzSMCH1biTW8j28khVlNlAf2gk8J4+OagDfrVTy7NHAOii7hMwE78JL -4kpqFRadAwyZ4/9606Bl5usijANfpQfiVHq117z2QzseeHgI4bCcKtkvKTlCAVMv -e9tqPjY14Zh+5/6X0EE7+rKgfd4i4HnPUM4y0DOMDanAFgxqyuoeGYIFEALl79RT -LA5IkXGDJFFBoO7pDfXYUAWu73XdF5dPL6LXa5et5wRKB28Rgt1CuOHg2HWiqHVK -3YCZ5z9JmPZ81cB2zJv+9VxOk5jr2MHokoy4/ZCx2fBP5evSNsfQCtsnnH92IM6D -7VdD7zF+x+ghRguxt04N2QbRAD9mjtiMAIRbDZA1rtqVAimI8Ltcp+hgkuQUsacF -1uaYEbtQJ10T3CV+weenBHo3o9Jv7F3PUcJx93K3Jo1A0Tp30crE0PWWF2Q8loyq -20tvFJnuJ/hN1xbnUwVneKwhAb3LAowKSjXDRRPR9hMSHm9wPqiO3P9YbLZE5Vdu -Y4mkk1hxK27go58xFa7hccZvuyYpPND1TvXJRBHHS7phqKO+17eoBGQT/858CKre -OHajDafoDmww9QJL8sv4Lr2VrmLfdwIDAQABAoICAEC1MPzbi1235DhVBpxxL0Bm -uGwLsiG0g/TjD0NUU5lnxvXCWJp2OgLQmxPG1CetlZ7FJ3R5Fl4faA1z/h7+vC44 -Gku313QSyd7l1Lc5KCJRb5V3B5G9VsFc/NzUZhJFlaOeom+U75uOp59iMp4DALaF -+wH/Z9/hsPYVNUT5ufIuR2f+RrRlKXVaujE3F5EIHLXC5pZdmdgO7AKeZ2/BOcsT -rdgdu/6D6pip5tTVtX9EZMn0YLgtd+1uwfzFE92sQ16nLev0I1tAEoYpwz/AE6lI -i4BaAYm11Ys+GhYW+SHaEzqfzgzGCkFOEz+Q4IujNpPFVLoN81mADQdJZlTlRTxm -X86mhYyz8uqxrN4PEYAiVLLJELbpwyT15gTpjpTcWaWMu9Q/KEDSuaxaYG2m5FPU -d+1mWZExlV+5VjDlQQb2FhkV7/+a/C2zUaz5clEwoTc7a40WF1b3iygL1QNp7FUp -C9eIO0XSICjGsMVTthO3VkK8aBT9JfBlN/XMLW+wkK3QbKR8iRcekc36Ug8J18f+ -pYhEWds0dYbJa0s6/NjmJKVY875oQg+kG8wKZS63W8Z8v/21IgWdnFXEytj0GkHR -0k0WmszIQFzevbjXh7oUgYZRRjQih29bRqBaiSGp0ga5VjgSnNXYxpFTt8fvu6hU -A4MAyKLy8mofR3KT1nfBAoIBAQDlFQMj+3rVQLvC/yQ88ZlYj2RhU8z3rgOutn38 -E4BROl8o3CYUHgCN4jxFcy64DEMxC7zV7PIfMeThOLAHKQfa02Pm++PjRDf7nUhh -7tu8/xsoJpZKyiVNTSwSIjSl/3eij/IUnstSwCn9O6frIa7tpI0jFT5xVkIq5N1n -8l4bEdfm0qa+MjilKrhfI/3B4K5fOhz4N8iEm8d/A361V50so5xNuLE0nTd56rvH -F8FFYJRXoOHPcYwbIhkHsWLoskGsREUOTTtlEOTFCneE3d0SZocTNDu93xrqhYWt -kmDwPFhDQ5QWXMmczouG8vluJmtIX8fFBwL9MAbmeVXUhwDJAoIBAQDFsPsvnDLB -aNxfLZ/wDaMF7w4a4w/g3vpHTS7pbFl4Cxe1QdjKwb4TIZmV5iIJoZga0JUnNs18 -ceu57mYNL7LSS3oShBeIqO9PX/tjc4ELYqNbE5Y8Q6houmTzJVzlhW9LFKIZV05v -/MibJ7U4rOpfSNlpuTCQNCXsfVcxX7ld3jv4l1Pj9uZCMT6avRtV+5F5kqyklWV6 -Nec81F5lxZviUmoq3fVb2lj6OE/IOqrIIW24xfBuBuG3WXpsthCNx/8ZHYxS5a4Q -gOKVo8D3WtysUiMxf6BPyB5GkqsvotB7J+xRMxvnV2DxmgEqecGMrBM5g00piQVt -129n8gsEsT4/AoIBAFGYNWEonqy8fORMmmy2pSb9FATyo0wJCDi/uYoCrC7CesiD -+XAq64md7lfSWe6mN3yNsLoFxovD6sEpvtEeFTUlHC1WxOnbD5GoiPKQ8GWV++dG -Lzv+WmD5PtxKoLQLlWIqoVAk60jTN2GCUSIYAkWU2cyIMZCO58x9bjsrAcfkiCEo -IMoX+0MhP0BsAmN/ErzKZy0mOV66WclsxkHzLgGLWQ353exenzbmm/GjDW0XpF69 -6BBKYlv7viyWSyOU8n1YZ7xbV+98n+9q9f02RRrbt/roHOtZPy4PVvjm7W5EIC/9 -Lw70B7+5dcsgWiWYu5ewvef4wmDKLXsD9sVXPLkCggEAZ3Zfj6RE3/o8U0eyi9Tn -PATHsgSh28N24vgfFCUTkgLkLoW+qybIjoSoN85QhA/hZi9B0FsbIgURJKcDG+WZ -xfugcK5XDruzOyx1ia/6mnXOHq1alEGokt7yVFp6itjRzU6II5EQyQVYC/O1IWtF -4gZjWrSEGQRh0KoshvedMOZNJqY0Tnt6OKxDIoLUGqTlluXPmvdhO5uYYLqYiNTp -54HQdIzji2Xz6UitYJJrrP/px6k4Uq0hVm7q5phGg51nAcL4HK598b8yVrR0GkCg -e0MljhNIWFjYl4DNPMoOKFZVlI2WDfYqE2fRMmS0iiXIjfIM4S8H+1ujv5fqclM8 -ywKCAQEAickM/MpTcT+/rMMtzJC06TuLoXdmXBGKxiHETTVq0SLN4SoadgAr4yvX -LNUrCKCf7y1Cwe3NN94eKSwPTefrViC6VBBqU0yjwszsaPi7ZUlE8hzlU5/3zoyW -vz+rssFozEwi65JwkTQDJtG6fR8eGfLggeLPWiKjx63f7c7FF8uOALECcvxLWOE/ -uLbdHbFUp1ywYOGYIqWrft5XPUykI7QRIHsaPFAzn0+gTsOy1fv+CGS4uiGHZbpl -8XVuoJG0V2YQTBzwlWsCChn2SROpy708el5JqetldcyVtuKoy6HnZBxVnfhypXVp -ODto2kpe84wtLMTYH/akvyk0nCDMxA== +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQCqi2/nzWk4HCRC +pIf1BYZTAQdUVUwCPvAKQ8udgRtYqh18pcAMdAkqXlvwgkIdB6iSrUhUfce3eGy5 +3kzzSgkiGf2EQs02LpwIFwnBsqd1aCgF9oQx7sDQYey0olgD8zdTk0Mt2zqIjNwM +ym2tzLkHo+fxdQ+l+uHjVaNww0VQQnj2ufsrgcRMLAPZHNyzq601O/XIPG89guFr +cn7rU5XqJWZU8/fQg+eO1nM+bR1hyjs9O5IkkDYcRe02jUowIP/VSEfxDd0pr9cX +ZCjAhBUSVLkDmlml21GOYhQvSVTK9v8VOH+VVb7d3+FJLWvsKwwKvNgFZmA71uiR +7zQ0YcfAbLTJqtlGdhsGz0AW18nA7P0JgETNeOO29FL1CwBTpUGuW+19r5B4aLyw +e8R7yr0/S7WXlkFAow2lj0ObRTaepE3PVsJWjuPjl6sCWa+RTfYWG2Bxxh2+cGqG +AZPmhgvImwsfiwpOy19H2HRDew0JYDaZnlhRCdDrzHMkiClh6/qUqGglzCS/G+U5 +qiUFkmvi/qwRbBiQeyf6kTA++b+rvx27cvADMUQQZcSkn4ZNxX1D8jmn5mEaasCw +3Emt7Pg+Ruq9wkh2E8tJqkUIfao79uBGpqgA+9GDcRI/Du3a7ouM41A8Lv5qQfPK +lnivXXL3fj2kb5/p2VQaOZGmUegQ5QIDAQABAoICACwlvkkuJk+tEUHjH4Kw9G2m +NYSCNBPcwPyXQi06j56rIsjyiz1uCDVcicY/oeer5NpbWv7sNHftB5Ax2I+eGbEn +MzY6qK6e8Csz84WdvrWoybuJbf0TBfyrbL/xyoDzQ94xn9FOD9/rPsdc23mDJl6w +8kjR+cQIptLXh2CYW+gD3RZZXIiNpgfl2PUqAIPOLB88r0ovQsiUic/rqqk2UPd0 +yQGyyfLDQnz6TIjbbCC1XhJiylkGr8sv2tElUBAXasKGXIEtCpRQ/YgDmH0FdALz +xZUGLrC9jmYiQ4FeJUIJIE0Y/AXnVWpQGxx7UpWnKw3Yhr8XGlBDOJ8WYdgxe6iK +79ublu38e5gUoQRawB39SwMW63lGJAP93EHcp+d6IuidtyD5xme92gCuU2BDe6s4 +17p6PEBuP+klJ5fnb45kvwJ22sGAusy/T0NgAJe/POESuuyI2obX5BvihefCELcq +ZTR0MAQ/LwroT3PWcBEU/NJdXJeC4wpy8jN2hxhzxMH5cdQYhGzz6xsh5fz4W0ww +mxqcPoe1PhbgXBSwfkSNjuD+RLaTJtR/izLgtGuWZkljc6phmDWq74leZ0oXDbSE +jO0mqzAPOle3szE2BXfu4vct6LRZ1kPxSpfglvDPfuNiKu2cWi0/qyilWZuUad9j +t4igHtoJdOfb4ekFtOc9AoIBAQDa2V3XNwG9Beh5fKRaJyBhzZtfKv08jTt5dmpu +KWR5A7kyJXvD0XtHKnHFfx3fs+h+PCSIzldQc/3Dldzw2rOkQ1aRlAfNI2wbiFYn +j0VdezkZot4JZB4sz4KdVVas8XdN3Mt5OXDm0QdZvV/wDRjlvcR8ADH7lmL7vr7i +OVa+CDFh/Tsg6C92U7j4g/Zoiew5TF6NTbJSNqMd+ELPmVUOEGYxEUgG1MeiGdCK +smNWO906M2NlUEICnKJaDJDsOaO8YMnXTTnLQyQC3LfrLjW9awTKt7qaQYPqsJkQ +9kYl465pVZkBCkFxCIBO+m0lsQB0Cb1F6gIU4Lu+fwtFubHPAoIBAQDHfuG7e1+E +MuHhrOsT3PQXGUW/8ZDVc1jpLg+tNzStHnQmev5M/qFSA4Bsa5DJy2JqBIcytbwH +w6jlbQ1etCqN4TpYbLqoRoiBML29yJkU2iqW/qQFxjsMxQMFFzfjuAx5jgQDBUwu +iXtuRq2dBL7FgBm+wGjSpTrgTD2O9mG42JphWyeYvlt18ZwFhvDMK5/ihecugp4+ +GhFCnWNqhh0NBLk15KI1iOWl9bpx8Wl+g2R9TxQusj4ru6FJ/R/s2BT2KxotSAB5 +zzDs6bJhtCTxLdIa9KmDdc4wC0lSgODI9ksEaLTYdSdih8hc203SVOnP7T83uMzb +gkXq6EeqqAMLAoIBAQCTH7IAbtBSXNhuY6axnMAeP/UFw4a+4EttWnguWtFasXAd +ECnl+LwhmZ0molBZBT91LcV52w3D3lZo2CTSHpTKByL5d0TPWdLhp4QT0DNXpvE6 +FM2kDpRil5Y9YxOD7EjCJX78nesSoM+KOs92N7fXKv4eRptTgURF7XOx7c4srqFU +OMM5Wh4eNCaTm1NZ7+7Ijli6MdOBhY2fJjj0Cyas78VjkzSSsxUKGsShmU9Ct7f/ +2nAluhDGZLqYQv5icFVs3LyUayxBQ3/AFNXn2wbxsjJkfaOK9CRU8CfWyVlbO3cT +BSJ5GoXoEUkAz0X1IsslNy7xA2Im2vYcGJhhZXbtAoIBAAY07WL+4KblSl/SGHJC +wplhYOkq492wPAjtNPGnsQzd0LFNzFGq7mv1ze4RnqyYllREFcy/GL2JGd0henQC +2PwXENCleV047JBQaubXseOTMhYGkCXZ2AZ6rrBe249LL6AsifVqGces4Vk5+7bR +6fmNFb/4jopXN7C4zoV/JuUwYAU9Z8r5yTCvNrJ5U06W4N+UWO/6gl/eQcE30lsD +Fy5LglOp7F4MB1EVhxp6b1TPU7YOWstlIkgMC2WY6YBd7LEIAEV+Yv1nM9d7IeCm +USvryAisqgV8CdE22K4nclbuSsE1XMMLShFnthUlgZNUrv2YHQpnxn/h2rkHRwuJ +NKcCggEBAK7jnrV0ziFutteYhTlnropcTrn4Lt/Yg2x6DrOwqDyHNvtVmcbiHT5G +BdubTVF+gEMVLo+yE0WlPzvcjO0slCkq5WC4sMyQQUNQD5Ofr768yPO3Mj4J45zP +fjDBPMhEv1AaZ7nALuePhFuQngNl95RZgASbT9d+11IoeKU/g55r5JC1JW33cltI +lVmzxORHWv81MIEQBxPW28Ca+BRSwkWhsonEsAKIyNkatpMfmS7AYzyXH8VL4WQd +sVL5gyfUHlm7sjPeHWgpWheAmlPwpSEV6MUPWH3Ekfx1apBaxnmzNCv7hHbBz9hJ +cNnPFbL3C3vCtL3/qAPV0h8tBbwJuDE= -----END PRIVATE KEY----- From 62e8c308fcf478ddc66d0bfe0aa1686801d1c8e3 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Tue, 8 Nov 2022 10:42:44 +0100 Subject: [PATCH 03/56] Added a missed change --- frontend/src/main.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 37b963aa..1034cb51 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -18,7 +18,7 @@ const Main = ( För att få Stamboken att fungera måste vi lagra några kakor på din - dator. Genom att fortsätta använda sidan godkänner du detta. + enhet. Genom att fortsätta använda sidan godkänner du detta. From ece2aa928bca004c201acd27893e8430313d3d2e Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Tue, 8 Nov 2022 10:43:08 +0100 Subject: [PATCH 04/56] Self signed cert with more days --- system/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/entrypoint.sh b/system/entrypoint.sh index 3862bed9..1e32d7fa 100755 --- a/system/entrypoint.sh +++ b/system/entrypoint.sh @@ -2,7 +2,7 @@ # Set up self signed certificate in case none is supplied. -yes '' | openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /code/key.pem -out /code/cert.pem > /dev/null 2>/dev/null +yes '' | openssl req -x509 -nodes -days 7304 -newkey rsa:4096 -keyout /code/key.pem -out /code/cert.pem > /dev/null 2>/dev/null cp /code/cert.pem /code/ca.pem for p in {cert,key,ca}; do From 5ea55c11523f018ad3488990bd31f627005ef007 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Wed, 9 Nov 2022 11:59:41 +0100 Subject: [PATCH 05/56] Added tooltip info, and do not show Digital when registering new rabbits --- app/herdbook | Bin 208896 -> 212992 bytes frontend/src/cert_autocomplete.tsx | 73 +++++++++++++++++------------ 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/app/herdbook b/app/herdbook index f7ac75aaecdfc61998b88738036122e7197af03d..da88e392ede03c6a30ad84bd46925212607ffc39 100644 GIT binary patch delta 647 zcmaKp&ui0Q7{}iyNs}gNk`B9Bw3S$4PHF3#w5#1@t~(UjK{s{Kiid6`Wh-<)>?)$* zY-GYvm{wsgRK=QuURMhSyoi5*2ZbFxO_<`rsn^~#olMY!@P2vW`NHRYUOv^2o@!OP zx4$ci5Q;mIoPd+#wQ$UpMA6|7O=C?_4>_YAU#H|{7Ac#`bETprA*Q<9ck@Tcc z&*-X?+hx&KF^^D9utH0Sy|81p#8R|I&uPgqrzsn%FaGOUsdZuAHgsDzY&}><+qOXx zRH`DDqwjRnf8o!mzbf(_dQZF~%A3+dx}~ZV#Z^2Ex6ls>$CQDm#=&yRPvBP5ke4J= z5Ad%8JOCPxTX-4#eBZ)x2ymy2oA{&fIH&Sr8OQmxg`4?}aH=`yQ<`EiSWoiH3J!zH zA1e6HwI(4ecly#Oh_Z;yGDLT1ySCvCD@FO!Gf0j|vpDAz&R`g2-L4G$DDM3@3;{ui z^f_iX;SFi1xK|VK0=C{}8)LR1SRi8?LGf-pgk{8R8qoH%4u4eLS0(S7Qd6cpv*eqs bNHu8@=dtXV&)~}2IO21oGw{(^&rSaW`A=`y diff --git a/frontend/src/cert_autocomplete.tsx b/frontend/src/cert_autocomplete.tsx index 615dd3ab..1efdae9d 100644 --- a/frontend/src/cert_autocomplete.tsx +++ b/frontend/src/cert_autocomplete.tsx @@ -1,4 +1,4 @@ -import { TextField } from "@material-ui/core"; +import { TextField, Tooltip } from "@material-ui/core"; import React from "react"; import { OptionType } from "./data_context_global"; import { Individual, inputVariant } from "@app/data_context_global"; @@ -54,7 +54,11 @@ export const CertAutocomplete = ({ option.value != "digital") + } value={certTypeOptions.find( (option) => option.value == certType ?? @@ -75,36 +79,45 @@ export const CertAutocomplete = ({ }} /> {certType == "paper" ? ( - { - updateIndividual("certificate", event.currentTarget.value); - }} - /> + + { + updateIndividual("certificate", event.currentTarget.value); + }} + /> + ) : certType == "digital" ? ( - { - updateIndividual("digital_certificate", event.currentTarget.value); - }} - /> + + { + updateIndividual( + "digital_certificate", + event.currentTarget.value + ); + }} + /> + ) : ( - {}} - /> + + {}} + /> + )} ); From bfa7c1cab1cbdb3783c839e1adf10345853844f0 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Wed, 9 Nov 2022 12:15:06 +0100 Subject: [PATCH 06/56] fix Bug if both Digital and paper intyg exists --- frontend/src/individual_view.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/individual_view.tsx b/frontend/src/individual_view.tsx index 234b8580..eb07ace3 100644 --- a/frontend/src/individual_view.tsx +++ b/frontend/src/individual_view.tsx @@ -206,7 +206,7 @@ export function IndividualView({ id }: { id: string }) {
{individual?.number}
Intyg:
- {individual?.certificate | individual?.digital_certificate} + {individual?.certificate || individual?.digital_certificate}
Kön:
From d322700341c441f28066198ced71af347f57e573 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Wed, 9 Nov 2022 15:32:42 +0100 Subject: [PATCH 07/56] Changes to manages to be able to update from digital to paper cert and from paper to digital cert --- app/utils/data_access.py | 2 ++ frontend/src/cert_autocomplete.tsx | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/utils/data_access.py b/app/utils/data_access.py index cd9601eb..d8307c03 100644 --- a/app/utils/data_access.py +++ b/app/utils/data_access.py @@ -860,6 +860,8 @@ def form_to_individual(form, user=None): else: if not form.get("new_individual", False): if getattr(individual, key) != form[key]: + if key == "digital_certificate" and form[key] == "": + form[key] = None update_logger.info( f"{user.username},{individual.number},{key},{getattr(individual,key)},{form[key]}," ) diff --git a/frontend/src/cert_autocomplete.tsx b/frontend/src/cert_autocomplete.tsx index 1efdae9d..d132990f 100644 --- a/frontend/src/cert_autocomplete.tsx +++ b/frontend/src/cert_autocomplete.tsx @@ -43,7 +43,7 @@ export const CertAutocomplete = ({ if (type.value == "digital") { updateIndividual("certificate", null); } else if (type.value == "paper") { - updateIndividual("digital_certificate", null); + updateIndividual("digital_certificate", ""); } else { updateIndividual("digital_certificate", null); updateIndividual("certificate", null); @@ -94,7 +94,7 @@ export const CertAutocomplete = ({ ) : certType == "digital" ? ( Date: Wed, 9 Nov 2022 15:33:32 +0100 Subject: [PATCH 08/56] Update permission to reflect what you can do with an unregistered rabbit --- frontend/src/individual_form.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index caf90fc8..f382e362 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -67,11 +67,6 @@ export function IndividualForm({ if (user?.is_admin) { return true; } else { - if (!individual?.is_registered) { - return true; - } - console.log(genebank); - console.log(user?.is_manager); if (!!genebank?.id) { return user?.is_manager?.includes(genebank?.id); } else { @@ -155,9 +150,15 @@ export function IndividualForm({ {formAction == FormAction.editIndividual ? ( // jscpd:ignore-start <>
Redigera Individ
-
+
- {!canManage ? ( + {!canManage && individual?.is_registered ? (
Kan endast ändras av genbanksansvarig
@@ -165,7 +166,7 @@ export function IndividualForm({ <> )}
From d57fa28940cda2208ea4c30b312c5a87d29e7d68 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Thu, 10 Nov 2022 13:46:31 +0100 Subject: [PATCH 09/56] =?UTF-8?q?Update=20change=20avlidna=20to=20d=C3=B6d?= =?UTF-8?q?a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/breeding_form.tsx | 2 +- frontend/src/individual_add.tsx | 2 +- frontend/src/individual_breeding_form.tsx | 2 +- frontend/src/testbreed_form.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/breeding_form.tsx b/frontend/src/breeding_form.tsx index 2c88862e..afe629be 100644 --- a/frontend/src/breeding_form.tsx +++ b/frontend/src/breeding_form.tsx @@ -512,7 +512,7 @@ export function BreedingForm({
} - label="Visa avlidna kaniner" + label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); }} diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index 57b86262..22408364 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -688,7 +688,7 @@ export function IndividualAdd({ } - label="Visa avlidna kaniner" + label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); }} diff --git a/frontend/src/individual_breeding_form.tsx b/frontend/src/individual_breeding_form.tsx index 9b52d3bc..51510523 100644 --- a/frontend/src/individual_breeding_form.tsx +++ b/frontend/src/individual_breeding_form.tsx @@ -414,7 +414,7 @@ export function IndividualBreedingForm({ } - label="Visa avlidna kaniner" + label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); }} diff --git a/frontend/src/testbreed_form.tsx b/frontend/src/testbreed_form.tsx index d7561cd8..90f03eea 100644 --- a/frontend/src/testbreed_form.tsx +++ b/frontend/src/testbreed_form.tsx @@ -262,7 +262,7 @@ export function InbreedingForm() { /> } - label="Visa avlidna kaniner" + label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); }} From 159aae1a4a2f0a6ccd64372b8045aeff208bfcfa Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 18 Nov 2022 23:26:52 +0000 Subject: [PATCH 10/56] fix: app/requirements.txt to reduce vulnerabilities The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-3113904 --- app/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/requirements.txt b/app/requirements.txt index ebcd7d72..c6fbde69 100644 --- a/app/requirements.txt +++ b/app/requirements.txt @@ -28,3 +28,4 @@ endesive==2.0.9 boto3==1.17.54 moto==2.0.8 google-auth +setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability From 97993acc67f4b494040c263926a75412cfe28e24 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 28 Nov 2022 16:56:56 +0100 Subject: [PATCH 11/56] Div fixes and changes to enable a manager to register litters in herds other than the current one --- frontend/src/individual_add.tsx | 45 +++++++----- frontend/src/individual_form.tsx | 122 ++++++++++++++++--------------- 2 files changed, 89 insertions(+), 78 deletions(-) diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index 22408364..018f346b 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -238,7 +238,7 @@ export function IndividualAdd({ if (currentGenebank) { handleUpdateIndividual("genebank", currentGenebank.name); } - }, [currentGenebank]); + }, [currentGenebank, success]); // remove error layout from input fields when user has added an input React.useEffect(() => { @@ -308,13 +308,20 @@ export function IndividualAdd({ `/api/breeding/nextind/`, Breedingmatch.breedings ); - setIndividual({ - ...individual, - origin_herd: BreedHerd, - number: IndNumber, - litter_size: Breedingmatch.breedings.litter_size, - litter_size6w: Breedingmatch.breedings.litter_size6w, - }); + if (IndNumber == null) { + userMessage( + `Du får max registrera 9 kaniner från en och samma kull.`, + "error" + ); + } else { + setIndividual({ + ...individual, + //origin_herd: BreedHerd, + number: IndNumber, + litter_size: Breedingmatch.breedings.litter_size, + litter_size6w: Breedingmatch.breedings.litter_size6w, + }); + } } else { userMessage( `Hittade inget befintligt parningstillfälle kommer skapa ett nytt!`, @@ -333,6 +340,7 @@ export function IndividualAdd({ individual?.birth_date, individual?.father, individual?.mother, + individual?.origin_herd, newSibling, ]); @@ -420,10 +428,14 @@ export function IndividualAdd({ } const motherHerd = await getParentHerd(individual.mother.number); const fatherHerd = await getParentHerd(individual.father.number); - if (originHerdNumber !== motherHerd && originHerdNumber !== fatherHerd) { + if ( + originHerdNumber !== motherHerd && + originHerdNumber !== fatherHerd && + !is_admin + ) { userMessage( `Individens nummer ska börja med antingen moderns eller faderns nuvarande besättning. - I det här fallet ${motherHerd} eller ${fatherHerd}.`, + I det här fallet ${motherHerd} eller ${fatherHerd}. deg is ${is_admin}.`, "warning" ); return; @@ -609,26 +621,19 @@ export function IndividualAdd({ breeding: breedingId, }; createIndividual(newIndividual); + if (newSibling) { + setSibling(false); + } }; const resetBlank = () => { // change the keys to something new to cause rerender of the Autocompletes - setHerdKey(Date.now()); - setColorKey(Date.now()); setIndividual({} as Individual); setSuccess(false); }; const resetSibling = () => { - const numberParts: string[] = individual?.number?.split("-"); const sibling: Individual = { - number: numberParts - ? numberParts[0] + - "-" + - numberParts[1][0] + - numberParts[1][1] + - numberParts[1][2] - : null, origin_herd: individual.origin_herd, birth_date: individual.birth_date, mother: individual.mother, diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index f382e362..bfb3a8fc 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -58,7 +58,7 @@ export function IndividualForm({ }) { const [herdOptions, setHerdOptions] = React.useState([] as OptionType[]); const [openBreedDialog, setBreedDiOpen] = React.useState(false); - const { colors, genebanks } = useDataContext(); + const { colors } = useDataContext(); const { user } = useUserContext(); const [isIndNull, setIndNull] = React.useState(true); @@ -99,8 +99,6 @@ export function IndividualForm({ React.useEffect(() => { const getParents = async () => { - let herds = []; - let father; let mother; if (individual.mother?.number && formAction == FormAction.AddIndividual) { @@ -108,22 +106,28 @@ export function IndividualForm({ if (!mother) { return; } - herds.push(mother.herd); + let herds = mother.herd_tracking; individual.origin_herd = mother.herd; - individual.number = mother.herd.herd + "-"; + //individual.number = mother.herd.herd + "-"; setIndNull(false); - } - if (herds.length > 0) { - const herdOptions: OptionType[] = herds.map((h: LimitedHerd) => { - return { value: h, label: herdLabel(h) }; - }); - herdOptions.filter( - (item, index) => herdOptions.indexOf(item) === index - ); - setHerdOptions(herdOptions); - return; - } else { - return []; + if (herds.length > 0) { + const herdOptions: OptionType[] = herds.map((h: LimitedHerd) => { + return { value: h, label: herdLabel(h) }; + }); + herdOptions.filter( + (item, index) => herdOptions.indexOf(item) === index + ); + //Filter unika herds from herd_tracking + let unique = [ + ...new Map( + herdOptions.map((item) => [item["label"], item]) + ).values(), + ]; + setHerdOptions(unique); + return; + } else { + return []; + } } }; getParents(); @@ -236,7 +240,7 @@ export function IndividualForm({ option.label} className="wideControlInd" @@ -280,46 +284,48 @@ export function IndividualForm({ onUpdateIndividual("birth_date", value); }} /> - - {individual?.number - ? `${ - individual.number?.match( - /([G-M]\d+|[G-M]X1)-\d{0,2}/ - )[0] - }` - : `${ - individual.genebank - ? individual.genebank[0] - : "X" - }XXX-XX`} - - ), - }} - onChange={(event) => { - onUpdateIndividual( - "number", - `${ - individual.number?.match( - /([G-M]\d+|[G-M]X1)-\d{0,2}/ - )[0] - }${event.currentTarget.value}` - ); - }} - /> + + + {individual?.number + ? `${ + individual.number?.match( + /([G-M]\d+|[G-M]X1)-\d{0,2}/ + )[0] + }` + : `${ + individual.genebank + ? individual.genebank[0] + : "X" + }XXX-XX`} + + ), + }} + onChange={(event) => { + onUpdateIndividual( + "number", + `${ + individual.number?.match( + /([G-M]\d+|[G-M]X1)-\d{0,2}/ + )[0] + }${event.currentTarget.value}` + ); + }} + /> + {" "}
Date: Mon, 28 Nov 2022 16:57:54 +0100 Subject: [PATCH 12/56] Fixed a bug with digital and regular certificates --- app/utils/data_access.py | 20 ++++++++++++++++++-- frontend/src/cert_autocomplete.tsx | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/utils/data_access.py b/app/utils/data_access.py index d8307c03..f37ef13e 100644 --- a/app/utils/data_access.py +++ b/app/utils/data_access.py @@ -860,8 +860,24 @@ def form_to_individual(form, user=None): else: if not form.get("new_individual", False): if getattr(individual, key) != form[key]: - if key == "digital_certificate" and form[key] == "": - form[key] = None + # Reset if switching from paper to digital certificate or vice versa + if ( + key == "digital_certificate" + and getattr(individual, "certificate") is not None + ): + update_logger.info( + f"{user.username},{individual.number},certificate,{getattr(individual,'certificate')},'None'," + ) + setattr(individual, "certificate", None) + + if ( + key == "certificate" + and getattr(individual, "digital_certificate") is not None + ): + update_logger.info( + f"{user.username},{individual.number},digital_certificate,{getattr(individual,'digital_certificate')},'None'," + ) + setattr(individual, "digital_certificate", None) update_logger.info( f"{user.username},{individual.number},{key},{getattr(individual,key)},{form[key]}," ) diff --git a/frontend/src/cert_autocomplete.tsx b/frontend/src/cert_autocomplete.tsx index d132990f..0a5ef350 100644 --- a/frontend/src/cert_autocomplete.tsx +++ b/frontend/src/cert_autocomplete.tsx @@ -43,7 +43,7 @@ export const CertAutocomplete = ({ if (type.value == "digital") { updateIndividual("certificate", null); } else if (type.value == "paper") { - updateIndividual("digital_certificate", ""); + updateIndividual("digital_certificate", null); } else { updateIndividual("digital_certificate", null); updateIndividual("certificate", null); From cacd8a699f8980b0ae3dc0b1285c26727c5959b3 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 28 Nov 2022 16:58:32 +0100 Subject: [PATCH 13/56] do not allow to register more than 9 rabbits --- app/utils/database.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/utils/database.py b/app/utils/database.py index 4bd277a4..c574d46d 100644 --- a/app/utils/database.py +++ b/app/utils/database.py @@ -453,6 +453,8 @@ def next_individual_number(herd, birth_date, breeding_event): ).execute() litter_size = len(individuals) + if litter_size == 9: + return None ind_number = ( f"{herd}-{str(birth_date.year)[2:4]}{litter_number}{litter_size + 1}" From 76d37abec4c06fce0f63082819bf16ffb67d832d Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 28 Nov 2022 17:27:24 +0100 Subject: [PATCH 14/56] Split long string --- app/utils/data_access.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/utils/data_access.py b/app/utils/data_access.py index f37ef13e..6e017634 100644 --- a/app/utils/data_access.py +++ b/app/utils/data_access.py @@ -866,7 +866,8 @@ def form_to_individual(form, user=None): and getattr(individual, "certificate") is not None ): update_logger.info( - f"{user.username},{individual.number},certificate,{getattr(individual,'certificate')},'None'," + f"{user.username},{individual.number}," + f"certificate,{getattr(individual,'certificate')},'None'," ) setattr(individual, "certificate", None) @@ -875,7 +876,8 @@ def form_to_individual(form, user=None): and getattr(individual, "digital_certificate") is not None ): update_logger.info( - f"{user.username},{individual.number},digital_certificate,{getattr(individual,'digital_certificate')},'None'," + f"{user.username},{individual.number}," + f"digital_certificate,{getattr(individual,'digital_certificate')},'None'," ) setattr(individual, "digital_certificate", None) update_logger.info( From bbeebd7a9b8e6f51285c7de1ecbadc0497bdfe19 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 28 Nov 2022 17:31:52 +0100 Subject: [PATCH 15/56] Update super linter --- .github/workflows/lint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2014fe3d..5c8b1a7a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -39,7 +39,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: # Full git history is needed to get a proper list of changed files within `super-linter` fetch-depth: 0 @@ -48,7 +48,7 @@ jobs: # Run Linter against code base # ################################ - name: Lint Code Base - uses: github/super-linter@v4 + uses: github/super-linter/slim@v4 env: VALIDATE_ALL_CODEBASE: false DEFAULT_BRANCH: develop From 804e75533370c11837bd13915c3ccb8036208b74 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 28 Nov 2022 17:49:15 +0100 Subject: [PATCH 16/56] Fixed lines --- frontend/src/individual_form.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index 3567d2b5..dfd2735b 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -311,8 +311,8 @@ export function IndividualForm({ "" } InputProps={{ - classes: { - input: "data-hj-allow", + classes: { + input: "data-hj-allow", }, startAdornment: ( From 204ba74e8c3fe43526d82ddd8be2c972aaeda1c9 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 28 Nov 2022 19:15:41 +0100 Subject: [PATCH 17/56] minor fixes --- frontend/src/individual_add.tsx | 2 +- frontend/src/individual_form.tsx | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index 018f346b..dcdf57b9 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -435,7 +435,7 @@ export function IndividualAdd({ ) { userMessage( `Individens nummer ska börja med antingen moderns eller faderns nuvarande besättning. - I det här fallet ${motherHerd} eller ${fatherHerd}. deg is ${is_admin}.`, + I det här fallet ${motherHerd} eller ${fatherHerd}.`, "warning" ); return; diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index bfb3a8fc..51fe902b 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -108,7 +108,6 @@ export function IndividualForm({ } let herds = mother.herd_tracking; individual.origin_herd = mother.herd; - //individual.number = mother.herd.herd + "-"; setIndNull(false); if (herds.length > 0) { const herdOptions: OptionType[] = herds.map((h: LimitedHerd) => { @@ -117,7 +116,7 @@ export function IndividualForm({ herdOptions.filter( (item, index) => herdOptions.indexOf(item) === index ); - //Filter unika herds from herd_tracking + //Filter unique herds from herd_tracking let unique = [ ...new Map( herdOptions.map((item) => [item["label"], item]) From e2203a2c6a89fd389f85624d78c8a14fb04a17d8 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 2 Dec 2022 16:59:34 +0100 Subject: [PATCH 18/56] Fix for trigger right stuff when adding sibblings, added error if intygs nummer is a duplicate --- frontend/src/individual_add.tsx | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index dcdf57b9..cb217e77 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -276,7 +276,9 @@ export function IndividualAdd({ individual?.birth_date && individual?.father && individual?.mother && - individual?.origin_herd + individual?.origin_herd && + !success && + !(success && newSibling) ) { let limitedBreedingInput: LimitedBreeding = { birth_date: individual.birth_date, @@ -539,11 +541,17 @@ export function IndividualAdd({ setHerdChangeListener(herdChangeListener + 1); loadData(["genebanks"]); setSuccess(true); + if (newSibling) { + setSibling(false); + } } } else { userMessage("Kaninen har lagts till!", "success"); loadData(["genebanks"]); setSuccess(true); + if (newSibling) { + setSibling(false); + } } break; } @@ -571,11 +579,21 @@ export function IndividualAdd({ ); break; } + case json.message.match( + /^duplicate key value violates unique constraint "individual_certificate"/ + )?.input: { + userMessage( + `Det finns redan ett intyg med nummer ${individual.certificate} i systemet!`, + "error" + ); + break; + } default: { userMessage( - "Något gick fel. Det här borde inte hända.", + `Något gick fel. Det här borde inte hända. Vänligen rapportera detta fel till admin: ${json.message}`, "error" ); + console.log("Fel från API: ", json.message); } } } @@ -621,9 +639,6 @@ export function IndividualAdd({ breeding: breedingId, }; createIndividual(newIndividual); - if (newSibling) { - setSibling(false); - } }; const resetBlank = () => { @@ -642,8 +657,8 @@ export function IndividualAdd({ litter_size6w: individual.litter_size6w, genebank: individual.genebank, }; - setIndividual(sibling); setSibling(true); + setIndividual(sibling); setSuccess(false); }; From 01929b7c34f696a5cfda69bc4476bd756eb365d2 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 5 Dec 2022 09:37:42 +0100 Subject: [PATCH 19/56] Check if certificate exist and return error, handle error in frontend --- app/utils/data_access.py | 7 +++++++ frontend/src/individual_add.tsx | 4 +--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/utils/data_access.py b/app/utils/data_access.py index 6e017634..83434a93 100644 --- a/app/utils/data_access.py +++ b/app/utils/data_access.py @@ -923,6 +923,13 @@ def add_individual(form, user_uuid): if Individual.select().where(Individual.number == form["number"]).exists(): return {"status": "error", "message": "Individual number already exists"} + if ( + Individual.select() + .where(Individual.certificate == form["certificate"]) + .exists() + ): + return {"status": "error", "message": "Individual certificate already exists"} + birth_date = form.get("birth_date", None) if birth_date is None: return {"status": "error", "message": "Birth date must be defined"} diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index cb217e77..22f4e585 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -579,9 +579,7 @@ export function IndividualAdd({ ); break; } - case json.message.match( - /^duplicate key value violates unique constraint "individual_certificate"/ - )?.input: { + case "Individual certificate already exists": { userMessage( `Det finns redan ett intyg med nummer ${individual.certificate} i systemet!`, "error" From 4aa2af706a4b75c6410b6c9a3042445649ce5520 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 5 Dec 2022 15:30:22 +0100 Subject: [PATCH 20/56] Added error for duplicate number and intyg --- frontend/src/cert_autocomplete.tsx | 3 +++ frontend/src/individual_add.tsx | 9 +++++++++ frontend/src/individual_form.tsx | 7 +++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/frontend/src/cert_autocomplete.tsx b/frontend/src/cert_autocomplete.tsx index 0a5ef350..f04ebfff 100644 --- a/frontend/src/cert_autocomplete.tsx +++ b/frontend/src/cert_autocomplete.tsx @@ -9,6 +9,7 @@ export const CertAutocomplete = ({ updateIndividual, canManage, edit, + intygError, }: { individual: Individual; updateIndividual: ( @@ -17,6 +18,7 @@ export const CertAutocomplete = ({ ) => void; canManage: boolean; edit: boolean; + intygError: boolean; }) => { const defaultCert = !!individual.certificate ? "paper" @@ -83,6 +85,7 @@ export const CertAutocomplete = ({
{!herdId && ( diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index 51fe902b..6912ce96 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -43,6 +43,7 @@ export function IndividualForm({ birthDateError, litterError, litterError6w, + intygError, }: { genebank: Genebank; individual: Individual; @@ -55,6 +56,7 @@ export function IndividualForm({ birthDateError: boolean; litterError: boolean; litterError6w: boolean; + intygError: boolean; }) { const [herdOptions, setHerdOptions] = React.useState([] as OptionType[]); const [openBreedDialog, setBreedDiOpen] = React.useState(false); @@ -331,6 +333,7 @@ export function IndividualForm({ individual={individual} canManage={canManage} updateIndividual={onUpdateIndividual} + intygError={intygError} edit={false} /> @@ -566,7 +569,7 @@ export function IndividualForm({ variant={inputVariant} className="wideControlInd" multiline - rows={1} + minRows={1} value={individual.hair_notes ?? ""} onChange={(event) => { onUpdateIndividual("hair_notes", event.currentTarget.value); @@ -579,7 +582,7 @@ export function IndividualForm({ variant={inputVariant} className="wideControlInd" multiline - rows={4} + minRows={4} value={individual.notes ?? ""} onChange={(event) => { onUpdateIndividual("notes", event.currentTarget.value); From 86029825cb17110a7fd4aea86e1936cbb2fa3668 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 5 Dec 2022 15:34:43 +0100 Subject: [PATCH 21/56] Some changes to remove warnings --- frontend/src/breeding_form.tsx | 4 ++-- frontend/src/individual_add.tsx | 2 +- frontend/src/individual_breeding_form.tsx | 2 +- frontend/src/individual_death.tsx | 2 +- frontend/src/navigation.tsx | 5 +++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/frontend/src/breeding_form.tsx b/frontend/src/breeding_form.tsx index afe629be..31e8c40e 100644 --- a/frontend/src/breeding_form.tsx +++ b/frontend/src/breeding_form.tsx @@ -596,7 +596,7 @@ export function BreedingForm({ variant={inputVariant} className="wideControl" multiline - rows={2} + minRows={2} value={formState.breed_notes ?? ""} onChange={(e: any) => { setFormField("breed_notes", e.target.value); @@ -666,7 +666,7 @@ export function BreedingForm({ variant={inputVariant} className="controlFull" multiline - rows={2} + minRows={2} value={formState.birth_notes ?? ""} onChange={(e: any) => { setFormField("birth_notes", e.target.value); diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index a4d79a4e..2d91e733 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -713,7 +713,7 @@ export function IndividualAdd({ )} } + control={} label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); diff --git a/frontend/src/individual_breeding_form.tsx b/frontend/src/individual_breeding_form.tsx index 51510523..4f4ae70f 100644 --- a/frontend/src/individual_breeding_form.tsx +++ b/frontend/src/individual_breeding_form.tsx @@ -534,7 +534,7 @@ export function IndividualBreedingForm({ variant={inputVariant} className="controlFull" multiline - rows={2} + minRows={2} value={formState.birth_notes ?? ""} onChange={(e: any) => { setFormField("birth_notes", e.target.value); diff --git a/frontend/src/individual_death.tsx b/frontend/src/individual_death.tsx index 536445a0..1ccd076c 100644 --- a/frontend/src/individual_death.tsx +++ b/frontend/src/individual_death.tsx @@ -228,7 +228,7 @@ export const IndividualDeath = ({ individual }: { individual: Individual }) => { variant={inputVariant} className={style.wideControl} multiline - rows={2} + minRows={2} value={deadIndividual.death_note ?? ""} onChange={(event) => { handleUpdateIndividual( diff --git a/frontend/src/navigation.tsx b/frontend/src/navigation.tsx index a35c298d..0b321e6b 100644 --- a/frontend/src/navigation.tsx +++ b/frontend/src/navigation.tsx @@ -8,7 +8,7 @@ import { useHistory, } from "react-router-dom"; -import { createMuiTheme, ThemeProvider } from "@material-ui/core/styles"; +import { createTheme, ThemeProvider } from "@material-ui/core/styles"; import { svSE } from "@material-ui/core/locale"; import Paper from "@material-ui/core/Paper"; import HomeIcon from "@material-ui/icons/Home"; @@ -120,7 +120,7 @@ export function Navigation() { const is_admin = !!(user?.is_manager || user?.is_admin); const is_owner = !!(user?.is_owner && user.is_owner.length > 0); const is_logged_in = !!user; - const theme = createMuiTheme({}, svSE); + const theme = createTheme({}, svSE); const history = useHistory(); const tabs: ui.RoutedTab[] = [ @@ -309,6 +309,7 @@ export function Navigation() { {tabs.map((tab) => ( { From 2e1a93801cf7ac0697e30b77677c6e98998bbf2d Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Tue, 6 Dec 2022 17:00:44 +0100 Subject: [PATCH 22/56] Use notistack for better user ex --- frontend/src/main.tsx | 9 ++++-- frontend/src/message_context.tsx | 53 +++++++++++--------------------- 2 files changed, 24 insertions(+), 38 deletions(-) diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 1034cb51..feb9d5f9 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -4,6 +4,7 @@ import styled, * as sc from "styled-components"; import CssBaseline from "@material-ui/core/CssBaseline"; import CookieConsent from "react-cookie-consent"; import { BrowserRouter } from "react-router-dom"; +import { SnackbarProvider } from "notistack"; import { WithUserContext } from "@app/user_context"; import { WithDataContext } from "@app/data_context"; @@ -24,9 +25,11 @@ const Main = ( - - - + + + + + diff --git a/frontend/src/message_context.tsx b/frontend/src/message_context.tsx index ba417e5f..4c260156 100644 --- a/frontend/src/message_context.tsx +++ b/frontend/src/message_context.tsx @@ -3,12 +3,13 @@ import { Link } from "react-router-dom"; import { Button, + IconButton, Dialog, DialogActions, DialogContent, - Snackbar, } from "@material-ui/core"; -import Alert from "@material-ui/lab/Alert"; +import CloseIcon from "@material-ui/icons/Close"; +import { VariantType, useSnackbar } from "notistack"; import { unstable_batchedUpdates } from "react-dom"; /** @@ -16,10 +17,8 @@ import { unstable_batchedUpdates } from "react-dom"; * consistent manner. */ -export type MessageLevel = "error" | "warning" | "info" | "success"; - export interface MessageContext { - userMessage(msg: string, level: MessageLevel): void; + userMessage(msg: string, variant: VariantType): void; popup(content: JSX.Element, link: string | undefined, full?: boolean): void; handleCloseDialog(): void; } @@ -39,9 +38,6 @@ export function useMessageContext(): MessageContext { } export function WithMessageContext(props: { children: React.ReactNode }) { - const [severity, setSeverity] = React.useState("info" as MessageLevel); - const [message, setMessage] = React.useState("" as string); - const [showMessage, setShowMessage] = React.useState(false); const [showDialog, setShowDialog] = React.useState(false); const [dialogContent, setDialogContent] = React.useState( (<>) as JSX.Element @@ -50,17 +46,25 @@ export function WithMessageContext(props: { children: React.ReactNode }) { undefined as string | undefined ); const [fullWidth, setFullWidth] = React.useState(false); + const { enqueueSnackbar, closeSnackbar } = useSnackbar(); - function userMessage(message: string, severity: MessageLevel) { + const userMessage = async (message: string, variant: VariantType) => { // print json format if the message isn't a string. - setMessage( + enqueueSnackbar( typeof message == "string" ? message - : JSON.stringify(message, undefined, 2) + : JSON.stringify(message, undefined, 2), + { + variant, + anchorOrigin: { horizontal: "right", vertical: "bottom" }, + action: (key) => ( + closeSnackbar(key)}> + + + ), + } ); - setSeverity(severity); - setShowMessage(true); - } + }; function popup( content: JSX.Element, @@ -77,13 +81,6 @@ export function WithMessageContext(props: { children: React.ReactNode }) { }); } - const handleCloseMessage = (event: any, reason: string) => { - if (reason === "clickaway") { - return; - } - setShowMessage(false); - }; - const handleCloseDialog = () => { unstable_batchedUpdates(() => { setDialogLink(undefined); @@ -115,20 +112,6 @@ export function WithMessageContext(props: { children: React.ReactNode }) { - - - {message} - - ); } From d26f5748e5b7cd9757852019ece0c2975f804417 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Tue, 6 Dec 2022 17:01:40 +0100 Subject: [PATCH 23/56] Added notisestack and update deps in lock --- frontend/package-lock.json | 1824 ++++++++++++++++-------------------- frontend/package.json | 1 + 2 files changed, 818 insertions(+), 1007 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6ab3b4a5..db470286 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -17,6 +17,7 @@ "@material-ui/pickers": "^3.3.10", "@snowpack/plugin-react-refresh": "^2.5.0", "date-fns": "2.21.1", + "notistack": "^1.0.10", "react": "^17.0.2", "react-cookie-consent": "^8.0.1", "react-dom": "^17.0.2", @@ -78,28 +79,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -115,11 +116,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dependencies": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -165,11 +166,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dependencies": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -182,9 +183,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -192,7 +193,7 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { @@ -203,13 +204,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.2.1" }, "engines": { "node": ">=6.9.0" @@ -302,18 +303,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -332,9 +333,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "engines": { "node": ">=6.9.0" } @@ -374,23 +375,23 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -408,9 +409,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "engines": { "node": ">=6.9.0" } @@ -432,28 +433,28 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" @@ -473,9 +474,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -516,9 +517,9 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", - "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -677,16 +678,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" + "@babel/plugin-transform-parameters": "^7.20.1" }, "engines": { "node": ">=6.9.0" @@ -745,14 +746,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -883,12 +884,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1039,12 +1040,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1101,12 +1102,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1116,18 +1117,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", - "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, @@ -1154,12 +1155,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1291,14 +1292,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1308,15 +1308,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -1326,16 +1325,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1361,13 +1359,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1408,12 +1406,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1502,12 +1500,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", - "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1533,13 +1531,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1664,14 +1662,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz", - "integrity": "sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-typescript": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1712,18 +1710,18 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -1732,7 +1730,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -1743,7 +1741,7 @@ "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1756,10 +1754,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.20.2", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1767,14 +1765,14 @@ "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-parameters": "^7.20.1", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -1786,7 +1784,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1854,24 +1852,24 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", - "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", "dev": true, "dependencies": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -1891,18 +1889,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.20.5", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1911,12 +1909,12 @@ } }, "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1992,9 +1990,9 @@ "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" }, "node_modules/@emotion/serialize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.0.tgz", - "integrity": "sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", "dev": true, "dependencies": { "@emotion/hash": "^0.9.0", @@ -2714,18 +2712,19 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@material-ui/core": { "version": "4.12.4", "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", "@material-ui/styles": "^4.11.5", @@ -2784,6 +2783,7 @@ "version": "4.0.0-alpha.61", "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz", "integrity": "sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", "@material-ui/utils": "^4.11.3", @@ -2810,6 +2810,7 @@ "version": "3.3.10", "resolved": "https://registry.npmjs.org/@material-ui/pickers/-/pickers-3.3.10.tgz", "integrity": "sha512-hS4pxwn1ZGXVkmgD4tpFpaumUaAg2ZzbTrxltfC5yPw4BJV+mGkfnQOB4VpWEYZw2jv65Z0wLwDE/piQiPPZ3w==", + "deprecated": "Material UI Pickers v3 doesn't receive active development since January 2020. See the guide https://mui.com/material-ui/guides/pickers-migration/ to upgrade.", "dependencies": { "@babel/runtime": "^7.6.0", "@date-io/core": "1.x", @@ -2830,6 +2831,7 @@ "version": "4.11.5", "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.8.0", @@ -2935,9 +2937,9 @@ } }, "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2953,6 +2955,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "dependencies": { "mkdirp": "^1.0.4", @@ -3093,9 +3096,9 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -3329,9 +3332,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -3361,24 +3364,24 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", - "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" } }, "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "dev": true, "dependencies": { "@types/http-cache-semantics": "*", - "@types/keyv": "*", + "@types/keyv": "^3.1.4", "@types/node": "*", - "@types/responselike": "*" + "@types/responselike": "^1.0.0" } }, "node_modules/@types/cheerio": { @@ -3391,9 +3394,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "peer": true, "dependencies": { "@types/estree": "*", @@ -3501,9 +3504,9 @@ } }, "node_modules/@types/node": { - "version": "18.7.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", - "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==" + "version": "18.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", + "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3518,9 +3521,9 @@ "dev": true }, "node_modules/@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "node_modules/@types/prop-types": { @@ -3529,9 +3532,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", - "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", + "version": "17.0.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", + "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3539,9 +3542,9 @@ } }, "node_modules/@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz", + "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==", "dev": true, "dependencies": { "@types/react": "^17" @@ -3833,9 +3836,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "bin": { "acorn": "bin/acorn" }, @@ -3976,9 +3979,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -4181,15 +4184,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -4840,19 +4834,6 @@ "node": ">=6" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -4872,14 +4853,17 @@ } }, "node_modules/camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/caniuse-lite": { - "version": "1.0.30001402", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001402.tgz", - "integrity": "sha512-Mx4MlhXO5NwuvXGgVb+hg65HZ+bhUYsz8QtDGDo2QmaJS2GBX47Xfi2koL86lc8K+l+htXeTEB/Aeqvezoo6Ew==", + "version": "1.0.30001436", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", "funding": [ { "type": "opencollective", @@ -4964,9 +4948,9 @@ } }, "node_modules/cheerio/node_modules/parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { "entities": "^4.4.0" @@ -5260,12 +5244,9 @@ "dev": true }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/copy-descriptor": { "version": "0.1.1", @@ -5277,9 +5258,9 @@ } }, "node_modules/core-js": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.1.tgz", - "integrity": "sha512-sr0FY4lnO1hkQ4gLDr24K0DGnweGO1QwSj5BpfQjpSJPdqWalja4cTps29Y/PJVG/P7FYlPDkH3hO+Tr0CvDgQ==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", "dev": true, "hasInstallScript": true, "funding": { @@ -5288,12 +5269,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.1.tgz", - "integrity": "sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", "dev": true, "dependencies": { - "browserslist": "^4.21.3" + "browserslist": "^4.21.4" }, "funding": { "type": "opencollective", @@ -5301,9 +5282,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.1.tgz", - "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -5359,19 +5340,19 @@ } }, "node_modules/css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.18", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "engines": { "node": ">= 12.13.0" @@ -5385,9 +5366,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5539,15 +5520,15 @@ } }, "node_modules/decimal.js": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.0.tgz", - "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, "engines": { "node": ">=0.10" @@ -5604,22 +5585,6 @@ "node": ">=10" } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -5652,37 +5617,19 @@ } }, "node_modules/detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", "dev": true, "dependencies": { "address": "^1.0.1", - "debug": "^2.6.0" + "debug": "4" }, "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" } }, - "node_modules/detect-port/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/diff-sequences": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", @@ -5804,9 +5751,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.253", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.253.tgz", - "integrity": "sha512-1pezJ2E1UyBTGbA7fUlHdPSXQw1k+82VhTFLG5G0AUqLGvsZqFzleOblceqegZzxYX4kC7hGEEdzIQI9RZ1Cuw==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/emittery": { "version": "0.7.2", @@ -5844,9 +5791,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "peer": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -6372,9 +6319,9 @@ "dev": true }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { "bser": "2.1.1" @@ -6556,9 +6503,9 @@ } }, "node_modules/generic-names/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -6586,20 +6533,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -6733,30 +6666,6 @@ "node": ">=4" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -7159,9 +7068,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -7408,9 +7317,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", @@ -8332,9 +8241,9 @@ } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" @@ -8771,9 +8680,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9316,9 +9225,9 @@ "peer": true }, "node_modules/keyv": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", - "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -9392,9 +9301,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -9618,19 +9527,6 @@ "node": ">=4" } }, - "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", @@ -9644,15 +9540,18 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -9856,9 +9755,9 @@ } }, "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "optional": true, "dependencies": { @@ -9918,6 +9817,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/notistack": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/notistack/-/notistack-1.0.10.tgz", + "integrity": "sha512-z0y4jJaVtOoH3kc3GtNUlhNTY+5LE04QDeLVujX3VPhhzg67zw055mZjrBF+nzpv3V9aiPNph1EgRU4+t8kQTQ==", + "dependencies": { + "clsx": "^1.1.0", + "hoist-non-react-statics": "^3.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/notistack" + }, + "peerDependencies": { + "@material-ui/core": "^4.0.0", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -10041,15 +9958,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -10062,24 +9970,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -10308,9 +10198,9 @@ } }, "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { "entities": "^4.4.0" @@ -10449,9 +10339,9 @@ } }, "node_modules/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "dev": true, "funding": [ { @@ -10634,9 +10524,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -10709,9 +10599,9 @@ "dev": true }, "node_modules/promise": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", - "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "dependencies": { "asap": "~2.0.6" @@ -10874,9 +10764,9 @@ } }, "node_modules/react-icons": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.4.0.tgz", - "integrity": "sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", + "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==", "peerDependencies": { "react": "*" } @@ -10931,15 +10821,14 @@ } }, "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==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "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", @@ -10951,15 +10840,15 @@ } }, "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==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", "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", + "react-router": "5.3.4", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" }, @@ -11068,14 +10957,14 @@ } }, "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==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -11095,9 +10984,9 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dev": true, "dependencies": { "regenerate": "^1.4.2", @@ -11105,7 +10994,7 @@ "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" @@ -11287,9 +11176,9 @@ } }, "node_modules/rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -11353,9 +11242,24 @@ } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true }, "node_modules/safe-regex": { "version": "1.1.0", @@ -12177,9 +12081,9 @@ } }, "node_modules/snowpack/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", @@ -12379,6 +12283,7 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", "dev": true }, "node_modules/spdx-correct": { @@ -12444,9 +12349,9 @@ } }, "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" @@ -12642,9 +12547,9 @@ } }, "node_modules/styled-components": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", - "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", "hasInstallScript": true, "dependencies": { "@babel/helper-module-imports": "^7.0.0", @@ -12749,9 +12654,9 @@ } }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", + "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -12762,7 +12667,7 @@ "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" } }, "node_modules/terminal-link": { @@ -12782,9 +12687,9 @@ } }, "node_modules/terser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -12898,9 +12803,9 @@ "peer": 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==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" }, "node_modules/tiny-warning": { "version": "1.0.3", @@ -13028,9 +12933,9 @@ } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -13085,9 +12990,9 @@ } }, "node_modules/typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -13120,9 +13025,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" @@ -13243,9 +13148,9 @@ "dev": true }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "funding": [ { "type": "opencollective", @@ -13427,9 +13332,9 @@ } }, "node_modules/vm2": { - "version": "3.9.11", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz", - "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==", + "version": "3.9.12", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.12.tgz", + "integrity": "sha512-OMmRsKh1gmdosFzuqmj6O43hqIStqXA24YbwjtUTO0TkOBP8yLNHLplbr4odnAzEcMnm9lt2r3R8kTivn8urMg==", "dev": true, "dependencies": { "acorn": "^8.7.0", @@ -13455,6 +13360,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -13504,9 +13410,9 @@ } }, "node_modules/webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -13637,9 +13543,9 @@ } }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.3.1.tgz", + "integrity": "sha512-0x7gJm1rhpn5SPG9NENOxPtbfUZZtK/qOg6gEdSqeDBA3dTeR91RJqSPjccPRCkhNfrnnl/dWxSSj5w9CtdzNA==", "dev": true }, "node_modules/wrap-ansi": { @@ -13837,25 +13743,25 @@ } }, "@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==" + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" }, "@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -13864,11 +13770,11 @@ } }, "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "requires": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -13904,20 +13810,20 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "requires": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -13925,18 +13831,18 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.2.1" } }, "@babel/helper-define-polyfill-provider": { @@ -14002,18 +13908,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" } }, "@babel/helper-optimise-call-expression": { @@ -14026,9 +13932,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==" + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" }, "@babel/helper-remap-async-to-generator": { "version": "7.18.9", @@ -14056,20 +13962,20 @@ } }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.20.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" } }, "@babel/helper-split-export-declaration": { @@ -14081,9 +13987,9 @@ } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" }, "@babel/helper-validator-identifier": { "version": "7.19.1", @@ -14096,25 +14002,25 @@ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "requires": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/highlight": { @@ -14128,9 +14034,9 @@ } }, "@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==" + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -14153,9 +14059,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", - "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -14257,16 +14163,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" + "@babel/plugin-transform-parameters": "^7.20.1" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -14301,14 +14207,14 @@ } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, @@ -14394,12 +14300,12 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-syntax-import-meta": { @@ -14502,12 +14408,12 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-arrow-functions": { @@ -14540,27 +14446,27 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", - "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } @@ -14575,12 +14481,12 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-dotall-regex": { @@ -14661,39 +14567,36 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { @@ -14707,13 +14610,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-new-target": { @@ -14736,12 +14639,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-property-literals": { @@ -14794,12 +14697,12 @@ } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", - "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-react-pure-annotations": { @@ -14813,13 +14716,13 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { @@ -14898,14 +14801,14 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz", - "integrity": "sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-typescript": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" } }, "@babel/plugin-transform-unicode-escapes": { @@ -14928,18 +14831,18 @@ } }, "@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -14948,7 +14851,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -14959,7 +14862,7 @@ "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -14972,10 +14875,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.20.2", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -14983,14 +14886,14 @@ "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-parameters": "^7.20.1", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -15002,7 +14905,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -15049,21 +14952,21 @@ } }, "@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/runtime-corejs3": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", - "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", "dev": true, "requires": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { @@ -15077,29 +14980,29 @@ } }, "@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.20.5", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -15160,9 +15063,9 @@ "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" }, "@emotion/serialize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.0.tgz", - "integrity": "sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", "dev": true, "requires": { "@emotion/hash": "^0.9.0", @@ -15735,12 +15638,12 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@material-ui/core": { @@ -15856,9 +15759,9 @@ }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -15970,9 +15873,9 @@ "dev": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -16164,9 +16067,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -16196,24 +16099,24 @@ } }, "@types/babel__traverse": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", - "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "dev": true, "requires": { "@types/http-cache-semantics": "*", - "@types/keyv": "*", + "@types/keyv": "^3.1.4", "@types/node": "*", - "@types/responselike": "*" + "@types/responselike": "^1.0.0" } }, "@types/cheerio": { @@ -16226,9 +16129,9 @@ } }, "@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "peer": true, "requires": { "@types/estree": "*", @@ -16336,9 +16239,9 @@ } }, "@types/node": { - "version": "18.7.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", - "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==" + "version": "18.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", + "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -16353,9 +16256,9 @@ "dev": true }, "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "@types/prop-types": { @@ -16364,9 +16267,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", - "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", + "version": "17.0.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", + "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -16381,9 +16284,9 @@ } }, "@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz", + "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==", "dev": true, "requires": { "@types/react": "^17" @@ -16672,9 +16575,9 @@ "dev": true }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" }, "acorn-globals": { "version": "6.0.0", @@ -16773,9 +16676,9 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -16926,15 +16829,6 @@ } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -17466,16 +17360,6 @@ "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", "dev": true }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -17489,14 +17373,14 @@ "dev": true }, "camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" }, "caniuse-lite": { - "version": "1.0.30001402", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001402.tgz", - "integrity": "sha512-Mx4MlhXO5NwuvXGgVb+hg65HZ+bhUYsz8QtDGDo2QmaJS2GBX47Xfi2koL86lc8K+l+htXeTEB/Aeqvezoo6Ew==" + "version": "1.0.30001436", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==" }, "capture-exit": { "version": "2.0.0", @@ -17539,9 +17423,9 @@ }, "dependencies": { "parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "requires": { "entities": "^4.4.0" @@ -17791,12 +17675,9 @@ "dev": true }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "copy-descriptor": { "version": "0.1.1", @@ -17805,24 +17686,24 @@ "dev": true }, "core-js": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.1.tgz", - "integrity": "sha512-sr0FY4lnO1hkQ4gLDr24K0DGnweGO1QwSj5BpfQjpSJPdqWalja4cTps29Y/PJVG/P7FYlPDkH3hO+Tr0CvDgQ==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", "dev": true }, "core-js-compat": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.1.tgz", - "integrity": "sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", "dev": true, "requires": { - "browserslist": "^4.21.3" + "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.1.tgz", - "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", "dev": true }, "cosmiconfig": { @@ -17864,25 +17745,25 @@ "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" }, "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", "dev": true, "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.18", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -17993,15 +17874,15 @@ "dev": true }, "decimal.js": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.0.tgz", - "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, "decompress-response": { @@ -18039,16 +17920,6 @@ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -18072,30 +17943,13 @@ "dev": true }, "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", "dev": true, "requires": { "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } + "debug": "4" } }, "diff-sequences": { @@ -18193,9 +18047,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.253", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.253.tgz", - "integrity": "sha512-1pezJ2E1UyBTGbA7fUlHdPSXQw1k+82VhTFLG5G0AUqLGvsZqFzleOblceqegZzxYX4kC7hGEEdzIQI9RZ1Cuw==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "emittery": { "version": "0.7.2", @@ -18224,9 +18078,9 @@ } }, "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "peer": true, "requires": { "graceful-fs": "^4.2.4", @@ -18641,9 +18495,9 @@ "dev": true }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -18767,9 +18621,9 @@ } }, "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "requires": { "big.js": "^5.2.2", @@ -18790,17 +18644,6 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -18898,21 +18741,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -19233,9 +19061,9 @@ } }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -19418,9 +19246,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -20116,9 +19944,9 @@ } }, "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, @@ -20446,9 +20274,9 @@ "dev": true }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20874,9 +20702,9 @@ "peer": true }, "keyv": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", - "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "dev": true, "requires": { "json-buffer": "3.0.1" @@ -20932,9 +20760,9 @@ "peer": true }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -21104,15 +20932,6 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "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", @@ -21123,15 +20942,15 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -21293,9 +21112,9 @@ }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "optional": true, "requires": { @@ -21341,6 +21160,15 @@ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true }, + "notistack": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/notistack/-/notistack-1.0.10.tgz", + "integrity": "sha512-z0y4jJaVtOoH3kc3GtNUlhNTY+5LE04QDeLVujX3VPhhzg67zw055mZjrBF+nzpv3V9aiPNph1EgRU4+t8kQTQ==", + "requires": { + "clsx": "^1.1.0", + "hoist-non-react-statics": "^3.3.0" + } + }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -21438,12 +21266,6 @@ } } }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -21453,18 +21275,6 @@ "isobject": "^3.0.0" } }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -21624,9 +21434,9 @@ }, "dependencies": { "parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "requires": { "entities": "^4.4.0" @@ -21727,9 +21537,9 @@ "dev": true }, "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -21859,9 +21669,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -21918,9 +21728,9 @@ } }, "promise": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", - "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "requires": { "asap": "~2.0.6" @@ -22058,9 +21868,9 @@ } }, "react-icons": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.4.0.tgz", - "integrity": "sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", + "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==", "requires": {} }, "react-is": { @@ -22099,15 +21909,14 @@ "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==" }, "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==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "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", @@ -22123,15 +21932,15 @@ } }, "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==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", "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", + "react-router": "5.3.4", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" } @@ -22211,14 +22020,14 @@ } }, "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==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -22235,9 +22044,9 @@ } }, "regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dev": true, "requires": { "regenerate": "^1.4.2", @@ -22245,7 +22054,7 @@ "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, "regjsgen": { @@ -22383,9 +22192,9 @@ } }, "rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -22443,9 +22252,10 @@ "dev": true }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "peer": true }, "safe-regex": { "version": "1.1.0", @@ -23106,9 +22916,9 @@ }, "dependencies": { "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -23309,9 +23119,9 @@ } }, "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -23464,9 +23274,9 @@ "dev": true }, "styled-components": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", - "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -23541,9 +23351,9 @@ "peer": true }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", + "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", "dev": true, "requires": { "chownr": "^2.0.0", @@ -23565,9 +23375,9 @@ } }, "terser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "peer": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -23641,9 +23451,9 @@ "peer": 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==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" }, "tiny-warning": { "version": "1.0.3", @@ -23742,9 +23552,9 @@ }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23783,9 +23593,9 @@ } }, "typescript": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", - "integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", "dev": true }, "unicode-canonical-property-names-ecmascript": { @@ -23805,9 +23615,9 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { @@ -23907,9 +23717,9 @@ } }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -24035,9 +23845,9 @@ "requires": {} }, "vm2": { - "version": "3.9.11", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz", - "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==", + "version": "3.9.12", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.12.tgz", + "integrity": "sha512-OMmRsKh1gmdosFzuqmj6O43hqIStqXA24YbwjtUTO0TkOBP8yLNHLplbr4odnAzEcMnm9lt2r3R8kTivn8urMg==", "dev": true, "requires": { "acorn": "^8.7.0", @@ -24096,9 +23906,9 @@ "dev": true }, "webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "peer": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -24201,9 +24011,9 @@ "dev": true }, "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.3.1.tgz", + "integrity": "sha512-0x7gJm1rhpn5SPG9NENOxPtbfUZZtK/qOg6gEdSqeDBA3dTeR91RJqSPjccPRCkhNfrnnl/dWxSSj5w9CtdzNA==", "dev": true }, "wrap-ansi": { diff --git a/frontend/package.json b/frontend/package.json index 174b7d79..24ed3b30 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -43,6 +43,7 @@ "@material-ui/pickers": "^3.3.10", "@snowpack/plugin-react-refresh": "^2.5.0", "date-fns": "2.21.1", + "notistack": "^1.0.10", "react": "^17.0.2", "react-cookie-consent": "^8.0.1", "react-dom": "^17.0.2", From f7c5034838bcf4fd0704fd7fd64bf628ee51a6b4 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 9 Dec 2022 11:01:47 +0100 Subject: [PATCH 24/56] Cleand up some typescript things --- frontend/src/breeding_dialog.tsx | 16 +++++++++------- frontend/src/individual_breeding_form.tsx | 7 ++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/frontend/src/breeding_dialog.tsx b/frontend/src/breeding_dialog.tsx index a1c3547f..c3fbee38 100644 --- a/frontend/src/breeding_dialog.tsx +++ b/frontend/src/breeding_dialog.tsx @@ -16,6 +16,7 @@ import { DialogActions, DialogContent, } from "@material-ui/core"; +import { Individual } from "@app/data_context_global"; export const BreedingDialog = ({ open, @@ -24,16 +25,17 @@ export const BreedingDialog = ({ individual, onUpdateIndividual, }: { - breed_id: string | undefined; + open: any; + close: any; + breed_id: number | null; individual: Individual; onUpdateIndividual: any; }) => { - const [selectedValue, setSelectedValue] = useState(""); - const [active, setActive] = React.useState(null as any); + const [setActive] = React.useState(null as any); const [extendedBreeding, setExtendedBreeding] = React.useState( - [] as Breeding[] + undefined as ExtendedBreeding | undefined ); - const [breedingsChanged, setBreedingsChanged] = React.useState(true); + const [setBreedingsChanged] = React.useState(true); const { userMessage } = useMessageContext(); const handleBreedingsChanged = () => { setBreedingsChanged(true); @@ -41,7 +43,7 @@ export const BreedingDialog = ({ React.useEffect(() => { if (breed_id) { get(`/api/breeding/id/${breed_id}`).then( - (data: { breeding: Breeding[] }) => { + (data: { breeding: ExtendedBreeding }) => { data && setExtendedBreeding(data.breeding); }, (error) => { @@ -70,7 +72,7 @@ export const BreedingDialog = ({ void; handleActive: (breeding: Breeding) => void; individual: Individual; onUpdateIndividual: any; + closeDialog: any; }) { const { genebanks, @@ -114,7 +115,7 @@ export function IndividualBreedingForm({ }, [genebanks, data]); React.useEffect(() => { - setFormState(!data || data == "new" ? emptyBreeding : data); + setFormState(!data ? emptyBreeding : data); }, [data]); React.useEffect(() => { From 89b30c42a5d8462ace02879d4f91e2c9424fae0a Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 9 Dec 2022 11:02:18 +0100 Subject: [PATCH 25/56] Update package-lock again --- frontend/package-lock.json | 99 +++++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 38 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index db470286..f897f165 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -3504,9 +3504,9 @@ } }, "node_modules/@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" + "version": "18.11.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz", + "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -4861,9 +4861,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001436", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", - "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "funding": [ { "type": "opencollective", @@ -6610,9 +6610,9 @@ } }, "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "dev": true, "dependencies": { "@sindresorhus/is": "^4.0.0", @@ -12654,14 +12654,14 @@ } }, "node_modules/tar": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", - "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -12670,6 +12670,18 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -12990,9 +13002,9 @@ } }, "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -13332,9 +13344,9 @@ } }, "node_modules/vm2": { - "version": "3.9.12", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.12.tgz", - "integrity": "sha512-OMmRsKh1gmdosFzuqmj6O43hqIStqXA24YbwjtUTO0TkOBP8yLNHLplbr4odnAzEcMnm9lt2r3R8kTivn8urMg==", + "version": "3.9.13", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.13.tgz", + "integrity": "sha512-0rvxpB8P8Shm4wX2EKOiMp7H2zq+HUE/UwodY0pCZXs9IffIKZq6vUti5OgkVCTakKo9e/fgO4X1fkwfjWxE3Q==", "dev": true, "dependencies": { "acorn": "^8.7.0", @@ -16239,9 +16251,9 @@ } }, "@types/node": { - "version": "18.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", - "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==" + "version": "18.11.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz", + "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -17378,9 +17390,9 @@ "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" }, "caniuse-lite": { - "version": "1.0.30001436", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", - "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==" + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==" }, "capture-exit": { "version": "2.0.0", @@ -18697,9 +18709,9 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "dev": true, "requires": { "@sindresorhus/is": "^4.0.0", @@ -23351,17 +23363,28 @@ "peer": true }, "tar": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", - "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "terminal-link": { @@ -23593,9 +23616,9 @@ } }, "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true }, "unicode-canonical-property-names-ecmascript": { @@ -23845,9 +23868,9 @@ "requires": {} }, "vm2": { - "version": "3.9.12", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.12.tgz", - "integrity": "sha512-OMmRsKh1gmdosFzuqmj6O43hqIStqXA24YbwjtUTO0TkOBP8yLNHLplbr4odnAzEcMnm9lt2r3R8kTivn8urMg==", + "version": "3.9.13", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.13.tgz", + "integrity": "sha512-0rvxpB8P8Shm4wX2EKOiMp7H2zq+HUE/UwodY0pCZXs9IffIKZq6vUti5OgkVCTakKo9e/fgO4X1fkwfjWxE3Q==", "dev": true, "requires": { "acorn": "^8.7.0", From 525ec3cb0a139a5d55deb9563fd8eee0b5e71359 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 9 Dec 2022 11:06:37 +0100 Subject: [PATCH 26/56] Only check if intyg exists if form has intyg/certificate number --- app/utils/data_access.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/utils/data_access.py b/app/utils/data_access.py index 83434a93..c416276e 100644 --- a/app/utils/data_access.py +++ b/app/utils/data_access.py @@ -922,13 +922,16 @@ def add_individual(form, user_uuid): if Individual.select().where(Individual.number == form["number"]).exists(): return {"status": "error", "message": "Individual number already exists"} - - if ( - Individual.select() - .where(Individual.certificate == form["certificate"]) - .exists() - ): - return {"status": "error", "message": "Individual certificate already exists"} + if form.get("certificate", None) is not None: + if ( + Individual.select() + .where(Individual.certificate == form["certificate"]) + .exists() + ): + return { + "status": "error", + "message": "Individual certificate already exists", + } birth_date = form.get("birth_date", None) if birth_date is None: From 13ac79410890a1d4455e07d473b3afab07ed560e Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 9 Dec 2022 11:15:30 +0100 Subject: [PATCH 27/56] small addition --- frontend/src/data_context_global.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/data_context_global.tsx b/frontend/src/data_context_global.tsx index e02e4a64..4e95da4c 100644 --- a/frontend/src/data_context_global.tsx +++ b/frontend/src/data_context_global.tsx @@ -256,6 +256,7 @@ export function asLocale(dateString?: string) { * @param sex the sex of the active individuals * @param fromDate the latest birth date from which individuals should be retrieved * @param herdId the id of the herd to filter individual data + * @param showDead boolen to show or hide dead animals */ export function individualsFromDate( genebank: Genebank | undefined, @@ -283,7 +284,11 @@ export const toLimitedIndividuals = ( inds: Individual[] ): LimitedIndividual[] => { const active = inds.map((i) => { - return { id: i.id, name: i.name, number: i.number }; + return { + id: i.id, + name: i.name, + number: i.number, + }; }); return active; }; From f0622de58be7eb23de936a9f26d16a7cada42b21 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 9 Dec 2022 15:48:06 +0100 Subject: [PATCH 28/56] Added style for snackbar --- frontend/src/style.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/src/style.css b/frontend/src/style.css index f6b671f1..728d0172 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -92,6 +92,10 @@ body { font-size: 1em; } +.snackBar { + font-size: 1.1rem; +} + /* Used in navigation.tsx */ .trigram { font-size: 1.8em; From d5fafd081d22ab58b23dd15c86afee474612f89f Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Fri, 9 Dec 2022 16:23:12 +0100 Subject: [PATCH 29/56] Cleand up som warnings and deprications --- frontend/src/breeding_form.tsx | 2 +- frontend/src/filter_table.tsx | 11 ++++++----- frontend/src/sorted_table.tsx | 6 +++--- frontend/src/testbreed_form.tsx | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/frontend/src/breeding_form.tsx b/frontend/src/breeding_form.tsx index 31e8c40e..440f6fdf 100644 --- a/frontend/src/breeding_form.tsx +++ b/frontend/src/breeding_form.tsx @@ -511,7 +511,7 @@ export function BreedingForm({ )} } + control={} label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); diff --git a/frontend/src/filter_table.tsx b/frontend/src/filter_table.tsx index baa92524..64a0ecaf 100644 --- a/frontend/src/filter_table.tsx +++ b/frontend/src/filter_table.tsx @@ -462,10 +462,11 @@ export function FilterTable({ <> {currentFilters.map((filter) => ( ) => { if ( @@ -512,7 +513,7 @@ export function FilterTable({ - popup(, undefined, true) + popup(, undefined, true) } > Lägg till @@ -582,8 +583,8 @@ export function FilterTable({ count={filteredIndividuals.length} rowsPerPage={rowsPerPage} page={page} - onChangePage={handleChangePage} - onChangeRowsPerPage={handleChangeRowsPerPage} + onPageChange={handleChangePage} + onRowsPerPageChange={handleChangeRowsPerPage} /> ) : ( diff --git a/frontend/src/sorted_table.tsx b/frontend/src/sorted_table.tsx index c15d5a2f..b223dc4d 100644 --- a/frontend/src/sorted_table.tsx +++ b/frontend/src/sorted_table.tsx @@ -212,7 +212,7 @@ export function SortedTable({ ) : ( diff --git a/frontend/src/testbreed_form.tsx b/frontend/src/testbreed_form.tsx index 90f03eea..fed8da04 100644 --- a/frontend/src/testbreed_form.tsx +++ b/frontend/src/testbreed_form.tsx @@ -261,7 +261,7 @@ export function InbreedingForm() { }} /> } + control={} label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); From e2d70636cdb6d245300cbe1d40a4ed4bedebe689 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:35:28 +0100 Subject: [PATCH 30/56] fix format --- frontend/src/owner.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/owner.tsx b/frontend/src/owner.tsx index b1b01af0..f61b0c15 100644 --- a/frontend/src/owner.tsx +++ b/frontend/src/owner.tsx @@ -35,9 +35,9 @@ export function Owner() { React.useEffect(() => { if (user && user.is_owner) { - setActiveHerd(user.is_owner[0]) + setActiveHerd(user.is_owner[0]); } - }, [user]) + }, [user]); return ( <> From d68947e188af6c4efa58bac62640332eea6f4aa1 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:36:01 +0100 Subject: [PATCH 31/56] add key so component never chare state --- frontend/src/register.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/register.tsx b/frontend/src/register.tsx index ab0ab055..a895d9a4 100644 --- a/frontend/src/register.tsx +++ b/frontend/src/register.tsx @@ -65,7 +65,7 @@ export function Register() { ); })} - + ) : user && !user.is_admin && !user.is_manager ? (

Du har inte rättigheterna att registrera nya kaniner.

From 9e4631b3951892636586ab2835842f962b419245 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:37:05 +0100 Subject: [PATCH 32/56] extend userMessage with persist --- frontend/src/message_context.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/message_context.tsx b/frontend/src/message_context.tsx index 4c260156..d45f348c 100644 --- a/frontend/src/message_context.tsx +++ b/frontend/src/message_context.tsx @@ -48,7 +48,11 @@ export function WithMessageContext(props: { children: React.ReactNode }) { const [fullWidth, setFullWidth] = React.useState(false); const { enqueueSnackbar, closeSnackbar } = useSnackbar(); - const userMessage = async (message: string, variant: VariantType) => { + const userMessage = async ( + message: string, + variant: VariantType, + persist?: boolean + ) => { // print json format if the message isn't a string. enqueueSnackbar( typeof message == "string" @@ -56,7 +60,10 @@ export function WithMessageContext(props: { children: React.ReactNode }) { : JSON.stringify(message, undefined, 2), { variant, - anchorOrigin: { horizontal: "right", vertical: "bottom" }, + persist, + className: "snackBar", + style: { whiteSpace: "pre-line" }, + // anchorOrigin: { horizontal: "right", vertical: "bottom" }, action: (key) => ( closeSnackbar(key)}> From e43147aec200e2cdc4d9ae34a6dc19ab066b2d23 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:38:17 +0100 Subject: [PATCH 33/56] Update to kull fix some deprications --- frontend/src/breeding_list.tsx | 2 +- frontend/src/herd_view.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/breeding_list.tsx b/frontend/src/breeding_list.tsx index edf5c4d1..2401750d 100644 --- a/frontend/src/breeding_list.tsx +++ b/frontend/src/breeding_list.tsx @@ -114,7 +114,7 @@ export function BreedingList({ id }: { id: string | undefined }) { return ( <> - Parningstillfällen + Kullar
From 08aabeb5a0d081853d6734cb4526f09e76cfa7e8 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:38:54 +0100 Subject: [PATCH 34/56] Do not create more than 9 empty inds --- frontend/src/breeding_context.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/breeding_context.tsx b/frontend/src/breeding_context.tsx index da8148a0..1cac11a0 100644 --- a/frontend/src/breeding_context.tsx +++ b/frontend/src/breeding_context.tsx @@ -242,10 +242,10 @@ export const WithBreedingContext = (props: { children: React.ReactNode }) => { return 0; } if (!breeding.litter_size) { - return breedingUpdates.litter_size; + return Math.min(breedingUpdates.litter_size, 9); } if (breeding.litter_size < breedingUpdates.litter_size) { - return breedingUpdates.litter_size - breeding.litter_size; + return Math.min(breedingUpdates.litter_size - breeding.litter_size, 9); } return 0; }; From 48a8ca5b5992d5424d370bbbf08101ea4b801c9c Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:39:42 +0100 Subject: [PATCH 35/56] Some more deprications --- frontend/src/collapsible_sorted_table.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/collapsible_sorted_table.tsx b/frontend/src/collapsible_sorted_table.tsx index 0649a350..5e17a0c0 100644 --- a/frontend/src/collapsible_sorted_table.tsx +++ b/frontend/src/collapsible_sorted_table.tsx @@ -257,7 +257,7 @@ export function CollapsibleSortedTable({ ) : ( From 2c0d03a64b1a9ea00ae5fe3745d22c2692978173 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:40:30 +0100 Subject: [PATCH 36/56] fix error --- frontend/src/individual_breeding_form.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/individual_breeding_form.tsx b/frontend/src/individual_breeding_form.tsx index 2f912a8b..e978dfef 100644 --- a/frontend/src/individual_breeding_form.tsx +++ b/frontend/src/individual_breeding_form.tsx @@ -414,7 +414,7 @@ export function IndividualBreedingForm({ )}
} + control={} label="Visa döda kaniner" onChange={(e: React.ChangeEvent) => { setshowDead(e.target.checked); From fd34b2acce7bbee2db5635bf40e42f6f7cf0927f Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:45:15 +0100 Subject: [PATCH 37/56] Fix if birth_date is none example when a user only have added a breeding --- app/herdbook.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/herdbook.py b/app/herdbook.py index 4e31cda0..d1219792 100644 --- a/app/herdbook.py +++ b/app/herdbook.py @@ -302,6 +302,7 @@ def herd_breeding_list(h_id): exact birth date if it exists. """ breedings = da.get_breeding_events_with_ind(h_id, session.get("user_id", None)) + if request.method == "POST": form = request.json birth_date = da.validate_date(form.get("birth_date", None)) @@ -316,13 +317,17 @@ def herd_breeding_list(h_id): and ( start <= ( - da.validate_date(item["birth_date"]) + da.validate_date(item.get("birth_date")) - datetime.timedelta(days=30) if item.get("breed_date") is None else da.validate_date(item.get("breed_date")) ) <= end - or da.validate_date(item["birth_date"]) == birth_date + or ( + da.validate_date(item.get("birth_date")) == birth_date + if item.get("birth_date") is not None + else None + ) ) ), None, From 34555e9e847f7d79caef1ce137b147da6e8e6296 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 20:46:42 +0100 Subject: [PATCH 38/56] Major rewrite of number suggestion now handle lot more cases --- app/utils/data_access.py | 11 +++- app/utils/database.py | 110 ++++++++++++++++++++++++++++++++------- 2 files changed, 100 insertions(+), 21 deletions(-) diff --git a/app/utils/data_access.py b/app/utils/data_access.py index c416276e..98a47edd 100644 --- a/app/utils/data_access.py +++ b/app/utils/data_access.py @@ -914,11 +914,20 @@ def add_individual(form, user_uuid): return {"status": "error", "message": "Forbidden"} if form.get("number", None) is None and "breeding" in form: - form["number"] = next_individual_number( + nextind = next_individual_number( herd=form["herd"], birth_date=form["birth_date"], breeding_event=form["breeding"], ) + logger.error(f"nextind is ${nextind}") + if nextind.get("status", None) == "success": + form["number"] = nextind["number"] + else: + logger.error(f"Next in is not successfull: ${nextind.get('message')}") + return { + "status": "error", + "message": f"kan inte hämta nästa individ nummer: ${nextind.get('message')}", + } if Individual.select().where(Individual.number == form["number"]).exists(): return {"status": "error", "message": "Individual number already exists"} diff --git a/app/utils/database.py b/app/utils/database.py index c574d46d..89671438 100644 --- a/app/utils/database.py +++ b/app/utils/database.py @@ -422,49 +422,119 @@ def next_individual_number(herd, birth_date, breeding_event): assert isinstance(birth_date, datetime) try: herd_id = Herd.get(Herd.herd == herd) - rank_expr = fn.ROW_NUMBER().over(order_by=[Breeding.birth_date]) + rank_expr = fn.ROW_NUMBER().over( + order_by=[ + fn.COALESCE( + Breeding.birth_date, + Breeding.breed_date + 30, + ) + ] + ) events = ( - Breeding.select(rank_expr.alias("litter_number"), Breeding.id) + Breeding.select( + rank_expr.alias("litter_number"), Breeding.id, Breeding.litter_size + ) .where(Breeding.breeding_herd == herd_id) .where( - (DATABASE.extract_date("year", Breeding.birth_date) == birth_date.year) + ( + DATABASE.extract_date( + "year", fn.COALESCE(Breeding.birth_date, Breeding.breed_date) + ) + == birth_date.year + ) ) ) ev = events.execute() if len(ev) == 0: litter_number = 1 - litter_size = 0 + number_in_kull = 1 else: query = ( - Select(columns=[events.c.litter_number]) + Select(columns=[events.c.litter_number, events.c.litter_size]) .from_(events) .where(events.c.breeding_id == breeding_event) .bind(DATABASE) ).execute() if len(query) == 0: litter_number = len(ev) + 1 - litter_size = 0 + number_in_kull = 1 else: litter_number = query[0].get("litter_number") - individuals = ( - Individual.select(Individual).where( - Individual.breeding == breeding_event - ) - ).execute() - - litter_size = len(individuals) - if litter_size == 9: - return None + real_litter_size = ( + query[0].get("litter_size") if query[0].get("litter_size") else 0 + ) + if real_litter_size == 0: + number_in_kull = 1 + else: + individuals = ( + Individual.select(Individual.number).where( + Individual.breeding == breeding_event + ) + ).execute() + litter_size = len(individuals) + if litter_size >= real_litter_size: + return { + "status": "error", + "message": "litter_size", + "number": None, + } + elif litter_size == 9: + return {"status": "error", "message": "NINE", "number": None} + else: + litter_number_list = list() + for ind in individuals: + try: + indnumber = int( + ind.number.split( + f"{herd}-{str(birth_date.year)[2:4]}{litter_number}" + )[-1] + ) + except ValueError: + return { + "status": "error", + "message": "kull", + "kull": litter_number, + "wrong": ind.number, + "number": f"{herd}-{str(birth_date.year)[2:4]}{litter_number}{1}", + } + litter_number_list.append(indnumber) + litter_number_list.sort() + try: + number_in_kull = sorted( + set(range(1, min(real_litter_size + 1, 10))).difference( + litter_number_list + ) + )[0] + except IndexError: + if ( + litter_size >= real_litter_size + and real_litter_size <= 9 + ): + return { + "status": "error", + "message": "litter_size", + "number": None, + } + else: + return { + "status": "error", + "message": "NINE", + "number": None, + } ind_number = ( - f"{herd}-{str(birth_date.year)[2:4]}{litter_number}{litter_size + 1}" + f"{herd}-{str(birth_date.year)[2:4]}{litter_number}{number_in_kull}" ) - return ind_number + return { + "status": "success", + "message": "ledigt nummer hittat", + "number": ind_number, + } - except DoesNotExist: - pass - return None + except Exception as exception: + logger.error(exception) + return {"status": "error", "message": exception, "number": None} class Individual(BaseModel): From a1270071bfc1cb6d27c921adc8255a357229db07 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Sat, 10 Dec 2022 21:01:05 +0100 Subject: [PATCH 39/56] Update to handle new ind number function and some rewrites to avoid uneeded useEffects and minor clean ups --- frontend/src/individual_add.tsx | 250 +++++++++++++++++++++---------- frontend/src/individual_form.tsx | 59 +------- 2 files changed, 178 insertions(+), 131 deletions(-) diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index 2d91e733..bc820ee3 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -122,9 +122,6 @@ export function IndividualAdd({ genebank?: Genebank; }) { const [individual, setIndividual] = React.useState({} as Individual); - const [currentGenebank, setCurrentGenebank] = React.useState( - undefined as Genebank | undefined - ); const [showFromDateFilter, setShowFromDateFilter] = React.useState(false); const [success, setSuccess] = React.useState(false as boolean); const [newSibling, setSibling] = React.useState(false as boolean); @@ -143,14 +140,19 @@ export function IndividualAdd({ defaultDate.setFullYear(defaultDate.getFullYear() - 10); const [fromDate, setFromDate] = React.useState(defaultDate as Date); const [showDead, setshowDead] = React.useState(false as boolean); - const [activeMalesLimited, setActiveMalesLimited] = React.useState([]); - const [activeFemalesLimited, setActiveFemalesLimited] = React.useState([]); + const [activeMalesLimited, setActiveMalesLimited] = React.useState( + [] as LimitedIndividual[] + ); + const [activeFemalesLimited, setActiveFemalesLimited] = React.useState( + [] as LimitedIndividual[] + ); const [breedingMatch, setBreedingMatch] = React.useState( undefined as Breeding | undefined ); const { userMessage, popup } = useMessageContext(); const { user } = useUserContext(); const is_admin = !!(user?.is_manager || user?.is_admin); + const [herdOptions, setHerdOptions] = React.useState([] as OptionType[]); const { genebanks, herdListener, @@ -166,6 +168,29 @@ export function IndividualAdd({ modifyBreedingUpdates, } = useBreedingContext(); const style = useStyles(); + //Calculated value instead of effect + const isGenbankorHerd = ( + genebank: Genebank | undefined, + herdId: string | undefined + ) => { + if (!!genebank) { + return genebank; + } else { + if (!!herdId) { + const originGenebank = genebanks.find((g) => + g.herds.some((herd) => herd.herd == herdId) + ); + return originGenebank; + } else { + const originGenebank = genebanks.find((g) => + g.herds.some((herd) => herd.herd == individual?.origin_herd?.herd) + ); + return originGenebank; + } + } + }; + + const currentGenebank = isGenbankorHerd(genebank, herdId); /** * Updates a single field in `individual`. @@ -180,6 +205,41 @@ export function IndividualAdd({ individual && setIndividual({ ...individual, [field]: value }); }; + const handleUpdateMother = async (value: LimitedIndividual) => { + let mother; + if (value) { + mother = await get(`/api/individual/${value.number}`); + if (!mother) { + return; + } + console.log("Mother get is", mother); + let herds = mother.herd_tracking; + + if (herds.length > 0) { + const herdOptions: OptionType[] = herds.map((h: LimitedHerd) => { + return { value: h, label: herdLabel(h) }; + }); + herdOptions.filter( + (item, index) => herdOptions.indexOf(item) === index + ); + //Filter unique herds from herd_tracking + let unique = [ + ...new Map(herdOptions.map((item) => [item["label"], item])).values(), + ]; + + setHerdOptions(unique); + setIndividual({ + ...individual, + origin_herd: mother.herd, + mother: value, + }); + return; + } else { + return []; + } + } + }; + React.useEffect(() => { setActiveFemalesLimited( toLimitedIndividuals( @@ -205,42 +265,6 @@ export function IndividualAdd({ ); }, [fromDate, currentGenebank, herdId, showDead]); - React.useEffect(() => { - if (!!genebank && !success && !newSibling) { - setCurrentGenebank(genebank); - setIndividual({ - ...individual, - mother: null, - father: null, - origin_herd: null, - number: null, - }); - } else { - if (!!herdId) { - const originGenebank = genebanks.find((g) => - g.herds.some((herd) => herd.herd == herdId) - ); - setCurrentGenebank(originGenebank); - } else { - const originGenebank = genebanks.find((g) => - g.herds.some((herd) => herd.herd == individual?.origin_herd?.herd) - ); - setCurrentGenebank(originGenebank); - } - } - if (herdId) { - handleUpdateIndividual("herd", herdId); // backend right now requires a string for field herd. Inconsistent with other database entries. - } - }, [herdId, genebank]); - - // add the field genebank to the individual to get the color options in the form - // make sure it also is triggered after resetBlank has been called - React.useEffect(() => { - if (currentGenebank) { - handleUpdateIndividual("genebank", currentGenebank.name); - } - }, [currentGenebank, success]); - // remove error layout from input fields when user has added an input React.useEffect(() => { if (individual?.color) { @@ -282,6 +306,8 @@ export function IndividualAdd({ individual?.father && individual?.mother && individual?.origin_herd && + individual?.origin_herd.herd !== "GX1" && + individual?.origin_herd.herd !== "MX1" && !success && !(success && newSibling) ) { @@ -297,9 +323,12 @@ export function IndividualAdd({ limitedBreedingInput ); setBreedingMatch(Breedingmatch.breedings); - if (Breedingmatch.breedings != null) { + if ( + Breedingmatch.breedings !== null && + Breedingmatch.breedings.birth_date !== null + ) { userMessage( - `Hittade ett befintligt parningstillfälle med parningsdatum : ${Breedingmatch.breedings.breed_date}. Kontrollera att uppgifterna stämmer`, + `Kull hittad i ${individual?.origin_herd.herd} mellan Mor: ${Breedingmatch.breedings.mother} Far: ${Breedingmatch.breedings.father} och födelsedatum ${Breedingmatch.breedings.birth_date}. Kontrollera att uppgifterna stämmer!`, "success" ); if (individual.birth_date != Breedingmatch.breedings.birth_date) { @@ -308,38 +337,30 @@ export function IndividualAdd({ "warning" ); } - let BreedHerd: LimitedHerd = await get( - `/api/herd/${Breedingmatch.breedings.breeding_herd}` - ); - const IndNumber = await post( - `/api/breeding/nextind/`, - Breedingmatch.breedings + getIndnumbSuggestion(Breedingmatch.breedings); + } else if ( + Breedingmatch.breedings != null && + Breedingmatch.breedings.birth_date === null + ) { + Breedingmatch.breedings.birth_date = individual.birth_date; + getIndnumbSuggestion(Breedingmatch.breedings); + userMessage( + `En parning är funnen i ${individual?.origin_herd.herd} mellan Mor: ${Breedingmatch.breedings.mother} Far: ${Breedingmatch.breedings.father} och parningsdatum ${Breedingmatch.breedings.breed_date}. + Parningen kommer uppdateras med födelsedatum och kullstorlek från detta formulär. Kontrollera att uppgifterna stämmer!`, + "success" ); - if (IndNumber == null) { - userMessage( - `Du får max registrera 9 kaniner från en och samma kull.`, - "error" - ); - } else { - setIndividual({ - ...individual, - //origin_herd: BreedHerd, - number: IndNumber, - litter_size: Breedingmatch.breedings.litter_size, - litter_size6w: Breedingmatch.breedings.litter_size6w, - }); - } } else { userMessage( - `Hittade inget befintligt parningstillfälle kommer skapa ett nytt!`, + `Kommer skapa en ny kull i ${individual?.origin_herd.herd} med Mor: ${individual?.mother.number} Far: ${individual?.father.number} Kontrollera att uppgifterna stämmer!`, "info" ); - const IndNumber1 = await post( - `/api/breeding/nextind/`, - limitedBreedingInput - ); - setIndividual({ ...individual, number: IndNumber1 }); + getIndnumbSuggestion(limitedBreedingInput); } + } else if ( + individual?.origin_herd.herd === "GX1" || + individual?.origin_herd.herd === "MX1" + ) { + handleUpdateIndividual("number", null); } }; getBreeding(); @@ -347,7 +368,7 @@ export function IndividualAdd({ individual?.birth_date, individual?.father, individual?.mother, - individual?.origin_herd, + individual?.origin_herd?.herd, newSibling, ]); @@ -495,13 +516,6 @@ export function IndividualAdd({ father: individual.father.number, }; - // Check if there already is a breeding - //const herdBreedings = await get(`/api/breeding/${herdId}`); - //'const breedingMatch = await findBreedingMatch( - // breedingInput, - // herdBreedings - //); - // If there is a breeding, update it if (breedingMatch) { const modifiedBreedingUpdates = modifyBreedingUpdates( @@ -532,6 +546,83 @@ export function IndividualAdd({ } } }; + const getIndnumbSuggestion = async ( + BreedingMatch: Breeding | LimitedBreeding + ) => { + console.log(BreedingMatch); + post(`/api/breeding/nextind/`, BreedingMatch).then( + (json) => { + switch (json.status) { + case "success": { + setIndividual({ + ...individual, + number: json.number, + litter_size: BreedingMatch?.litter_size ?? null, + litter_size6w: BreedingMatch?.litter_size6w ?? null, + }); + break; + } + case "error": { + switch (json.message) { + case "litter_size": { + setIndividual({ + ...individual, + number: null, + litter_size: BreedingMatch?.litter_size ?? null, + litter_size6w: BreedingMatch?.litter_size6w ?? null, + }); + userMessage( + "Alla kaniner i denna kull är redan registrerade", + "error" + ); + break; + } + case "NINE": { + setIndividual({ + ...individual, + number: null, + litter_size: BreedingMatch?.litter_size ?? null, + litter_size6w: BreedingMatch?.litter_size6w ?? null, + }); + userMessage( + "Du får max registrera 9 kaniner från en och samma kull.", + "error", + true + ); + break; + } + case "kull": { + setIndividual({ + ...individual, + number: json.number, + litter_size: BreedingMatch?.litter_size ?? null, + litter_size6w: BreedingMatch?.litter_size6w ?? null, + }); + userMessage( + `En eller flera kaniner i kullen är registrerade med fel kull nummer: ${json.wrong} + om du har registrerat alla kullar för detta år i rätt ordning ska denna kull ha nummer ${json.kull} + Vänligen kontrollera individerna i denna kull. Kontakta Genbanksansvarig för hjälp! `, + "error", + true + ); + break; + } + default: { + userMessage( + `Något gick fel. Det här borde inte hända. Vänligen rapportera detta fel till admin: ${json.message}`, + "error" + ); + console.log("Fel från API: ", json.message); + } + } + } + } + }, + (error) => { + userMessage("Något gick fel.", "error"); + } + ); + }; const createIndividual = (individual: Individual) => { post("/api/individual", individual).then( @@ -726,9 +817,7 @@ export function IndividualAdd({ individualLabel(option) } value={individual.mother ?? null} - onChange={(event, newValue) => - handleUpdateIndividual("mother", newValue) - } + onChange={(event, newValue) => handleUpdateMother(newValue)} renderInput={(params) => ( {!herdId && ( diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index 6912ce96..50c90fc2 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -14,13 +14,11 @@ import InfoOutlinedIcon from "@material-ui/icons/InfoOutlined"; import { dateFormat, Genebank, - herdLabel, inputVariant, Individual, - LimitedHerd, OptionType, } from "@app/data_context_global"; -import { get } from "./communication"; + import { useUserContext } from "./user_context"; import { BreedingDialog } from "./breeding_dialog"; import { CertAutocomplete } from "./cert_autocomplete"; @@ -44,6 +42,7 @@ export function IndividualForm({ litterError, litterError6w, intygError, + herdOptions, }: { genebank: Genebank; individual: Individual; @@ -57,12 +56,11 @@ export function IndividualForm({ litterError: boolean; litterError6w: boolean; intygError: boolean; + herdOptions: OptionType[]; }) { - const [herdOptions, setHerdOptions] = React.useState([] as OptionType[]); const [openBreedDialog, setBreedDiOpen] = React.useState(false); const { colors } = useDataContext(); const { user } = useUserContext(); - const [isIndNull, setIndNull] = React.useState(true); // returns true if you are an admin or the manager of the genebank the individual belongs to const canManage: boolean = React.useMemo(() => { @@ -82,12 +80,8 @@ export function IndividualForm({ }, [user, individual]); const colorOptions: OptionType[] = React.useMemo(() => { - if ( - individual && - colors && - Object.keys(colors).includes(individual.genebank) - ) { - return colors[individual.genebank].map((c) => { + if (genebank && colors && Object.keys(colors).includes(genebank.name)) { + return colors[genebank.name].map((c) => { return { id: c.id, comment: c.comment, @@ -97,42 +91,7 @@ export function IndividualForm({ }); } return []; - }, [colors, individual]); - - React.useEffect(() => { - const getParents = async () => { - let mother; - - if (individual.mother?.number && formAction == FormAction.AddIndividual) { - mother = await get(`/api/individual/${individual.mother?.number}`); - if (!mother) { - return; - } - let herds = mother.herd_tracking; - individual.origin_herd = mother.herd; - setIndNull(false); - if (herds.length > 0) { - const herdOptions: OptionType[] = herds.map((h: LimitedHerd) => { - return { value: h, label: herdLabel(h) }; - }); - herdOptions.filter( - (item, index) => herdOptions.indexOf(item) === index - ); - //Filter unique herds from herd_tracking - let unique = [ - ...new Map( - herdOptions.map((item) => [item["label"], item]) - ).values(), - ]; - setHerdOptions(unique); - return; - } else { - return []; - } - } - }; - getParents(); - }, [individual.mother?.number]); + }, [colors, genebank]); const sexOptions = [ { value: "female", label: "Hona" }, @@ -289,7 +248,7 @@ export function IndividualForm({ ), From 7f3cb0460ce212bd726d54d7fa65cf0f79752dd4 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 12 Dec 2022 16:12:37 +0100 Subject: [PATCH 40/56] Fixed so selling herd is reset when pressing new sibbling and new kullsyskon --- frontend/src/individual_sellingform.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/individual_sellingform.tsx b/frontend/src/individual_sellingform.tsx index 2a7472a0..f35da263 100644 --- a/frontend/src/individual_sellingform.tsx +++ b/frontend/src/individual_sellingform.tsx @@ -52,7 +52,9 @@ export function IndividualSellingForm({ option.herd == individual.herd)} + value={ + herdOptions.find((option) => option.herd == individual.herd) ?? null + } getOptionLabel={(option: LimitedHerd) => herdLabel(option)} renderInput={(params) => ( Date: Mon, 12 Dec 2022 16:13:10 +0100 Subject: [PATCH 41/56] Date is same order by breeding_id --- app/utils/database.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/utils/database.py b/app/utils/database.py index 89671438..3b114b9a 100644 --- a/app/utils/database.py +++ b/app/utils/database.py @@ -427,7 +427,8 @@ def next_individual_number(herd, birth_date, breeding_event): fn.COALESCE( Breeding.birth_date, Breeding.breed_date + 30, - ) + ), + Breeding.id, ] ) events = ( From 48e0616d3bfd68282cb0151d29d675e497e20a93 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 12 Dec 2022 16:13:52 +0100 Subject: [PATCH 42/56] Fix for error for herd is undefined removed some consol logs --- frontend/src/individual_add.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/frontend/src/individual_add.tsx b/frontend/src/individual_add.tsx index bc820ee3..7b350694 100644 --- a/frontend/src/individual_add.tsx +++ b/frontend/src/individual_add.tsx @@ -212,7 +212,6 @@ export function IndividualAdd({ if (!mother) { return; } - console.log("Mother get is", mother); let herds = mother.herd_tracking; if (herds.length > 0) { @@ -357,8 +356,8 @@ export function IndividualAdd({ getIndnumbSuggestion(limitedBreedingInput); } } else if ( - individual?.origin_herd.herd === "GX1" || - individual?.origin_herd.herd === "MX1" + individual?.origin_herd?.herd === "GX1" || + individual?.origin_herd?.herd === "MX1" ) { handleUpdateIndividual("number", null); } @@ -549,7 +548,6 @@ export function IndividualAdd({ const getIndnumbSuggestion = async ( BreedingMatch: Breeding | LimitedBreeding ) => { - console.log(BreedingMatch); post(`/api/breeding/nextind/`, BreedingMatch).then( (json) => { switch (json.status) { From 41e5372916002293841887f41334a4769088174d Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 12 Dec 2022 19:00:39 +0100 Subject: [PATCH 43/56] Fix so colors work in other forms --- frontend/src/individual_form.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index 50c90fc2..1cb753b9 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -89,6 +89,19 @@ export function IndividualForm({ label: `${c.id} - ${c.name}`, }; }); + } else if ( + individual && + colors && + Object.keys(colors).includes(individual.genebank) + ) { + return colors[individual.genebank].map((c) => { + return { + id: c.id, + comment: c.comment, + value: c.name, + label: `${c.id} - ${c.name}`, + }; + }); } return []; }, [colors, genebank]); From 112c2ccfc5ebc80802cb36ec1d661e6c6db2f7e2 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 12 Dec 2022 18:59:07 +0100 Subject: [PATCH 44/56] Update react-pdf and made some minor improvments --- frontend/package-lock.json | 457 ++++++++++++++++-------- frontend/package.json | 3 +- frontend/src/individual_certificate.tsx | 12 +- 3 files changed, 310 insertions(+), 162 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index f897f165..c0c08128 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -24,7 +24,7 @@ "react-icons": "^4.2.0", "react-is": "^17.0.2", "react-number-format": "^4.6.3", - "react-pdf": "^5.2.0", + "react-pdf": "^6.2.0", "react-router-dom": "^5.2.0", "styled-components": "^5.2.3", "vis-data": "^7.1.2", @@ -41,6 +41,7 @@ "@types/jest": "^26.0.23", "@types/react": "^17.0.4", "@types/react-dom": "^17.0.3", + "@types/react-pdf": "^6.2.0", "@types/react-router-dom": "^5.1.7", "@types/react-select": "^4.0.15", "@types/snowpack-env": "^2.3.3", @@ -2686,6 +2687,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -2696,6 +2698,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -3397,6 +3400,7 @@ "version": "8.4.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, "peer": true, "dependencies": { "@types/estree": "*", @@ -3407,6 +3411,7 @@ "version": "3.7.4", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, "peer": true, "dependencies": { "@types/eslint": "*", @@ -3416,7 +3421,8 @@ "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true }, "node_modules/@types/graceful-fs": { "version": "4.1.5", @@ -3492,7 +3498,9 @@ "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true }, "node_modules/@types/keyv": { "version": "3.1.4", @@ -3504,9 +3512,10 @@ } }, "node_modules/@types/node": { - "version": "18.11.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz", - "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==" + "version": "18.11.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.13.tgz", + "integrity": "sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==", + "dev": true }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -3550,6 +3559,16 @@ "@types/react": "^17" } }, + "node_modules/@types/react-pdf": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@types/react-pdf/-/react-pdf-6.2.0.tgz", + "integrity": "sha512-OSCYmrfaJvpXkM5V4seUMAhUDOAOqbGQf9kwv14INyTf7AjDs2ukfkkQrLWRQ8OjWrDklbXYWh5l7pT7l0N76g==", + "dev": true, + "dependencies": { + "@types/react": "*", + "pdfjs-dist": "^2.16.105" + } + }, "node_modules/@types/react-router": { "version": "5.1.19", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", @@ -3675,6 +3694,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", @@ -3685,24 +3705,28 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", @@ -3714,12 +3738,14 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true, "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3732,6 +3758,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" @@ -3741,6 +3768,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, "peer": true, "dependencies": { "@xtuc/long": "4.2.2" @@ -3750,12 +3778,14 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true, "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3772,6 +3802,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3785,6 +3816,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3797,6 +3829,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3811,6 +3844,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3821,12 +3855,14 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, "peer": true }, "node_modules/abab": { @@ -3839,6 +3875,7 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -3872,6 +3909,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, "peer": true, "peerDependencies": { "acorn": "^8" @@ -3924,6 +3962,8 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3939,6 +3979,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -4616,6 +4658,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, "engines": { "node": "*" } @@ -4714,7 +4757,8 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/builtin-modules": { "version": "3.3.0", @@ -4999,6 +5043,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, "peer": true, "engines": { "node": ">=6.0" @@ -5212,6 +5257,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, "peer": true }, "node_modules/commondir": { @@ -5721,6 +5767,11 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, + "node_modules/dommatrix": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dommatrix/-/dommatrix-1.0.3.tgz", + "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==" + }, "node_modules/domutils": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", @@ -5777,6 +5828,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, "engines": { "node": ">= 4" } @@ -5794,6 +5846,7 @@ "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, "peer": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -5922,6 +5975,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -5935,6 +5989,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, "peer": true, "engines": { "node": ">=4.0" @@ -5957,6 +6012,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "peer": true, "dependencies": { "estraverse": "^5.2.0" @@ -5969,6 +6025,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { "node": ">=4.0" } @@ -6007,6 +6064,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, "peer": true, "engines": { "node": ">=0.8.x" @@ -6305,12 +6363,15 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "peer": true }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -6327,25 +6388,6 @@ "bser": "2.1.1" } }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -6490,32 +6532,6 @@ "loader-utils": "^1.1.0" } }, - "node_modules/generic-names/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/generic-names/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -6599,6 +6615,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, "peer": true }, "node_modules/globals": { @@ -6637,7 +6654,8 @@ "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, "node_modules/growly": { "version": "1.3.0", @@ -9104,12 +9122,15 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true }, "node_modules/json5": { "version": "2.2.1", @@ -9295,22 +9316,36 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, "peer": true, "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "json5": "^1.0.1" }, "engines": { - "node": ">=8.9.0" + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, "node_modules/locate-path": { @@ -9459,14 +9494,6 @@ "node": ">=0.10.0" } }, - "node_modules/merge-class-names": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/merge-class-names/-/merge-class-names-1.4.2.tgz", - "integrity": "sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==", - "funding": { - "url": "https://github.com/wojtekmaj/merge-class-names?sponsor=1" - } - }, "node_modules/merge-refs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.0.0.tgz", @@ -9475,7 +9502,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/micromatch": { "version": "4.0.5", @@ -9494,6 +9522,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -9502,6 +9531,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -9683,6 +9713,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, "peer": true }, "node_modules/nice-try": { @@ -10269,9 +10300,13 @@ } }, "node_modules/pdfjs-dist": { - "version": "2.12.313", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.12.313.tgz", - "integrity": "sha512-1x6iXO4Qnv6Eb+YFdN5JdUzt4pAkxSp3aLAYPX93eQCyg/m7QFzXVWJHJVtoW48CI8HCXju4dSkhQZwoheL5mA==", + "version": "2.16.105", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.16.105.tgz", + "integrity": "sha512-J4dn41spsAwUxCpEoVf6GVoz908IAA3mYiLmNxg8J9kfRXc2jxpbUepcP0ocp0alVNLFthTAM8DZ1RaHh8sU0A==", + "dependencies": { + "dommatrix": "^1.0.3", + "web-streams-polyfill": "^3.2.1" + }, "peerDependencies": { "worker-loader": "^3.0.8" }, @@ -10339,9 +10374,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "dev": true, "funding": [ { @@ -10667,6 +10702,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "engines": { "node": ">=6" } @@ -10702,6 +10738,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "peer": true, "dependencies": { "safe-buffer": "^5.1.0" @@ -10789,17 +10826,16 @@ } }, "node_modules/react-pdf": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-5.7.2.tgz", - "integrity": "sha512-hdDwvf007V0i2rPCqQVS1fa70CXut17SN3laJYlRHzuqcu8sLLjEoeXihty6c0Ev5g1mw31b8OT8EwRw1s8C4g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-6.2.0.tgz", + "integrity": "sha512-FKUoUKKxoIipIbRHzXQZui1j+f1QcEuFuVL03qI1GFDm0jC4eUrMyOCpPR98lY7+rsCswPn1rjfKd+8k9PrZmQ==", "dependencies": { "@babel/runtime": "^7.0.0", - "file-loader": "^6.0.0", + "clsx": "^1.2.1", "make-cancellable-promise": "^1.0.0", "make-event-props": "^1.1.0", - "merge-class-names": "^1.1.1", "merge-refs": "^1.0.0", - "pdfjs-dist": "2.12.313", + "pdfjs-dist": "2.16.105", "prop-types": "^15.6.2", "tiny-invariant": "^1.0.0", "tiny-warning": "^1.0.0" @@ -10808,8 +10844,14 @@ "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1" }, "peerDependencies": { - "react": "^16.3.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0" + "file-loader": "^6.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } } }, "node_modules/react-refresh": { @@ -11245,6 +11287,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -11595,6 +11638,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -11620,6 +11665,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, "peer": true, "dependencies": { "randombytes": "^2.1.0" @@ -12236,6 +12282,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -12267,6 +12314,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -12648,6 +12696,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -12702,6 +12751,7 @@ "version": "5.16.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -12720,6 +12770,7 @@ "version": "5.3.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.14", @@ -12754,6 +12805,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -12763,6 +12815,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, "peer": true, "dependencies": { "@types/node": "*", @@ -12777,6 +12830,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -13188,6 +13242,8 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -13403,6 +13459,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -13412,6 +13469,14 @@ "node": ">=10.13.0" } }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -13425,6 +13490,7 @@ "version": "5.75.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -13472,6 +13538,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, "peer": true, "engines": { "node": ">=10.13.0" @@ -13481,12 +13548,14 @@ "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, "peer": true }, "node_modules/webpack/node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, "peer": true }, "node_modules/whatwg-encoding": { @@ -15625,6 +15694,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, "peer": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", @@ -15635,6 +15705,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "peer": true, "requires": { "@jridgewell/set-array": "^1.0.1", @@ -16144,6 +16215,7 @@ "version": "8.4.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dev": true, "peer": true, "requires": { "@types/estree": "*", @@ -16154,6 +16226,7 @@ "version": "3.7.4", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, "peer": true, "requires": { "@types/eslint": "*", @@ -16163,7 +16236,8 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true }, "@types/graceful-fs": { "version": "4.1.5", @@ -16239,7 +16313,9 @@ "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true }, "@types/keyv": { "version": "3.1.4", @@ -16251,9 +16327,10 @@ } }, "@types/node": { - "version": "18.11.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz", - "integrity": "sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==" + "version": "18.11.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.13.tgz", + "integrity": "sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==", + "dev": true }, "@types/normalize-package-data": { "version": "2.4.1", @@ -16304,6 +16381,16 @@ "@types/react": "^17" } }, + "@types/react-pdf": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@types/react-pdf/-/react-pdf-6.2.0.tgz", + "integrity": "sha512-OSCYmrfaJvpXkM5V4seUMAhUDOAOqbGQf9kwv14INyTf7AjDs2ukfkkQrLWRQ8OjWrDklbXYWh5l7pT7l0N76g==", + "dev": true, + "requires": { + "@types/react": "*", + "pdfjs-dist": "^2.16.105" + } + }, "@types/react-router": { "version": "5.1.19", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", @@ -16426,6 +16513,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.1", @@ -16436,24 +16524,28 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, "peer": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, "peer": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, "peer": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", @@ -16465,12 +16557,14 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true, "peer": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/ast": "1.11.1", @@ -16483,6 +16577,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, "peer": true, "requires": { "@xtuc/ieee754": "^1.2.0" @@ -16492,6 +16587,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, "peer": true, "requires": { "@xtuc/long": "4.2.2" @@ -16501,12 +16597,14 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true, "peer": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/ast": "1.11.1", @@ -16523,6 +16621,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/ast": "1.11.1", @@ -16536,6 +16635,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/ast": "1.11.1", @@ -16548,6 +16648,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/ast": "1.11.1", @@ -16562,6 +16663,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, "peer": true, "requires": { "@webassemblyjs/ast": "1.11.1", @@ -16572,12 +16674,14 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, "peer": true }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, "peer": true }, "abab": { @@ -16589,7 +16693,8 @@ "acorn": { "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true }, "acorn-globals": { "version": "6.0.0", @@ -16613,6 +16718,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, "peer": true, "requires": {} }, @@ -16651,6 +16757,8 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -16662,6 +16770,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, "requires": {} }, "ansi-escapes": { @@ -17206,7 +17316,8 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true }, "binary-extensions": { "version": "2.2.0", @@ -17277,7 +17388,8 @@ "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "builtin-modules": { "version": "3.3.0", @@ -17485,6 +17597,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, "peer": true }, "ci-info": { @@ -17658,6 +17771,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, "peer": true }, "commondir": { @@ -18035,6 +18149,11 @@ "domelementtype": "^2.3.0" } }, + "dommatrix": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dommatrix/-/dommatrix-1.0.3.tgz", + "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==" + }, "domutils": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", @@ -18078,7 +18197,8 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true }, "end-of-stream": { "version": "1.4.4", @@ -18093,6 +18213,7 @@ "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, "peer": true, "requires": { "graceful-fs": "^4.2.4", @@ -18192,6 +18313,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, "peer": true, "requires": { "esrecurse": "^4.3.0", @@ -18202,6 +18324,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, "peer": true } } @@ -18216,6 +18339,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "peer": true, "requires": { "estraverse": "^5.2.0" @@ -18224,7 +18348,8 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true }, "estree-walker": { "version": "2.0.2", @@ -18254,6 +18379,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, "peer": true }, "exec-sh": { @@ -18493,12 +18619,15 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "peer": true }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -18515,15 +18644,6 @@ "bser": "2.1.1" } }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -18621,28 +18741,6 @@ "dev": true, "requires": { "loader-utils": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } } }, "gensync": { @@ -18701,6 +18799,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, "peer": true }, "globals": { @@ -18730,7 +18829,8 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, "growly": { "version": "1.3.0", @@ -20604,12 +20704,15 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true }, "json5": { "version": "2.2.1", @@ -20769,16 +20872,29 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, "peer": true }, "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } } }, "locate-path": { @@ -20894,11 +21010,6 @@ "object-visit": "^1.0.0" } }, - "merge-class-names": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/merge-class-names/-/merge-class-names-1.4.2.tgz", - "integrity": "sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==" - }, "merge-refs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.0.0.tgz", @@ -20907,7 +21018,8 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "micromatch": { "version": "4.0.5", @@ -20922,12 +21034,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -21061,6 +21175,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, "peer": true }, "nice-try": { @@ -21501,10 +21616,13 @@ "dev": true }, "pdfjs-dist": { - "version": "2.12.313", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.12.313.tgz", - "integrity": "sha512-1x6iXO4Qnv6Eb+YFdN5JdUzt4pAkxSp3aLAYPX93eQCyg/m7QFzXVWJHJVtoW48CI8HCXju4dSkhQZwoheL5mA==", - "requires": {} + "version": "2.16.105", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.16.105.tgz", + "integrity": "sha512-J4dn41spsAwUxCpEoVf6GVoz908IAA3mYiLmNxg8J9kfRXc2jxpbUepcP0ocp0alVNLFthTAM8DZ1RaHh8sU0A==", + "requires": { + "dommatrix": "^1.0.3", + "web-streams-polyfill": "^3.2.1" + } }, "performance-now": { "version": "2.1.0", @@ -21549,9 +21667,9 @@ "dev": true }, "postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -21806,7 +21924,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "querystringify": { "version": "2.2.0", @@ -21833,6 +21952,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "peer": true, "requires": { "safe-buffer": "^5.1.0" @@ -21899,17 +22019,16 @@ } }, "react-pdf": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-5.7.2.tgz", - "integrity": "sha512-hdDwvf007V0i2rPCqQVS1fa70CXut17SN3laJYlRHzuqcu8sLLjEoeXihty6c0Ev5g1mw31b8OT8EwRw1s8C4g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-6.2.0.tgz", + "integrity": "sha512-FKUoUKKxoIipIbRHzXQZui1j+f1QcEuFuVL03qI1GFDm0jC4eUrMyOCpPR98lY7+rsCswPn1rjfKd+8k9PrZmQ==", "requires": { "@babel/runtime": "^7.0.0", - "file-loader": "^6.0.0", + "clsx": "^1.2.1", "make-cancellable-promise": "^1.0.0", "make-event-props": "^1.1.0", - "merge-class-names": "^1.1.1", "merge-refs": "^1.0.0", - "pdfjs-dist": "2.12.313", + "pdfjs-dist": "2.16.105", "prop-types": "^15.6.2", "tiny-invariant": "^1.0.0", "tiny-warning": "^1.0.0" @@ -22267,6 +22386,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "peer": true }, "safe-regex": { @@ -22541,6 +22661,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "peer": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -22556,6 +22678,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, "peer": true, "requires": { "randombytes": "^2.1.0" @@ -23032,7 +23155,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-js": { "version": "1.0.2", @@ -23057,6 +23181,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -23360,6 +23485,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, "peer": true }, "tar": { @@ -23401,6 +23527,7 @@ "version": "5.16.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, "peer": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -23413,6 +23540,7 @@ "version": "5.3.6", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, "peer": true, "requires": { "@jridgewell/trace-mapping": "^0.3.14", @@ -23426,12 +23554,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "peer": true }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, "peer": true, "requires": { "@types/node": "*", @@ -23443,6 +23573,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "peer": true, "requires": { "has-flag": "^4.0.0" @@ -23752,6 +23883,8 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "peer": true, "requires": { "punycode": "^2.1.0" } @@ -23916,12 +24049,18 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, "peer": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, + "web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -23932,6 +24071,7 @@ "version": "5.75.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, "peer": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -23964,12 +24104,14 @@ "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, "peer": true }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, "peer": true } } @@ -23978,6 +24120,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, "peer": true }, "whatwg-encoding": { diff --git a/frontend/package.json b/frontend/package.json index 24ed3b30..ee46dbb5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,6 +15,7 @@ "@types/jest": "^26.0.23", "@types/react": "^17.0.4", "@types/react-dom": "^17.0.3", + "@types/react-pdf": "^6.2.0", "@types/react-router-dom": "^5.1.7", "@types/react-select": "^4.0.15", "@types/snowpack-env": "^2.3.3", @@ -50,7 +51,7 @@ "react-icons": "^4.2.0", "react-is": "^17.0.2", "react-number-format": "^4.6.3", - "react-pdf": "^5.2.0", + "react-pdf": "^6.2.0", "react-router-dom": "^5.2.0", "styled-components": "^5.2.3", "vis-data": "^7.1.2", diff --git a/frontend/src/individual_certificate.tsx b/frontend/src/individual_certificate.tsx index 4aab8fe1..3527b74e 100644 --- a/frontend/src/individual_certificate.tsx +++ b/frontend/src/individual_certificate.tsx @@ -3,6 +3,7 @@ import React from "react"; import { Document, Page, pdfjs } from "react-pdf"; pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`; import "react-pdf/dist/esm/Page/AnnotationLayer.css"; +import "react-pdf/dist/esm/Page/TextLayer.css"; import { Button, @@ -377,7 +378,7 @@ export function IndividualCertificate({ birthDateError={birthDateError} litterError={litterError} litterError6w={litterError6w} - genebank={individual.genebank_id} + genebank={individual?.genebank} />
- {pedigreeView && ( - - popup(, `/individual/${node}`) - } - /> - )} +
+ {pedigreeView && ( + + popup(, `/individual/${node}`) + } + /> + )} +
diff --git a/frontend/src/individual_pedigree.tsx b/frontend/src/individual_pedigree.tsx index 40c312af..2294501e 100644 --- a/frontend/src/individual_pedigree.tsx +++ b/frontend/src/individual_pedigree.tsx @@ -36,15 +36,25 @@ export function IndividualPedigree({ shrink: true, }} /> - {React.useMemo( - () => ( - history.push("/individual/" + nodeId)} - /> - ), - [pedigree] - )} +
+ {React.useMemo( + () => ( + + history.push("/individual/" + nodeId) + } + /> + ), + [pedigree] + )} +
); } diff --git a/frontend/src/individual_view.tsx b/frontend/src/individual_view.tsx index eb07ace3..6acea35b 100644 --- a/frontend/src/individual_view.tsx +++ b/frontend/src/individual_view.tsx @@ -47,7 +47,9 @@ const useStyles = makeStyles({ borderLeft: "1px solid lightgrey", }, fillWidth: { - width: "100%", + // width: "100%", + //minWidth: "80vh", + height: "100%", }, flexColumn: { minWidth: "300px", @@ -522,14 +524,19 @@ export function IndividualView({ id }: { id: string }) { +
+
+

Släktträd

+ +
+
) : ( "Loading" )} -
-

Släktträd

- -
); diff --git a/frontend/src/pedigree_plot.tsx b/frontend/src/pedigree_plot.tsx index 4090e912..d156a44f 100644 --- a/frontend/src/pedigree_plot.tsx +++ b/frontend/src/pedigree_plot.tsx @@ -19,8 +19,9 @@ export function PedigreeNetwork({ const network = useRef(null); const options = { - width: Math.round(window.innerWidth * 0.6) + "px", //width is calculated considering the parent component width - height: Math.round(window.innerHeight * 0.6) + "px", //height uses the window height as reference, the domNode did not worked + width: "100%", + height: "100%", + autoResize: true, layout: { hierarchical: { @@ -60,5 +61,16 @@ export function PedigreeNetwork({ }); }, [pedigree]); - return
; + return ( +
+ ); } diff --git a/frontend/src/testbreed_pedigree_view.tsx b/frontend/src/testbreed_pedigree_view.tsx index c6512069..832ea51b 100644 --- a/frontend/src/testbreed_pedigree_view.tsx +++ b/frontend/src/testbreed_pedigree_view.tsx @@ -2,72 +2,114 @@ * @file This file provides a pedigree where users can configure the amount * of generation to show and if common ancestors should be highlighed */ -import React from 'react' -import { Autocomplete } from '@material-ui/lab' -import { TextField, FormControlLabel, Switch } from '@material-ui/core' -import { makeStyles } from '@material-ui/core/styles' -import { inputVariant } from '@app/data_context_global' -import { useDataContext } from '@app/data_context' -import { testBreedIndividuals } from '@app/testbreed_form' -import { PedigreeNetwork } from '@app/pedigree_plot' -import { testBreedPedigree } from '@app/pedigree' -import { IndividualView } from '@app/individual_view' +import React from "react"; +import { Autocomplete } from "@material-ui/lab"; +import { TextField, FormControlLabel, Switch } from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import { inputVariant } from "@app/data_context_global"; +import { useDataContext } from "@app/data_context"; +import { testBreedIndividuals } from "@app/testbreed_form"; +import { PedigreeNetwork } from "@app/pedigree_plot"; +import { testBreedPedigree } from "@app/pedigree"; +import { IndividualView } from "@app/individual_view"; +import { useMessageContext } from "@app/message_context"; const useStyles = makeStyles({ - netWorkConfiguration: { - display: 'flex', - marginTop: '30px' - }, - generationsInput: { - width: '140px', - margin: '5px 0px 5px 0px' - }, - toggle: { - margin: '5px 0px 5px 0px', - }, - }) + netWorkConfiguration: { + display: "flex", + marginTop: "30px", + }, + generationsInput: { + width: "140px", + margin: "5px 0px 5px 0px", + }, + toggle: { + margin: "5px 0px 5px 0px", + }, +}); -export function TestbreedPedigreView({ chosenAncestors, generations }: { chosenAncestors: testBreedIndividuals, generations: number}) { - const style = useStyles() - const { genebanks } = useDataContext() - const [generations_input, setGenerations] = React.useState(generations) - const [showCommonAncestors, setshowCommonAncestors] = React.useState(false as boolean) - let generationsOptions: number[] = [] - for (let i=3; i < 8; i++) { - generationsOptions.push(i) - } - const res = React.useMemo(() => testBreedPedigree(genebanks, chosenAncestors, - generations_input, showCommonAncestors), [genebanks, chosenAncestors, generations_input, showCommonAncestors]) - let pedigree = res.pedigree - let commonAncestors = res.commonAncestors -return<> -
- option.toString()} - value={generations_input} - onChange={(event, newValue) => { - setGenerations(newValue ? newValue : generations) - }} - renderInput={(params) => } +export function TestbreedPedigreView({ + chosenAncestors, + generations, +}: { + chosenAncestors: testBreedIndividuals; + generations: number; +}) { + const style = useStyles(); + const { genebanks } = useDataContext(); + const [generations_input, setGenerations] = React.useState(generations); + const { popup } = useMessageContext(); + const [showCommonAncestors, setshowCommonAncestors] = React.useState( + false as boolean + ); + let generationsOptions: number[] = []; + for (let i = 3; i < 8; i++) { + generationsOptions.push(i); + } + const res = React.useMemo( + () => + testBreedPedigree( + genebanks, + chosenAncestors, + generations_input, + showCommonAncestors + ), + [genebanks, chosenAncestors, generations_input, showCommonAncestors] + ); + let pedigree = res.pedigree; + let commonAncestors = res.commonAncestors; + return ( + <> +
+ option.toString()} + value={generations_input} + onChange={(event, newValue) => { + setGenerations(newValue ? newValue : generations); + }} + renderInput={(params) => ( + + )} /> - { - setshowCommonAncestors(!showCommonAncestors) - }} disabled={commonAncestors ? false : true} edge='start'/>} - label= "Markera gemensamma släktingar" - labelPlacement="end" + { + setshowCommonAncestors(!showCommonAncestors); + }} + disabled={commonAncestors ? false : true} + edge="start" + /> + } + label="Markera gemensamma släktingar" + labelPlacement="end" /> -
- {pedigree && - popup(, `/individual/${node}`)} - /> +
+
+ {pedigree && ( + + popup(, `/individual/${node}`) } - -} \ No newline at end of file + /> + )} +
+ + ); +} From 21cf1e1b826e6c31c825697c5207d5483d7f2e17 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Wed, 14 Dec 2022 17:42:32 +0100 Subject: [PATCH 53/56] Prettier and update of recomendations --- frontend/src/testbreed_form.tsx | 2 +- frontend/src/testbreed_recommendation.tsx | 307 +++++++++++++--------- 2 files changed, 186 insertions(+), 123 deletions(-) diff --git a/frontend/src/testbreed_form.tsx b/frontend/src/testbreed_form.tsx index fed8da04..a84b6156 100644 --- a/frontend/src/testbreed_form.tsx +++ b/frontend/src/testbreed_form.tsx @@ -490,7 +490,7 @@ export function InbreedingForm() { popup( , undefined ) diff --git a/frontend/src/testbreed_recommendation.tsx b/frontend/src/testbreed_recommendation.tsx index ae7ec5ef..60e2fdc4 100644 --- a/frontend/src/testbreed_recommendation.tsx +++ b/frontend/src/testbreed_recommendation.tsx @@ -1,29 +1,42 @@ /** - * @file This file displays the calculated coefficient of inbreeding (COI) + * @file This file displays the calculated coefficient of inbreeding (COI) * of the offspring of chosen ancestors and the resulting recommendations * based on that COI. */ -import React from 'react' -import { AppBar, Box, Tabs, Tab, Tooltip, CircularProgress, Table, TableBody, TableHead, TableRow, TableCell } from '@material-ui/core' -import { makeStyles } from '@material-ui/core/styles' -import CheckCircleSharpIcon from '@material-ui/icons/CheckCircleSharp' -import CancelSharpIcon from '@material-ui/icons/CancelSharp' -import HelpOutlineIcon from '@material-ui/icons/HelpOutline'; -import { individualLabel } from './data_context_global' -import { useDataContext } from '@app/data_context' -import { get, post } from '@app/communication' -import { testBreedPedigree } from '@app/pedigree' -import { useMessageContext } from '@app/message_context' -import { testBreedIndividuals } from '@app/testbreed_form' -import { TestbreedPedigreView } from '@app/testbreed_pedigree_view' +import React from "react"; +import { + AppBar, + Box, + Tabs, + Tab, + Tooltip, + CircularProgress, + Table, + TableBody, + TableHead, + TableRow, + TableCell, + Typography, +} from "@material-ui/core"; +import { makeStyles } from "@material-ui/core/styles"; +import CheckCircleSharpIcon from "@material-ui/icons/CheckCircleSharp"; +import CancelSharpIcon from "@material-ui/icons/CancelSharp"; +import HelpOutlineIcon from "@material-ui/icons/HelpOutline"; +import { Genebank, individualLabel } from "./data_context_global"; +import { useDataContext } from "@app/data_context"; +import { get, post } from "@app/communication"; +import { testBreedPedigree } from "@app/pedigree"; +import { useMessageContext } from "@app/message_context"; +import { testBreedIndividuals } from "@app/testbreed_form"; +import { TestbreedPedigreView } from "@app/testbreed_pedigree_view"; const useStyles = makeStyles({ container: { - display: 'block', - width: '80vw', - height: '70vh', - minWidth: '400px', - minHeight: '500px' + display: "block", + width: "80vw", + height: "70vh", + minWidth: "400px", + minHeight: "500px", }, loading: { display: "flex", @@ -32,38 +45,36 @@ const useStyles = makeStyles({ alignItems: "center", }, inbreedCoefficient: { - width: '45%', - marginTop: '30px', - borderStyle: 'solid', - borderColor: '#d3d3d3', - borderWidth: '1px' + width: "45%", + marginTop: "30px", + borderStyle: "solid", + borderColor: "#d3d3d3", + borderWidth: "1px", }, tableCell: { - padding: '5px', - fontSize: '1.25em' - + padding: "5px", + fontSize: "1.25em", }, recommendation: { - display: 'flex', - alignItems: 'center', - fontSize: '1.30em' + alignItems: "center", + fontSize: "1.30em", }, fillWidth: { - width: '100%', + width: "100%", }, netWorkConfiguration: { - width: '30%', - height: '30%', - marginTop: '30px' + width: "30%", + height: "30%", + marginTop: "30px", }, generationsInput: { - width: '140px', - margin: '5px 0px 5px 0px' + width: "140px", + margin: "5px 0px 5px 0px", }, toggle: { - margin: '5px 0px 5px 0px', - } -}) + margin: "5px 0px 5px 0px", + }, +}); /** * Requests backend to get calculated coefficient of inbreeding (COI) @@ -72,66 +83,85 @@ const useStyles = makeStyles({ * threshold. In addition, a pedigree is available where users can see the * pedigree of the chosen ancestors and highlight their common ancestors */ -export function InbreedingRecommendation({chosenAncestors, genebankId} - : {chosenAncestors: testBreedIndividuals, genebankId: number | undefined}) { - const style = useStyles() - const {userMessage} = useMessageContext() - const [offspringCOI, setOffspringCOI] = React.useState(undefined as number | undefined) - const [activeTab, setActiveTab] = React.useState('COI' as TabValue) - let generationsOptions: number[] = [] - for (let i=3; i < 8; i++) { - generationsOptions.push(i) +export function InbreedingRecommendation({ + chosenAncestors, + genebank, +}: { + chosenAncestors: testBreedIndividuals; + genebank: Genebank | undefined; +}) { + const style = useStyles(); + const { userMessage } = useMessageContext(); + const [offspringCOI, setOffspringCOI] = React.useState( + undefined as number | undefined + ); + const [activeTab, setActiveTab] = React.useState("COI" as TabValue); + let generationsOptions: number[] = []; + for (let i = 3; i < 8; i++) { + generationsOptions.push(i); } - + // Send request with chosen ancestors to /api/testbreed to // get COI of their potential offspring React.useEffect(() => { - setOffspringCOI(undefined) - let payload = {genebankId: genebankId} + setOffspringCOI(undefined); + let payload = { genebankId: genebank?.id }; Object.entries(chosenAncestors).forEach(([key, value]) => { if (value) { - payload[key] = value.number + payload[key] = value.number; } - }) - post('/api/testbreed', payload).then( - (data: any) => { - setOffspringCOI(data.offspringCOI) - console.log('R-api data', data) + }); + post("/api/testbreed", payload).then( + (data: any) => { + setOffspringCOI(data.offspringCOI); + console.log("R-api data", data); }, - error => { - console.error(error) - userMessage('Something went wrong', 'error') - } ) - }, [chosenAncestors]) + (error) => { + console.error(error); + userMessage("Something went wrong", "error"); + } + ); + }, [chosenAncestors]); //TODO, error handling - let calculationError = false - let thresholdCOI = genebankId === 1 ? 4 : 15 - let beneficialCOI = offspringCOI? offspringCOI <= thresholdCOI : false + let calculationError = false; + let thresholdCOI = genebank?.id === 1 ? 4 : 15; + let beneficialCOI = offspringCOI ? offspringCOI <= thresholdCOI : false; - let mother = chosenAncestors['female'] ? individualLabel(chosenAncestors['female']) : - `♀(${chosenAncestors['femaleGM'].name}+${chosenAncestors['femaleGF'].name})` - - let father = chosenAncestors['male'] ? individualLabel(chosenAncestors['male']) : - `♂(${chosenAncestors['maleGM'].name}+${chosenAncestors['maleGF'].name})` + let mother = chosenAncestors["female"] + ? individualLabel(chosenAncestors["female"]) + : `♀(${chosenAncestors["femaleGM"].name}+${chosenAncestors["femaleGF"].name})`; - let recommendationText - let recommendationSymbol + let father = chosenAncestors["male"] + ? individualLabel(chosenAncestors["male"]) + : `♂(${chosenAncestors["maleGM"].name}+${chosenAncestors["maleGF"].name})`; + + let recommendationText; + let recommendationSymbol; if (calculationError) { - recommendationText = 'Något gick fel i beräkningen' - recommendationSymbol = + recommendationText = "Något gick fel i beräkningen"; + recommendationSymbol = ( + + ); } else if (beneficialCOI) { - recommendationText = 'Föreningen rekommenderar parningen' - recommendationSymbol = + recommendationText = "Föreningen rekommenderar parningen"; + recommendationSymbol = ( + + ); } else { - recommendationText = 'Föreningen rekommenderar EJ parningen' - recommendationSymbol = - + recommendationText = "Föreningen rekommenderar EJ parningen"; + recommendationSymbol = ( + + ); } - type TabValue = 'COI' | 'pedigree' + type TabValue = "COI" | "pedigree"; - interface TabPanelProps extends React.DetailedHTMLProps, HTMLDivElement> { + interface TabPanelProps + extends React.DetailedHTMLProps< + React.HTMLAttributes, + HTMLDivElement + > { children?: React.ReactNode; index: any; value: any; @@ -139,7 +169,7 @@ export function InbreedingRecommendation({chosenAncestors, genebankId} function TabPanel(props: TabPanelProps) { const { children, value, index, ...other } = props; - + return (
- {value === index && ( - - {children} - - )} + {value === index && {children}}
); } - return <> - {offspringCOI ? -
-

Provparning {mother} och {father}

+ return ( + <> + {offspringCOI ? ( +
+

+ {" "} + Provparning {mother} och {father} +

, newValue: TabValue) => { - setActiveTab(newValue) + setActiveTab(newValue); }} indicatorColor="primary" textColor="primary" variant="fullWidth" - > - - + > + + - - {!calculationError && + + {!calculationError && ( - Beräknad för avkomma - Rekommenderat värde + + Beräknad för avkomma + + + Genomsnitt + - - - Inavelskoefficient - - {offspringCOI} - {thresholdCOI} - + + + Inavelskoefficient + + + {offspringCOI} + + + {thresholdCOI} + + -
- } -

{recommendationSymbol} {recommendationText}

-
- -
- -
-
-
- : -
-

Beräknar provparning

- -
} - + + )} + +

+ Inaveln för {genebank?.name} ligger i genomsnitt på {thresholdCOI} + %. Du bör sikta på att hamna under eller lika med dessa värden, + men det behöver inte vara fel att få ett högre värde för den + tänkta parningen, om andra faktorer talar för att kombinationen + hona / hane är bra. Vänligen läs de fullständiga{" "} +
+ avelsråden + {" "} + innan du parar dessa kaniner! + + {/*

{recommendationSymbol} {recommendationText}

*/} + + +
+ +
+
+
+ ) : ( +
+

Beräknar provparning

+ +
+ )} + + ); } From 412514f6db6432dbce1697458ae5987d26621672 Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Wed, 14 Dec 2022 18:53:59 +0100 Subject: [PATCH 54/56] hotfix for permission fail --- frontend/src/individual_form.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/frontend/src/individual_form.tsx b/frontend/src/individual_form.tsx index 0434a853..5d9dffdc 100644 --- a/frontend/src/individual_form.tsx +++ b/frontend/src/individual_form.tsx @@ -75,10 +75,6 @@ export function IndividualForm({ } }, [user, individual, genebank]); - const canEditBreeding: boolean = React.useMemo(() => { - return user?.canEdit(individual?.origin_herd?.herd); - }, [user, individual]); - const colorOptions: OptionType[] = React.useMemo(() => { if (genebank && colors && Object.keys(colors).includes(genebank.name)) { return colors[genebank.name].map((c) => { @@ -328,7 +324,7 @@ export function IndividualForm({ individual={individual} onUpdateIndividual={onUpdateIndividual} /> - {!canEditBreeding || individual?.is_registered ? ( + {!canManage && individual?.is_registered ? (
Kan endast ändras av genbanksansvarig!
@@ -343,9 +339,7 @@ export function IndividualForm({