diff --git a/Pipfile.lock b/Pipfile.lock index 0b36c71eb..ea42f03b7 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -149,11 +149,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0", - "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b" + "sha256:1eecaa09422db5be9e29d7fc65664e6c33bd06f9ced7838578ba40d58bdf3721", + "sha256:b0b883e8e874edfdece9c28f314e3dd5badf067342e42fb162203335ae61aa2c" ], "markers": "python_version >= '3'", - "version": "==2.0.7" + "version": "==2.0.9" }, "click": { "hashes": [ @@ -223,28 +223,29 @@ }, "cryptography": { "hashes": [ - "sha256:07bb7fbfb5de0980590ddfc7f13081520def06dc9ed214000ad4372fb4e3c7f6", - "sha256:18d90f4711bf63e2fb21e8c8e51ed8189438e6b35a6d996201ebd98a26abbbe6", - "sha256:1ed82abf16df40a60942a8c211251ae72858b25b7421ce2497c2eb7a1cee817c", - "sha256:22a38e96118a4ce3b97509443feace1d1011d0571fae81fc3ad35f25ba3ea999", - "sha256:2d69645f535f4b2c722cfb07a8eab916265545b3475fdb34e0be2f4ee8b0b15e", - "sha256:4a2d0e0acc20ede0f06ef7aa58546eee96d2592c00f450c9acb89c5879b61992", - "sha256:54b2605e5475944e2213258e0ab8696f4f357a31371e538ef21e8d61c843c28d", - "sha256:7075b304cd567694dc692ffc9747f3e9cb393cc4aa4fb7b9f3abd6f5c4e43588", - "sha256:7b7ceeff114c31f285528ba8b390d3e9cfa2da17b56f11d366769a807f17cbaa", - "sha256:7eba2cebca600a7806b893cb1d541a6e910afa87e97acf2021a22b32da1df52d", - "sha256:928185a6d1ccdb816e883f56ebe92e975a262d31cc536429041921f8cb5a62fd", - "sha256:9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d", - "sha256:a688ebcd08250eab5bb5bca318cc05a8c66de5e4171a65ca51db6bd753ff8953", - "sha256:abb5a361d2585bb95012a19ed9b2c8f412c5d723a9836418fab7aaa0243e67d2", - "sha256:c10c797ac89c746e488d2ee92bd4abd593615694ee17b2500578b63cad6b93a8", - "sha256:ced40344e811d6abba00295ced98c01aecf0c2de39481792d87af4fa58b7b4d6", - "sha256:d57e0cdc1b44b6cdf8af1d01807db06886f10177469312fbde8f44ccbb284bc9", - "sha256:d99915d6ab265c22873f1b4d6ea5ef462ef797b4140be4c9d8b179915e0985c6", - "sha256:eb80e8a1f91e4b7ef8b33041591e6d89b2b8e122d787e87eeb2b08da71bb16ad", - "sha256:ebeddd119f526bcf323a89f853afb12e225902a24d29b55fe18dd6fcb2838a76" - ], - "version": "==35.0.0" + "sha256:2049f8b87f449fc6190350de443ee0c1dd631f2ce4fa99efad2984de81031681", + "sha256:231c4a69b11f6af79c1495a0e5a85909686ea8db946935224b7825cfb53827ed", + "sha256:24469d9d33217ffd0ce4582dfcf2a76671af115663a95328f63c99ec7ece61a4", + "sha256:2deab5ec05d83ddcf9b0916319674d3dae88b0e7ee18f8962642d3cde0496568", + "sha256:494106e9cd945c2cadfce5374fa44c94cfadf01d4566a3b13bb487d2e6c7959e", + "sha256:4c702855cd3174666ef0d2d13dcc879090aa9c6c38f5578896407a7028f75b9f", + "sha256:52f769ecb4ef39865719aedc67b4b7eae167bafa48dbc2a26dd36fa56460507f", + "sha256:5c49c9e8fb26a567a2b3fa0343c89f5d325447956cc2fc7231c943b29a973712", + "sha256:684993ff6f67000a56454b41bdc7e015429732d65a52d06385b6e9de6181c71e", + "sha256:6fbbbb8aab4053fa018984bb0e95a16faeb051dd8cca15add2a27e267ba02b58", + "sha256:8982c19bb90a4fa2aad3d635c6d71814e38b643649b4000a8419f8691f20ac44", + "sha256:9511416e85e449fe1de73f7f99b21b3aa04fba4c4d335d30c486ba3756e3a2a6", + "sha256:97199a13b772e74cdcdb03760c32109c808aff7cd49c29e9cf4b7754bb725d1d", + "sha256:a776bae1629c8d7198396fd93ec0265f8dd2341c553dc32b976168aaf0e6a636", + "sha256:aa94d617a4cd4cdf4af9b5af65100c036bce22280ebb15d8b5262e8273ebc6ba", + "sha256:b17d83b3d1610e571fedac21b2eb36b816654d6f7496004d6a0d32f99d1d8120", + "sha256:d73e3a96c38173e0aa5646c31bf8473bc3564837977dd480f5cbeacf1d7ef3a3", + "sha256:d91bc9f535599bed58f6d2e21a2724cb0c3895bf41c6403fe881391d29096f1d", + "sha256:ef216d13ac8d24d9cd851776662f75f8d29c9f2d05cdcc2d34a18d32463a9b0b", + "sha256:f6a5a85beb33e57998dc605b9dbe7deaa806385fdf5c4810fb849fcd04640c81", + "sha256:f92556f94e476c1b616e6daec5f7ddded2c082efa7cee7f31c7aeda615906ed8" + ], + "version": "==36.0.0" }, "fastapi": { "hashes": [ @@ -299,11 +300,11 @@ }, "isort": { "hashes": [ - "sha256:9c2ea1e62d871267b78307fe511c0838ba0da28698c5732d54e2790bf3ba9899", - "sha256:e17d6e2b81095c9db0a03a8025a957f334d6ea30b26f9ec70805411e5c7c81f2" + "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7", + "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951" ], "index": "pypi", - "version": "==5.9.3" + "version": "==5.10.1" }, "jinja2": { "hashes": [ @@ -453,11 +454,10 @@ }, "pycparser": { "hashes": [ - "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", - "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.20" + "version": "==2.21" }, "pydantic": { "hashes": [ @@ -500,8 +500,6 @@ }, "pylint": { "hashes": [ - "sha256:0f358e221c45cbd4dad2a1e4b883e75d28acdcccd29d40c76eb72b307269b126", - "sha256:2c9843fff1a88ca0ad98a256806c82c5a8f86086e7ccbdb93297d86c3f90c436", "sha256:6758cce3ddbab60c52b57dcc07f0c5d779e5daf0cf50f6faacbef1d3ea62d2a1", "sha256:e178e96b6ba171f8ef51fbce9ca30931e6acbea4a155074d80cc081596c9e852" ], @@ -518,10 +516,10 @@ }, "python-dotenv": { "hashes": [ - "sha256:14f8185cc8d494662683e6914addcb7e95374771e707601dfc70166946b4c4b8", - "sha256:bbd3da593fc49c249397cbfbcc449cf36cb02e75afc8157fcc6a81df6fb7750a" + "sha256:32b2bdc1873fd3a3c346da1c6db83d0053c3c62f28f1f38516070c4c8971b1d3", + "sha256:a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f" ], - "version": "==0.19.1" + "version": "==0.19.2" }, "python-engineio": { "hashes": [ @@ -533,11 +531,11 @@ }, "python-socketio": { "hashes": [ - "sha256:d84fa319e943aa18328280c8fbc4e2ba03cf9e96ff905b294b8b482af64532c9", - "sha256:ef4e273ddfebb421144a228cbab1e7e27ffe8d372514fa561e57d590ea6627b0" + "sha256:ca28a0ff0ca5dd05ec5ba4ee2572fe06b96d6f0bc7df384d8b50fbbc06986134", + "sha256:ce972ea1b82aa1811fa10d30cf0d5c251b9a1558c3d66829b6fe70854bcccf0b" ], "markers": "python_version >= '3.6'", - "version": "==5.4.1" + "version": "==5.5.0" }, "pytz": { "hashes": [ @@ -586,44 +584,82 @@ }, "regex": { "hashes": [ - "sha256:0c186691a7995ef1db61205e00545bf161fb7b59cdb8c1201c89b333141c438a", - "sha256:0dcc0e71118be8c69252c207630faf13ca5e1b8583d57012aae191e7d6d28b84", - "sha256:0f7552429dd39f70057ac5d0e897e5bfe211629652399a21671e53f2a9693a4e", - "sha256:129472cd06062fb13e7b4670a102951a3e655e9b91634432cfbdb7810af9d710", - "sha256:13ec99df95003f56edcd307db44f06fbeb708c4ccdcf940478067dd62353181e", - "sha256:1f2b59c28afc53973d22e7bc18428721ee8ca6079becf1b36571c42627321c65", - "sha256:2b20f544cbbeffe171911f6ce90388ad36fe3fad26b7c7a35d4762817e9ea69c", - "sha256:2fb698037c35109d3c2e30f2beb499e5ebae6e4bb8ff2e60c50b9a805a716f79", - "sha256:34d870f9f27f2161709054d73646fc9aca49480617a65533fc2b4611c518e455", - "sha256:391703a2abf8013d95bae39145d26b4e21531ab82e22f26cd3a181ee2644c234", - "sha256:450dc27483548214314640c89a0f275dbc557968ed088da40bde7ef8fb52829e", - "sha256:45b65d6a275a478ac2cbd7fdbf7cc93c1982d613de4574b56fd6972ceadb8395", - "sha256:5095a411c8479e715784a0c9236568ae72509450ee2226b649083730f3fadfc6", - "sha256:530fc2bbb3dc1ebb17f70f7b234f90a1dd43b1b489ea38cea7be95fb21cdb5c7", - "sha256:56f0c81c44638dfd0e2367df1a331b4ddf2e771366c4b9c5d9a473de75e3e1c7", - "sha256:5e9c9e0ce92f27cef79e28e877c6b6988c48b16942258f3bc55d39b5f911df4f", - "sha256:6d7722136c6ed75caf84e1788df36397efdc5dbadab95e59c2bba82d4d808a4c", - "sha256:74d071dbe4b53c602edd87a7476ab23015a991374ddb228d941929ad7c8c922e", - "sha256:7b568809dca44cb75c8ebb260844ea98252c8c88396f9d203f5094e50a70355f", - "sha256:80bb5d2e92b2258188e7dcae5b188c7bf868eafdf800ea6edd0fbfc029984a88", - "sha256:8d1cdcda6bd16268316d5db1038965acf948f2a6f43acc2e0b1641ceab443623", - "sha256:9f665677e46c5a4d288ece12fdedf4f4204a422bb28ff05f0e6b08b7447796d1", - "sha256:a30513828180264294953cecd942202dfda64e85195ae36c265daf4052af0464", - "sha256:a7a986c45d1099a5de766a15de7bee3840b1e0e1a344430926af08e5297cf666", - "sha256:a940ca7e7189d23da2bfbb38973832813eab6bd83f3bf89a977668c2f813deae", - "sha256:ab7c5684ff3538b67df3f93d66bd3369b749087871ae3786e70ef39e601345b0", - "sha256:be04739a27be55631069b348dda0c81d8ea9822b5da10b8019b789e42d1fe452", - "sha256:c0938ddd60cc04e8f1faf7a14a166ac939aac703745bfcd8e8f20322a7373019", - "sha256:cb46b542133999580ffb691baf67410306833ee1e4f58ed06b6a7aaf4e046952", - "sha256:d134757a37d8640f3c0abb41f5e68b7cf66c644f54ef1cb0573b7ea1c63e1509", - "sha256:de557502c3bec8e634246588a94e82f1ee1b9dfcfdc453267c4fb652ff531570", - "sha256:ded0c4a3eee56b57fcb2315e40812b173cafe79d2f992d50015f4387445737fa", - "sha256:e1dae12321b31059a1a72aaa0e6ba30156fe7e633355e445451e4021b8e122b6", - "sha256:eb672217f7bd640411cfc69756ce721d00ae600814708d35c930930f18e8029f", - "sha256:ee684f139c91e69fe09b8e83d18b4d63bf87d9440c1eb2eeb52ee851883b1b29", - "sha256:f3f9a91d3cc5e5b0ddf1043c0ae5fa4852f18a1c0050318baf5fc7930ecc1f9c" - ], - "version": "==2021.10.23" + "sha256:0416f7399e918c4b0e074a0f66e5191077ee2ca32a0f99d4c187a62beb47aa05", + "sha256:05b7d6d7e64efe309972adab77fc2af8907bb93217ec60aa9fe12a0dad35874f", + "sha256:0617383e2fe465732af4509e61648b77cbe3aee68b6ac8c0b6fe934db90be5cc", + "sha256:07856afef5ffcc052e7eccf3213317fbb94e4a5cd8177a2caa69c980657b3cb4", + "sha256:0f594b96fe2e0821d026365f72ac7b4f0b487487fb3d4aaf10dd9d97d88a9737", + "sha256:139a23d1f5d30db2cc6c7fd9c6d6497872a672db22c4ae1910be22d4f4b2068a", + "sha256:162abfd74e88001d20cb73ceaffbfe601469923e875caf9118333b1a4aaafdc4", + "sha256:2207ae4f64ad3af399e2d30dde66f0b36ae5c3129b52885f1bffc2f05ec505c8", + "sha256:2409b5c9cef7054dde93a9803156b411b677affc84fca69e908b1cb2c540025d", + "sha256:2fee3ed82a011184807d2127f1733b4f6b2ff6ec7151d83ef3477f3b96a13d03", + "sha256:30ab804ea73972049b7a2a5c62d97687d69b5a60a67adca07eb73a0ddbc9e29f", + "sha256:3598893bde43091ee5ca0a6ad20f08a0435e93a69255eeb5f81b85e81e329264", + "sha256:3b5df18db1fccd66de15aa59c41e4f853b5df7550723d26aa6cb7f40e5d9da5a", + "sha256:3c5fb32cc6077abad3bbf0323067636d93307c9fa93e072771cf9a64d1c0f3ef", + "sha256:416c5f1a188c91e3eb41e9c8787288e707f7d2ebe66e0a6563af280d9b68478f", + "sha256:42b50fa6666b0d50c30a990527127334d6b96dd969011e843e726a64011485da", + "sha256:432bd15d40ed835a51617521d60d0125867f7b88acf653e4ed994a1f8e4995dc", + "sha256:473e67837f786404570eae33c3b64a4b9635ae9f00145250851a1292f484c063", + "sha256:4aaa4e0705ef2b73dd8e36eeb4c868f80f8393f5f4d855e94025ce7ad8525f50", + "sha256:50a7ddf3d131dc5633dccdb51417e2d1910d25cbcf842115a3a5893509140a3a", + "sha256:529801a0d58809b60b3531ee804d3e3be4b412c94b5d267daa3de7fadef00f49", + "sha256:537ca6a3586931b16a85ac38c08cc48f10fc870a5b25e51794c74df843e9966d", + "sha256:53db2c6be8a2710b359bfd3d3aa17ba38f8aa72a82309a12ae99d3c0c3dcd74d", + "sha256:5537f71b6d646f7f5f340562ec4c77b6e1c915f8baae822ea0b7e46c1f09b733", + "sha256:563d5f9354e15e048465061509403f68424fef37d5add3064038c2511c8f5e00", + "sha256:5d408a642a5484b9b4d11dea15a489ea0928c7e410c7525cd892f4d04f2f617b", + "sha256:61600a7ca4bcf78a96a68a27c2ae9389763b5b94b63943d5158f2a377e09d29a", + "sha256:6650f16365f1924d6014d2ea770bde8555b4a39dc9576abb95e3cd1ff0263b36", + "sha256:666abff54e474d28ff42756d94544cdfd42e2ee97065857413b72e8a2d6a6345", + "sha256:68a067c11463de2a37157930d8b153005085e42bcb7ad9ca562d77ba7d1404e0", + "sha256:6e1d2cc79e8dae442b3fa4a26c5794428b98f81389af90623ffcc650ce9f6732", + "sha256:74cbeac0451f27d4f50e6e8a8f3a52ca074b5e2da9f7b505c4201a57a8ed6286", + "sha256:780b48456a0f0ba4d390e8b5f7c661fdd218934388cde1a974010a965e200e12", + "sha256:788aef3549f1924d5c38263104dae7395bf020a42776d5ec5ea2b0d3d85d6646", + "sha256:7ee1227cf08b6716c85504aebc49ac827eb88fcc6e51564f010f11a406c0a667", + "sha256:7f301b11b9d214f83ddaf689181051e7f48905568b0c7017c04c06dfd065e244", + "sha256:83ee89483672b11f8952b158640d0c0ff02dc43d9cb1b70c1564b49abe92ce29", + "sha256:85bfa6a5413be0ee6c5c4a663668a2cad2cbecdee367630d097d7823041bdeec", + "sha256:9345b6f7ee578bad8e475129ed40123d265464c4cfead6c261fd60fc9de00bcf", + "sha256:93a5051fcf5fad72de73b96f07d30bc29665697fb8ecdfbc474f3452c78adcf4", + "sha256:962b9a917dd7ceacbe5cd424556914cb0d636001e393b43dc886ba31d2a1e449", + "sha256:96fc32c16ea6d60d3ca7f63397bff5c75c5a562f7db6dec7d412f7c4d2e78ec0", + "sha256:98ba568e8ae26beb726aeea2273053c717641933836568c2a0278a84987b2a1a", + "sha256:a3feefd5e95871872673b08636f96b61ebef62971eab044f5124fb4dea39919d", + "sha256:a955b747d620a50408b7fdf948e04359d6e762ff8a85f5775d907ceced715129", + "sha256:b43c2b8a330a490daaef5a47ab114935002b13b3f9dc5da56d5322ff218eeadb", + "sha256:b483c9d00a565633c87abd0aaf27eb5016de23fed952e054ecc19ce32f6a9e7e", + "sha256:b9ed0b1e5e0759d6b7f8e2f143894b2a7f3edd313f38cf44e1e15d360e11749b", + "sha256:ba05430e819e58544e840a68b03b28b6d328aff2e41579037e8bab7653b37d83", + "sha256:ca49e1ab99593438b204e00f3970e7a5f70d045267051dfa6b5f4304fcfa1dbf", + "sha256:ca5f18a75e1256ce07494e245cdb146f5a9267d3c702ebf9b65c7f8bd843431e", + "sha256:cd410a1cbb2d297c67d8521759ab2ee3f1d66206d2e4328502a487589a2cb21b", + "sha256:ce298e3d0c65bd03fa65ffcc6db0e2b578e8f626d468db64fdf8457731052942", + "sha256:d5ca078bb666c4a9d1287a379fe617a6dccd18c3e8a7e6c7e1eb8974330c626a", + "sha256:d5fd67df77bab0d3f4ea1d7afca9ef15c2ee35dfb348c7b57ffb9782a6e4db6e", + "sha256:da1a90c1ddb7531b1d5ff1e171b4ee61f6345119be7351104b67ff413843fe94", + "sha256:dba70f30fd81f8ce6d32ddeef37d91c8948e5d5a4c63242d16a2b2df8143aafc", + "sha256:dc07f021ee80510f3cd3af2cad5b6a3b3a10b057521d9e6aaeb621730d320c5a", + "sha256:dd33eb9bdcfbabab3459c9ee651d94c842bc8a05fabc95edf4ee0c15a072495e", + "sha256:e0538c43565ee6e703d3a7c3bdfe4037a5209250e8502c98f20fea6f5fdf2965", + "sha256:e1f54b9b4b6c53369f40028d2dd07a8c374583417ee6ec0ea304e710a20f80a0", + "sha256:e32d2a2b02ccbef10145df9135751abea1f9f076e67a4e261b05f24b94219e36", + "sha256:e6096b0688e6e14af6a1b10eaad86b4ff17935c49aa774eac7c95a57a4e8c296", + "sha256:e71255ba42567d34a13c03968736c5d39bb4a97ce98188fafb27ce981115beec", + "sha256:ed2e07c6a26ed4bea91b897ee2b0835c21716d9a469a96c3e878dc5f8c55bb23", + "sha256:eef2afb0fd1747f33f1ee3e209bce1ed582d1896b240ccc5e2697e3275f037c7", + "sha256:f23222527b307970e383433daec128d769ff778d9b29343fb3496472dc20dabe", + "sha256:f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6", + "sha256:f5be7805e53dafe94d295399cfbe5227f39995a997f4fd8539bf3cbdc8f47ca8", + "sha256:f7f325be2804246a75a4f45c72d4ce80d2443ab815063cdf70ee8fb2ca59ee1b", + "sha256:f8af619e3be812a2059b212064ea7a640aff0568d972cd1b9e920837469eb3cb", + "sha256:fa8c626d6441e2d04b6ee703ef2d1e17608ad44c7cb75258c09dd42bacdfc64b", + "sha256:fbb9dc00e39f3e6c0ef48edee202f9520dafb233e8b51b06b8428cfcb92abd30", + "sha256:fff55f3ce50a3ff63ec8e2a8d3dd924f1941b250b0aac3d3d42b687eeff07a8e" + ], + "version": "==2021.11.10" }, "reporting-server": { "editable": true, @@ -654,7 +690,7 @@ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.16.0" }, "starlette": { @@ -670,7 +706,7 @@ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", "version": "==0.10.2" }, "tortoise-orm": { @@ -683,47 +719,36 @@ }, "typed-ast": { "hashes": [ - "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace", - "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff", - "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266", - "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528", - "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6", - "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808", - "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4", - "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363", - "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341", - "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04", - "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41", - "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e", - "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3", - "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899", - "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805", - "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c", - "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c", - "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39", - "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a", - "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3", - "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7", - "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f", - "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075", - "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0", - "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40", - "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428", - "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927", - "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3", - "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f", - "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65" - ], - "version": "==1.4.3" + "sha256:24058827d8f5d633f97223f5148a7d22628099a3d2efe06654ce872f46f07cdb", + "sha256:256115a5bc7ea9e665c6314ed6671ee2c08ca380f9d5f130bd4d2c1f5848d695", + "sha256:38cf5c642fa808300bae1281460d4f9b7617cf864d4e383054a5ef336e344d32", + "sha256:484137cab8ecf47e137260daa20bafbba5f4e3ec7fda1c1e69ab299b75fa81c5", + "sha256:4f30a2bcd8e68adbb791ce1567fdb897357506f7ea6716f6bbdd3053ac4d9471", + "sha256:591bc04e507595887160ed7aa8d6785867fb86c5793911be79ccede61ae96f4d", + "sha256:5b6ab14c56bc9c7e3c30228a0a0b54b915b1579613f6e463ba6f4eb1382e7fd4", + "sha256:5d8314c92414ce7481eee7ad42b353943679cf6f30237b5ecbf7d835519e1212", + "sha256:71dcda943a471d826ea930dd449ac7e76db7be778fcd722deb63642bab32ea3f", + "sha256:7c42707ab981b6cf4b73490c16e9d17fcd5227039720ca14abe415d39a173a30", + "sha256:9caaf2b440efb39ecbc45e2fabde809cbe56272719131a6318fd9bf08b58e2cb", + "sha256:a2b8d7007f6280e36fa42652df47087ac7b0a7d7f09f9468f07792ba646aac2d", + "sha256:a6d495c1ef572519a7bac9534dbf6d94c40e5b6a608ef41136133377bba4aa08", + "sha256:a80d84f535642420dd17e16ae25bb46c7f4c16ee231105e7f3eb43976a89670a", + "sha256:b53ae5de5500529c76225d18eeb060efbcec90ad5e030713fe8dab0fb4531631", + "sha256:b6d17f37f6edd879141e64a5db17b67488cfeffeedad8c5cec0392305e9bc775", + "sha256:c9bcad65d66d594bffab8575f39420fe0ee96f66e23c4d927ebb4e24354ec1af", + "sha256:ca9e8300d8ba0b66d140820cf463438c8e7b4cdc6fd710c059bfcfb1531d03fb", + "sha256:de4ecae89c7d8b56169473e08f6bfd2df7f95015591f43126e4ea7865928677e" + ], + "markers": "python_version >= '3.6'", + "version": "==1.5.1" }, "typing-extensions": { "hashes": [ - "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e", - "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7", - "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34" + "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e", + "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b" ], - "markers": "python_version < '3.10'", - "version": "==3.10.0.2" + "markers": "python_version >= '3.6'", + "version": "==4.0.1" }, "urllib3": { "hashes": [ @@ -802,7 +827,6 @@ "hashes": [ "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==1.12.1" } } diff --git a/package-lock.json b/package-lock.json index 5f4b562cb..d28634e18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2141,9 +2141,9 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", - "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", "dev": true, "engines": { "node": ">=10.0.0" @@ -3540,13 +3540,13 @@ "dev": true }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.57", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.57.tgz", - "integrity": "sha512-UCJthNc4LGttoD/CxdCh8AaEu2B2uWNRW96J6PjlQ125+FEqO7+wuIGT98BNCGguVwetK/jTmo/fiHYDoW9gUA==", + "version": "5.0.0-alpha.59", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.59.tgz", + "integrity": "sha512-rPgN2FW0FAjQ9+LQ+XBsq3DFcuiiMFhf8uoLJAWnnzft27IJvJqbrhfpCZ68G6l+umJLbbl5RIIbpt8ALZDDNQ==", "dependencies": { "@babel/runtime": "^7.16.3", "@emotion/is-prop-valid": "^1.1.1", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "@popperjs/core": "^2.4.4", "clsx": "^1.1.1", "prop-types": "^15.7.2", @@ -3555,6 +3555,10 @@ "engines": { "node": ">=12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, "peerDependencies": { "@types/react": "^16.8.6 || ^17.0.0", "react": "^17.0.2", @@ -3567,15 +3571,19 @@ } }, "node_modules/@mui/icons-material": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.2.0.tgz", - "integrity": "sha512-NvyrVaGKpP4R1yFw8BCnE0QcsQ67RtpgxPr4FtH8q60MDYPuPVczLOn5Ash5CFavoDWur/NfM/4DpT54yf3InA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.2.1.tgz", + "integrity": "sha512-AFOn0bbaGd1dw8oYE40dv3I+QnfS5xP5HSUiUGsvb1ntP0cM1kW4VqQp7BtL7DbOpEsw1ZTbw67tDqSCH7utNg==", "dependencies": { "@babel/runtime": "^7.16.3" }, "engines": { "node": ">=12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, "peerDependencies": { "@mui/material": "^5.0.0", "@types/react": "^16.8.6 || ^17.0.0", @@ -3588,27 +3596,31 @@ } }, "node_modules/@mui/lab": { - "version": "5.0.0-alpha.57", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.57.tgz", - "integrity": "sha512-IkSACzrEhTWhj1Zye4E5/qif29g6wRxLs7/7UnmisSY7tnZMnq6QS2td/0aiYUNj6f7kdpGQXZNkukgjHSG2fw==", + "version": "5.0.0-alpha.59", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.59.tgz", + "integrity": "sha512-B+7EkbM+NRuUFFPzG2lqbyI73FM3W19RFkrWJdNZ+gd6C+NTdHdVS9UxSZm54PmSFEnd77wAWKdrIkhcFzEgZQ==", "dependencies": { "@babel/runtime": "^7.16.3", "@date-io/date-fns": "^2.11.0", "@date-io/dayjs": "^2.11.0", "@date-io/luxon": "^2.11.1", "@date-io/moment": "^2.11.0", - "@mui/base": "5.0.0-alpha.57", - "@mui/system": "^5.2.1", - "@mui/utils": "^5.2.1", + "@mui/base": "5.0.0-alpha.59", + "@mui/system": "^5.2.3", + "@mui/utils": "^5.2.3", "clsx": "^1.1.1", "prop-types": "^15.7.2", "react-is": "^17.0.2", "react-transition-group": "^4.4.2", - "rifm": "^0.12.0" + "rifm": "^0.12.1" }, "engines": { "node": ">=12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, "peerDependencies": { "@mui/material": "^5.0.0", "@types/react": "^16.8.6 || ^17.0.0", @@ -3638,16 +3650,16 @@ } }, "node_modules/@mui/material": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.2.1.tgz", - "integrity": "sha512-y38+e1Qf95rVQ4lK8knYj4o1kB/WwJU0f/lMNmzlaenqGpyhd1M/e3BNwuYEDOLSPWUVeP2LvX2mL/IhKytA9A==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.2.3.tgz", + "integrity": "sha512-qhHAVpkQh77xiic38TIDMrKGafRRy9WT16uvexvE2UdyI259YP4HvFamYz3prSNnZi5UozwKpH/QGnv6+JT7/g==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.3", - "@mui/base": "5.0.0-alpha.57", - "@mui/system": "^5.2.1", + "@mui/base": "5.0.0-alpha.59", + "@mui/system": "^5.2.3", "@mui/types": "^7.1.0", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "@types/react-transition-group": "^4.4.4", "clsx": "^1.1.1", "csstype": "^3.0.10", @@ -3661,7 +3673,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "url": "https://opencollective.com/mui" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -3683,12 +3695,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.2.1.tgz", - "integrity": "sha512-+OfgeZzEjqwd7Vo1kYISJyLHM+3yUO8UoKhLMtZ1DAlZlqovN6jetPtT6o4BnHEAsc3YC3DET+KicwkRtuvxbw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.2.3.tgz", + "integrity": "sha512-Lc1Cmu8lSsYZiXADi9PBb17Ho82ZbseHQujUFAcp6bCJ5x/d+87JYCIpCBMagPu/isRlFCwbziuXPmz7WOzJPQ==", "dependencies": { "@babel/runtime": "^7.16.3", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "prop-types": "^15.7.2" }, "engines": { @@ -3696,7 +3708,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "url": "https://opencollective.com/mui" }, "peerDependencies": { "@types/react": "^16.8.6 || ^17.0.0", @@ -3739,15 +3751,15 @@ } }, "node_modules/@mui/styles": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.2.1.tgz", - "integrity": "sha512-0u9YF9HsirqAya1SsGtaP6jt3z32UA1sKKiFVXNI8ZGPIFsmcuUCsTWuyjYhglfRre3exedrxauh4RDZqcEGOA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.2.3.tgz", + "integrity": "sha512-Art4qjlEI9H2h34mLL8s+CE9nWZWZbuJLbNpievaIM6DGuayz3DYkJHcH5mXJYFPhTNoe9IQYbpyKofjE0YVag==", "dependencies": { "@babel/runtime": "^7.16.3", "@emotion/hash": "^0.8.0", - "@mui/private-theming": "^5.2.1", + "@mui/private-theming": "^5.2.3", "@mui/types": "^7.1.0", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "clsx": "^1.1.1", "csstype": "^3.0.10", "hoist-non-react-statics": "^3.3.2", @@ -3766,7 +3778,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "url": "https://opencollective.com/mui" }, "peerDependencies": { "@types/react": "^16.8.6 || ^17.0.0", @@ -3779,15 +3791,15 @@ } }, "node_modules/@mui/system": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.2.1.tgz", - "integrity": "sha512-C1mva6Uyk2bGCaa/FiaFseSt2iJymxgA8KnJJyKAz8ZQZzuetUV8JbY1qtV9CG1VlJb+Ldm7pc6Px8t59lGfZw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.2.3.tgz", + "integrity": "sha512-YvkjmqgOruZgr+IkueRns99gl3MmnNs8BhnlZosYMLzKz/1lY0JqVBFqUh4sGVbD0UEKFwdk8H31itG5OIPChA==", "dependencies": { "@babel/runtime": "^7.16.3", - "@mui/private-theming": "^5.2.1", + "@mui/private-theming": "^5.2.3", "@mui/styled-engine": "^5.2.0", "@mui/types": "^7.1.0", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "clsx": "^1.1.1", "csstype": "^3.0.10", "prop-types": "^15.7.2" @@ -3797,7 +3809,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/material-ui" + "url": "https://opencollective.com/mui" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -3831,9 +3843,9 @@ } }, "node_modules/@mui/utils": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.2.1.tgz", - "integrity": "sha512-JQH5ucBxBrubntrN2mvDcwkXlWaHuZGz5goxg9ixnZXRhlZ9Ed5knfsafrX4OFyXNT48DiZXaTRAEkqjyfCExQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.2.3.tgz", + "integrity": "sha512-sQujlajIS0zQKcGIS6tZR0L1R+ib26B6UtuEn+cZqwKHsPo3feuS+SkdscYBdcCdMbrZs4gj8WIJHl2z6tbSzQ==", "dependencies": { "@babel/runtime": "^7.16.3", "@types/prop-types": "^15.7.4", @@ -3844,25 +3856,30 @@ "engines": { "node": ">=12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, "peerDependencies": { "react": "^17.0.2" } }, "node_modules/@mui/x-data-grid": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.0.1.tgz", - "integrity": "sha512-F1IhkxNiI7A/VoRT0vTs7PP4E8E/K6e5WLrjXFzxeWmvOBaAfmwvf3Wq8o/8ouQ9MFy92M/lAgviOMp1gduOtw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.1.0.tgz", + "integrity": "sha512-Pj6/FM+fmGjUYqQ26CC0fRiiLENWMfTyp8nOjEm95eqOPbyFM1BMLsZrCU78TR+jUMsE7nc2Y4lYkWlAPcvIgQ==", "dependencies": { - "@mui/utils": "^5.1.0", + "@mui/utils": "^5.1.1", "clsx": "^1.1.1", "prop-types": "^15.7.2", - "reselect": "^4.1.1" + "reselect": "^4.1.4" }, "engines": { "node": ">=12.0.0" }, "peerDependencies": { - "@mui/material": "^5.1.0", + "@mui/material": "^5.1.1", + "@mui/system": "^5.1.1", "react": "^17.0.2" } }, @@ -4025,6 +4042,17 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@react-leaflet/core": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-1.0.2.tgz", + "integrity": "sha512-QbleYZTMcgujAEyWGki8Lx6cXQqWkNtQlqf5c7NImlIp8bKW66bFpez/6EVatW7+p9WKBOEOVci/9W7WW70EZg==", + "dev": true, + "peerDependencies": { + "leaflet": "^1.7.1", + "react": "^17.0.1", + "react-dom": "^17.0.1" + } + }, "node_modules/@rollup/plugin-node-resolve": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", @@ -4120,21 +4148,21 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.0.tgz", - "integrity": "sha512-gpZI7YL04LZMNIEVAJTX0Uh97Bvhcr1UPJApJ60iudrIvqIvu7VDqqnq6BU0Isal6PVygIdl4sJ2fJCfQfGFPg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.8.tgz", + "integrity": "sha512-waubdXqq795vr4hNX2oMiT11qlv5YcZt/EUEflITpm9GELFmetVuOLieAMU3W0r6T27lGo1iQZ/ILTMGa8i9yw==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "polished": "^4.0.5", "prop-types": "^15.7.2", "react-inspector": "^5.1.0", @@ -4162,18 +4190,18 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.0.tgz", - "integrity": "sha512-If1dgHCVNInWB9xlKRUAdad0fEQbiyponxMN1FkdFRESMWdf3bgGyUcFfkP0UqIpHi0+2Fk4LFzmPHH3k5AdDw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.8.tgz", + "integrity": "sha512-5SQs1N5/OKGhF82RGdQd1XotL3eofInBt53KGgFsJ2SyFIHGZ1hR1BziexSmHMYXS6AGJR+JuDtHSz93sOnD3g==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "memoizerific": "^1.11.3", @@ -4199,22 +4227,22 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.0.tgz", - "integrity": "sha512-beP6YSsBqpH9nuOv3hRRiBXqyLKdKhqn1M4bylRAzxsh2CGROTn6TAK5kvuEE+HCzz91C8P3baDmrElKA+xMvw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.8.tgz", + "integrity": "sha512-aBsOEL1Oaukk9c4LzCJZJARIqJ1/VuErjfOnKs78Bd7osxSy0HmHTMNfJCSHzsHz7DTG+fZzq/4KF+EOzqT1pw==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-common": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-common": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.0", - "@storybook/store": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/node-logger": "6.4.8", + "@storybook/store": "6.4.8", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, "funding": { @@ -4235,9 +4263,9 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.0.tgz", - "integrity": "sha512-4F/NTF0G3QIW5qvSfAl6pc3k7dAH74VY98lyvnYwfwpMDjNNM4tE06aXl6etVkavLoHmBEFm30Y116wuk6fj4w==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.8.tgz", + "integrity": "sha512-rmItZfocVP45zOEiUJjXXXC9sKFBQs5jNacEmDwlVFtUh5BbM/oX5G5c/HPJ7GgxIsIL6QCaxqrBjK97UuIdLQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -4249,21 +4277,21 @@ "@mdx-js/loader": "^1.6.22", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/builder-webpack4": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/builder-webpack4": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.0", - "@storybook/node-logger": "6.4.0", - "@storybook/postinstall": "6.4.0", - "@storybook/preview-web": "6.4.0", - "@storybook/source-loader": "6.4.0", - "@storybook/store": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/csf-tools": "6.4.8", + "@storybook/node-logger": "6.4.8", + "@storybook/postinstall": "6.4.8", + "@storybook/preview-web": "6.4.8", + "@storybook/source-loader": "6.4.8", + "@storybook/store": "6.4.8", + "@storybook/theming": "6.4.8", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", @@ -4275,7 +4303,7 @@ "html-tags": "^3.1.0", "js-string-escape": "^1.0.1", "loader-utils": "^2.0.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "nanoid": "^3.1.23", "p-limit": "^3.1.0", "prettier": "^2.2.1", @@ -4292,12 +4320,12 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/angular": "6.4.0", - "@storybook/html": "6.4.0", - "@storybook/react": "6.4.0", - "@storybook/vue": "6.4.0", - "@storybook/vue3": "6.4.0", - "@storybook/web-components": "6.4.0", + "@storybook/angular": "6.4.8", + "@storybook/html": "6.4.8", + "@storybook/react": "6.4.8", + "@storybook/vue": "6.4.8", + "@storybook/vue3": "6.4.8", + "@storybook/web-components": "6.4.8", "lit": "^2.0.0", "lit-html": "^1.4.1 || ^2.0.0", "react": "^16.8.0 || ^17.0.0", @@ -4353,22 +4381,22 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.0.tgz", - "integrity": "sha512-i3nvP9xQ9sNDQSdHA3zurCN04wDAHS4U5jtMyPuYjNUYmr5uvwrnXMGEwnJIZpOWwcrkJelI0hUyPK1HHyHnoQ==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "6.4.0", - "@storybook/addon-backgrounds": "6.4.0", - "@storybook/addon-controls": "6.4.0", - "@storybook/addon-docs": "6.4.0", - "@storybook/addon-measure": "6.4.0", - "@storybook/addon-outline": "6.4.0", - "@storybook/addon-toolbars": "6.4.0", - "@storybook/addon-viewport": "6.4.0", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/node-logger": "6.4.0", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.8.tgz", + "integrity": "sha512-S2APnFilRG2N+zaRvltbzgyRUxphlulPcWZVkHD7S9HAQ7T/igUV9+RfFVvSKtP5Xa9n35rfTpuIRcTZFlMpbg==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "6.4.8", + "@storybook/addon-backgrounds": "6.4.8", + "@storybook/addon-controls": "6.4.8", + "@storybook/addon-docs": "6.4.8", + "@storybook/addon-measure": "6.4.8", + "@storybook/addon-outline": "6.4.8", + "@storybook/addon-toolbars": "6.4.8", + "@storybook/addon-viewport": "6.4.8", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/node-logger": "6.4.8", "core-js": "^3.8.2", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" @@ -4379,8 +4407,8 @@ }, "peerDependencies": { "@babel/core": "^7.9.6", - "@storybook/vue": "6.4.0", - "@storybook/web-components": "6.4.0", + "@storybook/vue": "6.4.8", + "@storybook/web-components": "6.4.8", "babel-loader": "^8.0.0", "lit-html": "^1.4.1 || ^2.0.0-rc.3", "react": "^16.8.0 || ^17.0.0", @@ -4409,16 +4437,16 @@ } }, "node_modules/@storybook/addon-links": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.0.tgz", - "integrity": "sha512-X/AZFWiF8M2ZCegPJSXLevE+QawAKQQPatiFTZ4AZ3k/Bct0C2Z3B4kvCwzv5O8ckVjNMqmswS0PpyDqymNp6Q==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.8.tgz", + "integrity": "sha512-fb1oRNBwht48aU4rVN6qUYbUmh6Bqadvr1Mx0Az5q9NX2rtNBfJFLAWIme/zCnhBD0+yTA4c7njGhlWMmnjMAQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.0", + "@storybook/router": "6.4.8", "@types/qs": "^6.9.5", "core-js": "^3.8.2", "global": "^4.4.0", @@ -4445,16 +4473,16 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.0.tgz", - "integrity": "sha512-loB032z4+QatMowE6p2qlzfExgHp2vWUUrilD9cdr+UtKQA/F6S04z/+qxJywyIzUIjmvhjWK4NKa9F5+c7axA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.8.tgz", + "integrity": "sha512-eRpjcqlJfSl+2rOZdm4LR5yKpPjW1MoWfTtmPYIE7qOf/ZTx+Pq0lJWmjz91SxJ1qG2kZzfXX/FbVJHIDZOhrw==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "global": "^4.4.0" @@ -4477,16 +4505,16 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.0.tgz", - "integrity": "sha512-yCjgAetTpIXGAUUoLww5phDSwobQAC9gVftzqZor9cdOMEeoA6Ig+0OFwN+IWdrDHp7akrlPO3gwnAZcvtyZvA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.8.tgz", + "integrity": "sha512-V9EuCU8ixSfZ1W0qfou3nM0jGmfiUtZ+WY2ot1jOxj0+thWpVDyQuHUiYLIS99qVruq0yOSSyCjXGhCITKv8YQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -4511,15 +4539,15 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.0.tgz", - "integrity": "sha512-a2LTp3I5ITgT1lBBTI/PkBwWGgPlwQmMQa5xYmb9j56/9cys1bXn6NNHbreCStVK3XhEZMDgp0pokmgyOFqJTg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.8.tgz", + "integrity": "sha512-10UQFLQjCfGisE/qHIgUXctsuRfMm440EFiQea+JfsryGdrnZI+0Bhgsrob8DuyZBClns8tx6ev1gsFqLGZlcQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "regenerator-runtime": "^0.13.7" }, @@ -4541,17 +4569,17 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.0.tgz", - "integrity": "sha512-HU5FOWK+S2GSvfuFT284wbdNsIDXyXeg/t4IbMrZLRmehRKNm66m8vEQqCzHnUhOvud8T0zCsfVx57rYX4tyJA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.8.tgz", + "integrity": "sha512-jx4C3GSIgYpyjv3fGnofKB1V3fbzpekg8gB1JMR9P7BvvU/mXMjVtUEXal1A+3t5LQa4xfNf0Fqg1VdQ+a73jQ==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "memoizerific": "^1.11.3", @@ -4576,18 +4604,18 @@ } }, "node_modules/@storybook/addons": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.0.tgz", - "integrity": "sha512-57IaMaG3FBK+SC8k/6i1GvLUFtNGfSISEMTJUd5qZszXj0Y5NhhBOTgz0Bb5l4zJJ6kHwP0eCcWi0ulV7nVsqw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.8.tgz", + "integrity": "sha512-/lgKj95dEyW8xIrifP4IcK7P3iFGUsWwbNYPWUTpyXNvgNHT9ZS+bVOxwL5I5msFQ11dbmBncTZFxGajsL83HA==", "dev": true, "dependencies": { - "@storybook/api": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/api": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/router": "6.4.8", + "@storybook/theming": "6.4.8", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -4603,22 +4631,22 @@ } }, "node_modules/@storybook/api": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.0.tgz", - "integrity": "sha512-7/+eHMsQOf0DoQWR7FVYRzLK2JoG+q5RytW9AgpTOJXELONC9/ewKSQdN3X6/WxNc+a9ycxWvTJPPR5m5jMb3A==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.8.tgz", + "integrity": "sha512-kZZqKXxF0/TiKHOi93aRg/Uq9lrHxhS8u0DG1SvxqUCKMXVzT7sACHWAgu++j82jFWuK6loW3BoYAXMKaMcz3A==", "dev": true, "dependencies": { - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.0", + "@storybook/router": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7", "store2": "^2.12.0", @@ -4636,9 +4664,9 @@ } }, "node_modules/@storybook/builder-webpack4": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.0.tgz", - "integrity": "sha512-nbjt4xMAcTuduOy3EU2XzetihAleO/lAAzacG175UbqGj01jrxZHLSDhQFMOcU1GSsrGnIALyYHB2Kilj3V7ww==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.8.tgz", + "integrity": "sha512-CagS+xW22SGpFrb7AnTs+KoGJoms979oBbpuUihFbVIZ3i6JOoYlGB3fhpyvy2c3QPF8touvcOxeGXF+sEJDUw==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -4662,22 +4690,22 @@ "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-common": "6.4.0", - "@storybook/core-events": "6.4.0", - "@storybook/node-logger": "6.4.0", - "@storybook/preview-web": "6.4.0", - "@storybook/router": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-common": "6.4.8", + "@storybook/core-events": "6.4.8", + "@storybook/node-logger": "6.4.8", + "@storybook/preview-web": "6.4.8", + "@storybook/router": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.0", - "@storybook/theming": "6.4.0", - "@storybook/ui": "6.4.0", + "@storybook/store": "6.4.8", + "@storybook/theming": "6.4.8", + "@storybook/ui": "6.4.8", "@types/node": "^14.0.10", "@types/webpack": "^4.41.26", "autoprefixer": "^9.8.6", @@ -4759,14 +4787,14 @@ } }, "node_modules/@storybook/channel-postmessage": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.0.tgz", - "integrity": "sha512-UPjUbkDg3UFnr2PZ7ONRMqDubJIXrqvWV96oh+KTdTuhm7Cm8r6Xu4F9CHvN3hqb3K304ODcYpSmW2TjdT446g==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.8.tgz", + "integrity": "sha512-ju+u0636Ewg3lb1Bn2iqvXUmwhdY27ybRvkAOht8/svx0XJD4pswSNR0aAIK4MIS9ZKoqBJ0VnJB5pDE5uS3Qw==", "dev": true, "dependencies": { - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -4778,13 +4806,13 @@ } }, "node_modules/@storybook/channel-websocket": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.0.tgz", - "integrity": "sha512-6ziGckd4PZ8vRxS5QWQ8wCsHVvKH2QQCOnLwMiE6vFdbsUw3ch0ZKSBEHi4soyxhRd372UenN93aLsdIUGSrVw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.8.tgz", + "integrity": "sha512-3Xvf1snPxpIGKLVZu6yTotXwOEoAaWLt7me32cggOTXuM8u+T7rc1N+fETHW+q+onENBWPx2sMxPpiSTSjhnKA==", "dev": true, "dependencies": { - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "telejson": "^5.3.2" @@ -4795,9 +4823,9 @@ } }, "node_modules/@storybook/channels": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.0.tgz", - "integrity": "sha512-wJMQnR6YoDzU30Nb2ow4CveG5uatJOQIsNm+ZZYluJuYPqNc+aZCQWXT0yjx5/iYlfZAB0Bv8sLm9nc2p3dzeA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.8.tgz", + "integrity": "sha512-WnEuOgS7Z/K4/pm6h/3f3P2+dxEeI3Xmk+zDCgNmY/WbsqiexhFfvjneOlpIe2gJNfjCZDjTOy7u/+r8vj0nhA==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -4810,24 +4838,24 @@ } }, "node_modules/@storybook/client-api": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.0.tgz", - "integrity": "sha512-Z0vzJAJpHhkDBA+gSO6ZlFNim/UJnVSC8Wjtogin20NSy8ZsSrilxjrCG1vVpONNqXZXNYgptoGZU3Hr51/JUA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.8.tgz", + "integrity": "sha512-JhfYOVmNw/6li8g9MBV4L439Wb0OexZ102Nqxqps7x8lm8Lt0vuydhN8TdV79uDwm2acquvQcXuwgT0/ABBItA==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", @@ -4846,9 +4874,9 @@ } }, "node_modules/@storybook/client-logger": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.0.tgz", - "integrity": "sha512-SFO/JhQeoXl57LMwCp0HsxkgDjU2TLv+7S7s8UJI3nmdAcrPBhJ+RAwI8IoB/AozQMvSVb2fPiV1ljoSfSZLAg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.8.tgz", + "integrity": "sha512-JjxDCFyGQiUtJAotDy/Nv/tnCG4TpqV4l8FxIH97AVM8/2sSE3TbUzfEMkI/tAlUa0o6WarniKS8xxyDjZJaDA==", "dev": true, "dependencies": { "core-js": "^3.8.2", @@ -4860,15 +4888,15 @@ } }, "node_modules/@storybook/components": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.0.tgz", - "integrity": "sha512-IgmekBeBVHbYnG7aIEScHShoKIz2X/uY7In8njfO0Exj9Tw6n/yB1UVm34ABTkiKW+ApF/acO0BPXuv/Cuseug==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.8.tgz", + "integrity": "sha512-nNEv+jNHTiKTYIjzqpOSr6L4eRTHx3BCiFCVnOpRiPVh4GQ5edj9PrJTdlmNS6Czyexoc/52v/NoyGc13tP+mQ==", "dev": true, "dependencies": { "@popperjs/core": "^2.6.0", - "@storybook/client-logger": "6.4.0", + "@storybook/client-logger": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "@types/color-convert": "^2.0.0", "@types/overlayscrollbars": "^1.12.0", "@types/react-syntax-highlighter": "11.0.5", @@ -4876,7 +4904,7 @@ "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "markdown-to-jsx": "^7.1.3", "memoizerific": "^1.11.3", "overlayscrollbars": "^1.13.1", @@ -4900,20 +4928,20 @@ } }, "node_modules/@storybook/core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.0.tgz", - "integrity": "sha512-kRknuiLoYJHAocfTwgeHCVSiIGskay24wDoM2WFeyilIR8+MUaW2CkJg2KUArSqPycKjyIvdAjXpx+0Sa+J6+g==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.8.tgz", + "integrity": "sha512-WlR6Ey6x+bssld7BpSEgJ/An5tYekJZ4suyK6XZJ2VzwA9M0ICTlvu72xuFBzjHvElQq3rNW4PMmebK1vmLwpw==", "dev": true, "dependencies": { - "@storybook/core-client": "6.4.0", - "@storybook/core-server": "6.4.0" + "@storybook/core-client": "6.4.8", + "@storybook/core-server": "6.4.8" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/builder-webpack5": "6.4.0", + "@storybook/builder-webpack5": "6.4.8", "react": "^16.8.0 || ^17.0.0", "react-dom": "^16.8.0 || ^17.0.0", "webpack": "*" @@ -4928,26 +4956,26 @@ } }, "node_modules/@storybook/core-client": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.0.tgz", - "integrity": "sha512-iZZMpKn0Smi8/v3DT6ZnKagG4vSW2TkldqoU0h91COFgWL4s+Oiak0x6Pr/OBhupTpChjwRtFLO0VYcvvaRmeQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.8.tgz", + "integrity": "sha512-TmO9Do0RKeV1C9l5VW95ch2WXCZSuKKAfZieTL6e6XxRFxP4lkrKQgDRX3CO9t2u/2rrHR48CnALtAEuvyEhdA==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/channel-websocket": "6.4.0", - "@storybook/client-api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/channel-websocket": "6.4.8", + "@storybook/client-api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/preview-web": "6.4.0", - "@storybook/store": "6.4.0", - "@storybook/ui": "6.4.0", + "@storybook/preview-web": "6.4.8", + "@storybook/store": "6.4.8", + "@storybook/ui": "6.4.8", "airbnb-js-shims": "^2.2.1", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0", @@ -4970,9 +4998,9 @@ } }, "node_modules/@storybook/core-common": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.0.tgz", - "integrity": "sha512-Zs3OcJ4J3RwWBcpoaTJAEQHQJ75EP8iETstg9DrEwLJ3ct2GYpux58aP00P4UiVMZ0I6gayHvfHOvq/zG2orLQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.8.tgz", + "integrity": "sha512-0JVVtSLSCYZ00eHNbX2qOc5IHE5tihiq90rAPQ/vUZjA/cU+4s4CJLxi2O8A94IfUi1gqiyGoZTWotDJo7HfZQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -4996,7 +5024,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.4.0", + "@storybook/node-logger": "6.4.8", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10", "@types/pretty-hrtime": "^1.0.0", @@ -5087,9 +5115,9 @@ } }, "node_modules/@storybook/core-common/node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.4.2.tgz", - "integrity": "sha512-EqtzzRdx2mldr0KEydSN9jaNrf419gMpwkloumG6K/S7jtJc9Fl7wMJ+y+o7DLLGMMU/kouYr06agTD/YkxzIQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", + "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.8.3", @@ -5184,9 +5212,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.0.tgz", - "integrity": "sha512-uOwLYt95J6U5BUgw/e9KGRw1jBq6vyoLUG4GZbPc7a9DLmES31zpqpKaFPAUoYel/TPUHgTLlKRIg8uyjv9vLg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.8.tgz", + "integrity": "sha512-KeuYJtS86Yx1bTStMCZRMwnSqXvkpiVLDCvAE9aCtl3MGixd5O749+MsfOBxV5p1N0pT5IFLCpdVNE1V2DRbzg==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -5197,22 +5225,22 @@ } }, "node_modules/@storybook/core-server": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.0.tgz", - "integrity": "sha512-vARyEBRPGyRloAp3f5p4WeCtlMmd5nR6xujATClvDxMj0hnd3lTL0EQ0z60AGyzypHp9/DwhP/mgPp1k7/dXKQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.8.tgz", + "integrity": "sha512-0yoWq5VeA7NAjX+AhrQmQWgnrbigaM3a/DTDc+VfrwwReeAvpvlMltQFhAUMPUhdvSfoup4QfzziDxSzjn1yDg==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.4.0", - "@storybook/core-client": "6.4.0", - "@storybook/core-common": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/builder-webpack4": "6.4.8", + "@storybook/core-client": "6.4.8", + "@storybook/core-common": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.0", - "@storybook/manager-webpack4": "6.4.0", - "@storybook/node-logger": "6.4.0", + "@storybook/csf-tools": "6.4.8", + "@storybook/manager-webpack4": "6.4.8", + "@storybook/node-logger": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "@types/node": "^14.0.10", "@types/node-fetch": "^2.5.7", "@types/pretty-hrtime": "^1.0.0", @@ -5231,7 +5259,7 @@ "fs-extra": "^9.0.1", "globby": "^11.0.2", "ip": "^1.1.5", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "node-fetch": "^2.6.1", "pretty-hrtime": "^1.0.3", "prompts": "^2.4.0", @@ -5250,8 +5278,8 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/builder-webpack5": "6.4.0", - "@storybook/manager-webpack5": "6.4.0", + "@storybook/builder-webpack5": "6.4.8", + "@storybook/manager-webpack5": "6.4.8", "react": "^16.8.0 || ^17.0.0", "react-dom": "^16.8.0 || ^17.0.0" }, @@ -5277,9 +5305,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.0.tgz", - "integrity": "sha512-FkLyPVkLzWLuXd3K5rqx5BZEEpOgIvMfdqjZTCWRvWO8rQcAy/p35eybyhUQx/94yeMFLZbI8RmTBmWwnGwVUQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.8.tgz", + "integrity": "sha512-VaEJs8oq7RUrTOcvZLeoLk2okHkv79fptRHnyUjWECzgL4g0YxrMEp25PAafC97b0E/CTWQH2u3jkYw9xM/GZQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", @@ -5295,7 +5323,7 @@ "fs-extra": "^9.0.1", "global": "^4.4.0", "js-string-escape": "^1.0.1", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "prettier": "^2.2.1", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" @@ -5306,20 +5334,20 @@ } }, "node_modules/@storybook/manager-webpack4": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.0.tgz", - "integrity": "sha512-dySTAt5W0hRbgH4Mldna8W2PtaTi8CwT806/T1TVCUAsX8G0EC5PxVG7AXF+J2GTyCjNj3rrrl3nkikW8HxMwg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.8.tgz", + "integrity": "sha512-PgXpQpUE8GeLJWpqbdDPbGN5SrSVuyEhbrcLI5MRn75DFF5RB1jQwq0y58tRGmrVhOfnI8T91L/WWCWe9fO+KQ==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.4.0", - "@storybook/core-client": "6.4.0", - "@storybook/core-common": "6.4.0", - "@storybook/node-logger": "6.4.0", - "@storybook/theming": "6.4.0", - "@storybook/ui": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/core-client": "6.4.8", + "@storybook/core-common": "6.4.8", + "@storybook/node-logger": "6.4.8", + "@storybook/theming": "6.4.8", + "@storybook/ui": "6.4.8", "@types/node": "^14.0.10", "@types/webpack": "^4.41.26", "babel-loader": "^8.0.0", @@ -5372,9 +5400,9 @@ } }, "node_modules/@storybook/node-logger": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.0.tgz", - "integrity": "sha512-TRon3dvTyIah3gAuQ6cbLUDlfScn0zFGr8duC3q5c6pyT9elYOvK1aPNHPQzaGKNasUBajSDJ75qWoVyCiiRsQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.8.tgz", + "integrity": "sha512-1gma7KvRXt/wsHzajf1h49r9vfV0TAnv/0OkryvV+sqtK48JV7A6kbVpBK0BtZBRqrQDfYTpCauX4VHfi7yBrQ==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -5389,9 +5417,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.0.tgz", - "integrity": "sha512-/RV0s1cG7TWdfqZIrwbZIjMnJLzHPfltsqhEtQjSzfESPGG4qNxqYIQHFB2DcPHo5kfW4W6J74dng8JXgYrDng==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.8.tgz", + "integrity": "sha512-m+bxd+s0Y3fsHjI85RaWPwH5K/HMONTihj+fzhaZUKCWUD+wU8r2CqVQLiWNzIVRrCzLbhBoGrvv6H/pkdC3cQ==", "dev": true, "dependencies": { "core-js": "^3.8.2" @@ -5402,21 +5430,21 @@ } }, "node_modules/@storybook/preview-web": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.0.tgz", - "integrity": "sha512-jpxh8ARgJthNJ+DyQuC5pFrqQhH5f4P2B6KfA6dzsJQtPk7BhhWSpd/c2upj1lvRNxwF7M8dBvd+C5jmHE6jtA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.8.tgz", + "integrity": "sha512-6Osauj03GoCIGrnuYoziRAJDV/nPtzOOZQFbylJdxeAC30gppRmMkGB1fM3FOKL0HU0iIfFIMjEFNOrOsK9qJw==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", "synchronous-promise": "^2.0.15", @@ -5434,29 +5462,29 @@ } }, "node_modules/@storybook/react": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.4.0.tgz", - "integrity": "sha512-H/aFfGo62+QcTctcgcuj0cd8yIkxiUyEtLJhzBKGc2qErtUHpPmdtyLb7c5Li4ESxx1vyHBJA3FkiYtWu2dzzw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.4.8.tgz", + "integrity": "sha512-4p6GVWGQDLNxDmyiAOpGNNcpd3g9GNfalO4oVuJ6nwAHMIBQf9LEu8suxLG0bQLR1Z5r/84mWcJHULegzuR49Q==", "dev": true, "dependencies": { "@babel/preset-flow": "^7.12.1", "@babel/preset-react": "^7.12.10", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1", - "@storybook/addons": "6.4.0", - "@storybook/core": "6.4.0", - "@storybook/core-common": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/core": "6.4.8", + "@storybook/core-common": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.0", + "@storybook/node-logger": "6.4.8", "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.253f8c1.0", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "@types/webpack-env": "^1.16.0", "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-named-asset-import": "^0.3.1", "babel-plugin-react-docgen": "^4.2.1", "core-js": "^3.8.2", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "prop-types": "^15.7.2", "react-dev-utils": "^11.0.4", "react-refresh": "^0.10.0", @@ -5607,17 +5635,17 @@ } }, "node_modules/@storybook/router": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.0.tgz", - "integrity": "sha512-qd6GisJUIf/8fjrTlzIg5MfXLm2b2u33PiHYknm9Pu2wu4FOj8A4jfwKccy9tQ1w8GcEysjF4YQseIG1RK0VTw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.8.tgz", + "integrity": "sha512-2aI8QexINPJIu2EHOirROAFh93VPv9a83hiH97PlWdVNqrsG2S8cWZN98b1Vxc+h5m80kp5rac34RSz0oQXJug==", "dev": true, "dependencies": { - "@storybook/client-logger": "6.4.0", + "@storybook/client-logger": "6.4.8", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", "history": "5.0.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "qs": "^6.10.0", "react-router": "^6.0.0", @@ -5746,19 +5774,19 @@ } }, "node_modules/@storybook/source-loader": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.0.tgz", - "integrity": "sha512-zlAXpjttXzYq0OUIErp7O2ZFkVa7JcGvk6QsHIwBsU6RNqrY+142gEGPCsSjqfFFdKjBaub/SBvROs/yctPdMQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.8.tgz", + "integrity": "sha512-bqqNMLWFiqoukgvtHEaBl891cHEayjVJ72sZrCkVaOKM5+iWwRRinTQgZARU1TKa9HbiJbKzbMRiqOAx+9sbnA==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/client-logger": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/client-logger": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "estraverse": "^5.2.0", "global": "^4.4.0", "loader-utils": "^2.0.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "prettier": "^2.2.1", "regenerator-runtime": "^0.13.7" }, @@ -5772,19 +5800,19 @@ } }, "node_modules/@storybook/store": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.0.tgz", - "integrity": "sha512-njA137FPo0AIsAZRg1JITTa7bkvj+l1o5jdpV+/nlZPuy9F3Wouupra77d4YNgoN6aLeQWdEWFaK3LXgPgzULQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.8.tgz", + "integrity": "sha512-LsZdaDnO2U0QtzgQOjw/WW9tvqTdQvTNl2WSBfenJc0aGJEM6GE1clobXu86WTAwmJauf40jeC0+zjp4i/uUeA==", "dev": true, "dependencies": { - "@storybook/addons": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7", "slash": "^3.0.0", @@ -5803,15 +5831,15 @@ } }, "node_modules/@storybook/theming": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.0.tgz", - "integrity": "sha512-h07H/crnt7IpgYm0fXiFRtvLgcxjyCRi9+QjXK+aroYjWQYFkSKh1Z8jrGsXGZ42059hPyE9GvpzbJGMVlAELA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.8.tgz", + "integrity": "sha512-2VzUJbeKsEOr+ArVW8qRS7x7JvIXexUmA1CCR+lF2Bd9raoXAqigcRCYtK9zf5kep/cJPq/cKhOrx30ioVyJpg==", "dev": true, "dependencies": { "@emotion/core": "^10.1.1", "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.27", - "@storybook/client-logger": "6.4.0", + "@storybook/client-logger": "6.4.8", "core-js": "^3.8.2", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.27", @@ -5869,21 +5897,21 @@ } }, "node_modules/@storybook/ui": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.0.tgz", - "integrity": "sha512-s+1fOHBuLektNy5bqzxwXE5oYGyKJdrS/oTCUlmgbNJPFFqRfW8OFyXl+faIOybqM4IP5Gy5xjz9in/56vgbVQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.8.tgz", + "integrity": "sha512-vB9lrT55QEiEcBm8CXeV0uue5C2j72XKZh2ZJM4o0v2b82pCe6pj/mdIoCbaOeZkOvlPjKDvPUAzjbzotkJjNA==", "dev": true, "dependencies": { "@emotion/core": "^10.1.1", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", - "@storybook/router": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", + "@storybook/router": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.2", "core-js-pure": "^3.8.2", @@ -5891,7 +5919,7 @@ "emotion-theming": "^10.0.27", "fuse.js": "^3.6.1", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "markdown-to-jsx": "^7.1.3", "memoizerific": "^1.11.3", "polished": "^4.0.5", @@ -6205,15 +6233,28 @@ "node": ">=10" } }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/@testing-library/jest-dom": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.15.1.tgz", - "integrity": "sha512-kmj8opVDRE1E4GXyLlESsQthCXK7An28dFWxhiMwD7ZUI7ZxA6sjdJRxLerD9Jd8cHX4BDc1jzXaaZKqzlUkvg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.1.tgz", + "integrity": "sha512-ajUJdfDIuTCadB79ukO+0l8O+QwN0LiSxDaYUTI4LndbbUsGi6rWU1SCexXzBA2NSjlVB9/vbkasQIL3tmPBjw==", "dev": true, "dependencies": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", + "aria-query": "^5.0.0", "chalk": "^3.0.0", "css": "^3.0.0", "css.escape": "^1.5.1", @@ -6316,9 +6357,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "version": "7.1.17", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", + "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -6672,9 +6713,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "14.17.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", - "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==" + "version": "14.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz", + "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -6786,6 +6827,7 @@ "version": "2.8.2", "resolved": "https://registry.npmjs.org/@types/react-leaflet/-/react-leaflet-2.8.2.tgz", "integrity": "sha512-Iel8Vd1bSCD38Yhiqcmm/+9hjPEdd39LFE3tBMbOytq3QAQsC3LDrbo6ifoh8JbpqPbCsQPo9Wx5OELHixEShg==", + "dev": true, "dependencies": { "@types/leaflet": "*", "@types/react": "*" @@ -6937,9 +6979,9 @@ "dev": true }, "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.1.tgz", - "integrity": "sha512-Gk9vaXfbzc5zCXI9eYE9BI5BNHEp4D3FWjgqBE/ePGYElLAP+KvxBcsdkwfIVvezs605oiyd/VrpiHe3Oeg+Aw==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", + "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", "dev": true, "dependencies": { "@types/jest": "*" @@ -8222,14 +8264,10 @@ } }, "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, "engines": { "node": ">=6.0" } @@ -9540,16 +9578,6 @@ "node": ">=8" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -10477,9 +10505,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001283", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", - "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", "dev": true, "funding": { "type": "opencollective", @@ -11245,9 +11273,9 @@ "dev": true }, "node_modules/color-string": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.7.4.tgz", - "integrity": "sha512-nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", + "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", "dev": true, "dependencies": { "color-name": "^1.0.0", @@ -11946,9 +11974,9 @@ } }, "node_modules/core-js": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.1.tgz", - "integrity": "sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", + "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", "dev": true, "hasInstallScript": true, "funding": { @@ -11957,12 +11985,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz", - "integrity": "sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.3.tgz", + "integrity": "sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA==", "dev": true, "dependencies": { - "browserslist": "^4.17.6", + "browserslist": "^4.18.1", "semver": "7.0.0" }, "funding": { @@ -11980,9 +12008,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.1.tgz", - "integrity": "sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz", + "integrity": "sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==", "dev": true, "hasInstallScript": true, "funding": { @@ -13048,9 +13076,9 @@ } }, "node_modules/date-fns": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.26.0.tgz", - "integrity": "sha512-VQI812dRi3cusdY/fhoBKvc6l2W8BPWU1FNVnFH9Nttjx4AFBRzfSVb/Eyc7jBT6e9sg1XtAGsYpBQ6c/jygbg==", + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz", + "integrity": "sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==", "engines": { "node": ">=0.11" }, @@ -13815,9 +13843,9 @@ } }, "node_modules/domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "dependencies": { "domelementtype": "^2.2.0" @@ -14003,9 +14031,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz", - "integrity": "sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg==", + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz", + "integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==", "dev": true }, "node_modules/element-resize-detector": { @@ -14843,6 +14871,19 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -15124,9 +15165,9 @@ } }, "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", "dev": true, "dependencies": { "@types/node": "*", @@ -15647,17 +15688,17 @@ "dev": true }, "node_modules/expect": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", - "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", + "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "ansi-styles": "^5.0.0", - "jest-get-type": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6" + "jest-get-type": "^27.4.0", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-regex-util": "^27.4.0" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -15674,9 +15715,9 @@ } }, "node_modules/expect/node_modules/@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -15711,9 +15752,9 @@ } }, "node_modules/expect/node_modules/jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", + "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -16135,13 +16176,6 @@ "node": ">=6" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "node_modules/filelist": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", @@ -16884,20 +16918,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -19485,9 +19505,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -20049,9 +20069,9 @@ } }, "node_modules/jest-get-type": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", - "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", + "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -20197,24 +20217,24 @@ } }, "node_modules/jest-matcher-utils": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", - "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", + "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils/node_modules/@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -20249,36 +20269,36 @@ } }, "node_modules/jest-matcher-utils/node_modules/diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", + "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils/node_modules/jest-diff": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", - "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", + "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "diff-sequences": "^27.4.0", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -20288,18 +20308,18 @@ } }, "node_modules/jest-message-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", - "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", + "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1", + "pretty-format": "^27.4.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -20308,9 +20328,9 @@ } }, "node_modules/jest-message-util/node_modules/@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -20345,12 +20365,12 @@ } }, "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -21333,16 +21353,16 @@ } }, "node_modules/karma-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", - "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.1.0.tgz", + "integrity": "sha512-uIejpnArNFQIovB6EPsKO/T4XofELdJWXcA2ADXztFlKhHbr0Ws6ba7wKTMVWsIhEs4iJxdhQkCQrkkhFJSZCw==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^4.0.3", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", "minimatch": "^3.0.4" }, "engines": { @@ -23622,9 +23642,9 @@ } }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -26001,9 +26021,9 @@ } }, "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "node_modules/postcss-values-parser": { @@ -26048,9 +26068,9 @@ } }, "node_modules/prettier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz", - "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -26701,9 +26721,9 @@ } }, "node_modules/pyright": { - "version": "1.1.181", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.181.tgz", - "integrity": "sha512-YuBEA9qwGYNeTBpUtlFKYlNmK8X3/hz/wTRkfR6Z2HDLBQSOpqmNAu/lWrzDnJopSvXwK2qNrW0zFjCE1I4dzg==", + "version": "1.1.193", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.193.tgz", + "integrity": "sha512-01hkfhK1PYKPSWbJrYgNwwlsVH+Thp1xmkKZjxVZrGFqavkJbhETlg1RcAHMnmU8Sg7G4Ry99dW6IsSGyCdzXg==", "dev": true, "bin": { "pyright": "index.js", @@ -26733,9 +26753,9 @@ } }, "node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz", + "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -27316,9 +27336,9 @@ } }, "node_modules/react-docgen-typescript": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.1.1.tgz", - "integrity": "sha512-XWe8bsYqVjxciKdpNoufaHiB7FgUHIOnVQgxUolRL3Zlof2zkdTzuQH6SU2n3Ek9kfy3O1c63ojMtNfpiuNeZQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.1.tgz", + "integrity": "sha512-ycVaidV55GOeDOKRP6PCw1i1502dElQ1KG/IInj8sOg50imG+Pmv6LY6DG2xlAF0asd8zXLcyFlWNnICKWP1LA==", "dev": true, "peerDependencies": { "typescript": ">= 4.3.x" @@ -27428,9 +27448,9 @@ } }, "node_modules/react-helmet-async": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.1.2.tgz", - "integrity": "sha512-LTTzDDkyIleT/JJ6T/uqx7Y8qi1EuPPSiJawQY/nHHz0h7SPDT6HxP1YDDQx/fzcVxCqpWEEMS3QdrSrNkJYhg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.2.tgz", + "integrity": "sha512-XgSQezeCbLfCxdZhDA3T/g27XZKnOYyOkruopTLSJj8RvFZwdXnM4djnfYaiBSDzOidDgTo1jcEozoRu/+P9UQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", @@ -27476,20 +27496,17 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/react-leaflet": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-2.8.0.tgz", - "integrity": "sha512-Y7oHtNrrlRH8muDttXf+jZ2Ga/X7jneSGi1GN8uEdeCfLProTqgG2Zoa5TfloS3ZnY20v7w+DIenMG59beFsQw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-3.1.0.tgz", + "integrity": "sha512-kdZS8NYbYFPmkQr7zSDR2gkKGFeWvkxqoqcmZEckzHL4d5c85dJ2gbbqhaPDpmWWgaRw9O29uA/77qpKmK4mTQ==", "dev": true, "dependencies": { - "@babel/runtime": "^7.12.1", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2", - "warning": "^4.0.3" + "@react-leaflet/core": "^1.0.2" }, "peerDependencies": { - "leaflet": "^1.6.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" + "leaflet": "^1.7.1", + "react": "^17.0.1", + "react-dom": "^17.0.1" } }, "node_modules/react-popper": { @@ -31441,13 +31458,13 @@ } }, "node_modules/sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "dependencies": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, @@ -31474,16 +31491,6 @@ "ms": "^2.1.1" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -32725,9 +32732,9 @@ "dev": true }, "node_modules/table": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.3.tgz", - "integrity": "sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -34017,9 +34024,9 @@ } }, "node_modules/uglify-js": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz", - "integrity": "sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==", + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", "dev": true, "optional": true, "bin": { @@ -34818,9 +34825,9 @@ } }, "node_modules/watchpack": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", - "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -34962,25 +34969,6 @@ "node": ">=0.10.0" } }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, "node_modules/watchpack-chokidar2/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -35248,6 +35236,19 @@ "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true }, + "node_modules/webdriverio/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/webdriverio/node_modules/devtools-protocol": { "version": "0.0.915197", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.915197.tgz", @@ -35757,25 +35758,6 @@ "node": ">=6" } }, - "node_modules/webpack-dev-server/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, "node_modules/webpack-dev-server/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -37309,18 +37291,18 @@ } }, "node_modules/yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" }, "engines": { "node": ">=12" @@ -37362,6 +37344,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yarn-install": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/yarn-install/-/yarn-install-1.0.0.tgz", @@ -37645,9 +37636,8 @@ "@mui/styles": "^5.0.1", "@mui/x-data-grid": "^5.0.0-beta.4", "@types/crc": "^3.4.0", - "@types/leaflet": "^1.5.17", + "@types/leaflet": "^1.7.5", "@types/rbush": "^3.0.0", - "@types/react-leaflet": "^2.5.2", "@types/shallowequal": "^1.1.1", "api-client": "*", "clsx": "^1.1.1", @@ -37659,15 +37649,17 @@ "node-vibrant": "^3.1.6", "rbush": "^3.0.1", "react-customizable-progressbar": "^1.0.3", - "react-leaflet": "^2.7.0", + "react-leaflet": "3.1.0", "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", "rmf-models": "*", "shallowequal": "^1.1.0" }, "devDependencies": { + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@jsdevtools/coverage-istanbul-loader": "^3.0.5", "@mui/material": "^5.0.4", + "@react-leaflet/core": "1.0.2", "@storybook/addon-actions": "^6.3.7", "@storybook/addon-essentials": "^6.3.7", "@storybook/addon-links": "^6.3.7", @@ -37701,7 +37693,7 @@ "puppeteer": "^10.2.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-leaflet": "^2.7.0", + "react-leaflet": "3.1.0", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "ts-loader": "^8.1.0", @@ -39310,9 +39302,9 @@ } }, "@discoveryjs/json-ext": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", - "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", "dev": true }, "@emotion/babel-plugin": { @@ -40480,13 +40472,13 @@ } }, "@mui/base": { - "version": "5.0.0-alpha.57", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.57.tgz", - "integrity": "sha512-UCJthNc4LGttoD/CxdCh8AaEu2B2uWNRW96J6PjlQ125+FEqO7+wuIGT98BNCGguVwetK/jTmo/fiHYDoW9gUA==", + "version": "5.0.0-alpha.59", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.59.tgz", + "integrity": "sha512-rPgN2FW0FAjQ9+LQ+XBsq3DFcuiiMFhf8uoLJAWnnzft27IJvJqbrhfpCZ68G6l+umJLbbl5RIIbpt8ALZDDNQ==", "requires": { "@babel/runtime": "^7.16.3", "@emotion/is-prop-valid": "^1.1.1", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "@popperjs/core": "^2.4.4", "clsx": "^1.1.1", "prop-types": "^15.7.2", @@ -40494,44 +40486,44 @@ } }, "@mui/icons-material": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.2.0.tgz", - "integrity": "sha512-NvyrVaGKpP4R1yFw8BCnE0QcsQ67RtpgxPr4FtH8q60MDYPuPVczLOn5Ash5CFavoDWur/NfM/4DpT54yf3InA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.2.1.tgz", + "integrity": "sha512-AFOn0bbaGd1dw8oYE40dv3I+QnfS5xP5HSUiUGsvb1ntP0cM1kW4VqQp7BtL7DbOpEsw1ZTbw67tDqSCH7utNg==", "requires": { "@babel/runtime": "^7.16.3" } }, "@mui/lab": { - "version": "5.0.0-alpha.57", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.57.tgz", - "integrity": "sha512-IkSACzrEhTWhj1Zye4E5/qif29g6wRxLs7/7UnmisSY7tnZMnq6QS2td/0aiYUNj6f7kdpGQXZNkukgjHSG2fw==", + "version": "5.0.0-alpha.59", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.59.tgz", + "integrity": "sha512-B+7EkbM+NRuUFFPzG2lqbyI73FM3W19RFkrWJdNZ+gd6C+NTdHdVS9UxSZm54PmSFEnd77wAWKdrIkhcFzEgZQ==", "requires": { "@babel/runtime": "^7.16.3", "@date-io/date-fns": "^2.11.0", "@date-io/dayjs": "^2.11.0", "@date-io/luxon": "^2.11.1", "@date-io/moment": "^2.11.0", - "@mui/base": "5.0.0-alpha.57", - "@mui/system": "^5.2.1", - "@mui/utils": "^5.2.1", + "@mui/base": "5.0.0-alpha.59", + "@mui/system": "^5.2.3", + "@mui/utils": "^5.2.3", "clsx": "^1.1.1", "prop-types": "^15.7.2", "react-is": "^17.0.2", "react-transition-group": "^4.4.2", - "rifm": "^0.12.0" + "rifm": "^0.12.1" } }, "@mui/material": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.2.1.tgz", - "integrity": "sha512-y38+e1Qf95rVQ4lK8knYj4o1kB/WwJU0f/lMNmzlaenqGpyhd1M/e3BNwuYEDOLSPWUVeP2LvX2mL/IhKytA9A==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.2.3.tgz", + "integrity": "sha512-qhHAVpkQh77xiic38TIDMrKGafRRy9WT16uvexvE2UdyI259YP4HvFamYz3prSNnZi5UozwKpH/QGnv6+JT7/g==", "dev": true, "requires": { "@babel/runtime": "^7.16.3", - "@mui/base": "5.0.0-alpha.57", - "@mui/system": "^5.2.1", + "@mui/base": "5.0.0-alpha.59", + "@mui/system": "^5.2.3", "@mui/types": "^7.1.0", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "@types/react-transition-group": "^4.4.4", "clsx": "^1.1.1", "csstype": "^3.0.10", @@ -40542,12 +40534,12 @@ } }, "@mui/private-theming": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.2.1.tgz", - "integrity": "sha512-+OfgeZzEjqwd7Vo1kYISJyLHM+3yUO8UoKhLMtZ1DAlZlqovN6jetPtT6o4BnHEAsc3YC3DET+KicwkRtuvxbw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.2.3.tgz", + "integrity": "sha512-Lc1Cmu8lSsYZiXADi9PBb17Ho82ZbseHQujUFAcp6bCJ5x/d+87JYCIpCBMagPu/isRlFCwbziuXPmz7WOzJPQ==", "requires": { "@babel/runtime": "^7.16.3", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "prop-types": "^15.7.2" } }, @@ -40562,15 +40554,15 @@ } }, "@mui/styles": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.2.1.tgz", - "integrity": "sha512-0u9YF9HsirqAya1SsGtaP6jt3z32UA1sKKiFVXNI8ZGPIFsmcuUCsTWuyjYhglfRre3exedrxauh4RDZqcEGOA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.2.3.tgz", + "integrity": "sha512-Art4qjlEI9H2h34mLL8s+CE9nWZWZbuJLbNpievaIM6DGuayz3DYkJHcH5mXJYFPhTNoe9IQYbpyKofjE0YVag==", "requires": { "@babel/runtime": "^7.16.3", "@emotion/hash": "^0.8.0", - "@mui/private-theming": "^5.2.1", + "@mui/private-theming": "^5.2.3", "@mui/types": "^7.1.0", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "clsx": "^1.1.1", "csstype": "^3.0.10", "hoist-non-react-statics": "^3.3.2", @@ -40586,15 +40578,15 @@ } }, "@mui/system": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.2.1.tgz", - "integrity": "sha512-C1mva6Uyk2bGCaa/FiaFseSt2iJymxgA8KnJJyKAz8ZQZzuetUV8JbY1qtV9CG1VlJb+Ldm7pc6Px8t59lGfZw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.2.3.tgz", + "integrity": "sha512-YvkjmqgOruZgr+IkueRns99gl3MmnNs8BhnlZosYMLzKz/1lY0JqVBFqUh4sGVbD0UEKFwdk8H31itG5OIPChA==", "requires": { "@babel/runtime": "^7.16.3", - "@mui/private-theming": "^5.2.1", + "@mui/private-theming": "^5.2.3", "@mui/styled-engine": "^5.2.0", "@mui/types": "^7.1.0", - "@mui/utils": "^5.2.1", + "@mui/utils": "^5.2.3", "clsx": "^1.1.1", "csstype": "^3.0.10", "prop-types": "^15.7.2" @@ -40606,9 +40598,9 @@ "integrity": "sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ==" }, "@mui/utils": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.2.1.tgz", - "integrity": "sha512-JQH5ucBxBrubntrN2mvDcwkXlWaHuZGz5goxg9ixnZXRhlZ9Ed5knfsafrX4OFyXNT48DiZXaTRAEkqjyfCExQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.2.3.tgz", + "integrity": "sha512-sQujlajIS0zQKcGIS6tZR0L1R+ib26B6UtuEn+cZqwKHsPo3feuS+SkdscYBdcCdMbrZs4gj8WIJHl2z6tbSzQ==", "requires": { "@babel/runtime": "^7.16.3", "@types/prop-types": "^15.7.4", @@ -40618,14 +40610,14 @@ } }, "@mui/x-data-grid": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.0.1.tgz", - "integrity": "sha512-F1IhkxNiI7A/VoRT0vTs7PP4E8E/K6e5WLrjXFzxeWmvOBaAfmwvf3Wq8o/8ouQ9MFy92M/lAgviOMp1gduOtw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-5.1.0.tgz", + "integrity": "sha512-Pj6/FM+fmGjUYqQ26CC0fRiiLENWMfTyp8nOjEm95eqOPbyFM1BMLsZrCU78TR+jUMsE7nc2Y4lYkWlAPcvIgQ==", "requires": { - "@mui/utils": "^5.1.0", + "@mui/utils": "^5.1.1", "clsx": "^1.1.1", "prop-types": "^15.7.2", - "reselect": "^4.1.1" + "reselect": "^4.1.4" } }, "@nodelib/fs.scandir": { @@ -40726,6 +40718,12 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.0.tgz", "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==" }, + "@react-leaflet/core": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-1.0.2.tgz", + "integrity": "sha512-QbleYZTMcgujAEyWGki8Lx6cXQqWkNtQlqf5c7NImlIp8bKW66bFpez/6EVatW7+p9WKBOEOVci/9W7WW70EZg==", + "dev": true + }, "@rollup/plugin-node-resolve": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", @@ -40799,21 +40797,21 @@ } }, "@storybook/addon-actions": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.0.tgz", - "integrity": "sha512-gpZI7YL04LZMNIEVAJTX0Uh97Bvhcr1UPJApJ60iudrIvqIvu7VDqqnq6BU0Isal6PVygIdl4sJ2fJCfQfGFPg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.8.tgz", + "integrity": "sha512-waubdXqq795vr4hNX2oMiT11qlv5YcZt/EUEflITpm9GELFmetVuOLieAMU3W0r6T27lGo1iQZ/ILTMGa8i9yw==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "polished": "^4.0.5", "prop-types": "^15.7.2", "react-inspector": "^5.1.0", @@ -40825,18 +40823,18 @@ } }, "@storybook/addon-backgrounds": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.0.tgz", - "integrity": "sha512-If1dgHCVNInWB9xlKRUAdad0fEQbiyponxMN1FkdFRESMWdf3bgGyUcFfkP0UqIpHi0+2Fk4LFzmPHH3k5AdDw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.8.tgz", + "integrity": "sha512-5SQs1N5/OKGhF82RGdQd1XotL3eofInBt53KGgFsJ2SyFIHGZ1hR1BziexSmHMYXS6AGJR+JuDtHSz93sOnD3g==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "memoizerific": "^1.11.3", @@ -40846,29 +40844,29 @@ } }, "@storybook/addon-controls": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.0.tgz", - "integrity": "sha512-beP6YSsBqpH9nuOv3hRRiBXqyLKdKhqn1M4bylRAzxsh2CGROTn6TAK5kvuEE+HCzz91C8P3baDmrElKA+xMvw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.8.tgz", + "integrity": "sha512-aBsOEL1Oaukk9c4LzCJZJARIqJ1/VuErjfOnKs78Bd7osxSy0HmHTMNfJCSHzsHz7DTG+fZzq/4KF+EOzqT1pw==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-common": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-common": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.0", - "@storybook/store": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/node-logger": "6.4.8", + "@storybook/store": "6.4.8", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "ts-dedent": "^2.0.0" } }, "@storybook/addon-docs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.0.tgz", - "integrity": "sha512-4F/NTF0G3QIW5qvSfAl6pc3k7dAH74VY98lyvnYwfwpMDjNNM4tE06aXl6etVkavLoHmBEFm30Y116wuk6fj4w==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.8.tgz", + "integrity": "sha512-rmItZfocVP45zOEiUJjXXXC9sKFBQs5jNacEmDwlVFtUh5BbM/oX5G5c/HPJ7GgxIsIL6QCaxqrBjK97UuIdLQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -40880,21 +40878,21 @@ "@mdx-js/loader": "^1.6.22", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/builder-webpack4": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/builder-webpack4": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.0", - "@storybook/node-logger": "6.4.0", - "@storybook/postinstall": "6.4.0", - "@storybook/preview-web": "6.4.0", - "@storybook/source-loader": "6.4.0", - "@storybook/store": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/csf-tools": "6.4.8", + "@storybook/node-logger": "6.4.8", + "@storybook/postinstall": "6.4.8", + "@storybook/preview-web": "6.4.8", + "@storybook/source-loader": "6.4.8", + "@storybook/store": "6.4.8", + "@storybook/theming": "6.4.8", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", @@ -40906,7 +40904,7 @@ "html-tags": "^3.1.0", "js-string-escape": "^1.0.1", "loader-utils": "^2.0.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "nanoid": "^3.1.23", "p-limit": "^3.1.0", "prettier": "^2.2.1", @@ -40920,38 +40918,38 @@ } }, "@storybook/addon-essentials": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.0.tgz", - "integrity": "sha512-i3nvP9xQ9sNDQSdHA3zurCN04wDAHS4U5jtMyPuYjNUYmr5uvwrnXMGEwnJIZpOWwcrkJelI0hUyPK1HHyHnoQ==", - "dev": true, - "requires": { - "@storybook/addon-actions": "6.4.0", - "@storybook/addon-backgrounds": "6.4.0", - "@storybook/addon-controls": "6.4.0", - "@storybook/addon-docs": "6.4.0", - "@storybook/addon-measure": "6.4.0", - "@storybook/addon-outline": "6.4.0", - "@storybook/addon-toolbars": "6.4.0", - "@storybook/addon-viewport": "6.4.0", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/node-logger": "6.4.0", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.8.tgz", + "integrity": "sha512-S2APnFilRG2N+zaRvltbzgyRUxphlulPcWZVkHD7S9HAQ7T/igUV9+RfFVvSKtP5Xa9n35rfTpuIRcTZFlMpbg==", + "dev": true, + "requires": { + "@storybook/addon-actions": "6.4.8", + "@storybook/addon-backgrounds": "6.4.8", + "@storybook/addon-controls": "6.4.8", + "@storybook/addon-docs": "6.4.8", + "@storybook/addon-measure": "6.4.8", + "@storybook/addon-outline": "6.4.8", + "@storybook/addon-toolbars": "6.4.8", + "@storybook/addon-viewport": "6.4.8", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/node-logger": "6.4.8", "core-js": "^3.8.2", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" } }, "@storybook/addon-links": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.0.tgz", - "integrity": "sha512-X/AZFWiF8M2ZCegPJSXLevE+QawAKQQPatiFTZ4AZ3k/Bct0C2Z3B4kvCwzv5O8ckVjNMqmswS0PpyDqymNp6Q==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.8.tgz", + "integrity": "sha512-fb1oRNBwht48aU4rVN6qUYbUmh6Bqadvr1Mx0Az5q9NX2rtNBfJFLAWIme/zCnhBD0+yTA4c7njGhlWMmnjMAQ==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.0", + "@storybook/router": "6.4.8", "@types/qs": "^6.9.5", "core-js": "^3.8.2", "global": "^4.4.0", @@ -40962,32 +40960,32 @@ } }, "@storybook/addon-measure": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.0.tgz", - "integrity": "sha512-loB032z4+QatMowE6p2qlzfExgHp2vWUUrilD9cdr+UtKQA/F6S04z/+qxJywyIzUIjmvhjWK4NKa9F5+c7axA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.8.tgz", + "integrity": "sha512-eRpjcqlJfSl+2rOZdm4LR5yKpPjW1MoWfTtmPYIE7qOf/ZTx+Pq0lJWmjz91SxJ1qG2kZzfXX/FbVJHIDZOhrw==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "global": "^4.4.0" } }, "@storybook/addon-outline": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.0.tgz", - "integrity": "sha512-yCjgAetTpIXGAUUoLww5phDSwobQAC9gVftzqZor9cdOMEeoA6Ig+0OFwN+IWdrDHp7akrlPO3gwnAZcvtyZvA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.8.tgz", + "integrity": "sha512-V9EuCU8ixSfZ1W0qfou3nM0jGmfiUtZ+WY2ot1jOxj0+thWpVDyQuHUiYLIS99qVruq0yOSSyCjXGhCITKv8YQ==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -40996,31 +40994,31 @@ } }, "@storybook/addon-toolbars": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.0.tgz", - "integrity": "sha512-a2LTp3I5ITgT1lBBTI/PkBwWGgPlwQmMQa5xYmb9j56/9cys1bXn6NNHbreCStVK3XhEZMDgp0pokmgyOFqJTg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.8.tgz", + "integrity": "sha512-10UQFLQjCfGisE/qHIgUXctsuRfMm440EFiQea+JfsryGdrnZI+0Bhgsrob8DuyZBClns8tx6ev1gsFqLGZlcQ==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "regenerator-runtime": "^0.13.7" } }, "@storybook/addon-viewport": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.0.tgz", - "integrity": "sha512-HU5FOWK+S2GSvfuFT284wbdNsIDXyXeg/t4IbMrZLRmehRKNm66m8vEQqCzHnUhOvud8T0zCsfVx57rYX4tyJA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.8.tgz", + "integrity": "sha512-jx4C3GSIgYpyjv3fGnofKB1V3fbzpekg8gB1JMR9P7BvvU/mXMjVtUEXal1A+3t5LQa4xfNf0Fqg1VdQ+a73jQ==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "memoizerific": "^1.11.3", @@ -41029,18 +41027,18 @@ } }, "@storybook/addons": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.0.tgz", - "integrity": "sha512-57IaMaG3FBK+SC8k/6i1GvLUFtNGfSISEMTJUd5qZszXj0Y5NhhBOTgz0Bb5l4zJJ6kHwP0eCcWi0ulV7nVsqw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.8.tgz", + "integrity": "sha512-/lgKj95dEyW8xIrifP4IcK7P3iFGUsWwbNYPWUTpyXNvgNHT9ZS+bVOxwL5I5msFQ11dbmBncTZFxGajsL83HA==", "dev": true, "requires": { - "@storybook/api": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/api": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.0", - "@storybook/theming": "6.4.0", + "@storybook/router": "6.4.8", + "@storybook/theming": "6.4.8", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -41048,22 +41046,22 @@ } }, "@storybook/api": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.0.tgz", - "integrity": "sha512-7/+eHMsQOf0DoQWR7FVYRzLK2JoG+q5RytW9AgpTOJXELONC9/ewKSQdN3X6/WxNc+a9ycxWvTJPPR5m5jMb3A==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.8.tgz", + "integrity": "sha512-kZZqKXxF0/TiKHOi93aRg/Uq9lrHxhS8u0DG1SvxqUCKMXVzT7sACHWAgu++j82jFWuK6loW3BoYAXMKaMcz3A==", "dev": true, "requires": { - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.0", + "@storybook/router": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7", "store2": "^2.12.0", @@ -41073,9 +41071,9 @@ } }, "@storybook/builder-webpack4": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.0.tgz", - "integrity": "sha512-nbjt4xMAcTuduOy3EU2XzetihAleO/lAAzacG175UbqGj01jrxZHLSDhQFMOcU1GSsrGnIALyYHB2Kilj3V7ww==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.8.tgz", + "integrity": "sha512-CagS+xW22SGpFrb7AnTs+KoGJoms979oBbpuUihFbVIZ3i6JOoYlGB3fhpyvy2c3QPF8touvcOxeGXF+sEJDUw==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -41099,22 +41097,22 @@ "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-common": "6.4.0", - "@storybook/core-events": "6.4.0", - "@storybook/node-logger": "6.4.0", - "@storybook/preview-web": "6.4.0", - "@storybook/router": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-common": "6.4.8", + "@storybook/core-events": "6.4.8", + "@storybook/node-logger": "6.4.8", + "@storybook/preview-web": "6.4.8", + "@storybook/router": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.0", - "@storybook/theming": "6.4.0", - "@storybook/ui": "6.4.0", + "@storybook/store": "6.4.8", + "@storybook/theming": "6.4.8", + "@storybook/ui": "6.4.8", "@types/node": "^14.0.10", "@types/webpack": "^4.41.26", "autoprefixer": "^9.8.6", @@ -41179,14 +41177,14 @@ } }, "@storybook/channel-postmessage": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.0.tgz", - "integrity": "sha512-UPjUbkDg3UFnr2PZ7ONRMqDubJIXrqvWV96oh+KTdTuhm7Cm8r6Xu4F9CHvN3hqb3K304ODcYpSmW2TjdT446g==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.8.tgz", + "integrity": "sha512-ju+u0636Ewg3lb1Bn2iqvXUmwhdY27ybRvkAOht8/svx0XJD4pswSNR0aAIK4MIS9ZKoqBJ0VnJB5pDE5uS3Qw==", "dev": true, "requires": { - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -41194,22 +41192,22 @@ } }, "@storybook/channel-websocket": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.0.tgz", - "integrity": "sha512-6ziGckd4PZ8vRxS5QWQ8wCsHVvKH2QQCOnLwMiE6vFdbsUw3ch0ZKSBEHi4soyxhRd372UenN93aLsdIUGSrVw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.8.tgz", + "integrity": "sha512-3Xvf1snPxpIGKLVZu6yTotXwOEoAaWLt7me32cggOTXuM8u+T7rc1N+fETHW+q+onENBWPx2sMxPpiSTSjhnKA==", "dev": true, "requires": { - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", "core-js": "^3.8.2", "global": "^4.4.0", "telejson": "^5.3.2" } }, "@storybook/channels": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.0.tgz", - "integrity": "sha512-wJMQnR6YoDzU30Nb2ow4CveG5uatJOQIsNm+ZZYluJuYPqNc+aZCQWXT0yjx5/iYlfZAB0Bv8sLm9nc2p3dzeA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.8.tgz", + "integrity": "sha512-WnEuOgS7Z/K4/pm6h/3f3P2+dxEeI3Xmk+zDCgNmY/WbsqiexhFfvjneOlpIe2gJNfjCZDjTOy7u/+r8vj0nhA==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -41218,24 +41216,24 @@ } }, "@storybook/client-api": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.0.tgz", - "integrity": "sha512-Z0vzJAJpHhkDBA+gSO6ZlFNim/UJnVSC8Wjtogin20NSy8ZsSrilxjrCG1vVpONNqXZXNYgptoGZU3Hr51/JUA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.8.tgz", + "integrity": "sha512-JhfYOVmNw/6li8g9MBV4L439Wb0OexZ102Nqxqps7x8lm8Lt0vuydhN8TdV79uDwm2acquvQcXuwgT0/ABBItA==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", @@ -41246,9 +41244,9 @@ } }, "@storybook/client-logger": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.0.tgz", - "integrity": "sha512-SFO/JhQeoXl57LMwCp0HsxkgDjU2TLv+7S7s8UJI3nmdAcrPBhJ+RAwI8IoB/AozQMvSVb2fPiV1ljoSfSZLAg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.8.tgz", + "integrity": "sha512-JjxDCFyGQiUtJAotDy/Nv/tnCG4TpqV4l8FxIH97AVM8/2sSE3TbUzfEMkI/tAlUa0o6WarniKS8xxyDjZJaDA==", "dev": true, "requires": { "core-js": "^3.8.2", @@ -41256,15 +41254,15 @@ } }, "@storybook/components": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.0.tgz", - "integrity": "sha512-IgmekBeBVHbYnG7aIEScHShoKIz2X/uY7In8njfO0Exj9Tw6n/yB1UVm34ABTkiKW+ApF/acO0BPXuv/Cuseug==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.8.tgz", + "integrity": "sha512-nNEv+jNHTiKTYIjzqpOSr6L4eRTHx3BCiFCVnOpRiPVh4GQ5edj9PrJTdlmNS6Czyexoc/52v/NoyGc13tP+mQ==", "dev": true, "requires": { "@popperjs/core": "^2.6.0", - "@storybook/client-logger": "6.4.0", + "@storybook/client-logger": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "@types/color-convert": "^2.0.0", "@types/overlayscrollbars": "^1.12.0", "@types/react-syntax-highlighter": "11.0.5", @@ -41272,7 +41270,7 @@ "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "markdown-to-jsx": "^7.1.3", "memoizerific": "^1.11.3", "overlayscrollbars": "^1.13.1", @@ -41288,36 +41286,36 @@ } }, "@storybook/core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.0.tgz", - "integrity": "sha512-kRknuiLoYJHAocfTwgeHCVSiIGskay24wDoM2WFeyilIR8+MUaW2CkJg2KUArSqPycKjyIvdAjXpx+0Sa+J6+g==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.8.tgz", + "integrity": "sha512-WlR6Ey6x+bssld7BpSEgJ/An5tYekJZ4suyK6XZJ2VzwA9M0ICTlvu72xuFBzjHvElQq3rNW4PMmebK1vmLwpw==", "dev": true, "requires": { - "@storybook/core-client": "6.4.0", - "@storybook/core-server": "6.4.0" + "@storybook/core-client": "6.4.8", + "@storybook/core-server": "6.4.8" } }, "@storybook/core-client": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.0.tgz", - "integrity": "sha512-iZZMpKn0Smi8/v3DT6ZnKagG4vSW2TkldqoU0h91COFgWL4s+Oiak0x6Pr/OBhupTpChjwRtFLO0VYcvvaRmeQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.8.tgz", + "integrity": "sha512-TmO9Do0RKeV1C9l5VW95ch2WXCZSuKKAfZieTL6e6XxRFxP4lkrKQgDRX3CO9t2u/2rrHR48CnALtAEuvyEhdA==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/channel-websocket": "6.4.0", - "@storybook/client-api": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/channel-websocket": "6.4.8", + "@storybook/client-api": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/preview-web": "6.4.0", - "@storybook/store": "6.4.0", - "@storybook/ui": "6.4.0", + "@storybook/preview-web": "6.4.8", + "@storybook/store": "6.4.8", + "@storybook/ui": "6.4.8", "airbnb-js-shims": "^2.2.1", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0", @@ -41326,9 +41324,9 @@ } }, "@storybook/core-common": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.0.tgz", - "integrity": "sha512-Zs3OcJ4J3RwWBcpoaTJAEQHQJ75EP8iETstg9DrEwLJ3ct2GYpux58aP00P4UiVMZ0I6gayHvfHOvq/zG2orLQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.8.tgz", + "integrity": "sha512-0JVVtSLSCYZ00eHNbX2qOc5IHE5tihiq90rAPQ/vUZjA/cU+4s4CJLxi2O8A94IfUi1gqiyGoZTWotDJo7HfZQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -41352,7 +41350,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.4.0", + "@storybook/node-logger": "6.4.8", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10", "@types/pretty-hrtime": "^1.0.0", @@ -41420,9 +41418,9 @@ } }, "fork-ts-checker-webpack-plugin": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.4.2.tgz", - "integrity": "sha512-EqtzzRdx2mldr0KEydSN9jaNrf419gMpwkloumG6K/S7jtJc9Fl7wMJ+y+o7DLLGMMU/kouYr06agTD/YkxzIQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", + "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", @@ -41484,31 +41482,31 @@ } }, "@storybook/core-events": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.0.tgz", - "integrity": "sha512-uOwLYt95J6U5BUgw/e9KGRw1jBq6vyoLUG4GZbPc7a9DLmES31zpqpKaFPAUoYel/TPUHgTLlKRIg8uyjv9vLg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.8.tgz", + "integrity": "sha512-KeuYJtS86Yx1bTStMCZRMwnSqXvkpiVLDCvAE9aCtl3MGixd5O749+MsfOBxV5p1N0pT5IFLCpdVNE1V2DRbzg==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/core-server": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.0.tgz", - "integrity": "sha512-vARyEBRPGyRloAp3f5p4WeCtlMmd5nR6xujATClvDxMj0hnd3lTL0EQ0z60AGyzypHp9/DwhP/mgPp1k7/dXKQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.8.tgz", + "integrity": "sha512-0yoWq5VeA7NAjX+AhrQmQWgnrbigaM3a/DTDc+VfrwwReeAvpvlMltQFhAUMPUhdvSfoup4QfzziDxSzjn1yDg==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.4.0", - "@storybook/core-client": "6.4.0", - "@storybook/core-common": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/builder-webpack4": "6.4.8", + "@storybook/core-client": "6.4.8", + "@storybook/core-common": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.0", - "@storybook/manager-webpack4": "6.4.0", - "@storybook/node-logger": "6.4.0", + "@storybook/csf-tools": "6.4.8", + "@storybook/manager-webpack4": "6.4.8", + "@storybook/node-logger": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "@types/node": "^14.0.10", "@types/node-fetch": "^2.5.7", "@types/pretty-hrtime": "^1.0.0", @@ -41527,7 +41525,7 @@ "fs-extra": "^9.0.1", "globby": "^11.0.2", "ip": "^1.1.5", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "node-fetch": "^2.6.1", "pretty-hrtime": "^1.0.3", "prompts": "^2.4.0", @@ -41552,9 +41550,9 @@ } }, "@storybook/csf-tools": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.0.tgz", - "integrity": "sha512-FkLyPVkLzWLuXd3K5rqx5BZEEpOgIvMfdqjZTCWRvWO8rQcAy/p35eybyhUQx/94yeMFLZbI8RmTBmWwnGwVUQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.8.tgz", + "integrity": "sha512-VaEJs8oq7RUrTOcvZLeoLk2okHkv79fptRHnyUjWECzgL4g0YxrMEp25PAafC97b0E/CTWQH2u3jkYw9xM/GZQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", @@ -41570,27 +41568,27 @@ "fs-extra": "^9.0.1", "global": "^4.4.0", "js-string-escape": "^1.0.1", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "prettier": "^2.2.1", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" } }, "@storybook/manager-webpack4": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.0.tgz", - "integrity": "sha512-dySTAt5W0hRbgH4Mldna8W2PtaTi8CwT806/T1TVCUAsX8G0EC5PxVG7AXF+J2GTyCjNj3rrrl3nkikW8HxMwg==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.8.tgz", + "integrity": "sha512-PgXpQpUE8GeLJWpqbdDPbGN5SrSVuyEhbrcLI5MRn75DFF5RB1jQwq0y58tRGmrVhOfnI8T91L/WWCWe9fO+KQ==", "dev": true, "requires": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.4.0", - "@storybook/core-client": "6.4.0", - "@storybook/core-common": "6.4.0", - "@storybook/node-logger": "6.4.0", - "@storybook/theming": "6.4.0", - "@storybook/ui": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/core-client": "6.4.8", + "@storybook/core-common": "6.4.8", + "@storybook/node-logger": "6.4.8", + "@storybook/theming": "6.4.8", + "@storybook/ui": "6.4.8", "@types/node": "^14.0.10", "@types/webpack": "^4.41.26", "babel-loader": "^8.0.0", @@ -41629,9 +41627,9 @@ } }, "@storybook/node-logger": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.0.tgz", - "integrity": "sha512-TRon3dvTyIah3gAuQ6cbLUDlfScn0zFGr8duC3q5c6pyT9elYOvK1aPNHPQzaGKNasUBajSDJ75qWoVyCiiRsQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.8.tgz", + "integrity": "sha512-1gma7KvRXt/wsHzajf1h49r9vfV0TAnv/0OkryvV+sqtK48JV7A6kbVpBK0BtZBRqrQDfYTpCauX4VHfi7yBrQ==", "dev": true, "requires": { "@types/npmlog": "^4.1.2", @@ -41642,30 +41640,30 @@ } }, "@storybook/postinstall": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.0.tgz", - "integrity": "sha512-/RV0s1cG7TWdfqZIrwbZIjMnJLzHPfltsqhEtQjSzfESPGG4qNxqYIQHFB2DcPHo5kfW4W6J74dng8JXgYrDng==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.8.tgz", + "integrity": "sha512-m+bxd+s0Y3fsHjI85RaWPwH5K/HMONTihj+fzhaZUKCWUD+wU8r2CqVQLiWNzIVRrCzLbhBoGrvv6H/pkdC3cQ==", "dev": true, "requires": { "core-js": "^3.8.2" } }, "@storybook/preview-web": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.0.tgz", - "integrity": "sha512-jpxh8ARgJthNJ+DyQuC5pFrqQhH5f4P2B6KfA6dzsJQtPk7BhhWSpd/c2upj1lvRNxwF7M8dBvd+C5jmHE6jtA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.8.tgz", + "integrity": "sha512-6Osauj03GoCIGrnuYoziRAJDV/nPtzOOZQFbylJdxeAC30gppRmMkGB1fM3FOKL0HU0iIfFIMjEFNOrOsK9qJw==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/channel-postmessage": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/channel-postmessage": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "qs": "^6.10.0", "regenerator-runtime": "^0.13.7", "synchronous-promise": "^2.0.15", @@ -41675,29 +41673,29 @@ } }, "@storybook/react": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.4.0.tgz", - "integrity": "sha512-H/aFfGo62+QcTctcgcuj0cd8yIkxiUyEtLJhzBKGc2qErtUHpPmdtyLb7c5Li4ESxx1vyHBJA3FkiYtWu2dzzw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.4.8.tgz", + "integrity": "sha512-4p6GVWGQDLNxDmyiAOpGNNcpd3g9GNfalO4oVuJ6nwAHMIBQf9LEu8suxLG0bQLR1Z5r/84mWcJHULegzuR49Q==", "dev": true, "requires": { "@babel/preset-flow": "^7.12.1", "@babel/preset-react": "^7.12.10", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1", - "@storybook/addons": "6.4.0", - "@storybook/core": "6.4.0", - "@storybook/core-common": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/core": "6.4.8", + "@storybook/core-common": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.0", + "@storybook/node-logger": "6.4.8", "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.253f8c1.0", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.0", + "@storybook/store": "6.4.8", "@types/webpack-env": "^1.16.0", "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-named-asset-import": "^0.3.1", "babel-plugin-react-docgen": "^4.2.1", "core-js": "^3.8.2", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "prop-types": "^15.7.2", "react-dev-utils": "^11.0.4", "react-refresh": "^0.10.0", @@ -41791,17 +41789,17 @@ } }, "@storybook/router": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.0.tgz", - "integrity": "sha512-qd6GisJUIf/8fjrTlzIg5MfXLm2b2u33PiHYknm9Pu2wu4FOj8A4jfwKccy9tQ1w8GcEysjF4YQseIG1RK0VTw==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.8.tgz", + "integrity": "sha512-2aI8QexINPJIu2EHOirROAFh93VPv9a83hiH97PlWdVNqrsG2S8cWZN98b1Vxc+h5m80kp5rac34RSz0oQXJug==", "dev": true, "requires": { - "@storybook/client-logger": "6.4.0", + "@storybook/client-logger": "6.4.8", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", "history": "5.0.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "qs": "^6.10.0", "react-router": "^6.0.0", @@ -41902,37 +41900,37 @@ } }, "@storybook/source-loader": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.0.tgz", - "integrity": "sha512-zlAXpjttXzYq0OUIErp7O2ZFkVa7JcGvk6QsHIwBsU6RNqrY+142gEGPCsSjqfFFdKjBaub/SBvROs/yctPdMQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.8.tgz", + "integrity": "sha512-bqqNMLWFiqoukgvtHEaBl891cHEayjVJ72sZrCkVaOKM5+iWwRRinTQgZARU1TKa9HbiJbKzbMRiqOAx+9sbnA==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/client-logger": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/client-logger": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "estraverse": "^5.2.0", "global": "^4.4.0", "loader-utils": "^2.0.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "prettier": "^2.2.1", "regenerator-runtime": "^0.13.7" } }, "@storybook/store": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.0.tgz", - "integrity": "sha512-njA137FPo0AIsAZRg1JITTa7bkvj+l1o5jdpV+/nlZPuy9F3Wouupra77d4YNgoN6aLeQWdEWFaK3LXgPgzULQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.8.tgz", + "integrity": "sha512-LsZdaDnO2U0QtzgQOjw/WW9tvqTdQvTNl2WSBfenJc0aGJEM6GE1clobXu86WTAwmJauf40jeC0+zjp4i/uUeA==", "dev": true, "requires": { - "@storybook/addons": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/core-events": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/core-events": "6.4.8", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "memoizerific": "^1.11.3", "regenerator-runtime": "^0.13.7", "slash": "^3.0.0", @@ -41943,15 +41941,15 @@ } }, "@storybook/theming": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.0.tgz", - "integrity": "sha512-h07H/crnt7IpgYm0fXiFRtvLgcxjyCRi9+QjXK+aroYjWQYFkSKh1Z8jrGsXGZ42059hPyE9GvpzbJGMVlAELA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.8.tgz", + "integrity": "sha512-2VzUJbeKsEOr+ArVW8qRS7x7JvIXexUmA1CCR+lF2Bd9raoXAqigcRCYtK9zf5kep/cJPq/cKhOrx30ioVyJpg==", "dev": true, "requires": { "@emotion/core": "^10.1.1", "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.27", - "@storybook/client-logger": "6.4.0", + "@storybook/client-logger": "6.4.8", "core-js": "^3.8.2", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.27", @@ -41996,21 +41994,21 @@ } }, "@storybook/ui": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.0.tgz", - "integrity": "sha512-s+1fOHBuLektNy5bqzxwXE5oYGyKJdrS/oTCUlmgbNJPFFqRfW8OFyXl+faIOybqM4IP5Gy5xjz9in/56vgbVQ==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.8.tgz", + "integrity": "sha512-vB9lrT55QEiEcBm8CXeV0uue5C2j72XKZh2ZJM4o0v2b82pCe6pj/mdIoCbaOeZkOvlPjKDvPUAzjbzotkJjNA==", "dev": true, "requires": { "@emotion/core": "^10.1.1", - "@storybook/addons": "6.4.0", - "@storybook/api": "6.4.0", - "@storybook/channels": "6.4.0", - "@storybook/client-logger": "6.4.0", - "@storybook/components": "6.4.0", - "@storybook/core-events": "6.4.0", - "@storybook/router": "6.4.0", + "@storybook/addons": "6.4.8", + "@storybook/api": "6.4.8", + "@storybook/channels": "6.4.8", + "@storybook/client-logger": "6.4.8", + "@storybook/components": "6.4.8", + "@storybook/core-events": "6.4.8", + "@storybook/router": "6.4.8", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.0", + "@storybook/theming": "6.4.8", "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.2", "core-js-pure": "^3.8.2", @@ -42018,7 +42016,7 @@ "emotion-theming": "^10.0.27", "fuse.js": "^3.6.1", "global": "^4.4.0", - "lodash": "^4.17.20", + "lodash": "^4.17.21", "markdown-to-jsx": "^7.1.3", "memoizerific": "^1.11.3", "polished": "^4.0.5", @@ -42211,17 +42209,29 @@ "dom-accessibility-api": "^0.5.6", "lz-string": "^1.4.4", "pretty-format": "^26.6.2" + }, + "dependencies": { + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + } } }, "@testing-library/jest-dom": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.15.1.tgz", - "integrity": "sha512-kmj8opVDRE1E4GXyLlESsQthCXK7An28dFWxhiMwD7ZUI7ZxA6sjdJRxLerD9Jd8cHX4BDc1jzXaaZKqzlUkvg==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.1.tgz", + "integrity": "sha512-ajUJdfDIuTCadB79ukO+0l8O+QwN0LiSxDaYUTI4LndbbUsGi6rWU1SCexXzBA2NSjlVB9/vbkasQIL3tmPBjw==", "dev": true, "requires": { "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^4.2.2", + "aria-query": "^5.0.0", "chalk": "^3.0.0", "css": "^3.0.0", "css.escape": "^1.5.1", @@ -42288,9 +42298,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "version": "7.1.17", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", + "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -42643,9 +42653,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "14.17.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", - "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==" + "version": "14.18.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz", + "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==" }, "@types/node-fetch": { "version": "2.5.12", @@ -42757,6 +42767,7 @@ "version": "2.8.2", "resolved": "https://registry.npmjs.org/@types/react-leaflet/-/react-leaflet-2.8.2.tgz", "integrity": "sha512-Iel8Vd1bSCD38Yhiqcmm/+9hjPEdd39LFE3tBMbOytq3QAQsC3LDrbo6ifoh8JbpqPbCsQPo9Wx5OELHixEShg==", + "dev": true, "requires": { "@types/leaflet": "*", "@types/react": "*" @@ -42908,9 +42919,9 @@ "dev": true }, "@types/testing-library__jest-dom": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.1.tgz", - "integrity": "sha512-Gk9vaXfbzc5zCXI9eYE9BI5BNHEp4D3FWjgqBE/ePGYElLAP+KvxBcsdkwfIVvezs605oiyd/VrpiHe3Oeg+Aw==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", + "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", "dev": true, "requires": { "@types/jest": "*" @@ -43955,14 +43966,10 @@ } }, "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true }, "arity-n": { "version": "1.0.4", @@ -45022,16 +45029,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -45785,9 +45782,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001283", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", - "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", "dev": true }, "canvas": { @@ -46395,9 +46392,9 @@ "dev": true }, "color-string": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.7.4.tgz", - "integrity": "sha512-nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", + "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", "dev": true, "requires": { "color-name": "^1.0.0", @@ -46978,18 +46975,18 @@ } }, "core-js": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.1.tgz", - "integrity": "sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", + "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", "dev": true }, "core-js-compat": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz", - "integrity": "sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.3.tgz", + "integrity": "sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA==", "dev": true, "requires": { - "browserslist": "^4.17.6", + "browserslist": "^4.18.1", "semver": "7.0.0" }, "dependencies": { @@ -47002,9 +46999,9 @@ } }, "core-js-pure": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.1.tgz", - "integrity": "sha512-Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz", + "integrity": "sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==", "dev": true }, "core-util-is": { @@ -47877,9 +47874,9 @@ } }, "date-fns": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.26.0.tgz", - "integrity": "sha512-VQI812dRi3cusdY/fhoBKvc6l2W8BPWU1FNVnFH9Nttjx4AFBRzfSVb/Eyc7jBT6e9sg1XtAGsYpBQ6c/jygbg==" + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz", + "integrity": "sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==" }, "date-format": { "version": "3.0.0", @@ -48487,9 +48484,9 @@ } }, "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "requires": { "domelementtype": "^2.2.0" @@ -48652,9 +48649,9 @@ } }, "electron-to-chromium": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz", - "integrity": "sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg==", + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz", + "integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==", "dev": true }, "element-resize-detector": { @@ -49379,6 +49376,16 @@ "minimatch": "^3.0.4" }, "dependencies": { + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -49563,9 +49570,9 @@ }, "dependencies": { "jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", "dev": true, "requires": { "@types/node": "*", @@ -49888,23 +49895,23 @@ } }, "expect": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", - "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", + "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "ansi-styles": "^5.0.0", - "jest-get-type": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6" + "jest-get-type": "^27.4.0", + "jest-matcher-utils": "^27.4.2", + "jest-message-util": "^27.4.2", + "jest-regex-util": "^27.4.0" }, "dependencies": { "@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -49930,9 +49937,9 @@ "dev": true }, "jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", + "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", "dev": true } } @@ -50299,13 +50306,6 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "filelist": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", @@ -50921,13 +50921,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -52887,9 +52880,9 @@ } }, "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -53341,9 +53334,9 @@ } }, "jest-get-type": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", - "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", + "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", "dev": true }, "jest-haste-map": { @@ -53464,21 +53457,21 @@ } }, "jest-matcher-utils": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", - "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", + "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-diff": "^27.4.2", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" }, "dependencies": { "@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -53504,30 +53497,30 @@ "dev": true }, "diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", + "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", "dev": true }, "jest-diff": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", - "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", + "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "diff-sequences": "^27.4.0", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.2" } }, "pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -53536,26 +53529,26 @@ } }, "jest-message-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", - "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", + "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1", + "pretty-format": "^27.4.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "dependencies": { "@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", + "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -53581,12 +53574,12 @@ "dev": true }, "pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", + "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.4.2", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -54407,16 +54400,16 @@ } }, "karma-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", - "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.1.0.tgz", + "integrity": "sha512-uIejpnArNFQIovB6EPsKO/T4XofELdJWXcA2ADXztFlKhHbr0Ws6ba7wKTMVWsIhEs4iJxdhQkCQrkkhFJSZCw==", "dev": true, "requires": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^4.0.3", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", "minimatch": "^3.0.4" } }, @@ -56274,9 +56267,9 @@ } }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", "dev": true }, "object-is": { @@ -58197,9 +58190,9 @@ } }, "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "postcss-values-parser": { @@ -58226,9 +58219,9 @@ "dev": true }, "prettier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz", - "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true }, "pretty-bytes": { @@ -58712,9 +58705,9 @@ } }, "pyright": { - "version": "1.1.181", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.181.tgz", - "integrity": "sha512-YuBEA9qwGYNeTBpUtlFKYlNmK8X3/hz/wTRkfR6Z2HDLBQSOpqmNAu/lWrzDnJopSvXwK2qNrW0zFjCE1I4dzg==", + "version": "1.1.193", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.193.tgz", + "integrity": "sha512-01hkfhK1PYKPSWbJrYgNwwlsVH+Thp1xmkKZjxVZrGFqavkJbhETlg1RcAHMnmU8Sg7G4Ry99dW6IsSGyCdzXg==", "dev": true }, "q": { @@ -58730,9 +58723,9 @@ "dev": true }, "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz", + "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==", "dev": true, "requires": { "side-channel": "^1.0.4" @@ -58941,6 +58934,7 @@ "react-components": { "version": "file:packages/react-components", "requires": { + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@date-io/core": "^2.11.0", "@date-io/date-fns": "^2.11.0", "@emotion/react": "^11.4.1", @@ -58952,6 +58946,7 @@ "@mui/material": "^5.0.4", "@mui/styles": "^5.0.1", "@mui/x-data-grid": "^5.0.0-beta.4", + "@react-leaflet/core": "1.0.2", "@storybook/addon-actions": "^6.3.7", "@storybook/addon-essentials": "^6.3.7", "@storybook/addon-links": "^6.3.7", @@ -58962,11 +58957,10 @@ "@types/crc": "^3.4.0", "@types/debug": "^4.1.5", "@types/jasmine": "^3.8.2", - "@types/leaflet": "^1.5.17", + "@types/leaflet": "^1.7.5", "@types/rbush": "^3.0.0", "@types/react": "^17.0.19", "@types/react-dom": "^17.0.9", - "@types/react-leaflet": "^2.5.2", "@types/react-router": "^5.1.7", "@types/react-router-dom": "^5.1.7", "@types/react-virtualized-auto-sizer": "^1.0.1", @@ -58999,7 +58993,7 @@ "react": "^17.0.2", "react-customizable-progressbar": "^1.0.3", "react-dom": "^17.0.2", - "react-leaflet": "^2.7.0", + "react-leaflet": "3.1.0", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "react-virtualized-auto-sizer": "^1.0.6", @@ -59250,9 +59244,9 @@ } }, "react-docgen-typescript": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.1.1.tgz", - "integrity": "sha512-XWe8bsYqVjxciKdpNoufaHiB7FgUHIOnVQgxUolRL3Zlof2zkdTzuQH6SU2n3Ek9kfy3O1c63ojMtNfpiuNeZQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.1.tgz", + "integrity": "sha512-ycVaidV55GOeDOKRP6PCw1i1502dElQ1KG/IInj8sOg50imG+Pmv6LY6DG2xlAF0asd8zXLcyFlWNnICKWP1LA==", "dev": true }, "react-dom": { @@ -59331,9 +59325,9 @@ } }, "react-helmet-async": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.1.2.tgz", - "integrity": "sha512-LTTzDDkyIleT/JJ6T/uqx7Y8qi1EuPPSiJawQY/nHHz0h7SPDT6HxP1YDDQx/fzcVxCqpWEEMS3QdrSrNkJYhg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.2.tgz", + "integrity": "sha512-XgSQezeCbLfCxdZhDA3T/g27XZKnOYyOkruopTLSJj8RvFZwdXnM4djnfYaiBSDzOidDgTo1jcEozoRu/+P9UQ==", "dev": true, "requires": { "@babel/runtime": "^7.12.5", @@ -59369,15 +59363,12 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "react-leaflet": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-2.8.0.tgz", - "integrity": "sha512-Y7oHtNrrlRH8muDttXf+jZ2Ga/X7jneSGi1GN8uEdeCfLProTqgG2Zoa5TfloS3ZnY20v7w+DIenMG59beFsQw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-3.1.0.tgz", + "integrity": "sha512-kdZS8NYbYFPmkQr7zSDR2gkKGFeWvkxqoqcmZEckzHL4d5c85dJ2gbbqhaPDpmWWgaRw9O29uA/77qpKmK4mTQ==", "dev": true, "requires": { - "@babel/runtime": "^7.12.1", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2", - "warning": "^4.0.3" + "@react-leaflet/core": "^1.0.2" } }, "react-popper": { @@ -62699,22 +62690,14 @@ } }, "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "sockjs-client": { @@ -63764,9 +63747,9 @@ "dev": true }, "table": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.3.tgz", - "integrity": "sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -64771,9 +64754,9 @@ "dev": true }, "uglify-js": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz", - "integrity": "sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==", + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", "dev": true, "optional": true }, @@ -65390,9 +65373,9 @@ } }, "watchpack": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", - "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -65516,17 +65499,6 @@ } } }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -65768,6 +65740,16 @@ "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, "devtools-protocol": { "version": "0.0.915197", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.915197.tgz", @@ -66501,17 +66483,6 @@ "locate-path": "^3.0.0" } }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -67463,18 +67434,26 @@ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, "yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true + } } }, "yargs-parser": { diff --git a/packages/api-client/lib/openapi/api.ts b/packages/api-client/lib/openapi/api.ts index 79c724979..fe0f78b82 100644 --- a/packages/api-client/lib/openapi/api.ts +++ b/packages/api-client/lib/openapi/api.ts @@ -2391,12 +2391,11 @@ export const AdminApiFp = function (configuration?: Configuration) { permission: Permission, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.addRolePermissionAdminRolesRolePermissionsPost( - role, - permission, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.addRolePermissionAdminRolesRolePermissionsPost( + role, + permission, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -2412,12 +2411,11 @@ export const AdminApiFp = function (configuration?: Configuration) { postRoles: PostRoles, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.addUserRoleAdminUsersUsernameRolesPost( - username, - postRoles, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.addUserRoleAdminUsersUsernameRolesPost( + username, + postRoles, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -2501,12 +2499,11 @@ export const AdminApiFp = function (configuration?: Configuration) { role: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.deleteUserRoleAdminUsersUsernameRolesRoleDelete( - username, - role, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserRoleAdminUsersUsernameRolesRoleDelete( + username, + role, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -2520,11 +2517,10 @@ export const AdminApiFp = function (configuration?: Configuration) { role: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getRolePermissionsAdminRolesRolePermissionsGet( - role, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.getRolePermissionsAdminRolesRolePermissionsGet( + role, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -2598,12 +2594,11 @@ export const AdminApiFp = function (configuration?: Configuration) { postMakeAdmin: PostMakeAdmin, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.makeAdminAdminUsersUsernameMakeAdminPost( - username, - postMakeAdmin, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.makeAdminAdminUsersUsernameMakeAdminPost( + username, + postMakeAdmin, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -2619,12 +2614,11 @@ export const AdminApiFp = function (configuration?: Configuration) { permission: Permission, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.removeRolePermissionAdminRolesRolePermissionsRemovePost( - role, - permission, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.removeRolePermissionAdminRolesRolePermissionsRemovePost( + role, + permission, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -2640,12 +2634,11 @@ export const AdminApiFp = function (configuration?: Configuration) { postRoles: Array, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.setUserRolesAdminUsersUsernameRolesPut( - username, - postRoles, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.setUserRolesAdminUsersUsernameRolesPut( + username, + postRoles, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, }; @@ -3318,8 +3311,9 @@ export const DefaultApiFp = function (configuration?: Configuration) { async getEffectivePermissionsPermissionsGet( options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getEffectivePermissionsPermissionsGet(options); + const localVarAxiosArgs = await localVarAxiosParamCreator.getEffectivePermissionsPermissionsGet( + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -3546,8 +3540,10 @@ export const DispensersApiFp = function (configuration?: Configuration) { guid: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getDispenserHealthDispensersGuidHealthGet(guid, options); + const localVarAxiosArgs = await localVarAxiosParamCreator.getDispenserHealthDispensersGuidHealthGet( + guid, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -3561,8 +3557,10 @@ export const DispensersApiFp = function (configuration?: Configuration) { guid: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getDispenserStateDispensersGuidStateGet(guid, options); + const localVarAxiosArgs = await localVarAxiosParamCreator.getDispenserStateDispensersGuidStateGet( + guid, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -3925,12 +3923,11 @@ export const DoorsApiFp = function (configuration?: Configuration) { doorRequest: DoorRequest, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.postDoorRequestDoorsDoorNameRequestPost( - doorName, - doorRequest, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.postDoorRequestDoorsDoorNameRequestPost( + doorName, + doorRequest, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, }; @@ -4347,12 +4344,11 @@ export const FleetsApiFp = function (configuration?: Configuration) { robot: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getRobotHealthFleetsFleetRobotHealthGet( - fleet, - robot, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.getRobotHealthFleetsFleetRobotHealthGet( + fleet, + robot, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -4700,8 +4696,10 @@ export const IngestorsApiFp = function (configuration?: Configuration) { guid: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getIngestorHealthIngestorsGuidHealthGet(guid, options); + const localVarAxiosArgs = await localVarAxiosParamCreator.getIngestorHealthIngestorsGuidHealthGet( + guid, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -4715,8 +4713,10 @@ export const IngestorsApiFp = function (configuration?: Configuration) { guid: string, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.getIngestorStateIngestorsGuidStateGet(guid, options); + const localVarAxiosArgs = await localVarAxiosParamCreator.getIngestorStateIngestorsGuidStateGet( + guid, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -5079,12 +5079,11 @@ export const LiftsApiFp = function (configuration?: Configuration) { liftRequest: LiftRequest, options?: any, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = - await localVarAxiosParamCreator.postLiftRequestLiftsLiftNameRequestPost( - liftName, - liftRequest, - options, - ); + const localVarAxiosArgs = await localVarAxiosParamCreator.postLiftRequestLiftsLiftNameRequestPost( + liftName, + liftRequest, + options, + ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, }; diff --git a/packages/dashboard/src/components/admin/role-list-page.tsx b/packages/dashboard/src/components/admin/role-list-page.tsx index e0438e260..617b11765 100644 --- a/packages/dashboard/src/components/admin/role-list-page.tsx +++ b/packages/dashboard/src/components/admin/role-list-page.tsx @@ -19,28 +19,28 @@ export function RoleListPage(): JSX.Element | null { createRole={async (role) => { try { await adminApi.createRoleAdminRolesPost({ name: role }); - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} deleteRole={async (role) => { try { await adminApi.deleteRoleAdminRolesRoleDelete(role); - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} getPermissions={async (role) => { try { return (await adminApi.getRolePermissionsAdminRolesRolePermissionsGet(role)).data; - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} savePermission={async (role, permission) => { try { await adminApi.addRolePermissionAdminRolesRolePermissionsPost(role, permission); - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} @@ -50,7 +50,7 @@ export function RoleListPage(): JSX.Element | null { role, permission, ); - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} diff --git a/packages/dashboard/src/components/admin/user-profile-page.tsx b/packages/dashboard/src/components/admin/user-profile-page.tsx index c6515d9bf..d89bceb83 100644 --- a/packages/dashboard/src/components/admin/user-profile-page.tsx +++ b/packages/dashboard/src/components/admin/user-profile-page.tsx @@ -25,7 +25,7 @@ export function UserProfilePage(): JSX.Element | null { (async () => { try { setUser((await safeAsync(adminApi.getUserAdminUsersUsernameGet(userId))).data); - } catch (e) { + } catch (e: any) { if ((e as AxiosError).response?.status !== 404) { throw new Error(getApiErrorMessage(e)); } @@ -53,7 +53,7 @@ export function UserProfilePage(): JSX.Element | null { try { await adminApi.makeAdminAdminUsersUsernameMakeAdminPost(user.username, { admin }); refresh(); - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} @@ -64,7 +64,7 @@ export function UserProfilePage(): JSX.Element | null { getAllRoles={async () => { try { return (await adminApi.getRolesAdminRolesGet()).data; - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} @@ -72,12 +72,10 @@ export function UserProfilePage(): JSX.Element | null { try { await adminApi.setUserRolesAdminUsersUsernameRolesPut( user.username, - roles.map((r) => ({ - name: r, - })), + roles.map((r) => ({ name: r })), ); refresh(); - } catch (e) { + } catch (e: any) { throw new Error(getApiErrorMessage(e)); } }} diff --git a/packages/dashboard/src/components/appbar.tsx b/packages/dashboard/src/components/appbar.tsx index 630ba89a5..7fc6bf648 100644 --- a/packages/dashboard/src/components/appbar.tsx +++ b/packages/dashboard/src/components/appbar.tsx @@ -62,71 +62,74 @@ export interface AppBarProps { alarmState?: boolean | null; } -export const AppBar = React.memo((): React.ReactElement => { - const { showHelp: setShowHelp /* , setShowSettings */ } = React.useContext(AppControllerContext); - const history = useHistory(); - const location = useLocation(); - const tabValue = React.useMemo(() => locationToTabValue(location.pathname), [location]); - const logoResourcesContext = React.useContext(ResourcesContext)?.logos; - const [anchorEl, setAnchorEl] = React.useState(null); - const { authenticator } = React.useContext(AppConfigContext); - const profile = React.useContext(UserProfileContext); - const { showTooltips } = React.useContext(TooltipsContext); - const safeAsync = useAsync(); - const [brandingIconPath, setBrandingIconPath] = React.useState(''); +export const AppBar = React.memo( + (): React.ReactElement => { + const { showHelp: setShowHelp /* , setShowSettings */ } = React.useContext( + AppControllerContext, + ); + const history = useHistory(); + const location = useLocation(); + const tabValue = React.useMemo(() => locationToTabValue(location.pathname), [location]); + const logoResourcesContext = React.useContext(ResourcesContext)?.logos; + const [anchorEl, setAnchorEl] = React.useState(null); + const { authenticator } = React.useContext(AppConfigContext); + const profile = React.useContext(UserProfileContext); + const { showTooltips } = React.useContext(TooltipsContext); + const safeAsync = useAsync(); + const [brandingIconPath, setBrandingIconPath] = React.useState(''); - const curTheme = React.useContext(SettingsContext).themeMode; + const curTheme = React.useContext(SettingsContext).themeMode; - async function handleLogout(): Promise { - try { - await authenticator.logout(); - } catch (e) { - console.error(`error logging out: ${(e as Error).message}`); + async function handleLogout(): Promise { + try { + await authenticator.logout(); + } catch (e) { + console.error(`error logging out: ${(e as Error).message}`); + } } - } - React.useEffect(() => { - if (!logoResourcesContext) return; - (async () => { - setBrandingIconPath(await safeAsync(logoResourcesContext.getHeaderLogoPath(curTheme))); - })(); - }, [logoResourcesContext, safeAsync, curTheme]); + React.useEffect(() => { + if (!logoResourcesContext) return; + (async () => { + setBrandingIconPath(await safeAsync(logoResourcesContext.getHeaderLogoPath(curTheme))); + })(); + }, [logoResourcesContext, safeAsync, curTheme]); - return ( - - - - history.push(DashboardRoute)} - /> - history.push(RobotsRoute)} - /> - history.push(TasksRoute)} - /> - {profile?.user.is_admin && ( + return ( + + + history.push(AdminRoute)} + label="Infrastructure" + value="infrastructure" + aria-label="Infrastructure" + onTabClick={() => history.push(DashboardRoute)} /> - )} - - - Powered by OpenRMF - {/* TODO: Hiding until we have a better theme */} - {/* history.push(RobotsRoute)} + /> + history.push(TasksRoute)} + /> + {profile?.user.is_admin && ( + history.push(AdminRoute)} + /> + )} + + + Powered by OpenRMF + {/* TODO: Hiding until we have a better theme */} + {/* { > */} - {profile && ( - <> + {profile && ( + <> + setAnchorEl(event.currentTarget)} + > + + + setAnchorEl(null)} + > + + Logout + + + + )} + setAnchorEl(event.currentTarget)} + onClick={() => setShowHelp(true)} > - + - setAnchorEl(null)} - > - - Logout - - - - )} - - setShowHelp(true)} - > - - - - - - ); -}); + + + + ); + }, +); export default AppBar; diff --git a/packages/dashboard/src/components/dashboard/dashboard.tsx b/packages/dashboard/src/components/dashboard/dashboard.tsx index 2c74b3409..3a1de0570 100644 --- a/packages/dashboard/src/components/dashboard/dashboard.tsx +++ b/packages/dashboard/src/components/dashboard/dashboard.tsx @@ -15,6 +15,8 @@ import { RmfIngressContext, } from '../rmf-app'; import ScheduleVisualizer from '../schedule-visualizer'; +import { ResourcesContext } from '../app-contexts'; +import { LeafletContextInterface } from '@react-leaflet/core'; import { useFleets, useFleetStateRef, @@ -56,6 +58,7 @@ export default function Dashboard(_props: {}): React.ReactElement { const rmfIngress = React.useContext(RmfIngressContext); const sioClient = rmfIngress?.sioClient; const buildingMap = React.useContext(BuildingMapContext); + const workcellContext = React.useContext(ResourcesContext)?.dispensers?.dispensers; const [_triggerRender, setTriggerRender] = React.useState(0); // eslint-disable-line @typescript-eslint/no-unused-vars React.useEffect(() => { @@ -120,9 +123,7 @@ export default function Dashboard(_props: {}): React.ReactElement { const handleOnDoorControlClick = React.useCallback( (_ev, door: Door, mode: number) => - doorsApi?.postDoorRequestDoorsDoorNameRequestPost(door.name, { - mode: mode, - }), + doorsApi?.postDoorRequestDoorsDoorNameRequestPost(door.name, { mode: mode }), [doorsApi], ); @@ -144,6 +145,9 @@ export default function Dashboard(_props: {}): React.ReactElement { [appController], ); + const leafletContext: LeafletContextInterface = Object.create({}); + const [leafletMap, setLeafletMap] = React.useState(leafletContext); + return ( @@ -158,6 +162,8 @@ export default function Dashboard(_props: {}): React.ReactElement { liftStates={Object.assign({}, liftStatesRef.current)} fleetStates={Object.assign({}, fleetStatesRef.current)} mode="normal" + setLeafletMap={setLeafletMap} + leafletMap={leafletMap} > @@ -166,6 +172,7 @@ export default function Dashboard(_props: {}): React.ReactElement { doors={doors} doorStates={doorStatesRef.current} onDoorControlClick={handleOnDoorControlClick} + leafletMap={leafletMap} /> ) : null} {lifts.length > 0 ? ( @@ -173,13 +180,16 @@ export default function Dashboard(_props: {}): React.ReactElement { lifts={lifts} liftStates={liftStatesRef.current} onRequestSubmit={handleLiftRequestSubmit} + leafletMap={leafletMap} /> ) : null} - {workcells.length > 0 ? ( + {workcells.length > 0 && workcellContext ? ( ) : null} diff --git a/packages/dashboard/src/components/robots/robot-page.tsx b/packages/dashboard/src/components/robots/robot-page.tsx index 95cb4e6de..12335db1e 100644 --- a/packages/dashboard/src/components/robots/robot-page.tsx +++ b/packages/dashboard/src/components/robots/robot-page.tsx @@ -2,8 +2,8 @@ import { styled, GridProps, Grid, Card } from '@mui/material'; import React from 'react'; -import { Fleet } from 'api-client'; -import { MapProps, Map } from 'react-leaflet'; +import { Door, Fleet, Lift } from 'api-client'; +import { LeafletContextInterface } from '@react-leaflet/core'; import { RobotPanel, VerboseRobot } from 'react-components'; import { BuildingMapContext, @@ -17,6 +17,10 @@ import { useFleetStateRef, useDispenserStatesRef, useIngestorStatesRef, + useDoors, + useDoorStatesRef, + useLifts, + useLiftStatesRef, } from '../../util/common-subscriptions'; const UpdateRate = 1000; @@ -46,7 +50,8 @@ export function RobotPage() { const rmfIngress = React.useContext(RmfIngressContext); const sioClient = React.useContext(RmfIngressContext)?.sioClient; const buildingMap = React.useContext(BuildingMapContext); - const [leafletMap, setLeafletMap] = React.useState>(); + const leafletContext: LeafletContextInterface = Object.create({}); + const [leafletMap, setLeafletMap] = React.useState(leafletContext); const [_triggerRender, setTriggerRender] = React.useState(0); // eslint-disable-line @typescript-eslint/no-unused-vars React.useEffect(() => { @@ -61,6 +66,14 @@ export function RobotPage() { const ingestors = React.useContext(IngestorsContext); useIngestorStatesRef(sioClient, ingestors); + const [doors, setDoors] = React.useState([]); + useDoors(rmfIngress, setDoors); + const doorStatesRef = useDoorStatesRef(sioClient, doors); + + const [lifts, setLifts] = React.useState([]); + useLifts(rmfIngress, setLifts); + const liftStatesRef = useLiftStatesRef(sioClient, lifts); + // schedule visualizer fleet const [fleets, setFleets] = React.useState([]); useFleets(rmfIngress, setFleets); @@ -91,7 +104,7 @@ export function RobotPage() { const onRobotZoom = (robot: VerboseRobot) => { leafletMap && - leafletMap.leafletElement.setView([robot.state.location.y, robot.state.location.x], 5.5, { + leafletMap.map.setView([robot.state.location.y, robot.state.location.x], 5.5, { animate: true, }); }; @@ -109,10 +122,13 @@ export function RobotPage() { buildingMap={buildingMap} dispensers={dispensers} ingestors={ingestors} + doorStates={Object.assign({}, doorStatesRef.current)} + liftStates={Object.assign({}, liftStatesRef.current)} fleetStates={Object.assign({}, fleetStatesRef.current)} mode="normal" zoom={4.5} - ref={(map: Map) => setLeafletMap(map)} + leafletMap={leafletMap} + setLeafletMap={setLeafletMap} /> )} diff --git a/packages/dashboard/src/components/schedule-visualizer/index.tsx b/packages/dashboard/src/components/schedule-visualizer/index.tsx index 94bbcab47..ddeada371 100644 --- a/packages/dashboard/src/components/schedule-visualizer/index.tsx +++ b/packages/dashboard/src/components/schedule-visualizer/index.tsx @@ -16,17 +16,18 @@ import { RobotsOverlay as RobotsOverlay_, TrajectoriesOverlay as TrajectoriesOverlay_, TrajectoryData, - TrajectoryTimeControl, useAsync, WaypointsOverlay as WaypointsOverlay_, WorkcellData, WorkcellsOverlay as WorkcellsOverlay_, } from 'react-components'; import { AttributionControl, LayersControl } from 'react-leaflet'; +import { Level, RobotState } from 'rmf-models'; import appConfig from '../../app-config'; import { NegotiationTrajectoryResponse } from '../../managers/negotiation-status-manager'; import { ResourcesContext } from '../app-contexts'; import { PlacesContext, RmfIngressContext } from '../rmf-app'; +import { LeafletContextInterface } from '@react-leaflet/core'; const DoorsOverlay = React.memo(DoorsOverlay_); const LiftsOverlay = React.memo(LiftsOverlay_); @@ -60,31 +61,32 @@ export interface ScheduleVisualizerProps extends React.PropsWithChildren<{}> { onRobotClick?: (ev: React.MouseEvent, fleet: string, robot: string) => void; onDispenserClick?: (ev: React.MouseEvent, guid: string) => void; onIngestorClick?: (ev: React.MouseEvent, guid: string) => void; + setLeafletMap?: React.Dispatch>; + leafletMap?: LeafletContextInterface; } interface ScheduleVisualizerSettings { trajectoryTime: number; } -export default React.forwardRef(function ScheduleVisualizer( - { - buildingMap, - negotiationTrajStore = {}, - dispensers = [], - ingestors = [], - doorStates = {}, - liftStates = {}, - fleetStates = {}, - mode = 'normal', - onDoorClick, - onLiftClick, - onRobotClick, - onDispenserClick, - onIngestorClick, - children, - }: ScheduleVisualizerProps, - ref, -): JSX.Element | null { +export default React.forwardRef(function ScheduleVisualizer({ + buildingMap, + negotiationTrajStore = {}, + dispensers = [], + ingestors = [], + doorStates = {}, + liftStates = {}, + fleetStates = {}, + mode = 'normal', + onDoorClick, + onLiftClick, + onRobotClick, + onDispenserClick, + onIngestorClick, + setLeafletMap, + leafletMap, + children, +}: ScheduleVisualizerProps): JSX.Element | null { debug('render'); const safeAsync = useAsync(); const levels = React.useMemo( @@ -103,11 +105,14 @@ export default React.forwardRef(function ScheduleVisualizer( const authenticator = appConfig.authenticator; const [trajectories, setTrajectories] = React.useState([]); const { trajectoryManager: trajManager } = React.useContext(RmfIngressContext) || {}; - const [scheduleVisualizerSettings, setScheduleVisualizerSettings] = - React.useState(() => { - const settings = window.localStorage.getItem(SettingsKey); - return settings ? JSON.parse(settings) : { trajectoryTime: 60000 /* 1 min */ }; - }); + const [ + scheduleVisualizerSettings, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + setScheduleVisualizerSettings, + ] = React.useState(() => { + const settings = window.localStorage.getItem(SettingsKey); + return settings ? JSON.parse(settings) : { trajectoryTime: 60000 /* 1 min */ }; + }); const trajectoryTime = scheduleVisualizerSettings.trajectoryTime; const trajectoryAnimScale = trajectoryTime / (0.9 * TrajectoryUpdateInterval); @@ -242,7 +247,7 @@ export default React.forwardRef(function ScheduleVisualizer( React.useEffect(() => { (async () => { const promises = Object.values(fleetStates).flatMap((fleetState) => - fleetState.robots.map(async (r) => { + fleetState.robots.map(async (r: RobotState) => { const robotId = `${fleetState.name}/${r.name}`; if (robotId in robotsStore) return; robotsStore[robotId] = { @@ -260,11 +265,11 @@ export default React.forwardRef(function ScheduleVisualizer( const newRobots = Object.values(fleetStates).flatMap((fleetState) => fleetState.robots .filter( - (r) => + (r: RobotState) => r.location.level_name === currentLevel.name && `${fleetState.name}/${r.name}` in robotsStore, ) - .map((r) => robotsStore[`${fleetState.name}/${r.name}`]), + .map((r: RobotState) => robotsStore[`${fleetState.name}/${r.name}`]), ); setRobots(newRobots); })(); @@ -292,26 +297,32 @@ export default React.forwardRef(function ScheduleVisualizer( setLevelBounds(bounds); }, [images, levels]); - const [layersUnChecked, setLayersUnChecked] = React.useState>({}); - const waypointsLayersRef: React.Ref = React.useRef(null); - const registeredLayersHandlers = React.useRef(false); + const [layersUnChecked, setLayersUnChecked] = React.useState>({ + Waypoints: true, + Dispensers: true, + Ingestors: true, + Robots: true, + Trajectories: true, + Lifts: true, + Doors: true, + }); + + const baseLayerHandler = (levelName: string): L.LeafletEventHandlerFnMap | undefined => { + return { + add: () => setCurrentLevel(levels.find((l) => l.name === levelName) || levels[0]), + remove: () => setCurrentLevel(levels.find((l) => l.name === levelName) || levels[0]), + }; + }; + + const overlayHandler = (overlayName: string): L.LeafletEventHandlerFnMap | undefined => { + return { + add: () => setLayersUnChecked((prev) => ({ ...prev, [overlayName]: true })), + remove: () => setLayersUnChecked((prev) => ({ ...prev, [overlayName]: false })), + }; + }; return bounds ? ( { - if (registeredLayersHandlers.current || !cur) return; - cur.leafletElement.on('overlayadd', (ev: L.LayersControlEvent) => - setLayersUnChecked((prev) => ({ ...prev, [ev.name]: false })), - ); - cur.leafletElement.on('overlayremove', (ev: L.LayersControlEvent) => - setLayersUnChecked((prev) => ({ ...prev, [ev.name]: true })), - ); - registeredLayersHandlers.current = true; - if (typeof ref === 'function') ref(cur); - else if (ref) { - ref.current = cur; - } - }} id="schedule-visualizer" attributionControl={false} minZoom={0} @@ -319,55 +330,54 @@ export default React.forwardRef(function ScheduleVisualizer( zoomDelta={0.5} zoomSnap={0.5} bounds={bounds} + setLeafletMap={setLeafletMap} + leafletMap={leafletMap} > - - setCurrentLevel(levels.find((l) => l.name === ev.name) || levels[0]) - } - > - {buildingMap.levels.map((level) => ( + + {buildingMap.levels.map((level: Level) => ( - + ))} - - + - + - + - + - + - - + + - + { - const state = fleetStates[fleet].robots.find((r) => r.name === robot); + const state = fleetStates[fleet].robots.find((r: RobotState) => r.name === robot); return state || null; }} hideLabels={layersUnChecked['Robots']} onRobotClick={onRobotClick} + eventHandlers={overlayHandler('Robots')} /> - - + /> */} {children} ) : null; diff --git a/packages/dashboard/src/util/common-subscriptions.ts b/packages/dashboard/src/util/common-subscriptions.ts index 1501323b7..21558fc74 100644 --- a/packages/dashboard/src/util/common-subscriptions.ts +++ b/packages/dashboard/src/util/common-subscriptions.ts @@ -1,6 +1,6 @@ import React from 'react'; import * as RmfModels from 'rmf-models'; -import { Fleet, SioClient, Ingestor, Dispenser } from 'api-client'; +import { Dispenser, Door, Fleet, Ingestor, Lift, LiftState, SioClient } from 'api-client'; import { RmfIngress } from '../components/rmf-app/rmf-ingress'; export const useFleets = ( @@ -71,3 +71,71 @@ export const useDispenserStatesRef = ( }, [sioClient, dispensers, dispenserStatesRef]); return dispenserStatesRef; }; + +export const useDoors = ( + rmfIngress: RmfIngress | undefined, + setDoors: React.Dispatch>, +) => { + React.useEffect(() => { + if (!rmfIngress) return; + let cancel = false; + (async () => { + const result = await rmfIngress.doorsApi.getDoorsDoorsGet(); + if (cancel || result.status !== 200) return; + setDoors(result.data); + })(); + return () => { + cancel = true; + }; + }, [rmfIngress, setDoors]); +}; + +export const useDoorStatesRef = (sioClient: SioClient | undefined, doors: Door[]) => { + const doorStatesRef = React.useRef>({}); + + React.useEffect(() => { + if (!sioClient) return; + const subs = doors.map((d) => + sioClient.subscribeDoorState(d.name, (state) => (doorStatesRef.current[d.name] = state)), + ); + return () => { + subs.forEach((s) => sioClient.unsubscribe(s)); + }; + }, [sioClient, doors]); + + return doorStatesRef; +}; + +export const useLifts = ( + rmfIngress: RmfIngress | undefined, + setLifts: React.Dispatch>, +) => { + React.useEffect(() => { + if (!rmfIngress) return; + let cancel = false; + (async () => { + const result = await rmfIngress.liftsApi.getLiftsLiftsGet(); + if (cancel || result.status !== 200) return; + setLifts(result.data); + })(); + return () => { + cancel = true; + }; + }, [rmfIngress, setLifts]); +}; + +export const useLiftStatesRef = (sioClient: SioClient | undefined, lifts: Lift[]) => { + const liftStatesRef = React.useRef>({}); + + React.useEffect(() => { + if (!sioClient) return; + const subs = lifts.map((l) => + sioClient.subscribeLiftState(l.name, (state) => (liftStatesRef.current[l.name] = state)), + ); + return () => { + subs.forEach((s) => sioClient.unsubscribe(s)); + }; + }, [sioClient, lifts]); + + return liftStatesRef; +}; diff --git a/packages/react-components/lib/doors/door-panel.tsx b/packages/react-components/lib/doors/door-panel.tsx index e0960e7ea..0307d196a 100644 --- a/packages/react-components/lib/doors/door-panel.tsx +++ b/packages/react-components/lib/doors/door-panel.tsx @@ -18,11 +18,13 @@ import AutoSizer from 'react-virtualized-auto-sizer'; import { FixedSizeGrid, GridChildComponentProps } from 'react-window'; import { DoorMode as RmfDoorMode } from 'rmf-models'; import { DoorTable } from './door-table'; -import { DoorData, doorModeToString, doorTypeToString } from './utils'; +import { DoorData, doorModeToString, doorTypeToString, onDoorClick } from './utils'; +import { LeafletContextInterface } from '@react-leaflet/core'; export interface DoorPanelProps { doors: DoorData[]; doorStates: Record; + leafletMap?: LeafletContextInterface; onDoorControlClick?(event: React.MouseEvent, door: Door, mode: number): void; } @@ -37,6 +39,7 @@ interface DoorGridRendererProps extends GridChildComponentProps { export interface DoorcellProps { door: DoorData; doorMode?: number; + leafletMap?: LeafletContextInterface; onDoorControlClick?(event: React.MouseEvent, door: Door, mode: number): void; } @@ -130,7 +133,7 @@ const StyledCard = styled((props: CardProps) => )(({ theme }) })); const DoorCell = React.memo( - ({ door, doorMode, onDoorControlClick }: DoorcellProps): JSX.Element => { + ({ door, doorMode, onDoorControlClick, leafletMap }: DoorcellProps): JSX.Element => { const doorModeLabelClasses = React.useCallback((doorMode?: number): string => { if (doorMode === undefined) { return ''; @@ -150,7 +153,12 @@ const DoorCell = React.memo( const labelId = `door-cell-${door.door.name}`; return ( - + onDoorClick(door.door, leafletMap)} + >
- +
) : null; }; -export function DoorPanel({ doors, doorStates, onDoorControlClick }: DoorPanelProps): JSX.Element { +export function DoorPanel({ + doors, + doorStates, + onDoorControlClick, + leafletMap, +}: DoorPanelProps): JSX.Element { const [isCellView, setIsCellView] = React.useState(true); const columnWidth = 250; @@ -269,6 +285,7 @@ export function DoorPanel({ doors, doorStates, onDoorControlClick }: DoorPanelPr doors, doorStates, onDoorControlClick, + leafletMap, }} > {DoorGridRenderer} @@ -281,6 +298,7 @@ export function DoorPanel({ doors, doorStates, onDoorControlClick }: DoorPanelPr doors={doors} doorStates={doorStates} onDoorControlClick={onDoorControlClick} + leafletMap={leafletMap} /> )} diff --git a/packages/react-components/lib/doors/door-table.tsx b/packages/react-components/lib/doors/door-table.tsx index a209b176b..62a7ed4ea 100644 --- a/packages/react-components/lib/doors/door-table.tsx +++ b/packages/react-components/lib/doors/door-table.tsx @@ -7,10 +7,13 @@ import { DoorMode as RmfDoorMode } from 'rmf-models'; import { FixedSizeList, ListChildComponentProps } from 'react-window'; import { DoorData, doorModeToString, doorTypeToString } from './utils'; import { useFixedTableCellStylesClasses, ItemTableCell } from '../utils'; +import { LeafletContextInterface } from '@react-leaflet/core'; +import { onDoorClick } from './utils'; export interface DoorTableProps { doors: DoorData[]; doorStates: Record; + leafletMap?: LeafletContextInterface; onDoorControlClick?(event: React.MouseEvent, door: Door, mode: number): void; } @@ -21,6 +24,7 @@ interface DoorListRendererProps extends ListChildComponentProps { export interface DoorRowProps { door: DoorData; doorMode: number; + leafletMap?: LeafletContextInterface; onDoorControlClick?(event: React.MouseEvent, door: Door, mode: number): void; } @@ -63,7 +67,7 @@ const getOpMode = (doorMode?: number) => { return getState === 'N/A' ? 'Offline' : 'Online'; }; -const DoorRow = React.memo(({ door, doorMode, onDoorControlClick }: DoorRowProps) => { +const DoorRow = React.memo(({ door, doorMode, onDoorControlClick, leafletMap }: DoorRowProps) => { const { fixedTableCell, fixedLastTableCell } = useFixedTableCellStylesClasses; const doorModeLabelClasses = React.useCallback((doorMode?: number): string => { if (doorMode === undefined) { @@ -83,7 +87,12 @@ const DoorRow = React.memo(({ door, doorMode, onDoorControlClick }: DoorRowProps const doorStatusClass = doorModeLabelClasses(doorMode); return ( - + onDoorClick(door.door, leafletMap)} + > { const door = data.doors[index]; const doorState = data.doorStates[door.door.name]; + const leafletMap = data.leafletMap; return (
@@ -162,6 +172,7 @@ const DoorListRenderer = ({ data, index, style }: DoorListRendererProps) => { door={door} doorMode={doorState?.current_mode.value} onDoorControlClick={data.onDoorControlClick} + leafletMap={leafletMap} key={door.door.name} />
@@ -171,6 +182,7 @@ const DoorListRenderer = ({ data, index, style }: DoorListRendererProps) => { export const DoorTable = ({ doors, doorStates, + leafletMap, onDoorControlClick, }: DoorTableProps): JSX.Element => { const { fixedTableCell, fixedLastTableCell } = useFixedTableCellStylesClasses; @@ -236,6 +248,7 @@ export const DoorTable = ({ doorStates, width, onDoorControlClick, + leafletMap, }} > {DoorListRenderer} diff --git a/packages/react-components/lib/doors/utils.ts b/packages/react-components/lib/doors/utils.ts index 33ecbbead..8957a689f 100644 --- a/packages/react-components/lib/doors/utils.ts +++ b/packages/react-components/lib/doors/utils.ts @@ -1,4 +1,6 @@ +import { getDoorCenter } from '../map/utils'; import { Door as RmfDoor, DoorMode as RmfDoorMode } from 'rmf-models'; +import { LeafletContextInterface } from '@react-leaflet/core'; export enum DoorType { SingleSwing = RmfDoor.DOOR_TYPE_SINGLE_SWING, @@ -59,3 +61,11 @@ export function doorTypeToString(doorType: number): string { return `Unknown (${doorType})`; } } + +export const onDoorClick = (door: RmfDoor, leafletMap?: LeafletContextInterface): void => { + const center = getDoorCenter(door); + leafletMap && + leafletMap.map.setView([center[1], center[0]], 5.5, { + animate: true, + }); +}; diff --git a/packages/react-components/lib/error-overlay.tsx b/packages/react-components/lib/error-overlay.tsx index 6174fbe06..86d7ea008 100644 --- a/packages/react-components/lib/error-overlay.tsx +++ b/packages/react-components/lib/error-overlay.tsx @@ -45,38 +45,42 @@ export interface ErrorOverlayProps { overrideErrorStyle?: string; } -export const ErrorOverlay = React.memo((props: ErrorOverlayProps): JSX.Element => { - const { errorMsg, children, overrideErrorStyle } = props; +export const ErrorOverlay = React.memo( + (props: ErrorOverlayProps): JSX.Element => { + const { errorMsg, children, overrideErrorStyle } = props; - return errorMsg ? ( - -
{children}
-
-
- - - + return errorMsg ? ( + +
{children}
+
+
+ + + + + + + Error + + - - - Error - - - - - {errorMsg} - + + {errorMsg} + +
-
- - ) : ( - {children} - ); -}); + + ) : ( + {children} + ); + }, +); diff --git a/packages/react-components/lib/lifts/lift-panel.tsx b/packages/react-components/lib/lifts/lift-panel.tsx index 9c506fc90..2c19727a8 100644 --- a/packages/react-components/lib/lifts/lift-panel.tsx +++ b/packages/react-components/lib/lifts/lift-panel.tsx @@ -25,11 +25,14 @@ import { motionStateToString, requestDoorModes, requestModes, + onLiftClick, } from './lift-utils'; +import { LeafletContextInterface } from '@react-leaflet/core'; export interface LiftPanelProps { lifts: Lift[]; liftStates: Record; + leafletMap?: LeafletContextInterface; onRequestSubmit?( event: React.FormEvent, lift: Lift, @@ -52,6 +55,7 @@ export interface LiftCellProps { doorState?: number; motionState?: number; currentFloor?: string; + leafletMap?: LeafletContextInterface; destinationFloor?: string; onRequestSubmit?( event: React.FormEvent, @@ -65,6 +69,7 @@ export interface LiftCellProps { const classes = { container: 'lift-panel-container', buttonBar: 'lift-panel-button-bar', + buttonGroup: 'lift-panel-button-group', grid: 'lift-panel-grid', cellPaper: 'lift-panel-cell-paper', requestButton: 'lift-panel-request-button', @@ -106,11 +111,15 @@ const StyledCard = styled((props: CardProps) => )(({ theme }) marginTop: theme.spacing(1), padding: theme.spacing(1), backgroundColor: theme.palette.info.light, - margin: 'auto', }, [`& .${classes.itemIcon}`]: { color: theme.palette.primary.contrastText, }, + [`& .${classes.buttonGroup}`]: { + marginTop: theme.spacing(1), + display: 'flex', + justifyContent: 'center', + }, [`& .${classes.iconMoving}`]: { color: theme.palette.success.main, }, @@ -147,6 +156,7 @@ const LiftCell = React.memo( doorState, motionState, currentFloor, + leafletMap, destinationFloor, onRequestSubmit, }: LiftCellProps): JSX.Element | null => { @@ -173,7 +183,12 @@ const LiftCell = React.memo( }, []); return ( - + onLiftClick(lift, leafletMap)} + >
) : null; }; -export function LiftPanel({ lifts, liftStates, onRequestSubmit }: LiftPanelProps): JSX.Element { +export function LiftPanel({ + lifts, + liftStates, + onRequestSubmit, + leafletMap, +}: LiftPanelProps): JSX.Element { const [isCellView, setIsCellView] = React.useState(true); const columnWidth = 250; @@ -300,6 +323,7 @@ export function LiftPanel({ lifts, liftStates, onRequestSubmit }: LiftPanelProps lifts, liftStates, onRequestSubmit, + leafletMap, }} > {LiftGridRenderer} @@ -308,7 +332,12 @@ export function LiftPanel({ lifts, liftStates, onRequestSubmit }: LiftPanelProps }} ) : ( - + )} diff --git a/packages/react-components/lib/lifts/lift-table.tsx b/packages/react-components/lib/lifts/lift-table.tsx index 3c32c9255..eea88a7e1 100644 --- a/packages/react-components/lib/lifts/lift-table.tsx +++ b/packages/react-components/lib/lifts/lift-table.tsx @@ -6,8 +6,15 @@ import { FixedSizeList, ListChildComponentProps } from 'react-window'; import { DoorMode as RmfDoorMode } from 'rmf-models'; import { useFixedTableCellStylesClasses, ItemTableCell } from '../utils'; import LiftRequestFormDialog from './lift-request-form-dialog'; -import { doorStateToString, liftModeToString, requestDoorModes, requestModes } from './lift-utils'; +import { + doorStateToString, + liftModeToString, + requestDoorModes, + requestModes, + onLiftClick, +} from './lift-utils'; import AutoSizer, { AutoSizerProps } from 'react-virtualized-auto-sizer'; +import { LeafletContextInterface } from '@react-leaflet/core'; const classes = { doorLabelOpen: 'lift-table-doorlabelopen', @@ -46,6 +53,7 @@ const StyledAutosizer = styled((props: AutoSizerProps) => ; + leafletMap?: LeafletContextInterface; onRequestSubmit?( event: React.FormEvent, lift: Lift, @@ -65,6 +73,7 @@ export interface LiftRowProps { destinationFloor?: string; currentFloor?: string; currentMode?: number; + leafletMap?: LeafletContextInterface; onRequestSubmit?( event: React.FormEvent, lift: Lift, @@ -81,6 +90,7 @@ const LiftRow = React.memo( destinationFloor, currentFloor, currentMode, + leafletMap, onRequestSubmit, }: LiftRowProps) => { const [showForms, setShowForms] = React.useState(false); @@ -100,7 +110,12 @@ const LiftRow = React.memo( }, []); return ( - + onLiftClick(lift, leafletMap)} + > { const lift = data.lifts[index]; const liftState = data.liftStates[lift.name]; + const leafletMap = data.leafletMap; return (
@@ -179,12 +195,18 @@ const LiftListRenderer = ({ data, index, style }: LiftListRendererProps) => { destinationFloor={liftState?.destination_floor} onRequestSubmit={data.onRequestSubmit} key={`${lift.name}`} + leafletMap={leafletMap} />
); }; -export const LiftTable = ({ lifts, liftStates, onRequestSubmit }: LiftTableProps): JSX.Element => { +export const LiftTable = ({ + lifts, + liftStates, + onRequestSubmit, + leafletMap, +}: LiftTableProps): JSX.Element => { const { fixedTableCell, fixedLastTableCell } = useFixedTableCellStylesClasses; return ( @@ -247,6 +269,7 @@ export const LiftTable = ({ lifts, liftStates, onRequestSubmit }: LiftTableProps lifts, liftStates, onRequestSubmit, + leafletMap, }} > {LiftListRenderer} diff --git a/packages/react-components/lib/lifts/lift-utils.ts b/packages/react-components/lib/lifts/lift-utils.ts index 5695594da..078264cc0 100644 --- a/packages/react-components/lib/lifts/lift-utils.ts +++ b/packages/react-components/lib/lifts/lift-utils.ts @@ -1,5 +1,6 @@ import { Lift } from 'api-client'; import { LiftRequest as RmfLiftRequest, LiftState as RmfLiftState } from 'rmf-models'; +import { LeafletContextInterface } from '@react-leaflet/core'; export function liftModeToString(liftMode?: number): string { if (liftMode === undefined) { @@ -77,3 +78,10 @@ export const requestDoorModeStrings: Record = { export function requestDoorModeToString(requestDoorMode: number): string { return requestDoorModeStrings[requestDoorMode] || 'Unknown'; } + +export function onLiftClick(lift: Lift, leafletMap?: LeafletContextInterface): void { + leafletMap && + leafletMap.map?.setView([lift.ref_y, lift.ref_x], 5.5, { + animate: true, + }); +} diff --git a/packages/react-components/lib/map/default-robot-marker.tsx b/packages/react-components/lib/map/default-robot-marker.tsx index 1423cefaa..6ac1f8dfb 100644 --- a/packages/react-components/lib/map/default-robot-marker.tsx +++ b/packages/react-components/lib/map/default-robot-marker.tsx @@ -36,16 +36,14 @@ export const DefaultMarker = ({ const componentId = React.useMemo(uniqueId, []); const shadowId = React.useMemo(() => `RobotDefaultIcon-${componentId}-shadow`, [componentId]); - const conflictShadowId = React.useMemo( - () => `RobotDefaultIcon-${componentId}-shadow-conflict`, - [componentId], - ); + const conflictShadowId = React.useMemo(() => `RobotDefaultIcon-${componentId}-shadow-conflict`, [ + componentId, + ]); const Shadow = React.useMemo(() => makeGradientShadow('#000000'), []); - const ShadowConflict = React.useMemo( - () => makeGradientShadow(colorManager.conflictHighlight), - [colorManager.conflictHighlight], - ); + const ShadowConflict = React.useMemo(() => makeGradientShadow(colorManager.conflictHighlight), [ + colorManager.conflictHighlight, + ]); return ( diff --git a/packages/react-components/lib/map/doors-overlay.tsx b/packages/react-components/lib/map/doors-overlay.tsx index 354b69968..c565ca22b 100644 --- a/packages/react-components/lib/map/doors-overlay.tsx +++ b/packages/react-components/lib/map/doors-overlay.tsx @@ -4,7 +4,7 @@ import { almostShallowEqual } from '../utils'; import { fromRmfCoords } from '../utils/geometry'; import { DoorMarker as DoorMarker_, DoorMarkerProps } from './door-marker'; import { useAutoScale } from './hooks'; -import { SVGOverlay, SVGOverlayProps } from './svg-overlay'; +import { SVGOverlay, SVGOverlayProps } from 'react-leaflet'; import { getDoorCenter, viewBoxFromLeafletBounds } from './utils'; import { withLabel } from './with-label'; @@ -19,10 +19,10 @@ interface BoundedMarkerProps extends Omit { */ function bindMarker(MarkerComponent: React.ComponentType) { return ({ door, onClick, ...otherProps }: BoundedMarkerProps) => { - const handleClick = React.useCallback( - (ev) => onClick && onClick(ev, door.name), - [onClick, door.name], - ); + const handleClick = React.useCallback((ev) => onClick && onClick(ev, door.name), [ + onClick, + door.name, + ]); return ; }; } @@ -49,7 +49,7 @@ export const DoorsOverlay = ({ const scale = useAutoScale(40); return ( - + {doors.map((door) => { const center = fromRmfCoords(getDoorCenter(door)); const [x1, y1] = fromRmfCoords([door.v1_x, door.v1_y]); diff --git a/packages/react-components/lib/map/hooks.ts b/packages/react-components/lib/map/hooks.ts index 35ff1729b..f1ebf133c 100644 --- a/packages/react-components/lib/map/hooks.ts +++ b/packages/react-components/lib/map/hooks.ts @@ -1,5 +1,5 @@ import React from 'react'; -import { useLeaflet } from 'react-leaflet'; +import { useMap } from 'react-leaflet'; import { DefaultMarkerActualSizeMinZoom } from './constants'; /** @@ -9,19 +9,19 @@ import { DefaultMarkerActualSizeMinZoom } from './constants'; * @returns */ export function useAutoScale(factor: number, threshold = DefaultMarkerActualSizeMinZoom): number { - const leaflet = useLeaflet(); + const leaflet = useMap(); const getScale = React.useCallback(() => { - if (!leaflet.map || leaflet.map.getZoom() >= threshold) return 1; - return factor / 2 ** leaflet.map.getZoom(); - }, [leaflet.map, threshold, factor]); + if (!leaflet || leaflet.getZoom() >= threshold) return 1; + return factor / 2 ** leaflet.getZoom(); + }, [leaflet, threshold, factor]); const [scale, setScale] = React.useState(getScale); React.useEffect(() => { - if (!leaflet.map) return; - leaflet.map.on('zoom', () => setScale(getScale())); - }, [leaflet.map, getScale]); + if (!leaflet) return; + leaflet.on('zoom', () => setScale(getScale())); + }, [leaflet, getScale]); return scale; } diff --git a/packages/react-components/lib/map/index.tsx b/packages/react-components/lib/map/index.tsx index 48fa039b2..efbd4afea 100644 --- a/packages/react-components/lib/map/index.tsx +++ b/packages/react-components/lib/map/index.tsx @@ -10,7 +10,6 @@ export * from './robots-overlay'; export * from './trajectories-overlay'; export * from './trajectory'; export * from './trajectory-marker'; -export * from './trajectory-time-control'; export * from './utils'; export * from './waypoint-marker'; export * from './waypoints-overlay'; diff --git a/packages/react-components/lib/map/label-marker.tsx b/packages/react-components/lib/map/label-marker.tsx index d10ba4a92..f7ec92543 100644 --- a/packages/react-components/lib/map/label-marker.tsx +++ b/packages/react-components/lib/map/label-marker.tsx @@ -308,7 +308,7 @@ export function withAutoScaling( // collision detection to think the bbox is different size than what it actually is on screen. return ( { */ function bindMarker(MarkerComponent: React.ComponentType) { return ({ lift, onClick, ...otherProps }: BoundedMarkerProps) => { - const handleClick = React.useCallback( - (ev) => onClick && onClick(ev, lift.name), - [onClick, lift.name], - ); + const handleClick = React.useCallback((ev) => onClick && onClick(ev, lift.name), [ + onClick, + lift.name, + ]); return ; }; } @@ -80,7 +80,7 @@ export const LiftsOverlay = ({ const scale = useAutoScale(40); return ( - + {lifts.map((lift) => { const state = liftStates && liftStates[lift.name]; const pos = fromRmfCoords([lift.ref_x, lift.ref_y]); diff --git a/packages/react-components/lib/map/map.tsx b/packages/react-components/lib/map/map.tsx index ff18a0dc9..e4075b97c 100644 --- a/packages/react-components/lib/map/map.tsx +++ b/packages/react-components/lib/map/map.tsx @@ -1,12 +1,12 @@ +import { LeafletContextInterface, CONTEXT_VERSION, useLeafletContext } from '@react-leaflet/core'; import { useTheme } from '@mui/material'; import type { Level } from 'api-client'; import * as L from 'leaflet'; import 'leaflet/dist/leaflet.css'; import React from 'react'; -import { Map as LMap_, MapProps as LMapProps_, Pane, useLeaflet } from 'react-leaflet'; +import { MapContainer, MapContainerProps, Pane, SVGOverlay, useMap } from 'react-leaflet'; import { EntityManager, EntityManagerContext } from './entity-manager'; import { LabelsPortalContext } from './labels-overlay'; -import { SVGOverlay } from './svg-overlay'; import { viewBoxFromLeafletBounds } from './utils'; export interface MapFloorLayer { @@ -26,37 +26,47 @@ export function calcMaxBounds( return bounds.pad(0.2); } -function EntityManagerProvider({ children }: React.PropsWithChildren<{}>) { - const leaflet = useLeaflet(); +function EntityManagerProvider({ + setLeafletMap, + children, +}: React.PropsWithChildren<{ + setLeafletMap?: React.Dispatch>; +}>) { + const mapInstance = useMap(); + const leafletContext = useLeafletContext(); const { current: entityManager } = React.useRef(new EntityManager()); React.useEffect(() => { - if (!leaflet.map) return; + if (!mapInstance) return; + if (setLeafletMap) setLeafletMap({ __version: CONTEXT_VERSION, map: mapInstance }); const listener = () => { // TODO: recalculate positions }; - leaflet.map.on('zoom', listener); + mapInstance.on('zoom', listener); return () => { - leaflet.map && leaflet.map.off('zoom', listener); + mapInstance && mapInstance.off('zoom', listener); }; - }, [leaflet, leaflet.map]); + }, [mapInstance, setLeafletMap, leafletContext]); return entityManager ? ( {children} ) : null; } -export interface LMapProps extends Omit { - ref?: React.Ref; +export interface LMapProps extends Omit { + setLeafletMap?: React.Dispatch>; + leafletMap?: LeafletContextInterface; } export const LMap = React.forwardRef( - ({ className, children, ...otherProps }: LMapProps, ref: React.Ref) => { - const [labelsPortal, setLabelsPortal] = React.useState(null); - const viewBox = otherProps.bounds ? viewBoxFromLeafletBounds(otherProps.bounds) : undefined; + ({ children, setLeafletMap, ...otherProps }: LMapProps, ref): React.ReactElement => { const theme = useTheme(); + const [labelsPortal, setLabelsPortal] = React.useState(null); + const viewBox = otherProps.bounds ? viewBoxFromLeafletBounds(otherProps.bounds) : ''; + return ( - { + ref = { current: null }; + ref.current = mapInstance; + }} {...otherProps} > - + {children} {otherProps.bounds && ( { - setLabelsPortal(current?.container || null); + setLabelsPortal(current?.getElement()?.ownerSVGElement || null); }} - viewBox={viewBox} - bounds={otherProps.bounds} /> )} - + ); }, ); diff --git a/packages/react-components/lib/map/robots-overlay.tsx b/packages/react-components/lib/map/robots-overlay.tsx index f08c84da4..a15bed964 100644 --- a/packages/react-components/lib/map/robots-overlay.tsx +++ b/packages/react-components/lib/map/robots-overlay.tsx @@ -4,7 +4,8 @@ import { fromRmfCoords, fromRmfYaw } from '../utils/geometry'; import { RobotState as RmfRobotState } from 'rmf-models'; import { useAutoScale } from './hooks'; import { RobotMarker as RobotMarker_, RobotMarkerProps } from './robot-marker'; -import { SVGOverlay, SVGOverlayProps } from './svg-overlay'; +// import { SVGOverlay, SVGOverlayProps } from './svg-overlay'; +import { SVGOverlay, SVGOverlayProps } from 'react-leaflet'; import { viewBoxFromLeafletBounds } from './utils'; import { withLabel } from './with-label'; @@ -30,10 +31,11 @@ interface BoundedMarkerProps extends Omit { */ function bindMarker(MarkerComponent: React.ComponentType) { return ({ fleet, name, onClick, ...otherProps }: BoundedMarkerProps) => { - const handleClick = React.useCallback( - (ev) => onClick && onClick(ev, fleet, name), - [onClick, fleet, name], - ); + const handleClick = React.useCallback((ev) => onClick && onClick(ev, fleet, name), [ + onClick, + fleet, + name, + ]); return ; }; } @@ -66,7 +68,7 @@ export const RobotsOverlay = ({ const footprint = 0.5; return ( - + {robots.map((robot) => { const state = getRobotState(robot.fleet, robot.name); if (!state) return; diff --git a/packages/react-components/lib/map/schedule-visualizer.stories.tsx b/packages/react-components/lib/map/schedule-visualizer.stories.tsx index 62dcef219..ca52fd581 100644 --- a/packages/react-components/lib/map/schedule-visualizer.stories.tsx +++ b/packages/react-components/lib/map/schedule-visualizer.stories.tsx @@ -110,23 +110,28 @@ export const ScheduleVisualizer: Story = () => { setLevelBounds(bounds); }, [images, levels]); + const baseLayerHandler = (levelName: string): L.LeafletEventHandlerFnMap | undefined => { + return { + add: () => setCurrentLevel(levels.find((l) => l.name === levelName) || levels[0]), + remove: () => setCurrentLevel(levels.find((l) => l.name === levelName) || levels[0]), + }; + }; + return bounds ? (
- { - const newLevel = levels.find((l) => l.name === ev.name); - newLevel && setCurrentLevel(newLevel); - }} - > + {officeMap.levels.map((level) => ( - + ))} diff --git a/packages/react-components/lib/map/svg-overlay.tsx b/packages/react-components/lib/map/svg-overlay.tsx deleted file mode 100644 index c5afc6121..000000000 --- a/packages/react-components/lib/map/svg-overlay.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { SVGOverlay as SVGOverlay_, SVGOverlayProps as SVGOverlayProps_ } from 'react-leaflet'; - -/** - * SVGOverlay typings are broken, its missing the required attribute 'bounds'. - */ -export interface SVGOverlayProps extends SVGOverlayProps_ { - bounds: L.LatLngBoundsExpression; -} - -interface SVGOverlayComponent extends SVGOverlay_ { - container?: SVGSVGElement; -} - -export const SVGOverlay = (SVGOverlay_ as unknown) as React.ClassType< - SVGOverlayProps, - SVGOverlayComponent, - { - new (props: SVGOverlayProps, context?: unknown): SVGOverlayComponent; - } ->; - -export default SVGOverlay; diff --git a/packages/react-components/lib/map/trajectories-overlay.tsx b/packages/react-components/lib/map/trajectories-overlay.tsx index bcc282bf4..d4b6f83df 100644 --- a/packages/react-components/lib/map/trajectories-overlay.tsx +++ b/packages/react-components/lib/map/trajectories-overlay.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { SVGOverlay, SVGOverlayProps } from './svg-overlay'; +import { SVGOverlay, SVGOverlayProps } from 'react-leaflet'; import { TrajectoryMarker as TrajectoryMarker_, TrajectoryMarkerProps } from './trajectory-marker'; import { viewBoxFromLeafletBounds } from './utils'; @@ -16,9 +16,8 @@ export const TrajectoriesOverlay = ({ ...otherProps }: TrajectoriesOverlayProps): JSX.Element => { const viewBox = viewBoxFromLeafletBounds(otherProps.bounds); - return ( - + {trajectoriesData.map((trajData) => ( + {waypoints.map((waypoint, idx) => { const [x, y] = fromRmfCoords([waypoint.vertex.x, waypoint.vertex.y]); return ( diff --git a/packages/react-components/lib/map/workcells-overlay.tsx b/packages/react-components/lib/map/workcells-overlay.tsx index b6d8050cd..462022e05 100644 --- a/packages/react-components/lib/map/workcells-overlay.tsx +++ b/packages/react-components/lib/map/workcells-overlay.tsx @@ -2,10 +2,10 @@ import React from 'react'; import { almostShallowEqual } from '../utils'; import { fromRmfCoords } from '../utils/geometry'; import { useAutoScale } from './hooks'; -import { SVGOverlay, SVGOverlayProps } from './svg-overlay'; -import { viewBoxFromLeafletBounds } from './utils'; +import { SVGOverlay, SVGOverlayProps } from 'react-leaflet'; import { withLabel } from './with-label'; import { WorkcellMarker as WorkcellMarker_, WorkcellMarkerProps } from './workcell-marker'; +import { viewBoxFromLeafletBounds } from './utils'; interface BoundedMarkerProps extends Omit { guid: string; @@ -50,7 +50,7 @@ export const WorkcellsOverlay = ({ const scale = useAutoScale(40); return ( - + {workcells.map((workcell) => { const [x, y] = fromRmfCoords(workcell.location); return ( diff --git a/packages/react-components/lib/reports/multi-level-menu.tsx b/packages/react-components/lib/reports/multi-level-menu.tsx index 8ade25fbe..2d2b2e3b8 100644 --- a/packages/react-components/lib/reports/multi-level-menu.tsx +++ b/packages/react-components/lib/reports/multi-level-menu.tsx @@ -42,13 +42,15 @@ interface MenuItemProps { onClick?: () => void; } -const MenuItem = React.memo((props: MenuItemProps): JSX.Element => { - return ( - - - - ); -}); +const MenuItem = React.memo( + (props: MenuItemProps): JSX.Element => { + return ( + + + + ); + }, +); export interface ExpandableMultilevelMenuProps { icon?: JSX.Element; @@ -81,33 +83,35 @@ export interface MultilevelMenuProps { menuStructure: (ExpandableMultilevelMenuProps | MenuItemProps)[]; } -export const MultiLevelMenu = React.memo((props: MultilevelMenuProps): React.ReactElement => { - const createList = (items: (ExpandableMultilevelMenuProps | MenuItemProps)[]) => { - const menu: JSX.Element[] = []; - items.map((menuItem: ExpandableMultilevelMenuProps | MenuItemProps) => { - // If it has children's - if (Array.isArray(menuItem.items) && menuItem.items.length > 0) { - menu.push( - , - ); - } else { - menu.push( - , - ); - } - }); - return menu.concat(); - }; +export const MultiLevelMenu = React.memo( + (props: MultilevelMenuProps): React.ReactElement => { + const createList = (items: (ExpandableMultilevelMenuProps | MenuItemProps)[]) => { + const menu: JSX.Element[] = []; + items.map((menuItem: ExpandableMultilevelMenuProps | MenuItemProps) => { + // If it has children's + if (Array.isArray(menuItem.items) && menuItem.items.length > 0) { + menu.push( + , + ); + } else { + menu.push( + , + ); + } + }); + return menu.concat(); + }; - return {createList(props.menuStructure)}; -}); + return {createList(props.menuStructure)}; + }, +); diff --git a/packages/react-components/lib/tasks/create-task.tsx b/packages/react-components/lib/tasks/create-task.tsx index 8ab477751..ee2ad6429 100644 --- a/packages/react-components/lib/tasks/create-task.tsx +++ b/packages/react-components/lib/tasks/create-task.tsx @@ -532,7 +532,7 @@ export function CreateTaskForm({ return; } // FIXME: needed because dateio typings default to moment - task.start_time = Math.floor((date as unknown as Date).getTime() / 1000); + task.start_time = Math.floor(((date as unknown) as Date).getTime() / 1000); updateTasks(); }} label="Start Time" diff --git a/packages/react-components/lib/workcells/utils.ts b/packages/react-components/lib/workcells/utils.ts index 10303d6c1..ebf9acdd3 100644 --- a/packages/react-components/lib/workcells/utils.ts +++ b/packages/react-components/lib/workcells/utils.ts @@ -1,4 +1,21 @@ import { DispenserState as RmfDispenserState } from 'rmf-models'; +import { LeafletContextInterface } from '@react-leaflet/core'; + +interface Location { + x: number; + y: number; + yaw: number; + level_name: string; +} + +export interface RawDispenserResource { + icons: Record; + location: Location; +} + +export interface DispenserResource extends RawDispenserResource { + guid: string; +} export function dispenserModeToString(mode: number): string { switch (mode) { @@ -12,3 +29,13 @@ export function dispenserModeToString(mode: number): string { return 'N/A'; } } + +export function onWorkcellClick( + workcell: DispenserResource, + leafletMap?: LeafletContextInterface, +): void { + leafletMap && + leafletMap.map?.setView([workcell.location.y, workcell.location.x], 5.5, { + animate: true, + }); +} diff --git a/packages/react-components/lib/workcells/workcell-panel.spec.tsx b/packages/react-components/lib/workcells/workcell-panel.spec.tsx index 6f64ea204..fde179ce1 100644 --- a/packages/react-components/lib/workcells/workcell-panel.spec.tsx +++ b/packages/react-components/lib/workcells/workcell-panel.spec.tsx @@ -16,6 +16,7 @@ function renderWorkcellPanel() { test_dispenser: makeDispenserState({ guid: 'test_dispenser' }), test_ingestor: makeDispenserState({ guid: 'test_ingestor' }), }} + workcellContext={{}} />, ); } @@ -34,6 +35,7 @@ describe('Workcell Panel', () => { test_dispenser: makeDispenserState({ guid: 'test_dispenser' }), test_ingestor: makeDispenserState({ guid: 'test_ingestor' }), }} + workcellContext={{}} />, ); }); diff --git a/packages/react-components/lib/workcells/workcell-panel.stories.tsx b/packages/react-components/lib/workcells/workcell-panel.stories.tsx index 7dee4dc87..0302f5d97 100644 --- a/packages/react-components/lib/workcells/workcell-panel.stories.tsx +++ b/packages/react-components/lib/workcells/workcell-panel.stories.tsx @@ -40,6 +40,7 @@ export const WorkcellPanelStory: Story = (args) => { test_ingestor2: makeDispenserState({ guid: 'test_ingestor2' }), test_ingestor4: makeDispenserState({ guid: 'test_ingestor4' }), }} + workcellContext={{}} {...args} /> ); diff --git a/packages/react-components/lib/workcells/workcell-panel.tsx b/packages/react-components/lib/workcells/workcell-panel.tsx index c33238138..b50d7f029 100644 --- a/packages/react-components/lib/workcells/workcell-panel.tsx +++ b/packages/react-components/lib/workcells/workcell-panel.tsx @@ -12,20 +12,26 @@ import ViewListIcon from '@mui/icons-material/ViewList'; import ViewModuleIcon from '@mui/icons-material/ViewModule'; import type { Dispenser, Ingestor } from 'api-client'; import React from 'react'; +import { onWorkcellClick, DispenserResource } from './utils'; import AutoSizer from 'react-virtualized-auto-sizer'; import { FixedSizeGrid, GridChildComponentProps } from 'react-window'; import { Workcell, WorkcellState } from '.'; import { WorkcellTable } from './workcell-table'; +import { LeafletContextInterface } from '@react-leaflet/core'; export interface WorkcellPanelProps { dispensers: Dispenser[]; ingestors: Ingestor[]; + leafletMap?: LeafletContextInterface; + workcellContext: Record; workcellStates: Record; } export interface WorkcellDataProps { workcells: Workcell[]; workcellStates: Record; + workcellContext: Record; + leafletMap: LeafletContextInterface | undefined; } interface WorkcellGridData extends WorkcellDataProps { @@ -40,6 +46,8 @@ export interface WorkcellCellProps { workcell: Workcell; requestGuidQueue?: string[]; secondsRemaining?: number; + leafletMap?: LeafletContextInterface; + workcellResource?: DispenserResource; } const classes = { @@ -82,7 +90,6 @@ const StyledCard = styled((props: CardProps) => )(({ theme }) backgroundColor: theme.palette.action.hover, }, margin: theme.spacing(1), - height: '60%', }, [`& .${classes.grid}`]: { padding: theme.spacing(2), @@ -115,10 +122,21 @@ const StyledCard = styled((props: CardProps) => )(({ theme }) })); const WorkcellCell = React.memo( - ({ workcell, requestGuidQueue, secondsRemaining }: WorkcellCellProps): JSX.Element | null => { + ({ + workcell, + requestGuidQueue, + secondsRemaining, + leafletMap, + workcellResource, + }: WorkcellCellProps): JSX.Element | null => { const labelId = `workcell-cell-${workcell.guid}`; return ( - + workcellResource && onWorkcellClick(workcellResource, leafletMap)} + > {requestGuidQueue !== undefined && secondsRemaining !== undefined ? ( { let workcell: Workcell | undefined; let workcellState: WorkcellState | undefined; + let workcellResource: DispenserResource | undefined; + let leafletMap: LeafletContextInterface | undefined; const columnCount = data.columnCount; - const { workcells, workcellStates } = data; + const { workcells, workcellStates, workcellContext } = data; if (rowIndex * columnCount + columnIndex <= workcells.length - 1) { workcell = workcells[rowIndex * columnCount + columnIndex]; workcellState = workcellStates[workcell.guid]; + workcellResource = workcellContext[workcell.guid]; + leafletMap = data.leafletMap; } return workcell ? ( @@ -178,6 +200,8 @@ const WorkcellGridRenderer = ({ workcell={workcell} requestGuidQueue={workcellState?.request_guid_queue} secondsRemaining={workcellState?.seconds_remaining} + workcellResource={workcellResource} + leafletMap={leafletMap} />
) : null; @@ -185,7 +209,9 @@ const WorkcellGridRenderer = ({ export function WorkcellPanel({ dispensers, + leafletMap, ingestors, + workcellContext, workcellStates, }: WorkcellPanelProps): JSX.Element { const [isCellView, setIsCellView] = React.useState(true); @@ -231,6 +257,8 @@ export function WorkcellPanel({ columnCount, workcells: dispensers, workcellStates, + workcellContext, + leafletMap, }} > {WorkcellGridRenderer} @@ -259,6 +287,8 @@ export function WorkcellPanel({ columnCount, workcells: ingestors, workcellStates, + workcellContext, + leafletMap, }} > {WorkcellGridRenderer} @@ -274,13 +304,23 @@ export function WorkcellPanel({ {dispensers.length > 0 ? (
Dispenser Table - +
) : null} {ingestors.length > 0 ? (
Ingestor Table - +
) : null} diff --git a/packages/react-components/lib/workcells/workcell-table.spec.tsx b/packages/react-components/lib/workcells/workcell-table.spec.tsx index 340e0586b..08ead1e0f 100644 --- a/packages/react-components/lib/workcells/workcell-table.spec.tsx +++ b/packages/react-components/lib/workcells/workcell-table.spec.tsx @@ -18,7 +18,9 @@ describe('Workcell table', () => { test2: makeDispenserState({ mode: RmfDispenserState.OFFLINE }), test3: makeDispenserState({ mode: -1 }), }; - const root = render(); + const root = render( + , + ); // check if all dispensers are rendered expect(root.getByLabelText('test')).toBeTruthy(); diff --git a/packages/react-components/lib/workcells/workcell-table.tsx b/packages/react-components/lib/workcells/workcell-table.tsx index 095ff1fc9..570d5da88 100644 --- a/packages/react-components/lib/workcells/workcell-table.tsx +++ b/packages/react-components/lib/workcells/workcell-table.tsx @@ -7,6 +7,8 @@ import { DispenserState as RmfDispenserState } from 'rmf-models'; import { Workcell, WorkcellState } from '.'; import { ItemTableCell, useFixedTableCellStylesClasses } from '../utils'; import { dispenserModeToString } from './utils'; +import { LeafletContextInterface } from '@react-leaflet/core'; +import { onWorkcellClick, DispenserResource } from './utils'; const classes = { dispenserLabelIdle: 'workcell-dispenser-label-idle', @@ -55,6 +57,8 @@ const StyledAutosizer = styled((props: AutoSizerProps) => ; workcells: Workcell[]; workcellStates: Record; } @@ -65,6 +69,8 @@ interface WorkcellListRendererProps extends ListChildComponentProps { } export interface WorkcellRowProps { + leafletMap?: LeafletContextInterface; + workcellResource: DispenserResource; workcell: Workcell; mode?: number; requestGuidQueue?: string[]; @@ -72,7 +78,14 @@ export interface WorkcellRowProps { } const WorkcellRow = React.memo( - ({ workcell, mode, requestGuidQueue, secondsRemaining }: WorkcellRowProps) => { + ({ + workcell, + mode, + requestGuidQueue, + secondsRemaining, + workcellResource, + leafletMap, + }: WorkcellRowProps) => { const { fixedTableCell } = useFixedTableCellStylesClasses; const dispenserModeLabelClasses = React.useCallback((mode: number): string => { switch (mode) { @@ -88,7 +101,12 @@ const WorkcellRow = React.memo( }, []); return ( - + onWorkcellClick(workcellResource, leafletMap)} + component="div" + > {mode !== undefined && requestGuidQueue !== undefined && secondsRemaining !== undefined ? ( { const workcell = data.workcells[index]; + const workcellContext = data.workcellContext; const workcellState: WorkcellState | undefined = data.workcellStates[workcell.guid]; + const leafletMap = data.leafletMap; return (
@@ -184,13 +204,20 @@ const WorkcellListRenderer = ({ data, index, style }: WorkcellListRendererProps) mode={workcellState?.mode} requestGuidQueue={workcellState?.request_guid_queue} secondsRemaining={workcellState?.seconds_remaining} + workcellResource={workcellContext[workcell.guid]} + leafletMap={leafletMap} />
); }; -export const WorkcellTable = ({ workcells, workcellStates }: WorkcellTableProps): JSX.Element => { - const { fixedTableCell } = useFixedTableCellStylesClasses; +export const WorkcellTable = ({ + workcells, + workcellStates, + workcellContext, + leafletMap, +}: WorkcellTableProps): JSX.Element => { + const { fixedTableCell, fixedLastTableCell } = useFixedTableCellStylesClasses; return ( {({ width }) => { @@ -229,7 +256,7 @@ export const WorkcellTable = ({ workcells, workcellStates }: WorkcellTableProps) Seconds Remaining @@ -244,6 +271,8 @@ export const WorkcellTable = ({ workcells, workcellStates }: WorkcellTableProps) itemData={{ workcells, workcellStates, + workcellContext, + leafletMap, }} > {WorkcellListRenderer} diff --git a/packages/react-components/package.json b/packages/react-components/package.json index a8d114cdf..ba68ef450 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -27,9 +27,8 @@ "@mui/styles": "^5.0.1", "@mui/x-data-grid": "^5.0.0-beta.4", "@types/crc": "^3.4.0", - "@types/leaflet": "^1.5.17", + "@types/leaflet": "^1.7.5", "@types/rbush": "^3.0.0", - "@types/react-leaflet": "^2.5.2", "@types/shallowequal": "^1.1.1", "api-client": "*", "clsx": "^1.1.1", @@ -41,14 +40,16 @@ "node-vibrant": "^3.1.6", "rbush": "^3.0.1", "react-customizable-progressbar": "^1.0.3", - "react-leaflet": "^2.7.0", "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", + "react-leaflet": "3.1.0", "rmf-models": "*", "shallowequal": "^1.1.0" }, "devDependencies": { + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@jsdevtools/coverage-istanbul-loader": "^3.0.5", + "@react-leaflet/core": "1.0.2", "@mui/material": "^5.0.4", "@storybook/addon-actions": "^6.3.7", "@storybook/addon-essentials": "^6.3.7", @@ -83,7 +84,7 @@ "puppeteer": "^10.2.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-leaflet": "^2.7.0", + "react-leaflet": "3.1.0", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "ts-loader": "^8.1.0", @@ -97,5 +98,6 @@ "react-dom": "^17.0.2", "react-router": "^5.2.0", "react-router-dom": "^5.2.0" - } + }, + "plugins": ["@babel/plugin-proposal-nullish-coalescing-operator"] } diff --git a/packages/react-components/tsconfig.json b/packages/react-components/tsconfig.json index bff1e0f3b..c10d2ca07 100644 --- a/packages/react-components/tsconfig.json +++ b/packages/react-components/tsconfig.json @@ -22,5 +22,5 @@ "composite": true }, "include": ["lib/"], - "exclude": ["**/*.spec.*", "**/*.stories.*"] + "exclude": ["**/*.spec.*", "**/*.stories.*", "**/trajectory-time-control.tsx"] }