From 1a4efc17d715f3c7e41e09fe2c4132f10b7cc8d0 Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Sun, 13 Feb 2022 16:38:39 +1100 Subject: [PATCH] DM's and layout fixes --- package.json | 16 +- pnpm-lock.yaml | 1039 +++++++++-------- src/components/layout/Sidebar/ButtonNav.tsx | 6 +- .../layout/Sidebar/Settings/Channels.tsx | 31 +- .../radio/channels/panels/ChannelsGroup.tsx | 20 +- src/components/layout/Sidebar/index.tsx | 32 +- .../Sidebar/sections/SidebarOverlay.tsx | 2 +- src/components/layout/index.tsx | 20 +- src/components/menu/BottomNav.tsx | 3 +- src/components/modals/VersionInfo.tsx | 1 - src/core/connection.ts | 8 +- src/core/slices/meshtasticSlice.ts | 98 +- src/pages/Extensions/Info.tsx | 2 +- src/pages/Map/MapContainer.tsx | 2 +- src/pages/Messages/ChannelChat.tsx | 111 ++ src/pages/Messages/DmChat.tsx | 40 + src/pages/Messages/Message.tsx | 28 +- src/pages/Messages/MessageBar.tsx | 31 +- src/pages/Messages/index.tsx | 161 +-- src/pages/Nodes/NodeCard.tsx | 106 +- 20 files changed, 952 insertions(+), 805 deletions(-) create mode 100644 src/pages/Messages/ChannelChat.tsx create mode 100644 src/pages/Messages/DmChat.tsx diff --git a/package.json b/package.json index 98059c40..68e822be 100644 --- a/package.json +++ b/package.json @@ -18,14 +18,14 @@ "@meshtastic/meshtasticjs": "^0.6.39", "@reduxjs/toolkit": "^1.7.2", "base64-js": "^1.5.1", - "framer-motion": "^6.2.4", + "framer-motion": "^6.2.6", "graphql-request": "^4.0.0", "mapbox-gl": "^2.7.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-error-boundary": "^3.1.4", - "react-flow-renderer": "^10.0.0-next.38", - "react-hook-form": "^7.26.1", + "react-flow-renderer": "^10.0.0-next.39", + "react-hook-form": "^7.27.0", "react-icons": "^4.3.1", "react-json-pretty": "^2.2.0", "react-multi-select-component": "^4.2.1", @@ -48,10 +48,10 @@ "@typescript-eslint/eslint-plugin": "^5.11.0", "@typescript-eslint/parser": "^5.11.0", "@verypossible/eslint-config": "^1.6.1", - "@vitejs/plugin-react": "^1.1.4", + "@vitejs/plugin-react": "^1.2.0", "autoprefixer": "^10.4.2", "babel-plugin-module-resolver": "^4.1.0", - "eslint": "8.8.0", + "eslint": "8.9.0", "eslint-config-prettier": "^8.3.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-import-resolver-babel-module": "^5.3.1", @@ -62,11 +62,11 @@ "gzipper": "^7.0.0", "postcss": "^8.4.6", "prettier": "^2.5.1", - "prettier-plugin-tailwindcss": "^0.1.5", - "tailwindcss": "^3.0.19", + "prettier-plugin-tailwindcss": "^0.1.7", + "tailwindcss": "^3.0.22", "tar": "^6.1.11", "typescript": "^4.5.5", - "vite": "^2.7.13", + "vite": "^2.8.1", "vite-plugin-cdn-import": "^0.3.5", "vite-plugin-pwa": "^0.11.13", "workbox-window": "^6.4.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd488018..efdd07da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,11 +14,11 @@ specifiers: '@typescript-eslint/eslint-plugin': ^5.11.0 '@typescript-eslint/parser': ^5.11.0 '@verypossible/eslint-config': ^1.6.1 - '@vitejs/plugin-react': ^1.1.4 + '@vitejs/plugin-react': ^1.2.0 autoprefixer: ^10.4.2 babel-plugin-module-resolver: ^4.1.0 base64-js: ^1.5.1 - eslint: 8.8.0 + eslint: 8.9.0 eslint-config-prettier: ^8.3.0 eslint-import-resolver-alias: ^1.1.2 eslint-import-resolver-babel-module: ^5.3.1 @@ -26,18 +26,18 @@ specifiers: eslint-plugin-import: ^2.25.4 eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 - framer-motion: ^6.2.4 + framer-motion: ^6.2.6 graphql-request: ^4.0.0 gzipper: ^7.0.0 mapbox-gl: ^2.7.0 postcss: ^8.4.6 prettier: ^2.5.1 - prettier-plugin-tailwindcss: ^0.1.5 + prettier-plugin-tailwindcss: ^0.1.7 react: ^17.0.2 react-dom: ^17.0.2 react-error-boundary: ^3.1.4 - react-flow-renderer: ^10.0.0-next.38 - react-hook-form: ^7.26.1 + react-flow-renderer: ^10.0.0-next.39 + react-hook-form: ^7.27.0 react-icons: ^4.3.1 react-json-pretty: ^2.2.0 react-multi-select-component: ^4.2.1 @@ -47,12 +47,12 @@ specifiers: rfc4648: ^1.5.1 rollup-plugin-visualizer: ^5.5.4 swr: ^1.2.1 - tailwindcss: ^3.0.19 + tailwindcss: ^3.0.22 tar: ^6.1.11 timeago-react: ^3.0.4 type-route: ^0.6.0 typescript: ^4.5.5 - vite: ^2.7.13 + vite: ^2.8.1 vite-plugin-cdn-import: ^0.3.5 vite-plugin-environment: ^1.1.0 vite-plugin-pwa: ^0.11.13 @@ -65,14 +65,14 @@ dependencies: '@meshtastic/meshtasticjs': 0.6.39 '@reduxjs/toolkit': 1.7.2_react-redux@7.2.6+react@17.0.2 base64-js: 1.5.1 - framer-motion: 6.2.4_react-dom@17.0.2+react@17.0.2 + framer-motion: 6.2.6_react-dom@17.0.2+react@17.0.2 graphql-request: 4.0.0 mapbox-gl: 2.7.0 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-error-boundary: 3.1.4_react@17.0.2 - react-flow-renderer: 10.0.0-next.38_react-dom@17.0.2+react@17.0.2 - react-hook-form: 7.26.1_react@17.0.2 + react-flow-renderer: 10.0.0-next.39_react-dom@17.0.2+react@17.0.2 + react-hook-form: 7.27.0_react@17.0.2 react-icons: 4.3.1_react@17.0.2 react-json-pretty: 2.2.0_react-dom@17.0.2+react@17.0.2 react-multi-select-component: 4.2.1_react-dom@17.0.2+react@17.0.2 @@ -84,7 +84,7 @@ dependencies: swr: 1.2.1_react@17.0.2 timeago-react: 3.0.4_react@17.0.2 type-route: 0.6.0 - vite-plugin-environment: 1.1.0_vite@2.7.13 + vite-plugin-environment: 1.1.0_vite@2.8.1 devDependencies: '@types/mapbox-gl': 2.6.1 @@ -92,43 +92,43 @@ devDependencies: '@types/react-dom': 17.0.11 '@types/w3c-web-serial': 1.0.2 '@types/web-bluetooth': 0.0.12 - '@typescript-eslint/eslint-plugin': 5.11.0_de5a1ddccd75ca1e499b8b8491d3dcba - '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/eslint-plugin': 5.11.0_15a231715447500ed5c06da64c8aef1c + '@typescript-eslint/parser': 5.11.0_eslint@8.9.0+typescript@4.5.5 '@verypossible/eslint-config': 1.6.1_typescript@4.5.5 - '@vitejs/plugin-react': 1.1.4 + '@vitejs/plugin-react': 1.2.0 autoprefixer: 10.4.2_postcss@8.4.6 babel-plugin-module-resolver: 4.1.0 - eslint: 8.8.0 - eslint-config-prettier: 8.3.0_eslint@8.8.0 + eslint: 8.9.0 + eslint-config-prettier: 8.3.0_eslint@8.9.0 eslint-import-resolver-alias: 1.1.2_eslint-plugin-import@2.25.4 eslint-import-resolver-babel-module: 5.3.1_e51044130ac762fd207a8cd2109b5344 - eslint-import-resolver-typescript: 2.5.0_392f898cec7735a5f7a99430cbc0b4f4 - eslint-plugin-import: 2.25.4_eslint@8.8.0 - eslint-plugin-react: 7.28.0_eslint@8.8.0 - eslint-plugin-react-hooks: 4.3.0_eslint@8.8.0 + eslint-import-resolver-typescript: 2.5.0_1326372bbd2fe519ed5ba5fca843a914 + eslint-plugin-import: 2.25.4_eslint@8.9.0 + eslint-plugin-react: 7.28.0_eslint@8.9.0 + eslint-plugin-react-hooks: 4.3.0_eslint@8.9.0 gzipper: 7.0.0 postcss: 8.4.6 prettier: 2.5.1 - prettier-plugin-tailwindcss: 0.1.5_prettier@2.5.1 - tailwindcss: 3.0.19_833e1018ad0d7954aa80c53675939269 + prettier-plugin-tailwindcss: 0.1.7_prettier@2.5.1 + tailwindcss: 3.0.22_autoprefixer@10.4.2 tar: 6.1.11 typescript: 4.5.5 - vite: 2.7.13 + vite: 2.8.1 vite-plugin-cdn-import: 0.3.5 - vite-plugin-pwa: 0.11.13_vite@2.7.13 + vite-plugin-pwa: 0.11.13_vite@2.8.1 workbox-window: 6.4.2 packages: - /@ampproject/remapping/2.1.0: - resolution: {integrity: sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g==} + /@ampproject/remapping/2.1.1: + resolution: {integrity: sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.4 dev: true - /@apideck/better-ajv-errors/0.3.2_ajv@8.10.0: - resolution: {integrity: sha512-JdEazx7qiVqTBzzBl5rolRwl5cmhihjfIcpqRzIZjtT6b18liVmDn/VlWpqW4C/qP2hrFFMLRV1wlex8ZVBPTg==} + /@apideck/better-ajv-errors/0.3.3_ajv@8.10.0: + resolution: {integrity: sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==} engines: {node: '>=10'} peerDependencies: ajv: '>=8' @@ -157,16 +157,16 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.17.0: - resolution: {integrity: sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==} + /@babel/core/7.17.2: + resolution: {integrity: sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.1.0 + '@ampproject/remapping': 2.1.1 '@babel/code-frame': 7.16.7 '@babel/generator': 7.17.0 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.0 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 '@babel/helper-module-transforms': 7.16.7 - '@babel/helpers': 7.17.0 + '@babel/helpers': 7.17.2 '@babel/parser': 7.17.0 '@babel/template': 7.16.7 '@babel/traverse': 7.17.0 @@ -204,26 +204,26 @@ packages: '@babel/types': 7.17.0 dev: true - /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.0: + /@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-validator-option': 7.16.7 browserslist: 4.19.1 semver: 6.3.0 dev: true - /@babel/helper-create-class-features-plugin/7.17.1_@babel+core@7.17.0: + /@babel/helper-create-class-features-plugin/7.17.1_@babel+core@7.17.2: resolution: {integrity: sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 @@ -235,24 +235,24 @@ packages: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.0: + /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.2: resolution: {integrity: sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-annotate-as-pure': 7.16.7 regexpu-core: 5.0.1 dev: true - /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.0: + /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.2: resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 '@babel/traverse': 7.17.0 @@ -410,8 +410,8 @@ packages: - supports-color dev: true - /@babel/helpers/7.17.0: - resolution: {integrity: sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==} + /@babel/helpers/7.17.2: + resolution: {integrity: sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.16.7 @@ -436,367 +436,367 @@ packages: hasBin: true dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.0: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.0: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.0 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.0: + /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.2: resolution: {integrity: sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-remap-async-to-generator': 7.16.8 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-static-block/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-class-static-block/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.0 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-object-rest-spread/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-object-rest-spread/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.0 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.2 dev: true - /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.0: + /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.2: resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.0 + '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.0: + /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.0: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.2: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.0: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.2: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.0: + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.2: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.0: + /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.0: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.2: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.0: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.2: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.0: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.2: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.0: + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.2: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.0: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.2: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.0: + /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.2: resolution: {integrity: sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-remap-async-to-generator': 7.16.8 @@ -804,33 +804,33 @@ packages: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-function-name': 7.16.7 @@ -843,107 +843,107 @@ packages: - supports-color dev: true - /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-destructuring/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-destructuring/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 '@babel/helper-function-name': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 babel-plugin-dynamic-import-node: 2.3.3 @@ -951,13 +951,13 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.17.0: + /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.17.2: resolution: {integrity: sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-simple-access': 7.16.7 @@ -966,13 +966,13 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 @@ -982,308 +982,308 @@ packages: - supports-color dev: true - /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-module-transforms': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.0: + /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.2: resolution: {integrity: sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 dev: true - /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-replace-supers': 7.16.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/plugin-transform-react-jsx': 7.16.7_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/plugin-transform-react-jsx': 7.16.7_@babel+core@7.17.2 dev: true - /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-react-jsx/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.0 + '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.2 '@babel/types': 7.17.0 dev: true - /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 regenerator-transform: 0.14.5 dev: true - /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 dev: true - /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.0: + /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.2: resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/preset-env/7.16.11_@babel+core@7.17.0: + /@babel/preset-env/7.16.11_@babel+core@7.17.2: resolution: {integrity: sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.0 - '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.17.2 '@babel/helper-plugin-utils': 7.16.7 '@babel/helper-validator-option': 7.16.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.0 - '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-class-static-block': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-object-rest-spread': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.0 - '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.0 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.0 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.0 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.0 - '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.0 - '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-destructuring': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.17.0 - '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.0 - '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.0 - '@babel/preset-modules': 0.1.5_@babel+core@7.17.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.2 + '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-class-static-block': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-object-rest-spread': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.2 + '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.2 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.2 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.2 + '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.2 + '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-destructuring': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.17.2 + '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.2 + '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.2 + '@babel/preset-modules': 0.1.5_@babel+core@7.17.2 '@babel/types': 7.17.0 - babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.0 - babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.0 - babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.0 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.2 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.2 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.2 core-js-compat: 3.21.0 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.17.0: + /@babel/preset-modules/0.1.5_@babel+core@7.17.2: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.0 + '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.2 '@babel/types': 7.17.0 esutils: 2.0.3 dev: true - /@babel/runtime/7.17.0: - resolution: {integrity: sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==} + /@babel/runtime/7.17.2: + resolution: {integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 @@ -1382,7 +1382,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 '@emotion/cache': 11.7.1 '@emotion/serialize': 1.0.2 '@emotion/sheet': 1.1.0 @@ -1430,24 +1430,24 @@ packages: ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 - minimatch: 3.0.5 + minimatch: 3.1.0 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true - /@eslint/eslintrc/1.0.5: - resolution: {integrity: sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==} + /@eslint/eslintrc/1.1.0: + resolution: {integrity: sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.3 - espree: 9.3.0 + espree: 9.3.1 globals: 13.12.1 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 4.1.0 - minimatch: 3.0.5 + minimatch: 3.1.0 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color @@ -1490,7 +1490,7 @@ packages: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 - minimatch: 3.0.5 + minimatch: 3.1.0 transitivePeerDependencies: - supports-color dev: true @@ -1501,7 +1501,7 @@ packages: dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 - minimatch: 3.0.5 + minimatch: 3.1.0 transitivePeerDependencies: - supports-color dev: true @@ -1510,20 +1510,20 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@jridgewell/resolve-uri/3.0.4: - resolution: {integrity: sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==} + /@jridgewell/resolve-uri/3.0.5: + resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.10: - resolution: {integrity: sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==} + /@jridgewell/sourcemap-codec/1.4.11: + resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} dev: true - /@jridgewell/trace-mapping/0.3.2: - resolution: {integrity: sha512-9KzzH4kMjA2XmBRHfqG2/Vtl7s92l6uNDd0wW7frDE+EUvQFGqNXhWp0UGJjSkt3v2AYjzOZn1QO9XaTNJIt1Q==} + /@jridgewell/trace-mapping/0.3.4: + resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==} dependencies: - '@jridgewell/resolve-uri': 3.0.4 - '@jridgewell/sourcemap-codec': 1.4.10 + '@jridgewell/resolve-uri': 3.0.5 + '@jridgewell/sourcemap-codec': 1.4.11 dev: true /@mapbox/geojson-rewind/0.5.1: @@ -1642,7 +1642,7 @@ packages: reselect: 4.1.5 dev: false - /@rollup/plugin-babel/5.3.0_@babel+core@7.17.0+rollup@2.67.1: + /@rollup/plugin-babel/5.3.0_@babel+core@7.17.2+rollup@2.67.2: resolution: {integrity: sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -1653,38 +1653,38 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.17.0 + '@babel/core': 7.17.2 '@babel/helper-module-imports': 7.16.7 - '@rollup/pluginutils': 3.1.0_rollup@2.67.1 - rollup: 2.67.1 + '@rollup/pluginutils': 3.1.0_rollup@2.67.2 + rollup: 2.67.2 dev: true - /@rollup/plugin-node-resolve/11.2.1_rollup@2.67.1: + /@rollup/plugin-node-resolve/11.2.1_rollup@2.67.2: resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.67.1 + '@rollup/pluginutils': 3.1.0_rollup@2.67.2 '@types/resolve': 1.17.1 builtin-modules: 3.2.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.22.0 - rollup: 2.67.1 + rollup: 2.67.2 dev: true - /@rollup/plugin-replace/2.4.2_rollup@2.67.1: + /@rollup/plugin-replace/2.4.2_rollup@2.67.2: resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.67.1 + '@rollup/pluginutils': 3.1.0_rollup@2.67.2 magic-string: 0.25.7 - rollup: 2.67.1 + rollup: 2.67.2 dev: true - /@rollup/pluginutils/3.1.0_rollup@2.67.1: + /@rollup/pluginutils/3.1.0_rollup@2.67.2: resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -1693,7 +1693,7 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.67.1 + rollup: 2.67.2 dev: true /@rollup/pluginutils/4.1.2: @@ -1790,8 +1790,8 @@ packages: '@types/geojson': 7946.0.8 dev: true - /@types/node/17.0.16: - resolution: {integrity: sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==} + /@types/node/17.0.17: + resolution: {integrity: sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==} dev: true /@types/parse-json/4.0.0: @@ -1832,7 +1832,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 17.0.16 + '@types/node': 17.0.17 dev: true /@types/scheduler/0.16.2: @@ -1876,7 +1876,7 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.11.0_de5a1ddccd75ca1e499b8b8491d3dcba: + /@typescript-eslint/eslint-plugin/5.11.0_15a231715447500ed5c06da64c8aef1c: resolution: {integrity: sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1887,12 +1887,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.11.0_eslint@8.9.0+typescript@4.5.5 '@typescript-eslint/scope-manager': 5.11.0 - '@typescript-eslint/type-utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/type-utils': 5.11.0_eslint@8.9.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.11.0_eslint@8.9.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.8.0 + eslint: 8.9.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -1941,7 +1941,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.11.0_eslint@8.8.0+typescript@4.5.5: + /@typescript-eslint/parser/5.11.0_eslint@8.9.0+typescript@4.5.5: resolution: {integrity: sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1955,7 +1955,7 @@ packages: '@typescript-eslint/types': 5.11.0 '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 debug: 4.3.3 - eslint: 8.8.0 + eslint: 8.9.0 typescript: 4.5.5 transitivePeerDependencies: - supports-color @@ -1977,7 +1977,7 @@ packages: '@typescript-eslint/visitor-keys': 5.11.0 dev: true - /@typescript-eslint/type-utils/5.11.0_eslint@8.8.0+typescript@4.5.5: + /@typescript-eslint/type-utils/5.11.0_eslint@8.9.0+typescript@4.5.5: resolution: {integrity: sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1987,9 +1987,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.11.0_eslint@8.9.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.8.0 + eslint: 8.9.0 tsutils: 3.21.0_typescript@4.5.5 typescript: 4.5.5 transitivePeerDependencies: @@ -2048,7 +2048,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.11.0_eslint@8.8.0+typescript@4.5.5: + /@typescript-eslint/utils/5.11.0_eslint@8.9.0+typescript@4.5.5: resolution: {integrity: sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2058,9 +2058,9 @@ packages: '@typescript-eslint/scope-manager': 5.11.0 '@typescript-eslint/types': 5.11.0 '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 - eslint: 8.8.0 + eslint: 8.9.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.8.0 + eslint-utils: 3.0.0_eslint@8.9.0 transitivePeerDependencies: - supports-color - typescript @@ -2079,7 +2079,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.11.0 - eslint-visitor-keys: 3.2.0 + eslint-visitor-keys: 3.3.0 dev: true /@verypossible/eslint-config/1.6.1_typescript@4.5.5: @@ -2102,15 +2102,15 @@ packages: - typescript dev: true - /@vitejs/plugin-react/1.1.4: - resolution: {integrity: sha512-cMUBDonNY8PPeHWjIrYKbRn6bLSunh/Ixo2XLLBd3DM0uYBZft+c+04zkGhhN1lAwvoRKJ2FdtvhGhPgViHc6w==} + /@vitejs/plugin-react/1.2.0: + resolution: {integrity: sha512-Rywwt0IXXg6yQ0hv3cMT3mtdDcGIw31mGaa+MMMAT651LhoXLF2yFy4LrakiTs7UKs7RPBo9eNgaS8pgl2A6Qw==} engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.17.0 - '@babel/plugin-transform-react-jsx': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.0 - '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/plugin-transform-react-jsx': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.2 + '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.2 '@rollup/pluginutils': 4.1.2 react-refresh: 0.11.0 resolve: 1.22.0 @@ -2281,7 +2281,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.19.1 - caniuse-lite: 1.0.30001309 + caniuse-lite: 1.0.30001311 fraction.js: 4.1.3 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -2311,38 +2311,38 @@ packages: resolve: 1.22.0 dev: true - /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.0: + /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.2: resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.17.0 - '@babel/core': 7.17.0 - '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.2 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.0: + /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.2: resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.2 core-js-compat: 3.21.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.0: + /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.2: resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.0 - '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.0 + '@babel/core': 7.17.2 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.2 transitivePeerDependencies: - supports-color dev: true @@ -2378,10 +2378,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001309 - electron-to-chromium: 1.4.66 + caniuse-lite: 1.0.30001311 + electron-to-chromium: 1.4.68 escalade: 3.1.1 - node-releases: 2.0.1 + node-releases: 2.0.2 picocolors: 1.0.0 dev: true @@ -2411,8 +2411,8 @@ packages: engines: {node: '>= 6'} dev: true - /caniuse-lite/1.0.30001309: - resolution: {integrity: sha512-Pl8vfigmBXXq+/yUz1jUwULeq9xhMJznzdc/xwl4WclDAuebcTHVefpz8lE/bMI+UN7TOkSSe7B7RnZd6+dzjA==} + /caniuse-lite/1.0.30001311: + resolution: {integrity: sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==} dev: true /chalk/2.4.2: @@ -2767,7 +2767,7 @@ packages: /dom-helpers/5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 csstype: 3.0.10 dev: false @@ -2796,8 +2796,8 @@ packages: jake: 10.8.2 dev: true - /electron-to-chromium/1.4.66: - resolution: {integrity: sha512-f1RXFMsvwufWLwYUxTiP7HmjprKXrqEWHiQkjAYa9DJeVIlZk5v8gBGcaV+FhtXLly6C1OTVzQY+2UQrACiLlg==} + /electron-to-chromium/1.4.68: + resolution: {integrity: sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==} dev: true /emoji-regex/8.0.0: @@ -2870,164 +2870,202 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-arm64/0.13.15: - resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} + /esbuild-android-arm64/0.14.21: + resolution: {integrity: sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /esbuild-darwin-64/0.13.15: - resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==} + /esbuild-darwin-64/0.14.21: + resolution: {integrity: sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-darwin-arm64/0.13.15: - resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==} + /esbuild-darwin-arm64/0.14.21: + resolution: {integrity: sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /esbuild-freebsd-64/0.13.15: - resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==} + /esbuild-freebsd-64/0.14.21: + resolution: {integrity: sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-freebsd-arm64/0.13.15: - resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==} + /esbuild-freebsd-arm64/0.14.21: + resolution: {integrity: sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true dev: true optional: true - /esbuild-linux-32/0.13.15: - resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==} + /esbuild-linux-32/0.14.21: + resolution: {integrity: sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-64/0.13.15: - resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==} + /esbuild-linux-64/0.14.21: + resolution: {integrity: sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm/0.13.15: - resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==} + /esbuild-linux-arm/0.14.21: + resolution: {integrity: sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.13.15: - resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==} + /esbuild-linux-arm64/0.14.21: + resolution: {integrity: sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.13.15: - resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==} + /esbuild-linux-mips64le/0.14.21: + resolution: {integrity: sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-ppc64le/0.13.15: - resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==} + /esbuild-linux-ppc64le/0.14.21: + resolution: {integrity: sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-netbsd-64/0.13.15: - resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} + /esbuild-linux-riscv64/0.14.21: + resolution: {integrity: sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.21: + resolution: {integrity: sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.21: + resolution: {integrity: sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true dev: true optional: true - /esbuild-openbsd-64/0.13.15: - resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==} + /esbuild-openbsd-64/0.14.21: + resolution: {integrity: sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true dev: true optional: true - /esbuild-sunos-64/0.13.15: - resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==} + /esbuild-sunos-64/0.14.21: + resolution: {integrity: sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true dev: true optional: true - /esbuild-windows-32/0.13.15: - resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==} + /esbuild-windows-32/0.14.21: + resolution: {integrity: sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-64/0.13.15: - resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==} + /esbuild-windows-64/0.14.21: + resolution: {integrity: sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild-windows-arm64/0.13.15: - resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==} + /esbuild-windows-arm64/0.14.21: + resolution: {integrity: sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /esbuild/0.13.15: - resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==} + /esbuild/0.14.21: + resolution: {integrity: sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-arm64: 0.13.15 - esbuild-darwin-64: 0.13.15 - esbuild-darwin-arm64: 0.13.15 - esbuild-freebsd-64: 0.13.15 - esbuild-freebsd-arm64: 0.13.15 - esbuild-linux-32: 0.13.15 - esbuild-linux-64: 0.13.15 - esbuild-linux-arm: 0.13.15 - esbuild-linux-arm64: 0.13.15 - esbuild-linux-mips64le: 0.13.15 - esbuild-linux-ppc64le: 0.13.15 - esbuild-netbsd-64: 0.13.15 - esbuild-openbsd-64: 0.13.15 - esbuild-sunos-64: 0.13.15 - esbuild-windows-32: 0.13.15 - esbuild-windows-64: 0.13.15 - esbuild-windows-arm64: 0.13.15 + esbuild-android-arm64: 0.14.21 + esbuild-darwin-64: 0.14.21 + esbuild-darwin-arm64: 0.14.21 + esbuild-freebsd-64: 0.14.21 + esbuild-freebsd-arm64: 0.14.21 + esbuild-linux-32: 0.14.21 + esbuild-linux-64: 0.14.21 + esbuild-linux-arm: 0.14.21 + esbuild-linux-arm64: 0.14.21 + esbuild-linux-mips64le: 0.14.21 + esbuild-linux-ppc64le: 0.14.21 + esbuild-linux-riscv64: 0.14.21 + esbuild-linux-s390x: 0.14.21 + esbuild-netbsd-64: 0.14.21 + esbuild-openbsd-64: 0.14.21 + esbuild-sunos-64: 0.14.21 + esbuild-windows-32: 0.14.21 + esbuild-windows-64: 0.14.21 + esbuild-windows-arm64: 0.14.21 dev: true /escalade/3.1.1: @@ -3053,13 +3091,13 @@ packages: eslint: 7.32.0 dev: true - /eslint-config-prettier/8.3.0_eslint@8.8.0: + /eslint-config-prettier/8.3.0_eslint@8.9.0: resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.8.0 + eslint: 8.9.0 dev: true /eslint-import-resolver-alias/1.1.2_eslint-plugin-import@2.25.4: @@ -3068,7 +3106,7 @@ packages: peerDependencies: eslint-plugin-import: '>=1.4.0' dependencies: - eslint-plugin-import: 2.25.4_eslint@8.8.0 + eslint-plugin-import: 2.25.4_eslint@8.9.0 dev: true /eslint-import-resolver-babel-module/5.3.1_e51044130ac762fd207a8cd2109b5344: @@ -3090,7 +3128,7 @@ packages: resolve: 1.22.0 dev: true - /eslint-import-resolver-typescript/2.5.0_157002f9dff1b62f2b20650d7e8bf1eb: + /eslint-import-resolver-typescript/2.5.0_1326372bbd2fe519ed5ba5fca843a914: resolution: {integrity: sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==} engines: {node: '>=4'} peerDependencies: @@ -3098,8 +3136,8 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.3 - eslint: 7.32.0 - eslint-plugin-import: 2.25.4_eslint@7.32.0 + eslint: 8.9.0 + eslint-plugin-import: 2.25.4_eslint@8.9.0 glob: 7.2.0 is-glob: 4.0.3 resolve: 1.22.0 @@ -3108,7 +3146,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/2.5.0_392f898cec7735a5f7a99430cbc0b4f4: + /eslint-import-resolver-typescript/2.5.0_157002f9dff1b62f2b20650d7e8bf1eb: resolution: {integrity: sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==} engines: {node: '>=4'} peerDependencies: @@ -3116,8 +3154,8 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.3 - eslint: 8.8.0 - eslint-plugin-import: 2.25.4_eslint@8.8.0 + eslint: 7.32.0 + eslint-plugin-import: 2.25.4_eslint@7.32.0 glob: 7.2.0 is-glob: 4.0.3 resolve: 1.22.0 @@ -3150,13 +3188,13 @@ packages: has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 - minimatch: 3.0.5 + minimatch: 3.1.0 object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.8.0: + /eslint-plugin-import/2.25.4_eslint@8.9.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -3166,13 +3204,13 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.8.0 + eslint: 8.9.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 - minimatch: 3.0.5 + minimatch: 3.1.0 object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.12.0 @@ -3187,13 +3225,13 @@ packages: eslint: 7.32.0 dev: true - /eslint-plugin-react-hooks/4.3.0_eslint@8.8.0: + /eslint-plugin-react-hooks/4.3.0_eslint@8.9.0: resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.8.0 + eslint: 8.9.0 dev: true /eslint-plugin-react/7.28.0_eslint@7.32.0: @@ -3208,7 +3246,7 @@ packages: eslint: 7.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 - minimatch: 3.0.5 + minimatch: 3.1.0 object.entries: 1.1.5 object.fromentries: 2.0.5 object.hasown: 1.1.0 @@ -3219,7 +3257,7 @@ packages: string.prototype.matchall: 4.0.6 dev: true - /eslint-plugin-react/7.28.0_eslint@8.8.0: + /eslint-plugin-react/7.28.0_eslint@8.9.0: resolution: {integrity: sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==} engines: {node: '>=4'} peerDependencies: @@ -3228,10 +3266,10 @@ packages: array-includes: 3.1.4 array.prototype.flatmap: 1.2.5 doctrine: 2.1.0 - eslint: 8.8.0 + eslint: 8.9.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 - minimatch: 3.0.5 + minimatch: 3.1.0 object.entries: 1.1.5 object.fromentries: 2.0.5 object.hasown: 1.1.0 @@ -3250,8 +3288,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.1.0: - resolution: {integrity: sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==} + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -3275,13 +3313,13 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /eslint-utils/3.0.0_eslint@8.8.0: + /eslint-utils/3.0.0_eslint@8.9.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.8.0 + eslint: 8.9.0 eslint-visitor-keys: 2.1.0 dev: true @@ -3295,8 +3333,8 @@ packages: engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.2.0: - resolution: {integrity: sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==} + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3334,7 +3372,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.5 + minimatch: 3.1.0 natural-compare: 1.4.0 optionator: 0.9.1 progress: 2.0.3 @@ -3349,12 +3387,12 @@ packages: - supports-color dev: true - /eslint/8.8.0: - resolution: {integrity: sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==} + /eslint/8.9.0: + resolution: {integrity: sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.0.5 + '@eslint/eslintrc': 1.1.0 '@humanwhocodes/config-array': 0.9.3 ajv: 6.12.6 chalk: 4.1.2 @@ -3362,10 +3400,10 @@ packages: debug: 4.3.3 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.0 - eslint-utils: 3.0.0_eslint@8.8.0 - eslint-visitor-keys: 3.2.0 - espree: 9.3.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.9.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -3381,7 +3419,7 @@ packages: json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.5 + minimatch: 3.1.0 natural-compare: 1.4.0 optionator: 0.9.1 regexpp: 3.2.0 @@ -3402,13 +3440,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /espree/9.3.0: - resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==} + /espree/9.3.1: + resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.7.0 acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.2.0 + eslint-visitor-keys: 3.3.0 dev: true /esprima/4.0.1: @@ -3498,7 +3536,7 @@ packages: /filelist/1.0.2: resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} dependencies: - minimatch: 3.0.5 + minimatch: 3.1.0 dev: true /fill-range/7.0.1: @@ -3559,11 +3597,11 @@ packages: resolution: {integrity: sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==} dev: true - /framer-motion/6.2.4_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-1UfnSG4c4CefKft6QMYGx8AWt3TtaFoR/Ax4dkuDDD5BDDeIuUm7gesmJrF8GzxeX/i6fMm8+MEdPngUyPVdLA==} + /framer-motion/6.2.6_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-7eGav5MxEEzDHozQTDY6+psTIOw2i2kM1QVoJOC3bCp9VOKoo+mKR5n7aT5JPh7ksEKFYJYz0GJDils/9S+oLA==} peerDependencies: - react: '>=16.8 || ^17.0.0' - react-dom: '>=16.8 || ^17.0.0' + react: '>=16.8 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' dependencies: framesync: 6.0.1 hey-listen: 1.0.8 @@ -3682,7 +3720,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.5 + minimatch: 3.1.0 once: 1.4.0 path-is-absolute: 1.0.1 dev: true @@ -3783,7 +3821,7 @@ packages: /history/5.2.0: resolution: {integrity: sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig==} dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 dev: false /hoist-non-react-statics/3.3.2: @@ -4058,14 +4096,14 @@ packages: async: 0.9.2 chalk: 2.4.2 filelist: 1.0.2 - minimatch: 3.0.5 + minimatch: 3.1.0 dev: true /jest-worker/26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 17.0.16 + '@types/node': 17.0.17 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -4306,8 +4344,8 @@ packages: mime-db: 1.51.0 dev: false - /minimatch/3.0.5: - resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} + /minimatch/3.1.0: + resolution: {integrity: sha512-vgmUyWyt2qidcJXdF6e+kf4DgJha4vzf3ctWJ0uGjfvqEgoX2V4GXQt0eZwM2FJWKANfS8VmzpvPKbWYibkHZA==} dependencies: brace-expansion: 1.1.11 dev: true @@ -4373,8 +4411,8 @@ packages: whatwg-url: 5.0.0 dev: false - /node-releases/2.0.1: - resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} + /node-releases/2.0.2: + resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} dev: true /normalize-path/3.0.0: @@ -4619,8 +4657,8 @@ packages: postcss: 8.4.6 dev: true - /postcss-load-config/3.1.1: - resolution: {integrity: sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==} + /postcss-load-config/3.1.3: + resolution: {integrity: sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==} engines: {node: '>= 10'} peerDependencies: ts-node: '>=9.0.0' @@ -4672,8 +4710,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-tailwindcss/0.1.5_prettier@2.5.1: - resolution: {integrity: sha512-e+jTxwiHL4I3Ot8OjV1LAiiaAx0Zgy71xTL7xNmJtNmhpja7GKzFSAoulqBDS1D57B7lbZDCvDEKIWIQSBUmBQ==} + /prettier-plugin-tailwindcss/0.1.7_prettier@2.5.1: + resolution: {integrity: sha512-tmBr45hCLuit2Cz9Pwow0/Jl1bGivYGsfcF29O+3sKcE++ybjz9dfie565S3ZsvAeV8uYer9SRMBWDsHPly2Lg==} engines: {node: '>=12.17.0'} peerDependencies: prettier: '>=2.2.0' @@ -4781,29 +4819,29 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 react: 17.0.2 dev: false - /react-flow-renderer/10.0.0-next.38_react-dom@17.0.2+react@17.0.2: - resolution: {integrity: sha512-8rqeK56BSYUnh2m2ph99ud75bfMlbW9oDPTLq7UATEomXYcG2EZAHoj4aINSDebjcCJqz2VnHOEagD2Q8ij0Rw==} + /react-flow-renderer/10.0.0-next.39_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-3SACoSZsC8svzy52XOkcjPyBhwgVLbWDeIHY5E4RR4LDwOrXIuIIoFUNBLzPox7hz+iQDFAMXqH9B/5uPw0hCw==} engines: {node: '>=12'} peerDependencies: react: 16 || 17 react-dom: 16 || 17 dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 classcat: 5.0.3 d3-selection: 3.0.0 d3-zoom: 3.0.0 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-draggable: 4.4.4_react-dom@17.0.2+react@17.0.2 - zustand: 3.6.9_react@17.0.2 + zustand: 3.7.0_react@17.0.2 dev: false - /react-hook-form/7.26.1_react@17.0.2: - resolution: {integrity: sha512-/Qw/7IsCCVfYSGryJAMcouEpIDgWZJPeHR15J0IFSgo1BgofcfnY+AeUDcYD1E3yzzXYpR7NHyJehhkBKvjdMg==} + /react-hook-form/7.27.0_react@17.0.2: + resolution: {integrity: sha512-NEh3Qbz1Rg3w95SRZv0kHorHN3frtMKasplznMBr8RkFrE4pVxjd/zo3clnFXpD0FppUVHBMfsTMtTsa6wyQrA==} engines: {node: '>=12.22.0'} peerDependencies: react: ^16.8.0 || ^17 @@ -4870,7 +4908,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 '@types/react-redux': 7.1.22 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -4891,7 +4929,7 @@ packages: react: ^16.8.0 || ^17.0.0 react-dom: ^16.8.0 || ^17.0.0 dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 '@emotion/cache': 11.7.1 '@emotion/react': 11.7.1_a0c521d4794c7ad97f5f4c1c4a7d5818 '@types/react-transition-group': 4.4.4 @@ -4911,7 +4949,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -4986,7 +5024,7 @@ packages: /redux/4.1.2: resolution: {integrity: sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==} dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 dev: false /regenerate-unicode-properties/10.0.1: @@ -5006,7 +5044,7 @@ packages: /regenerator-transform/0.14.5: resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==} dependencies: - '@babel/runtime': 7.17.0 + '@babel/runtime': 7.17.2 dev: true /regexp.prototype.flags/1.4.1: @@ -5112,14 +5150,14 @@ packages: magic-string: 0.25.7 dev: true - /rollup-plugin-terser/7.0.2_rollup@2.67.1: + /rollup-plugin-terser/7.0.2_rollup@2.67.2: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} peerDependencies: rollup: ^2.0.0 dependencies: '@babel/code-frame': 7.16.7 jest-worker: 26.6.2 - rollup: 2.67.1 + rollup: 2.67.2 serialize-javascript: 4.0.0 terser: 5.10.0 transitivePeerDependencies: @@ -5139,8 +5177,8 @@ packages: yargs: 17.3.1 dev: false - /rollup/2.67.1: - resolution: {integrity: sha512-1Sbcs4OuW+aD+hhqpIRl+RqooIpF6uQcfzU/QSI7vGkwADY6cM4iLsBGRM2CGLXDTDN5y/yShohFmnKegSPWzg==} + /rollup/2.67.2: + resolution: {integrity: sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -5426,13 +5464,12 @@ packages: strip-ansi: 6.0.1 dev: true - /tailwindcss/3.0.19_833e1018ad0d7954aa80c53675939269: - resolution: {integrity: sha512-rjsdfz/qZya5xQ0OVynEMETgWq1CacmftgMYeXXh6bRM5vxsNwRSbMJsCCIjq/w67om9VP/AFMolOwiE+5VKig==} + /tailwindcss/3.0.22_autoprefixer@10.4.2: + resolution: {integrity: sha512-F8lt74RlNZirnkaSk310+vGQta7c0/hgx7/bqxruM4wS9lp8oqV93lzavajC3VT0Lp4UUtUVIt8ifKcmGzkr0A==} engines: {node: '>=12.13.0'} hasBin: true peerDependencies: autoprefixer: ^10.0.2 - postcss: ^8.0.9 dependencies: arg: 5.0.1 autoprefixer: 10.4.2_postcss@8.4.6 @@ -5450,7 +5487,7 @@ packages: object-hash: 2.2.0 postcss: 8.4.6 postcss-js: 4.0.0_postcss@8.4.6 - postcss-load-config: 3.1.1 + postcss-load-config: 3.1.3 postcss-nested: 5.0.6_postcss@8.4.6 postcss-selector-parser: 6.0.9 postcss-value-parser: 4.2.0 @@ -5726,15 +5763,15 @@ packages: - rollup dev: true - /vite-plugin-environment/1.1.0_vite@2.7.13: + /vite-plugin-environment/1.1.0_vite@2.8.1: resolution: {integrity: sha512-ay0vYB8DEB7xB5sqVzOgLyTaGH5jbnvghzoDBmHvMx2Y2k1WUl0QQUuyu7oeiKnmIJDc8ciklhVcGc4lXMKyiA==} peerDependencies: vite: ^2.7 dependencies: - vite: 2.7.13 + vite: 2.8.1 dev: false - /vite-plugin-pwa/0.11.13_vite@2.7.13: + /vite-plugin-pwa/0.11.13_vite@2.8.1: resolution: {integrity: sha512-Ssj14m3TRVLfkFEAWSMcFE2d1cSdEZyrVTzfY2lSL+umHYvcIFHVDAY143sygtBCb44OPczsAOmWwBTxwOvh7g==} peerDependencies: vite: ^2.0.0 @@ -5742,8 +5779,8 @@ packages: debug: 4.3.3 fast-glob: 3.2.11 pretty-bytes: 5.6.0 - rollup: 2.67.1 - vite: 2.7.13 + rollup: 2.67.2 + vite: 2.8.1 workbox-build: 6.4.2 workbox-window: 6.4.2 transitivePeerDependencies: @@ -5752,8 +5789,8 @@ packages: - supports-color dev: true - /vite/2.7.13: - resolution: {integrity: sha512-Mq8et7f3aK0SgSxjDNfOAimZGW9XryfHRa/uV0jseQSilg+KhYDSoNb9h1rknOy6SuMkvNDLKCYAYYUMCE+IgQ==} + /vite/2.8.1: + resolution: {integrity: sha512-Typ8qjUnW0p53gBsJpisrKcZlEbUPZATja9BG6Z09QZjg9YrnEn/htkr/VH4WhnH7eNUQeSD+wKI1lHzQRWskw==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -5768,10 +5805,10 @@ packages: stylus: optional: true dependencies: - esbuild: 0.13.15 + esbuild: 0.14.21 postcss: 8.4.6 resolve: 1.22.0 - rollup: 2.67.1 + rollup: 2.67.2 optionalDependencies: fsevents: 2.3.2 dev: true @@ -5868,13 +5905,13 @@ packages: resolution: {integrity: sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==} engines: {node: '>=10.0.0'} dependencies: - '@apideck/better-ajv-errors': 0.3.2_ajv@8.10.0 - '@babel/core': 7.17.0 - '@babel/preset-env': 7.16.11_@babel+core@7.17.0 - '@babel/runtime': 7.17.0 - '@rollup/plugin-babel': 5.3.0_@babel+core@7.17.0+rollup@2.67.1 - '@rollup/plugin-node-resolve': 11.2.1_rollup@2.67.1 - '@rollup/plugin-replace': 2.4.2_rollup@2.67.1 + '@apideck/better-ajv-errors': 0.3.3_ajv@8.10.0 + '@babel/core': 7.17.2 + '@babel/preset-env': 7.16.11_@babel+core@7.17.2 + '@babel/runtime': 7.17.2 + '@rollup/plugin-babel': 5.3.0_@babel+core@7.17.2+rollup@2.67.2 + '@rollup/plugin-node-resolve': 11.2.1_rollup@2.67.2 + '@rollup/plugin-replace': 2.4.2_rollup@2.67.2 '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.10.0 common-tags: 1.8.2 @@ -5883,8 +5920,8 @@ packages: glob: 7.2.0 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.67.1 - rollup-plugin-terser: 7.0.2_rollup@2.67.1 + rollup: 2.67.2 + rollup-plugin-terser: 7.0.2_rollup@2.67.2 source-map: 0.8.0-beta.0 source-map-url: 0.4.1 stringify-object: 3.3.0 @@ -6049,8 +6086,8 @@ packages: yargs-parser: 21.0.0 dev: false - /zustand/3.6.9_react@17.0.2: - resolution: {integrity: sha512-OvDNu/jEWpRnEC7k8xh8GKjqYog7td6FZrLMuHs/IeI8WhrCwV+FngVuwMIFhp5kysZXr6emaeReMqjLGaldAQ==} + /zustand/3.7.0_react@17.0.2: + resolution: {integrity: sha512-USzVzLGrvZ8VK1/sEsOAmeqa8N7D3OBdZskVaL7DL89Q4QLTYD053iIlZ5KDidyZ+Od80Dttin/f8ZulOLFFDQ==} engines: {node: '>=12.7.0'} peerDependencies: react: '>=16.8' diff --git a/src/components/layout/Sidebar/ButtonNav.tsx b/src/components/layout/Sidebar/ButtonNav.tsx index 96382a5f..439ec59b 100644 --- a/src/components/layout/Sidebar/ButtonNav.tsx +++ b/src/components/layout/Sidebar/ButtonNav.tsx @@ -4,8 +4,8 @@ import { FiMessageCircle, FiSettings } from 'react-icons/fi'; import { RiMindMap, RiRoadMapLine } from 'react-icons/ri'; import { VscExtensions } from 'react-icons/vsc'; -import { toggleMobileNav } from '@app/core/slices/appSlice.js'; -import { useAppDispatch } from '@app/hooks/useAppDispatch.js'; +import { toggleMobileNav } from '@app/core/slices/appSlice'; +import { useAppDispatch } from '@app/hooks/useAppDispatch'; import { routes, useRoute } from '@core/router'; import { NavLinkButton } from './NavLinkButton'; @@ -21,7 +21,7 @@ export const ButtonNav = ({ const dispatch = useAppDispatch(); return ( -
+
{ dispatch(toggleMobileNav()); diff --git a/src/components/layout/Sidebar/Settings/Channels.tsx b/src/components/layout/Sidebar/Settings/Channels.tsx index d98683cb..a1f5f934 100644 --- a/src/components/layout/Sidebar/Settings/Channels.tsx +++ b/src/components/layout/Sidebar/Settings/Channels.tsx @@ -9,7 +9,6 @@ import { } from 'react-icons/ri'; import { ListItem } from '@app/components/generic/ListItem'; -import type { ChannelData } from '@app/core/slices/meshtasticSlice'; import { connection } from '@core/connection'; import { useAppSelector } from '@hooks/useAppSelector'; import { Checkbox, Input, Select, Tooltip } from '@meshtastic/components'; @@ -19,19 +18,19 @@ export const Channels = (): JSX.Element => { const channels = useAppSelector((state) => state.meshtastic.radio.channels); const adminChannel = channels.find( - (channel) => channel.channel.role === Protobuf.Channel_Role.PRIMARY, + (channel) => channel.role === Protobuf.Channel_Role.PRIMARY, ) ?? channels[0]; const [usePreset, setUsePreset] = React.useState(true); const [loading, setLoading] = React.useState(false); const [selectedChannel, setSelectedChannel] = React.useState< - ChannelData | undefined + Protobuf.Channel | undefined >(); const { register, handleSubmit, reset, formState } = useForm< DeepOmit >({ defaultValues: { - ...adminChannel.channel, + ...adminChannel, }, }); @@ -42,7 +41,7 @@ export const Channels = (): JSX.Element => { ...data, settings: { ...data.settings, - psk: adminChannel.channel.settings?.psk, + psk: adminChannel.settings?.psk, }, }); @@ -111,7 +110,7 @@ export const Channels = (): JSX.Element => { )} {channels.map((channel) => ( { setSelectedChannel(channel); }} @@ -121,23 +120,23 @@ export const Channels = (): JSX.Element => { [ Protobuf.Channel_Role.SECONDARY, Protobuf.Channel_Role.PRIMARY, - ].find((role) => role === channel.channel.role) + ].find((role) => role === channel.role) ? 'bg-green-500' : 'bg-gray-400' }`} /> } - selected={selectedChannel?.channel.index === channel.channel.index} + selected={selectedChannel?.index === channel.index} selectedIcon={} actions={
- {channel.channel.settings?.uplinkEnabled && - channel.channel.settings?.downlinkEnabled ? ( + {channel.settings?.uplinkEnabled && + channel.settings?.downlinkEnabled ? ( - ) : channel.channel.settings?.uplinkEnabled ? ( + ) : channel.settings?.uplinkEnabled ? ( - ) : channel.channel.settings?.downlinkEnabled ? ( + ) : channel.settings?.downlinkEnabled ? ( ) : ( @@ -147,11 +146,11 @@ export const Channels = (): JSX.Element => { } >
- {channel.channel.settings?.name.length - ? channel.channel.settings.name - : channel.channel.role === Protobuf.Channel_Role.PRIMARY + {channel.settings?.name.length + ? channel.settings.name + : channel.role === Protobuf.Channel_Role.PRIMARY ? 'Primary' - : `Channel: ${channel.channel.index}`} + : `Channel: ${channel.index}`}
))} diff --git a/src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx b/src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx index 689b8e8a..9e8c1cad 100644 --- a/src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx +++ b/src/components/layout/Sidebar/Settings/radio/channels/panels/ChannelsGroup.tsx @@ -17,21 +17,21 @@ export const ChannelsGroup = (): JSX.Element => { <> {channels.map((channel) => { return ( -
+
{ } > <> - {/* */} - {/* */} - + {/* */} + {/* */} +
diff --git a/src/components/layout/Sidebar/index.tsx b/src/components/layout/Sidebar/index.tsx index fc2107a0..1ae8273c 100644 --- a/src/components/layout/Sidebar/index.tsx +++ b/src/components/layout/Sidebar/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { useAppSelector } from '@app/hooks/useAppSelector.js'; +import { useAppSelector } from '@app/hooks/useAppSelector'; import { ButtonNav } from './ButtonNav'; import { Settings } from './Settings/Index'; @@ -15,23 +15,21 @@ export const Sidebar = ({ children }: SidebarProps): JSX.Element => { const appState = useAppSelector((state) => state.app); return ( -
-
-
-
-
{children}
- -
- { - setSettingsOpen(!settingsOpen); - }} - /> +
+
+
+
{children}
+
+ { + setSettingsOpen(!settingsOpen); + }} + />
); diff --git a/src/components/layout/Sidebar/sections/SidebarOverlay.tsx b/src/components/layout/Sidebar/sections/SidebarOverlay.tsx index 28adac5b..07608764 100644 --- a/src/components/layout/Sidebar/sections/SidebarOverlay.tsx +++ b/src/components/layout/Sidebar/sections/SidebarOverlay.tsx @@ -24,7 +24,7 @@ export const SidebarOverlay = ({ {open && ( { return ( -
- -
- -
- {title} +
+
+ +
+ +
+ {title} +
-
-
{sidebarContents}
- +
{sidebarContents}
+ +
{children} diff --git a/src/components/menu/BottomNav.tsx b/src/components/menu/BottomNav.tsx index 00af6211..9397ba81 100644 --- a/src/components/menu/BottomNav.tsx +++ b/src/components/menu/BottomNav.tsx @@ -36,8 +36,7 @@ export const BottomNav = (): JSX.Element => { const appState = useAppSelector((state) => state.app); const primaryChannelSettings = useAppSelector( (state) => state.meshtastic.radio.channels, - ).find((channel) => channel.channel.role === Protobuf.Channel_Role.PRIMARY) - ?.channel.settings; + ).find((channel) => channel.role === Protobuf.Channel_Role.PRIMARY)?.settings; return (
diff --git a/src/components/modals/VersionInfo.tsx b/src/components/modals/VersionInfo.tsx index 6f51cc0a..071724f1 100644 --- a/src/components/modals/VersionInfo.tsx +++ b/src/components/modals/VersionInfo.tsx @@ -40,7 +40,6 @@ export const VersionInfo = ({ // }`, // fetcher, // ); - // console.log(data); return ( diff --git a/src/core/connection.ts b/src/core/connection.ts index 9592bb8a..fcab479a 100644 --- a/src/core/connection.ts +++ b/src/core/connection.ts @@ -1,6 +1,7 @@ import { connType } from '@core/slices/appSlice'; import { addChannel, + addChat, addMessage, addNode, addPosition, @@ -86,7 +87,6 @@ const registerListeners = (): void => { SettingsManager.debugMode = Protobuf.LogRecord_Level.TRACE; connection.onMeshPacket.subscribe((packet) => { - console.log(packet); store.dispatch( addRoute({ from: packet.from, @@ -127,6 +127,7 @@ const registerListeners = (): void => { connection.onNodeInfoPacket.subscribe( (nodeInfoPacket): void | { payload: Protobuf.NodeInfo; type: string } => { store.dispatch(addNode(nodeInfoPacket.data)); + store.dispatch(addChat(nodeInfoPacket.data.num)); }, ); @@ -134,6 +135,9 @@ const registerListeners = (): void => { switch (adminPacket.data.variant.oneofKind) { case 'getChannelResponse': store.dispatch(addChannel(adminPacket.data.variant.getChannelResponse)); + store.dispatch( + addChat(adminPacket.data.variant.getChannelResponse.index), + ); break; case 'getRadioResponse': if (adminPacket.data.variant.getRadioResponse.preferences) { @@ -153,8 +157,6 @@ const registerListeners = (): void => { ); connection.onRoutingPacket.subscribe((routingPacket) => { - console.log(routingPacket); - store.dispatch( updateLastInteraction({ id: routingPacket.packet.from, diff --git a/src/core/slices/meshtasticSlice.ts b/src/core/slices/meshtasticSlice.ts index 903daa77..43e9ca5c 100644 --- a/src/core/slices/meshtasticSlice.ts +++ b/src/core/slices/meshtasticSlice.ts @@ -9,13 +9,7 @@ export interface MessageWithAck { } export interface Chat { - id: number; //Channel or user id (for dm's) - messages: MessageWithAck[]; -} - -export interface ChannelData { - channel: Protobuf.Channel; - lastChatInterraction: Date; + lastInterraction: Date; messages: MessageWithAck[]; } @@ -27,6 +21,10 @@ interface CurrentPosition { satsInView: number; } +type ChatEntries = { + [key in number]: Chat; +}; + interface Route { from: number; to: number; @@ -46,7 +44,7 @@ export interface Node { } export interface Radio { - channels: ChannelData[]; + channels: Protobuf.Channel[]; preferences: Protobuf.RadioConfig_UserPreferences; hardware: Protobuf.MyNodeInfo; } @@ -59,7 +57,7 @@ interface MeshtasticState { radio: Radio; hostOverrideEnabled: boolean; hostOverride: string; - chats: Chat[]; + chats: ChatEntries; } const initialState: MeshtasticState = { @@ -77,7 +75,7 @@ const initialState: MeshtasticState = { hostOverrideEnabled: localStorage.getItem('hostOverrideEnabled') === 'true' ?? false, hostOverride: localStorage.getItem('hostOverride') ?? '', - chats: [], + chats: {}, }; export const meshtasticSlice = createSlice({ @@ -167,24 +165,16 @@ export const meshtasticSlice = createSlice({ addChannel: (state, action: PayloadAction) => { if ( state.radio.channels.findIndex( - (channel) => channel.channel.index === action.payload.index, + (channel) => channel.index === action.payload.index, ) !== -1 ) { state.radio.channels = state.radio.channels.map((channel) => { - return channel.channel.index === action.payload.index - ? { - channel: action.payload, - lastChatInterraction: new Date(), - messages: channel.messages, - } + return channel.index === action.payload.index + ? action.payload : channel; }); } else { - state.radio.channels.push({ - channel: action.payload, - lastChatInterraction: new Date(), - messages: [], - }); + state.radio.channels.push(action.payload); } }, addRoute: (state, action: PayloadAction) => { @@ -195,27 +185,10 @@ export const meshtasticSlice = createSlice({ (route) => route.from === action.payload.from && route.to === action.payload.to, ); - console.log(exists); if (exists === -1) { node?.routes.push(action.payload); } - // node?.routes.map((route) => { - // if ( - - // ) { - // node?.routes.push(action.payload); - // } - // }); - - // if (node) { - // node.routes = node.routes.map((route) => { - // return route.from === action.payload.from && - // route.to === action.payload.to - // ? action.payload - // : route; - // }); - // } }, setPreferences: ( state, @@ -224,21 +197,38 @@ export const meshtasticSlice = createSlice({ state.radio.preferences = action.payload; }, addMessage: (state, action: PayloadAction) => { - const channelIndex = state.radio.channels.findIndex( - (channel) => - channel.channel.index === action.payload.message.packet.channel, + console.log(action.payload); + + console.log( + `${action.payload.message.packet.from} -> ${action.payload.message.packet.to}`, ); - state.radio.channels[channelIndex].messages.push(action.payload); - state.radio.channels[channelIndex].lastChatInterraction = new Date(); + state.chats[action.payload.message.packet.channel].lastInterraction = + new Date(); + + if (action.payload.message.packet.to === 0xffffffff) { + console.log('boradcast'); + + state.chats[action.payload.message.packet.channel].messages.push( + action.payload, + ); + } else { + console.log('dm'); + + const dmIndex = + action.payload.message.packet.from === state.radio.hardware.myNodeNum + ? action.payload.message.packet.to + : action.payload.message.packet.from; + + state.chats[dmIndex].messages.push(action.payload); + } }, ackMessage: ( state, - action: PayloadAction<{ channel: number; messageId: number }>, + action: PayloadAction<{ chatIndex: number; messageId: number }>, ) => { - const channelIndex = state.radio.channels.findIndex( - (channel) => channel.channel.index === action.payload.channel, - ); - state.radio.channels[channelIndex].messages.map((message) => { + console.log(action.payload); + + state.chats[action.payload.chatIndex].messages.map((message) => { if (message.message.packet.id === action.payload.messageId) { message.ack = true; } @@ -269,10 +259,11 @@ export const meshtasticSlice = createSlice({ // connection.disconnect(); } }, - addChat: (state, action: PayloadAction) => { - if (state.chats.findIndex((chat) => chat.id === action.payload.id)) { - state.chats.push(action.payload); - } + addChat: (state, action: PayloadAction) => { + state.chats[action.payload] = { + messages: [], + lastInterraction: new Date(), + }; }, resetState: (state) => { state.deviceStatus = Types.DeviceStatusEnum.DEVICE_DISCONNECTED; @@ -300,6 +291,7 @@ export const { updateLastInteraction, setHostOverrideEnabled, setHostOverride, + addChat, resetState, } = meshtasticSlice.actions; diff --git a/src/pages/Extensions/Info.tsx b/src/pages/Extensions/Info.tsx index 16bcf0eb..3d13adee 100644 --- a/src/pages/Extensions/Info.tsx +++ b/src/pages/Extensions/Info.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { m } from 'framer-motion'; import JSONPretty from 'react-json-pretty'; -import { useAppSelector } from '@app/hooks/useAppSelector.js'; +import { useAppSelector } from '@app/hooks/useAppSelector'; import { Hashicon } from '@emeraldpay/hashicon-react'; export const Info = (): JSX.Element => { diff --git a/src/pages/Map/MapContainer.tsx b/src/pages/Map/MapContainer.tsx index 1b5ea235..d3a53956 100644 --- a/src/pages/Map/MapContainer.tsx +++ b/src/pages/Map/MapContainer.tsx @@ -41,7 +41,7 @@ export const MapContainer = (): JSX.Element => { return (
-
+
{ diff --git a/src/pages/Messages/ChannelChat.tsx b/src/pages/Messages/ChannelChat.tsx new file mode 100644 index 00000000..62d4cf8e --- /dev/null +++ b/src/pages/Messages/ChannelChat.tsx @@ -0,0 +1,111 @@ +import React from 'react'; + +import { m } from 'framer-motion'; +import { FiSettings } from 'react-icons/fi'; +import { MdPublic } from 'react-icons/md'; +import TimeAgo from 'timeago-react'; + +import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; +import { Hashicon } from '@emeraldpay/hashicon-react'; +import { useAppSelector } from '@hooks/useAppSelector'; +import { IconButton, Tooltip } from '@meshtastic/components'; +import { Protobuf } from '@meshtastic/meshtasticjs'; + +export interface ChannelChatProps { + channel: Protobuf.Channel; + selectedIndex: number; + setSelectedIndex: (index: number) => void; +} + +export const ChannelChat = ({ + channel, + selectedIndex, + setSelectedIndex, +}: ChannelChatProps): JSX.Element => { + const myNodeNum = useAppSelector( + (state) => state.meshtastic.radio.hardware, + ).myNodeNum; + const nodes = useAppSelector((state) => state.meshtastic.nodes).filter( + (node) => node.number !== myNodeNum, + ); + const chats = useAppSelector((state) => state.meshtastic.chats); + const channels = useAppSelector( + (state) => state.meshtastic.radio.channels, + ).filter((ch) => ch.role !== Protobuf.Channel_Role.DISABLED); + + return ( + { + setSelectedIndex(channel.index); + }} + actions={} />} + > + +
+
+ {channel.role === Protobuf.Channel_Role.PRIMARY ? ( + + ) : ( +

+ {channel.settings?.name.length + ? channel.settings.name.substring(0, 3).toUpperCase() + : `CH: ${channel.index}`} +

+ )} +
+
+
+ {chats[channel.index]?.messages.length ? ( + <> +
+ {[ + ...new Set( + chats[channel.index]?.messages.flatMap(({ message }) => [ + message.packet.from, + ]), + ), + ] + .sort() + .map((nodeId) => { + return ( + node.number === nodeId)?.user + ?.longName ?? 'UNK' + } + > +
+ + + +
+
+ ); + })} +
+
+ {chats[channel.index].messages.length ? ( + + ) : ( +
No messages
+ )} +
+ + ) : ( +
No messages
+ )} +
+ ); +}; diff --git a/src/pages/Messages/DmChat.tsx b/src/pages/Messages/DmChat.tsx new file mode 100644 index 00000000..499948fd --- /dev/null +++ b/src/pages/Messages/DmChat.tsx @@ -0,0 +1,40 @@ +import React from 'react'; + +import { FiSettings } from 'react-icons/fi'; + +import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; +import type { Node } from '@core/slices/meshtasticSlice'; +import { Hashicon } from '@emeraldpay/hashicon-react'; +import { IconButton } from '@meshtastic/components'; + +export interface DmChatProps { + node: Node; + selectedIndex: number; + setSelectedIndex: (index: number) => void; +} + +export const DmChat = ({ + node, + selectedIndex, + setSelectedIndex, +}: DmChatProps): JSX.Element => { + return ( + { + setSelectedIndex(node.number); + }} + actions={} />} + > +
+
+ +
+
+
+ {node.user?.longName ?? 'Unknown'} +
+
+ ); +}; diff --git a/src/pages/Messages/Message.tsx b/src/pages/Messages/Message.tsx index 474f79f0..a8adc7bd 100644 --- a/src/pages/Messages/Message.tsx +++ b/src/pages/Messages/Message.tsx @@ -1,5 +1,7 @@ import type React from 'react'; +import { FiClock } from 'react-icons/fi'; + import type { Node } from '@app/core/slices/meshtasticSlice'; import { Hashicon } from '@emeraldpay/hashicon-react'; import { Tooltip } from '@meshtastic/components'; @@ -23,9 +25,11 @@ export const Message = ({
{lastMsgSameUser ? (
-
+
{rxTime @@ -37,14 +41,20 @@ export const Message = ({ .replace('PM', '')}
+
+ {message} +
-
- {message} -
+ +
+ +
25s
+
+
) : (
diff --git a/src/pages/Messages/MessageBar.tsx b/src/pages/Messages/MessageBar.tsx index 8c1a8692..30521d46 100644 --- a/src/pages/Messages/MessageBar.tsx +++ b/src/pages/Messages/MessageBar.tsx @@ -7,23 +7,38 @@ import { useAppSelector } from '@hooks/useAppSelector'; import { Input } from '@meshtastic/components'; export interface MessageBarProps { - channelIndex: number; + chatIndex: number; } -export const MessageBar = ({ channelIndex }: MessageBarProps): JSX.Element => { +export const MessageBar = ({ chatIndex }: MessageBarProps): JSX.Element => { const dispatch = useAppDispatch(); - const ready = useAppSelector((state) => state.meshtastic.ready); + const meshtasticState = useAppSelector((state) => state.meshtastic); + + const [isChannel, setIsChannel] = React.useState(false); + + React.useState(() => { + setIsChannel( + meshtasticState.radio.channels.findIndex( + (channel) => channel.index === chatIndex, + ) !== -1, + ); + }); const [currentMessage, setCurrentMessage] = React.useState(''); const sendMessage = (): void => { - if (ready) { + if (meshtasticState.ready) { void connection.sendText( currentMessage, - undefined, + isChannel ? undefined : chatIndex, true, - channelIndex--, + isChannel ? chatIndex-- : 0, (id) => { - dispatch(ackMessage({ channel: channelIndex--, messageId: id })); + dispatch( + ackMessage({ + chatIndex: isChannel ? chatIndex-- : chatIndex, + messageId: id, + }), + ); return Promise.resolve(); }, @@ -45,7 +60,7 @@ export const MessageBar = ({ channelIndex }: MessageBarProps): JSX.Element => { type="text" minLength={2} placeholder="Enter Message" - disabled={!ready} + disabled={!meshtasticState.ready} value={currentMessage} onChange={(e): void => { setCurrentMessage(e.target.value); diff --git a/src/pages/Messages/index.tsx b/src/pages/Messages/index.tsx index a7e1b6de..c8290d70 100644 --- a/src/pages/Messages/index.tsx +++ b/src/pages/Messages/index.tsx @@ -1,27 +1,30 @@ import React from 'react'; -import { m } from 'framer-motion'; -import { FiHash, FiMessageCircle, FiSettings } from 'react-icons/fi'; -import { MdPublic } from 'react-icons/md'; -import TimeAgo from 'timeago-react'; +import { FiHash, FiMessageCircle } from 'react-icons/fi'; import { Layout } from '@app/components/layout'; -import { SidebarItem } from '@components/layout/Sidebar/SidebarItem'; -import { Hashicon } from '@emeraldpay/hashicon-react'; import { useAppSelector } from '@hooks/useAppSelector'; -import { IconButton, Tooltip } from '@meshtastic/components'; +import { IconButton } from '@meshtastic/components'; import { Protobuf } from '@meshtastic/meshtasticjs'; +import { ChannelChat } from './ChannelChat'; +import { DmChat } from './DmChat'; import { Message } from './Message'; import { MessageBar } from './MessageBar'; export const Messages = (): JSX.Element => { + const [selectedChatIndex, setSelectedChatIndex] = React.useState(0); + + const chatRef = React.useRef(null); + + const myNodeNum = useAppSelector( + (state) => state.meshtastic.radio.hardware, + ).myNodeNum; const nodes = useAppSelector((state) => state.meshtastic.nodes); + const chats = useAppSelector((state) => state.meshtastic.chats); const channels = useAppSelector( (state) => state.meshtastic.radio.channels, - ).filter((ch) => ch.channel.role !== Protobuf.Channel_Role.DISABLED); - const [channelIndex, setChannelIndex] = React.useState(0); - const chatRef = React.useRef(null); + ).filter((ch) => ch.role !== Protobuf.Channel_Role.DISABLED); React.useEffect(() => { if (chatRef.current) { @@ -35,92 +38,29 @@ export const Messages = (): JSX.Element => { icon={} sidebarContents={
- {nodes.map((node) => ( - { - void Promise.resolve(); - }} - actions={} />} - > -
-
- -
-
-
- {node.user?.longName ?? 'Unknown'} -
-
- ))} -
- {channels.map((channel) => ( - { - setChannelIndex(channel.channel.index); - }} - actions={} />} - > -
-
- {channel.channel.role === Protobuf.Channel_Role.PRIMARY ? ( - - ) : ( -

- {channel.channel.settings?.name.length - ? channel.channel.settings.name - .substring(0, 3) - .toUpperCase() - : `CH: ${channel.channel.index}`} -

- )} -
-
- {channel.messages.length ? ( - <> -
- {[ - ...new Set( - channel.messages.flatMap(({ message }) => [ - message.packet.from, - ]), - ), - ] - .sort() - .map((nodeId) => { - return ( - node.number === nodeId)?.user - ?.longName ?? 'UNK' - } - > -
- - - -
-
- ); - })} -
- - - ) : ( -
No messages
- )} -
- ))} + {nodes + .filter((node) => node.number !== myNodeNum) + .map((node) => ( + + ))} + {nodes.length !== 0 && channels.length !== 0 && ( +
+ )} + {channels + .filter((channel) => channel.settings?.name !== 'admin') + .map((channel) => ( + + ))}
} > @@ -128,14 +68,13 @@ export const Messages = (): JSX.Element => {
} /> -
- {channels[channelIndex]?.channel.settings?.name.length - ? channels[channelIndex]?.channel.settings?.name - : channels[channelIndex]?.channel.role === - Protobuf.Channel_Role.PRIMARY + {/*
+ {channels[channelIndex]?.settings?.name.length + ? channels[channelIndex]?.settings?.name + : channels[channelIndex]?.role === Protobuf.Channel_Role.PRIMARY ? 'Primary' - : `Channel: ${channels[channelIndex]?.channel.index}`} -
+ : `Channel: ${channels[channelIndex]?.index}`} +
*/}
{ className="flex flex-grow flex-col space-y-2 overflow-y-auto border-b border-gray-300 bg-white pb-6 dark:border-gray-600 dark:bg-secondaryDark" >
- {channels[channelIndex]?.messages.map((message, index) => ( + {chats[selectedChatIndex]?.messages.map((message, index) => ( { lastMsgSameUser={ index === 0 ? false - : channels[channelIndex]?.messages[index - 1].message.packet - .from === message.message.packet.from + : chats[selectedChatIndex].messages[index - 1].message + .packet.from === message.message.packet.from } - sender={nodes.find( - (node) => node.number === message.message.packet.from, - )} + sender={nodes.find((node) => { + console.log(message); + + return node.number === message.message.packet.from; + })} /> ))}
- +
); diff --git a/src/pages/Nodes/NodeCard.tsx b/src/pages/Nodes/NodeCard.tsx index 141c52fc..795b8485 100644 --- a/src/pages/Nodes/NodeCard.tsx +++ b/src/pages/Nodes/NodeCard.tsx @@ -52,59 +52,61 @@ export const NodeCard = ({ ); }, [node.currentPosition]); return ( - - { - e.stopPropagation(); - setSelected(); - if (PositionConfidence !== 'none' && node.currentPosition) { - map?.flyTo({ - center: new mapbox.LngLat( - node.currentPosition.longitudeI / 1e7, - node.currentPosition.latitudeI / 1e7, - ), - zoom: 16, - }); + <> + + { + e.stopPropagation(); + setSelected(); + if (PositionConfidence !== 'none' && node.currentPosition) { + map?.flyTo({ + center: new mapbox.LngLat( + node.currentPosition.longitudeI / 1e7, + node.currentPosition.latitudeI / 1e7, + ), + zoom: 16, + }); + } + }} + icon={ + PositionConfidence === 'high' ? ( + + ) : PositionConfidence === 'low' ? ( + + ) : ( + + ) } - }} - icon={ - PositionConfidence === 'high' ? ( - - ) : PositionConfidence === 'low' ? ( - - ) : ( - - ) - } - /> - { - e.stopPropagation(); - setInfoOpen(true); - }} - icon={} - /> - - } - > -
-
- + /> + { + e.stopPropagation(); + setInfoOpen(true); + }} + icon={} + /> + + } + > +
+
+ +
+
+
+ {node.lastHeard.getTime() + ? node.lastHeard.toLocaleTimeString(undefined, { + hour: '2-digit', + minute: '2-digit', + }) + : 'Never'}
-
-
- {node.lastHeard.getTime() - ? node.lastHeard.toLocaleTimeString(undefined, { - hour: '2-digit', - minute: '2-digit', - }) - : 'Never'} -
+ - + ); };