diff --git a/package-lock.json b/package-lock.json index 33506ecf4..6fa40c15d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@mui/icons-material": "5.16.7", "@mui/lab": "5.0.0-alpha.173", "@mui/material": "5.16.7", + "@mui/x-date-pickers": "7.20.0", "@reduxjs/toolkit": "2.2.8", "@sentry/react": "7.119.2", "@sentry/tracing": "7.114.0", @@ -30,7 +31,6 @@ "leaflet": "1.9.4", "lint-staged": "15.2.10", "lodash.debounce": "4.0.8", - "material-ui": "0.20.2", "moment": "2.30.1", "oidc-client-ts": "3.1.0", "prop-types": "15.8.1", @@ -156,7 +156,6 @@ "version": "3.11.8", "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.11.8.tgz", "integrity": "sha512-CgG1wbtMjsV2pRGe/eYITmV5B8lXUCYljB2gB/6jWTFQcrvirUVvKg7qtFdjYkQSFbIffU1IDyxgeaN81eTjbA==", - "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", @@ -2440,9 +2439,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2532,7 +2531,6 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -2836,17 +2834,15 @@ } }, "node_modules/@electric-sql/pglite": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.2.8.tgz", - "integrity": "sha512-0wSmQu22euBRzR5ghqyIHnBH4MfwlkL5WstOrrA3KOsjEWEglvoL/gH92JajEUA6Ufei/+qbkB2hVloC/K/RxQ==", - "dev": true, - "license": "Apache-2.0" + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.2.12.tgz", + "integrity": "sha512-J/X42ujcoFEbOkgRyoNqZB5qcqrnJRWVlwpH3fKYoJkTz49N91uAK/rDSSG/85WRas9nC9mdV4FnMTxnQWE/rw==", + "dev": true }, "node_modules/@emotion/babel-plugin": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", @@ -2862,10 +2858,9 @@ } }, "node_modules/@emotion/cache": { - "version": "11.13.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.0.tgz", - "integrity": "sha512-hPV345J/tH0Cwk2wnU/3PBzORQ9HeX+kQSbwI+jslzpRCHE6fSGTohswksA/Ensr8znPzwfzKZCmAM9Lmlhp7g==", - "license": "MIT", + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", + "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", @@ -2877,14 +2872,12 @@ "node_modules/@emotion/hash": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz", - "integrity": "sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==", - "license": "MIT", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", "dependencies": { "@emotion/memoize": "^0.9.0" } @@ -2892,14 +2885,12 @@ "node_modules/@emotion/memoize": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", - "license": "MIT" + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { "version": "11.13.3", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.12.0", @@ -2920,29 +2911,26 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz", - "integrity": "sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==", - "license": "MIT", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz", + "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==", "dependencies": { "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.0", + "@emotion/utils": "^1.4.1", "csstype": "^3.0.2" } }, "node_modules/@emotion/sheet": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", - "license": "MIT" + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" }, "node_modules/@emotion/styled": { "version": "11.13.0", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz", "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.12.0", @@ -2964,29 +2952,25 @@ "node_modules/@emotion/unitless": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", - "license": "MIT" + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", - "license": "MIT", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz", - "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==", - "license": "MIT" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.1.tgz", + "integrity": "sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==" }, "node_modules/@emotion/weak-memoize": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", - "license": "MIT" + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" }, "node_modules/@entur/react-leaflet-google": { "version": "1.0.3", @@ -3166,7 +3150,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.0.tgz", "integrity": "sha512-IpM+ev1E4QLtstniOE29W1rqH9eTdx5hQdNL8pzrflMj/gogfaoONZqL83LUeQScHAvyMbpqP5C9MzNf+fFwhQ==", - "license": "MIT", "dependencies": { "@formatjs/fast-memoize": "2.2.1", "@formatjs/intl-localematcher": "0.5.5", @@ -3177,7 +3160,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.1.tgz", "integrity": "sha512-XS2RcOSyWxmUB7BUjj3mlPH0exsUzlf6QfhhijgI941WaJhVxXQ6mEWkdUFIdnKi3TuTYxRdelsgv3mjieIGIA==", - "license": "MIT", "dependencies": { "tslib": "^2.7.0" } @@ -3186,7 +3168,6 @@ "version": "2.7.10", "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.10.tgz", "integrity": "sha512-wlQfqCZ7PURkUNL2+8VTEFavPovtADU/isSKLFvDbdFmV7QPZIYqFMkhklaDYgMyLSBJa/h2MVQ2aFvoEJhxgg==", - "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "@formatjs/icu-skeleton-parser": "1.8.4", @@ -3197,7 +3178,6 @@ "version": "1.8.4", "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.4.tgz", "integrity": "sha512-LMQ1+Wk1QSzU4zpd5aSu7+w5oeYhupRwZnMQckLPRYhSjf2/8JWQ882BauY9NyHxs5igpuQIXZDgfkaH3PoATg==", - "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "tslib": "^2.7.0" @@ -3207,7 +3187,6 @@ "version": "2.10.8", "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.8.tgz", "integrity": "sha512-eY8r8RMmrRTTkLdbNBOZLFGXN3OnrEmInaNt8s4msIVfo+xuLqAqvB3W1jevj0I9QjU6ueIP7tEk+1rj6Xbv5A==", - "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "@formatjs/fast-memoize": "2.2.1", @@ -3230,7 +3209,6 @@ "version": "6.6.10", "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.6.10.tgz", "integrity": "sha512-tUz5qT61og1WwMM0K1/p46J69gLl1YJbty8xhtbigDA9LhbBmW2ShDg4ld+aqJTwCq4WK3Sj0VlFCKvFYeY3rQ==", - "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "@formatjs/intl-localematcher": "0.5.5", @@ -3241,7 +3219,6 @@ "version": "7.5.9", "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.9.tgz", "integrity": "sha512-HqtGkxUh2Uz0oGVTxHAvPZ3EGxc8+ol5+Bx7S9xB97d4PEJJd9oOgHrerIghHA0gtIjsNKBFUae3P0My+F6YUA==", - "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "@formatjs/intl-localematcher": "0.5.5", @@ -3252,19 +3229,17 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.5.tgz", "integrity": "sha512-t5tOGMgZ/i5+ALl2/offNqAQq/lfUnKLEw0mXQI4N4bqpedhrSE+fyKLpwnd22sK0dif6AV+ufQcTsKShB9J1g==", - "license": "MIT", "dependencies": { "tslib": "^2.7.0" } }, "node_modules/@google-cloud/cloud-sql-connector": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@google-cloud/cloud-sql-connector/-/cloud-sql-connector-1.3.3.tgz", - "integrity": "sha512-Z/6haHca3bnaf1I2t/lmRgU5pCzGQTK6u9hMnD6a6sCL46QB4JRiBvRI5QMSPjnG8VYr1R7Wp1ZawvQJodEY6g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@google-cloud/cloud-sql-connector/-/cloud-sql-connector-1.4.0.tgz", + "integrity": "sha512-OUXs2f91u3afbFjufCJom9lF+GgS9if4F/eKxrLvdkbwkYAQrQUOY6Jw4YfVXUxF3oNDioTgZ4fpwt1MQXwfKg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@googleapis/sqladmin": "^19.0.0", + "@googleapis/sqladmin": "^24.0.0", "gaxios": "^6.1.1", "google-auth-library": "^9.2.0", "p-throttle": "^5.1.0" @@ -3274,11 +3249,10 @@ } }, "node_modules/@google-cloud/paginator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.0.tgz", - "integrity": "sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "arrify": "^2.0.0", "extend": "^3.0.2" @@ -3292,7 +3266,6 @@ "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-4.0.0.tgz", "integrity": "sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=14.0.0" } @@ -3302,7 +3275,6 @@ "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=14.0.0" } @@ -3312,24 +3284,22 @@ "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@google-cloud/pubsub": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-4.5.0.tgz", - "integrity": "sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-4.7.2.tgz", + "integrity": "sha512-N9Cziu5d7sju4gtHsbbjOXDMCewNwGaPZ/o+sBbWl9sBR7S+kHkD4BVg6hCi9SvH1sst0AGan8UAQAxbac8cRg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@google-cloud/paginator": "^5.0.0", "@google-cloud/precise-date": "^4.0.0", "@google-cloud/projectify": "^4.0.0", "@google-cloud/promisify": "^4.0.0", - "@opentelemetry/api": "~1.8.0", - "@opentelemetry/semantic-conventions": "~1.21.0", + "@opentelemetry/api": "~1.9.0", + "@opentelemetry/semantic-conventions": "~1.26.0", "arrify": "^2.0.0", "extend": "^3.0.2", "google-auth-library": "^9.3.0", @@ -3344,11 +3314,10 @@ } }, "node_modules/@googleapis/sqladmin": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@googleapis/sqladmin/-/sqladmin-19.0.0.tgz", - "integrity": "sha512-65zgEpQLhpTZqUic+pm4BbdDByN9NsHkphfCIwzpx3fccHPc6OuKsW0XexYCq9oTUtTC4QRjFisBDLV9fChRtg==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/@googleapis/sqladmin/-/sqladmin-24.0.0.tgz", + "integrity": "sha512-Sj2MerYrr4Z6ksK81Scj0gIdFjC3bC0vcqdM+TSfnOskg6d9iIALWdFDc3xgNHQWO58rUb6HjBzr1XbuNjYlPg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "googleapis-common": "^7.0.0" }, @@ -3365,11 +3334,10 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.8.tgz", - "integrity": "sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", + "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -3383,7 +3351,6 @@ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", @@ -4549,7 +4516,6 @@ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" @@ -4602,7 +4568,6 @@ "version": "5.16.7", "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.7.tgz", "integrity": "sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==", - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" @@ -4612,7 +4577,6 @@ "version": "5.16.7", "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.7.tgz", "integrity": "sha512-UrGwDJCXEszbDI7yV047BYU5A28eGJ79keTCP4cc74WyncuVrnurlmIRxaHL8YK+LI1Kzq+/JM52IAkNnv4u+Q==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9" }, @@ -4638,7 +4602,6 @@ "version": "5.0.0-alpha.173", "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.173.tgz", "integrity": "sha512-Gt5zopIWwxDgGy/MXcp6GueD84xFFugFai4hYiXY0zowJpTVnIrTQCQXV004Q7rejJ7aaCntX9hpPJqCrioshA==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/base": "5.0.0-beta.40", @@ -4679,7 +4642,6 @@ "version": "5.16.7", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.7.tgz", "integrity": "sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/core-downloads-tracker": "^5.16.7", @@ -4724,7 +4686,6 @@ "version": "5.16.6", "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.6.tgz", "integrity": "sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/utils": "^5.16.6", @@ -4751,7 +4712,6 @@ "version": "5.16.6", "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.6.tgz", "integrity": "sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@emotion/cache": "^11.11.0", @@ -4783,7 +4743,6 @@ "version": "5.16.7", "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.7.tgz", "integrity": "sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/private-theming": "^5.16.6", @@ -4823,7 +4782,6 @@ "version": "7.2.18", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.18.tgz", "integrity": "sha512-uvK9dWeyCJl/3ocVnTOS6nlji/Knj8/tVqVX03UVTpdmTJYu/s4jtDd9Kvv0nRGE0CUSNW1UYAci7PYypjealg==", - "license": "MIT", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -4837,7 +4795,6 @@ "version": "5.16.6", "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/types": "^7.2.15", @@ -4863,6 +4820,90 @@ } } }, + "node_modules/@mui/x-date-pickers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.20.0.tgz", + "integrity": "sha512-LnijrF8IF3r7c7sAVXRX4pDurozJSMUGAJdd5xuTT7ZPQIOp5ry0kDKqx79WAjXA/ZgjropLNt/nk15GE+6ZNw==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0", + "@mui/x-internals": "7.20.0", + "@types/react-transition-group": "^4.4.11", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14 || ^6.0.0", + "@mui/system": "^5.15.14 || ^6.0.0", + "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", + "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0", + "dayjs": "^1.10.7", + "luxon": "^3.0.2", + "moment": "^2.29.4", + "moment-hijri": "^2.1.2", + "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "date-fns": { + "optional": true + }, + "date-fns-jalali": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-hijri": { + "optional": true + }, + "moment-jalaali": { + "optional": true + } + } + }, + "node_modules/@mui/x-internals": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.20.0.tgz", + "integrity": "sha512-ScXdEwtnxmBEq9umeusnotfeVQnnhjOZcM2ddXyIupmzeGmgDDtEcXGyTgrS/GOc91J74g81s6eJ4UCrlYZ2sg==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -5022,21 +5063,19 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz", - "integrity": "sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g==", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.26.0.tgz", + "integrity": "sha512-U9PJlOswJPSgQVPI+XEuNLElyFWkb0hAiMg+DExD9V0St03X2lPHGMdxMY/LrVmoukuIpXJ12oyrOtEZ4uXFkw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=14" } @@ -5164,36 +5203,31 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -5203,36 +5237,31 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@react-leaflet/core": { "version": "2.1.0", @@ -5248,7 +5277,6 @@ "version": "2.2.8", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.8.tgz", "integrity": "sha512-eK/ieXftPRQfaBSmzsamXEyDwkntMTY0e9SG5ETsEOv5JIPKhu3mj992t6B8FJjlnSrZBAAqdT8oMkPe4j+P9g==", - "license": "MIT", "dependencies": { "immer": "^10.0.3", "redux": "^5.0.1", @@ -5272,7 +5300,6 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.20.0.tgz", "integrity": "sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==", - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -5366,7 +5393,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.119.2.tgz", "integrity": "sha512-bnR1yJWVBZfXGx675nMXE8hCXsxluCBfIFy9GQT8PTN/urxpoS9cGz+5F7MA7Xe3Q06/7TT0Mz3fcDvjkqTu3Q==", - "license": "MIT", "dependencies": { "@sentry/core": "7.119.2", "@sentry/types": "7.119.2", @@ -5380,7 +5406,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2", "@sentry/utils": "7.119.2" @@ -5393,7 +5418,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -5402,7 +5426,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2" }, @@ -5414,7 +5437,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.119.2.tgz", "integrity": "sha512-Lqo8IFyeKkdOrOGRqm9jCEqeBl8kINe5+c2VqULpkO/I6ql6ISwPSYnmG6yL8cCVIaT1893CLog/pS4FxCv8/Q==", - "license": "MIT", "dependencies": { "@sentry/core": "7.119.2", "@sentry/replay": "7.119.2", @@ -5429,7 +5451,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2", "@sentry/utils": "7.119.2" @@ -5442,7 +5463,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -5451,7 +5471,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2" }, @@ -5476,7 +5495,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.119.2.tgz", "integrity": "sha512-Wb2RzCsJBTNCmS9KPmbVyV5GGzFXjFdUThAN9xlnN5GgemMBwdQjGu/tRYr8yJAVsRb0EOFH8IuJBNKKNnO49g==", - "license": "MIT", "dependencies": { "@sentry-internal/feedback": "7.119.2", "@sentry-internal/replay-canvas": "7.119.2", @@ -5495,7 +5513,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.119.2.tgz", "integrity": "sha512-V2W+STWrafyGJhQv3ulMFXYDwWHiU6wHQAQBShsHVACiFaDrJ2kPRet38FKv4dMLlLlP2xN+ss2e5zv3tYlTiQ==", - "license": "MIT", "dependencies": { "@sentry/core": "7.119.2", "@sentry/types": "7.119.2", @@ -5509,7 +5526,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2", "@sentry/utils": "7.119.2" @@ -5522,7 +5538,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -5531,7 +5546,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2" }, @@ -5555,7 +5569,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.119.2.tgz", "integrity": "sha512-dCuXKvbUE3gXVVa696SYMjlhSP6CxpMH/gl4Jk26naEB8Xjsn98z/hqEoXLg6Nab73rjR9c/9AdKqBbwVMHyrQ==", - "license": "MIT", "dependencies": { "@sentry/core": "7.119.2", "@sentry/types": "7.119.2", @@ -5570,7 +5583,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2", "@sentry/utils": "7.119.2" @@ -5583,7 +5595,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -5592,7 +5603,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2" }, @@ -5604,7 +5614,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.119.2.tgz", "integrity": "sha512-fE48R/mtb/bpc4/YVvKurKSAZ0ueUI5Ma0cVSr/Fi09rFdGwLRMcweM1UydREO/ILiyt8FezyZg7L20VAp4/TQ==", - "license": "MIT", "dependencies": { "@sentry/browser": "7.119.2", "@sentry/core": "7.119.2", @@ -5623,7 +5632,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2", "@sentry/utils": "7.119.2" @@ -5636,7 +5644,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -5645,7 +5652,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2" }, @@ -5657,7 +5663,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.119.2.tgz", "integrity": "sha512-nHDsBt0mlJXTWAHjzQdCzDbhV2fv8B62PPB5mu5SpI+G5h+ir3r5lR0lZZrMT8eurVowb/HnLXAs+XYVug3blg==", - "license": "MIT", "dependencies": { "@sentry-internal/tracing": "7.119.2", "@sentry/core": "7.119.2", @@ -5672,7 +5677,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.119.2.tgz", "integrity": "sha512-V2W+STWrafyGJhQv3ulMFXYDwWHiU6wHQAQBShsHVACiFaDrJ2kPRet38FKv4dMLlLlP2xN+ss2e5zv3tYlTiQ==", - "license": "MIT", "dependencies": { "@sentry/core": "7.119.2", "@sentry/types": "7.119.2", @@ -5686,7 +5690,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2", "@sentry/utils": "7.119.2" @@ -5699,7 +5702,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -5708,7 +5710,6 @@ "version": "7.119.2", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", - "license": "MIT", "dependencies": { "@sentry/types": "7.119.2" }, @@ -5757,7 +5758,6 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -6188,8 +6188,7 @@ "version": "0.12.5", "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/connect": { "version": "3.4.38", @@ -6364,8 +6363,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/material-ui": { "version": "0.21.17", @@ -6388,7 +6386,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } @@ -6414,10 +6411,9 @@ "dev": true }, "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "license": "MIT" + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" }, "node_modules/@types/q": { "version": "1.5.8", @@ -6441,7 +6437,6 @@ "version": "18.3.11", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", - "license": "MIT", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -6461,7 +6456,6 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/react": "*" } @@ -6486,9 +6480,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", "dependencies": { "@types/react": "*" } @@ -6507,7 +6501,6 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", "dev": true, - "license": "MIT", "dependencies": { "@types/caseless": "*", "@types/node": "*", @@ -6516,15 +6509,15 @@ } }, "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", "dev": true, - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "mime-types": "^2.1.12", + "safe-buffer": "^5.2.1" }, "engines": { "node": ">= 0.12" @@ -6600,8 +6593,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/triple-beam": { "version": "1.3.5", @@ -7495,7 +7487,6 @@ "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", "dev": true, - "license": "MIT", "dependencies": { "archiver-utils": "^5.0.2", "async": "^3.2.4", @@ -7514,7 +7505,6 @@ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", "dev": true, - "license": "MIT", "dependencies": { "glob": "^10.0.0", "graceful-fs": "^4.2.0", @@ -7533,7 +7523,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -7557,18 +7546,16 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "node_modules/archiver-utils/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -7580,25 +7567,18 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/archiver-utils/node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -7607,11 +7587,10 @@ } }, "node_modules/archiver-utils/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -7627,7 +7606,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, - "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -7658,7 +7636,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -7669,7 +7646,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, - "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -7865,7 +7841,6 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7879,7 +7854,8 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true }, "node_modules/ast-types": { "version": "0.13.4", @@ -7909,8 +7885,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/asynciterator.prototype": { "version": "1.0.0", @@ -7997,7 +7972,6 @@ "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", - "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -8014,11 +7988,10 @@ } }, "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", - "dev": true, - "license": "Apache-2.0" + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true }, "node_modules/babel-jest": { "version": "27.5.1", @@ -8275,27 +8248,6 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8303,11 +8255,10 @@ "dev": true }, "node_modules/bare-events": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", - "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", "dev": true, - "license": "Apache-2.0", "optional": true }, "node_modules/base64-js": { @@ -8477,11 +8428,6 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, - "node_modules/bowser": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" - }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -8643,7 +8589,6 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -8853,8 +8798,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -8865,11 +8809,6 @@ "node": ">=4" } }, - "node_modules/chain-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", - "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -8886,11 +8825,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/change-emitter": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", - "integrity": "sha512-YXzt1cQ4a2jqazhcuSWEOc1K2q8g9H6eWNsyZgi640LDzRWVQ2eDe+Y/kVdftH+vYdPF2rgDb3dLdpxE1jvAxw==" - }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -8917,7 +8851,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -9053,7 +8986,6 @@ "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", "dev": true, - "license": "ISC", "dependencies": { "chalk": "^4.0.0", "highlight.js": "^10.7.1", @@ -9075,7 +9007,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -9086,15 +9017,13 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/cli-highlight/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9112,7 +9041,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -9131,7 +9059,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } @@ -9165,7 +9092,6 @@ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, - "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -9192,9 +9118,9 @@ } }, "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -9203,14 +9129,14 @@ } }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==" }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -9251,7 +9177,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -9266,7 +9191,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9292,7 +9216,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", "engines": { "node": ">=6" } @@ -9527,7 +9450,6 @@ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "dev": true, - "license": "MIT", "dependencies": { "crc-32": "^1.2.0", "crc32-stream": "^6.0.0", @@ -9558,7 +9480,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -9569,7 +9490,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, - "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -9755,9 +9675,9 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, "engines": { "node": ">= 0.6" @@ -9843,7 +9763,6 @@ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, - "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -9856,7 +9775,6 @@ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "dev": true, - "license": "MIT", "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^4.0.0" @@ -9884,7 +9802,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -9895,7 +9812,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, - "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -10069,15 +9985,6 @@ "postcss": "^8.4" } }, - "node_modules/css-in-js-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", - "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", - "dependencies": { - "hyphenate-style-name": "^1.0.2", - "isobject": "^3.0.1" - } - }, "node_modules/css-loader": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", @@ -11093,7 +11000,6 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", "dev": true, - "license": "MIT", "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", @@ -11123,9 +11029,9 @@ "dev": true }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -11165,8 +11071,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", @@ -11196,6 +11101,8 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -11204,6 +11111,8 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -11256,7 +11165,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "license": "MIT", "engines": { "node": ">=18" }, @@ -12328,7 +12236,6 @@ "resolved": "https://registry.npmjs.org/exegesis/-/exegesis-4.2.0.tgz", "integrity": "sha512-MOzRyqhvl+hTA4+W4p0saWRIPlu0grIx4ykjMEYgGLiqr/z9NCIlwSq2jF0gyxNjPZD3xyHgmkW6BSaLVUdctg==", "dev": true, - "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.3", "ajv": "^8.3.0", @@ -12387,17 +12294,15 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/exegesis/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -12409,25 +12314,18 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/exegesis/node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -12442,11 +12340,10 @@ "dev": true }, "node_modules/exegesis/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -12490,17 +12387,17 @@ "optional": true }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -12531,45 +12428,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -12612,8 +12470,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -12682,26 +12539,6 @@ "bser": "2.1.1" } }, - "node_modules/fbjs": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", - "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", - "dependencies": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "node_modules/fbjs/node_modules/core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js." - }, "node_modules/fecha": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", @@ -12876,7 +12713,6 @@ "resolved": "https://registry.npmjs.org/firebase-tools/-/firebase-tools-13.22.0.tgz", "integrity": "sha512-oZ5ylhSL+FvhrAL51y5p3O7OS2hS/Qj4Yb7RfsfuVGyxVZu7veZSrjJkKNWLtUXFSC16yzCpsbbQvMpEm5bxiQ==", "dev": true, - "license": "MIT", "dependencies": { "@electric-sql/pglite": "^0.2.0", "@google-cloud/cloud-sql-connector": "^1.3.3", @@ -12959,7 +12795,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -12969,7 +12804,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -12990,7 +12824,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -13006,7 +12839,6 @@ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -13022,7 +12854,6 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^10.3.7" }, @@ -13044,11 +12875,10 @@ } }, "node_modules/firebase-tools/node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", "dev": true, - "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -13377,17 +13207,16 @@ } }, "node_modules/gaxios": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.0.tgz", - "integrity": "sha512-DSrkyMTfAnAm4ks9Go20QGOcXEyW/NmZhvTYBU2rb4afBB393WIMQPWPEDMl/k8xqiNN9HYq2zao3oWXsdl2Tg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "is-stream": "^2.0.0", "node-fetch": "^2.6.9", - "uuid": "^10.0.0" + "uuid": "^9.0.1" }, "engines": { "node": ">=14" @@ -13406,12 +13235,12 @@ } }, "node_modules/gaxios/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -13423,38 +13252,24 @@ } }, "node_modules/gaxios/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 14" - } - }, - "node_modules/gaxios/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/gaxios/node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "node": ">= 14" } }, + "node_modules/gaxios/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/gcp-metadata": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", @@ -13487,9 +13302,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", "engines": { "node": ">=18" }, @@ -13799,11 +13614,10 @@ } }, "node_modules/google-auth-library": { - "version": "9.11.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.11.0.tgz", - "integrity": "sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==", + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.2.tgz", + "integrity": "sha512-R+FRIfk1GBo3RdlRYWPdwk8nmtVUOn6+BkDomAC46KoU8kzXzE1HLmOasSCbWUByMMAGkknVF0G5kQ69Vj7dlA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", @@ -13817,22 +13631,21 @@ } }, "node_modules/google-gax": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.3.tgz", - "integrity": "sha512-f4F2Y9X4+mqsrJuLZsuTljYuQpcBnQsCt9ScvZpdM8jGjqrcxyJi5JUiqtq0jtpdHVPzyit0N7f5t07e+kH5EA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.4.1.tgz", + "integrity": "sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@grpc/grpc-js": "~1.10.3", - "@grpc/proto-loader": "^0.7.0", + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", "@types/long": "^4.0.0", "abort-controller": "^3.0.0", "duplexify": "^4.0.0", "google-auth-library": "^9.3.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.7.0", "object-hash": "^3.0.0", - "proto3-json-serializer": "^2.0.0", - "protobufjs": "7.2.6", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", "retry-request": "^7.0.0", "uuid": "^9.0.1" }, @@ -13853,7 +13666,6 @@ "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-7.2.0.tgz", "integrity": "sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "gaxios": "^6.0.3", @@ -13894,7 +13706,6 @@ "version": "16.9.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -14065,9 +13876,9 @@ } }, "node_modules/heap-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.3.0.tgz", - "integrity": "sha512-E5303mzwQ+4j/n2J0rDvEPBN7GKjhis10oHiYOgjxsmxYgqG++hz9NyLLOXttzH8as/DyiBHYpUrJTZWYaMo8Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", + "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", "dev": true, "engines": { "node": ">=10.0.0" @@ -14078,7 +13889,6 @@ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -14462,11 +14272,6 @@ "url": "https://github.com/sponsors/typicode" } }, - "node_modules/hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -14541,8 +14346,7 @@ "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/immer": { "version": "10.0.3", @@ -14637,15 +14441,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "node_modules/inline-style-prefixer": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", - "integrity": "sha512-ne8XIyyqkRaNJ1JfL1NYzNdCNxq+MCBQhC8NgOQlzNm2vv3XxlP0VSLQUbSRCF6KPEoveCVEpayHoHzcMyZsMQ==", - "dependencies": { - "bowser": "^1.7.3", - "css-in-js-utils": "^2.0.0" - } - }, "node_modules/inquirer": { "version": "8.2.6", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", @@ -14731,7 +14526,6 @@ "version": "10.7.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.0.tgz", "integrity": "sha512-2P06M9jFTqJnEQzE072VGPjbAx6ZG1YysgopAwc8ui0ajSjtwX1MeQ6bXFXIzKcNENJTizKkcJIcZ0zlpl1zSg==", - "license": "BSD-3-Clause", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "@formatjs/fast-memoize": "2.2.1", @@ -14740,9 +14534,9 @@ } }, "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", "dev": true }, "node_modules/ip-regex": { @@ -14857,8 +14651,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-callable": { "version": "1.2.7", @@ -15201,8 +14994,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-string": { "version": "1.0.7", @@ -15347,40 +15139,6 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", - "dependencies": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dependencies": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -18249,11 +18007,6 @@ "node": ">=18" } }, - "node_modules/keycode": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", - "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==" - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -18329,7 +18082,6 @@ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, - "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -18341,15 +18093,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -18364,15 +18114,13 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -18423,7 +18171,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "license": "MIT", "dependencies": { "immediate": "~3.0.5" } @@ -18446,7 +18193,6 @@ "version": "15.2.10", "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", - "license": "MIT", "dependencies": { "chalk": "~5.3.0", "commander": "~12.1.0", @@ -18485,18 +18231,16 @@ "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/lint-staged/node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "license": "MIT", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -18511,7 +18255,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "license": "MIT", "engines": { "node": ">=14" }, @@ -18520,16 +18263,14 @@ } }, "node_modules/lint-staged/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/lint-staged/node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "license": "ISC", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", "bin": { "yaml": "bin.mjs" }, @@ -18538,10 +18279,9 @@ } }, "node_modules/listr2": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", - "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", - "license": "MIT", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", @@ -18555,9 +18295,9 @@ } }, "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -18577,14 +18317,14 @@ } }, "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==" }, "node_modules/listr2/node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -18654,7 +18394,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "license": "Apache-2.0", "dependencies": { "lie": "3.1.1" } @@ -18690,8 +18429,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -18758,7 +18496,8 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/lodash.once": { "version": "4.1.1", @@ -18778,11 +18517,6 @@ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -18809,7 +18543,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "license": "MIT", "dependencies": { "ansi-escapes": "^7.0.0", "cli-cursor": "^5.0.0", @@ -18828,7 +18561,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "license": "MIT", "dependencies": { "environment": "^1.0.0" }, @@ -18840,10 +18572,9 @@ } }, "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -18855,7 +18586,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -18867,7 +18597,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "license": "MIT", "dependencies": { "restore-cursor": "^5.0.0" }, @@ -18879,16 +18608,14 @@ } }, "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "license": "MIT" + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "license": "MIT", "dependencies": { "get-east-asian-width": "^1.0.0" }, @@ -18903,7 +18630,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "license": "MIT", "dependencies": { "mimic-function": "^5.0.0" }, @@ -18918,7 +18644,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "license": "MIT", "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" @@ -18934,7 +18659,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", "engines": { "node": ">=14" }, @@ -18946,7 +18670,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" @@ -18962,7 +18685,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", @@ -18979,7 +18701,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -18994,7 +18715,6 @@ "version": "9.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -19043,8 +18763,7 @@ "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/loose-envify": { "version": "1.4.0", @@ -19083,7 +18802,6 @@ "resolved": "https://registry.npmjs.org/lsofi/-/lsofi-1.0.0.tgz", "integrity": "sha512-MKr9vM1MSm+TSKfI05IYxpKV1NCxpJaBLnELyIf784zYJ5KV9lGCE1EvpA2DtXDNM3fCuFeCwXUzim/fyQRi+A==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^2.1.0", "through2": "^2.0.1" @@ -19094,7 +18812,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", "dev": true, - "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -19107,7 +18824,6 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, - "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -19194,7 +18910,6 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", "dev": true, - "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -19207,7 +18922,6 @@ "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.1.0.tgz", "integrity": "sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-escapes": "^7.0.0", "chalk": "^5.3.0", @@ -19228,7 +18942,6 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, - "license": "MIT", "dependencies": { "environment": "^1.0.0" }, @@ -19252,64 +18965,19 @@ } }, "node_modules/marked-terminal/node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">=14.18" - } - }, - "node_modules/material-ui": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-0.20.2.tgz", - "integrity": "sha512-VeqgQkdvtK193w+FFvXDEwlVxI4rWk83eWbpYLeOIHDPWr3rbB9B075JRnJt/8IsI2X8q5Aia5W3+7m4KkleDg==", - "deprecated": "You can now upgrade to @material-ui/core", - "dependencies": { - "babel-runtime": "^6.23.0", - "inline-style-prefixer": "^3.0.8", - "keycode": "^2.1.8", - "lodash.merge": "^4.6.0", - "lodash.throttle": "^4.1.1", - "prop-types": "^15.5.7", - "react-event-listener": "^0.6.2", - "react-transition-group": "^1.2.1", - "recompose": "^0.26.0", - "simple-assign": "^0.1.0", - "warning": "^3.0.0" - }, - "peerDependencies": { - "react": "^15.4.0 || ^16.0.0", - "react-dom": "^15.4.0 || ^16.0.0" - } - }, - "node_modules/material-ui/node_modules/dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "dependencies": { - "@babel/runtime": "^7.1.2" - } - }, - "node_modules/material-ui/node_modules/react-transition-group": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", - "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", - "dependencies": { - "chain-function": "^1.0.0", - "dom-helpers": "^3.2.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.5.6", - "warning": "^3.0.0" }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0", - "react-dom": "^15.0.0 || ^16.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mdn-data": { @@ -19372,7 +19040,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -19427,7 +19094,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "license": "MIT", "engines": { "node": ">=18" }, @@ -19539,7 +19205,6 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -19878,7 +19543,6 @@ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", "dev": true, - "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.6.0", "char-regex": "^1.0.2", @@ -20290,7 +19954,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-3.1.0.tgz", "integrity": "sha512-IDopEXjiwjkmJLYZo6BTlvwOtnlSniWZkKZoXforC/oLZHC9wkIxd25Kwtmo5yKFMMVcsp3JY6bhcNJqdYk8+g==", - "license": "Apache-2.0", "dependencies": { "jwt-decode": "^4.0.0" }, @@ -20623,11 +20286,10 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true, - "license": "BlueOak-1.0.0" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true }, "node_modules/param-case": { "version": "3.0.4", @@ -20678,7 +20340,6 @@ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, - "license": "MIT", "dependencies": { "parse5": "^6.0.1" } @@ -20738,7 +20399,6 @@ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -20751,14 +20411,10 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -20781,14 +20437,14 @@ "dev": true }, "node_modules/pg": { - "version": "8.11.5", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", - "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.0.tgz", + "integrity": "sha512-34wkUTh3SxTClfoHB3pQ7bIMvw9dpFU1audQQeZG837fmHfHpr14n/AELVDoOYVDW2h5RDWU78tFjkD+erSBsw==", "dev": true, "dependencies": { - "pg-connection-string": "^2.6.4", - "pg-pool": "^3.6.2", - "pg-protocol": "^1.6.1", + "pg-connection-string": "^2.7.0", + "pg-pool": "^3.7.0", + "pg-protocol": "^1.7.0", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -20815,9 +20471,9 @@ "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", - "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", + "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", "dev": true }, "node_modules/pg-int8": { @@ -20830,18 +20486,18 @@ } }, "node_modules/pg-pool": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", - "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.0.tgz", + "integrity": "sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==", "dev": true, "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", - "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", "dev": true }, "node_modules/pg-types": { @@ -22414,7 +22070,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -22489,7 +22144,6 @@ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -22509,14 +22163,6 @@ "node": ">=0.4.0" } }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, "node_modules/promise-breaker": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-6.0.0.tgz", @@ -22582,11 +22228,10 @@ "dev": true }, "node_modules/proto3-json-serializer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz", - "integrity": "sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "protobufjs": "^7.2.5" }, @@ -22595,12 +22240,11 @@ } }, "node_modules/protobufjs": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "dev": true, "hasInstallScript": true, - "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -22802,8 +22446,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/raf": { "version": "3.4.1", @@ -23056,27 +22699,6 @@ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", "dev": true }, - "node_modules/react-event-listener": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz", - "integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==", - "dependencies": { - "@babel/runtime": "^7.2.0", - "prop-types": "^15.6.0", - "warning": "^4.0.1" - }, - "peerDependencies": { - "react": "^16.3.0" - } - }, - "node_modules/react-event-listener/node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", @@ -23100,7 +22722,6 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.8.0.tgz", "integrity": "sha512-rx/UcAtlmrYWaPfrgAIDu7VsJoyUPFPdftIFUnOSOj/LHR6ACTU3tunfk69c4LGygQ592YxilBXDWH6rKlTu6Q==", - "license": "BSD-3-Clause", "dependencies": { "@formatjs/ecma402-abstract": "2.2.0", "@formatjs/icu-messageformat-parser": "2.7.10", @@ -23126,8 +22747,7 @@ "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-leaflet": { "version": "4.2.1", @@ -23159,7 +22779,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/react-oidc-context/-/react-oidc-context-3.2.0.tgz", "integrity": "sha512-ZLaCRLWV84Cn9pFdsatmblqxLMv0np69GWVXq9RWGqAjppdOGXNIbIxWMByIio0oSCVUwdeqwYRnJme0tjqd8A==", - "license": "MIT", "engines": { "node": ">=18" }, @@ -23203,7 +22822,6 @@ "version": "6.27.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.27.0.tgz", "integrity": "sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==", - "license": "MIT", "dependencies": { "@remix-run/router": "1.20.0" }, @@ -23218,7 +22836,6 @@ "version": "6.27.0", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.27.0.tgz", "integrity": "sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==", - "license": "MIT", "dependencies": { "@remix-run/router": "1.20.0", "react-router": "6.27.0" @@ -23392,33 +23009,6 @@ "node": ">=8.10.0" } }, - "node_modules/recompose": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", - "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==", - "dependencies": { - "change-emitter": "^0.1.2", - "fbjs": "^0.8.1", - "hoist-non-react-statics": "^2.3.1", - "symbol-observable": "^1.0.4" - }, - "peerDependencies": { - "react": "^0.14.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/recompose/node_modules/hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - }, - "node_modules/recompose/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -23889,7 +23479,6 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", "dev": true, - "license": "MIT", "dependencies": { "@types/request": "^2.48.8", "extend": "^3.0.2", @@ -23912,8 +23501,7 @@ "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "license": "MIT" + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "node_modules/rimraf": { "version": "3.0.2", @@ -24113,7 +23701,8 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/sanitize.css": { "version": "13.0.0", @@ -24416,11 +24005,6 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -24475,11 +24059,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/simple-assign": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/simple-assign/-/simple-assign-0.1.0.tgz", - "integrity": "sha512-otdSSQzuVsmDoe5MnSm4ZgHd5sl0ak6A1CTjW1R/DUHQ8xoZuU1NUzf9x6n9Dvp3nxpvW51WNMQ/7rQ9432xDg==" - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -24506,7 +24085,6 @@ "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", "dev": true, - "license": "MIT", "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" }, @@ -24643,9 +24221,9 @@ "dev": true }, "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, "node_modules/sort-any": { @@ -24950,9 +24528,9 @@ "dev": true }, "node_modules/sql-formatter": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.3.1.tgz", - "integrity": "sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA==", + "version": "15.4.3", + "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.4.3.tgz", + "integrity": "sha512-RnYhnCojj9jlaVr04Vol2E0aUnZuunUq3gArnzwagsyV5mBXeX6r1rRfHdDzyDkO1NcsPiHCs9ik00Kf9AUMfQ==", "dev": true, "dependencies": { "argparse": "^2.0.1", @@ -25066,7 +24644,6 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", "dev": true, - "license": "MIT", "dependencies": { "stubs": "^3.0.0" } @@ -25084,15 +24661,13 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/streamx": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", - "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", "dev": true, - "license": "MIT", "dependencies": { "fast-fifo": "^1.3.2", "queue-tick": "^1.0.1", @@ -25355,8 +24930,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/style-loader": { "version": "3.3.3", @@ -25819,9 +25393,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -25840,7 +25414,6 @@ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, - "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -25930,7 +25503,6 @@ "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", @@ -25947,19 +25519,17 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/teeny-request/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -25975,7 +25545,6 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, - "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -25986,11 +25555,10 @@ } }, "node_modules/teeny-request/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "node_modules/temp": { "version": "0.9.4", @@ -26145,11 +25713,10 @@ } }, "node_modules/text-decoder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", - "integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", + "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.4" } @@ -26204,7 +25771,6 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -26214,15 +25780,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -26237,15 +25801,13 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/through2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -26261,7 +25823,6 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.14" } @@ -26417,8 +25978,7 @@ "node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "license": "0BSD" + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -26566,7 +26126,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26575,28 +26134,6 @@ "node": ">=14.17" } }, - "node_modules/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "engines": { - "node": "*" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -26616,8 +26153,7 @@ "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -26633,7 +26169,6 @@ "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -26891,8 +26426,7 @@ "version": "2.0.8", "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", - "dev": true, - "license": "BSD" + "dev": true }, "node_modules/use-sync-external-store": { "version": "1.2.0", @@ -27019,14 +26553,6 @@ "makeerror": "1.0.12" } }, - "node_modules/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -27115,9 +26641,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -27465,7 +26991,8 @@ "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "dev": true }, "node_modules/whatwg-mimetype": { "version": "2.3.0", @@ -28014,7 +27541,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -28089,7 +27615,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -28108,7 +27633,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } @@ -28143,7 +27667,6 @@ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "dev": true, - "license": "MIT", "dependencies": { "archiver-utils": "^5.0.0", "compress-commons": "^6.0.2", @@ -28172,7 +27695,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -28183,7 +27705,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, - "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", diff --git a/package.json b/package.json index 88c85c740..f0ebfc95c 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@mui/icons-material": "5.16.7", "@mui/lab": "5.0.0-alpha.173", "@mui/material": "5.16.7", + "@mui/x-date-pickers": "7.20.0", "@reduxjs/toolkit": "2.2.8", "@sentry/react": "7.119.2", "@sentry/tracing": "7.114.0", @@ -40,7 +41,6 @@ "leaflet": "1.9.4", "lint-staged": "15.2.10", "lodash.debounce": "4.0.8", - "material-ui": "0.20.2", "moment": "2.30.1", "oidc-client-ts": "3.1.0", "prop-types": "15.8.1", diff --git a/src/actions/TiamatActions.js b/src/actions/TiamatActions.js index 9cb49ae97..7e6027e9c 100644 --- a/src/actions/TiamatActions.js +++ b/src/actions/TiamatActions.js @@ -82,8 +82,8 @@ export const getContext = async (auth) => { return context; }; -const handleQuery = (client, payload) => (dispatch) => - client.query(payload).then((result) => { +const handleQuery = (client, payload) => (dispatch) => { + return client.query(payload).then((result) => { dispatch( createApolloThunk( types.APOLLO_QUERY_RESULT, @@ -94,6 +94,7 @@ const handleQuery = (client, payload) => (dispatch) => ); return result; }); +}; const handleMutation = (client, payload) => (dispatch) => client diff --git a/src/components/Dialogs/AddStopPlaceSuggestionListItem.js b/src/components/Dialogs/AddStopPlaceSuggestionListItem.js index a9212ce79..271f5e918 100644 --- a/src/components/Dialogs/AddStopPlaceSuggestionListItem.js +++ b/src/components/Dialogs/AddStopPlaceSuggestionListItem.js @@ -14,10 +14,11 @@ limitations under the Licence. */ import React, { Component } from "react"; import PropTypes from "prop-types"; -import Checkbox from "material-ui/Checkbox"; +import Checkbox from "@mui/material/Checkbox"; import ModalityIconImg from "../MainPage/ModalityIconImg"; import { injectIntl } from "react-intl"; import HasExpiredInfo from "../MainPage/HasExpiredInfo"; +import { FormControlLabel } from "@mui/material"; class AddStopPlaceSuggestionListItem extends Component { render() { @@ -26,10 +27,14 @@ class AddStopPlaceSuggestionListItem extends Component { return (
- onCheck(suggestion.id, v)} + onCheck(suggestion.id, v)} + /> + } label={
{suggestion.isParent ? ( @@ -39,10 +44,16 @@ class AddStopPlaceSuggestionListItem extends Component { type={suggestion.stopPlaceType} submode={suggestion.submode} style={{ marginRight: 5 }} - iconStyle={{ marginTop: -1 }} /> )} -
+
{suggestion.name ? ( {suggestion.name} ) : ( @@ -53,8 +64,7 @@ class AddStopPlaceSuggestionListItem extends Component {
- + { this.handleRemoveName(i); }} > - +
) : null} @@ -298,13 +298,15 @@ class AltNamesDialog extends React.Component { translations={translations} handleAddAltName={this.handleAddAltName.bind(this)} handleTypeChange={(event, key, type) => { - this.setState({ type }); + this.setState({ type: event.target.value }); }} onLanguageChange={(event, key, lang) => { - this.setState({ lang }); + this.setState({ lang: event.target.value }); + debugger; }} - onValueChange={(event, value) => { - this.setState({ value }); + onValueChange={(event) => { + this.setState({ value: event.target.value }); + debugger; }} lang={lang} type={type} diff --git a/src/components/Dialogs/CompassBearingDialog.js b/src/components/Dialogs/CompassBearingDialog.js index bee7e1c43..7ed96eccb 100644 --- a/src/components/Dialogs/CompassBearingDialog.js +++ b/src/components/Dialogs/CompassBearingDialog.js @@ -21,7 +21,7 @@ import { DialogContent, DialogTitle, } from "@mui/material"; -import { TextField } from "material-ui"; +import { TextField } from "@mui/material"; class CompassBearingDialog extends React.Component { constructor(props) { diff --git a/src/components/Dialogs/CoordinatesDialog.js b/src/components/Dialogs/CoordinatesDialog.js index 301bcb718..a351a4ddc 100644 --- a/src/components/Dialogs/CoordinatesDialog.js +++ b/src/components/Dialogs/CoordinatesDialog.js @@ -21,7 +21,7 @@ import { DialogContent, DialogTitle, } from "@mui/material"; -import { TextField } from "material-ui"; +import { TextField } from "@mui/material"; import { extractCoordinates } from "../../utils/"; class CoordinatesDialog extends React.Component { @@ -29,6 +29,7 @@ class CoordinatesDialog extends React.Component { super(props); this.state = { errorText: "", + coordinates: null, }; } @@ -40,9 +41,9 @@ class CoordinatesDialog extends React.Component { handleClose: PropTypes.func.isRequired, }; - handleInputChange(event, newValue) { + handleInputChange(event) { this.setState({ - coordinates: newValue, + coordinates: event.target.value, }); } @@ -58,7 +59,6 @@ class CoordinatesDialog extends React.Component { const coordinatesString = this.state ? this.state.coordinates : this.props.coordinates; - if (typeof coordinatesString === "undefined") return; const position = extractCoordinates(coordinatesString); @@ -97,21 +97,22 @@ class CoordinatesDialog extends React.Component { {confirmDialogTranslation.title} {confirmDialogTranslation.body} -
- { + onChange={(event) => { this.setState({ - type, + type: event.target.value, }); }} > {altNameConfig.supportedNameTypes.map((type) => ( - + {formatMessage({ id: `altNamesDialog.nameTypes.${type}`, })} - /> + ))} - - + + { + onChange={(event) => { this.setState({ - value, + value: event.target.value, }); }} /> diff --git a/src/components/Dialogs/KeyValuesDialog.js b/src/components/Dialogs/KeyValuesDialog.js index 2e8057678..1424cd81d 100644 --- a/src/components/Dialogs/KeyValuesDialog.js +++ b/src/components/Dialogs/KeyValuesDialog.js @@ -14,16 +14,16 @@ limitations under the Licence. */ import React from "react"; import { connect } from "react-redux"; -import MdEdit from "material-ui/svg-icons/editor/mode-edit"; -import MdRemove from "material-ui/svg-icons/action/delete"; +import MdEdit from "@mui/icons-material/ModeEdit"; +import MdRemove from "@mui/icons-material/Delete"; import { getPrimaryColor } from "../../config/themeConfig"; import EditKeyValuePair from "../EditStopPage/EditKeyValuePair"; import CreateKeyValuePair from "../EditStopPage/CreateKeyValuePair"; import { StopPlaceActions, UserActions } from "../../actions/"; -import FloatingActionButton from "material-ui/FloatingActionButton"; -import ContentAdd from "material-ui/svg-icons/content/add"; +import Fab from "@mui/material/Fab"; import { selectKeyValuesDataSource } from "../../reducers/selectors"; import DialogHeader from "./DialogHeader"; +import Add from "@mui/icons-material/Add"; class KeyValuesDialog extends React.Component { constructor(props) { @@ -197,13 +197,13 @@ class KeyValuesDialog extends React.Component { )}
{!disabled && ( - - - + + )} { const loadingStyle = { @@ -25,7 +25,7 @@ const Loader = () => { return (
- +
); }; diff --git a/src/components/Dialogs/NewAltName.js b/src/components/Dialogs/NewAltName.js index 7be8cbd6e..2de3ceaf6 100644 --- a/src/components/Dialogs/NewAltName.js +++ b/src/components/Dialogs/NewAltName.js @@ -13,10 +13,10 @@ limitations under the Licence. */ import React, { Component } from "react"; -import FlatButton from "material-ui/FlatButton"; -import SelectField from "material-ui/SelectField"; -import MenuItem from "material-ui/MenuItem"; -import TextField from "material-ui/TextField"; +import FlatButton from "@mui/material/Button"; +import Select from "@mui/material/Select"; +import MenuItem from "@mui/material/MenuItem"; +import TextField from "@mui/material/TextField"; import * as altNameConfig from "../../config/altNamesConfig"; class NewAltName extends Component { @@ -52,45 +52,46 @@ class NewAltName extends Component { > {translations.addAltName} - {altNameConfig.supportedNameTypes.map((type, index) => ( - + {formatMessage({ id: `altNamesDialog.nameTypes.${type}`, })} - /> + ))} - - + {tariffZones.map((tz) => ( {fareZones.map((fz) => ( { diff --git a/src/components/EditParentStopPage/EditParentGeneral.js b/src/components/EditParentStopPage/EditParentGeneral.js index c78d6585c..8bb332b9b 100644 --- a/src/components/EditParentStopPage/EditParentGeneral.js +++ b/src/components/EditParentStopPage/EditParentGeneral.js @@ -15,12 +15,12 @@ limitations under the Licence. */ import React from "react"; import { connect } from "react-redux"; import { injectIntl } from "react-intl"; -import FlatButton from "material-ui/FlatButton"; +import FlatButton from "@mui/material/Button"; import ParentStopDetails from "./ParentStopDetails"; -import MdBack from "material-ui/svg-icons/navigation/arrow-back"; +import MdBack from "@mui/icons-material/ArrowBack"; import VersionsPopover from "../EditStopPage/VersionsPopover"; -import MdUndo from "material-ui/svg-icons/content/undo"; -import MdSave from "material-ui/svg-icons/content/save"; +import MdUndo from "@mui/icons-material/Undo"; +import MdSave from "@mui/icons-material/Save"; import ConfirmDialog from "../Dialogs/ConfirmDialog"; import { StopPlaceActions, UserActions } from "../../actions/"; import SaveDialog from "../Dialogs/SaveDialog"; @@ -360,6 +360,7 @@ class EditParentGeneral extends React.Component { buttonLabel={formatMessage({ id: "versions" })} disabled={!(versions || []).length} handleSelect={this.handleLoadVersion.bind(this)} + hide={!(versions || []).length} /> { this.props.dispatch( UserActions.requestTerminateStopPlace(stopPlace.id), ); }} - /> + > +
+ {formatMessage({ id: "terminate_stop_place" })} +
+
} disabled={!stopHasBeenModified} label={formatMessage({ id: "undo_changes" })} - style={{ margin: "8 5", zIndex: 999 }} - labelStyle={{ fontSize: "0.7em" }} + style={{ margin: "8 5", zIndex: 999, fontSize: "0.7em" }} onClick={() => { this.setState({ confirmUndoOpen: true }); }} - /> + > + + {formatMessage({ id: "undo_changes" })} + } disabled={!isAllowedToSave} label={formatMessage({ id: "save_new_version" })} - style={{ margin: "8 5", zIndex: 999 }} - labelStyle={{ fontSize: "0.7em" }} + style={{ margin: "8 5", zIndex: 999, fontSize: "0.7em" }} onClick={this.handleSave.bind(this)} - /> + > + + {formatMessage({ id: "save_new_version" })} + )}
{formatMessage({ id: "parentStopPlace" })}
this.setState({ tagsOpen: true })} - style={{ marginTop: -8 }} - label={formatMessage({ id: "tags" })} disabled={!stopPlace.id} - /> + > + {formatMessage({ id: "tags" })} + {!stopPlace.location && (
@@ -206,16 +207,17 @@ class ParentStopDetails extends Component {
@@ -225,8 +227,11 @@ class ParentStopDetails extends Component {
+ : null}
- - +
{ - this.props.findTagByName(name.toLowerCase()).then((response) => { - this.setState({ - dataSource: response.data.tags, + this.props + .findTagByName(name.toString().toLowerCase()) + .then((response) => { + this.setState({ + dataSource: response.data.tags, + }); }); - }); }, 500); } - handleSelectedTag({ text, comment }) { - const tagInCamelCase = toCamelCase(text); - this.props.handleChooseTag(tagInCamelCase, comment); + handleSelectedTag(event, text) { + var tagTextName, tagComment; + if (text == null) { + tagTextName = ""; + tagComment = ""; + } else { + tagTextName = text.text; + tagComment = text.comment; + } + const tagInCamelCase = toCamelCase(tagTextName); + this.props.handleChooseTag(tagInCamelCase, tagComment); this.setState({ - chosen: text, + chosen: tagTextName, }); } @@ -48,7 +59,7 @@ class AddTagAutoComplete extends Component { const value = event.target.value; const { dataSource } = this.state; const isFoundInDataSource = dataSource.find( - (item) => item.name.toLowerCase() === value.toLowerCase(), + (item) => item.name.toString().toLowerCase() === value.toLowerCase(), ); if (value) { @@ -64,28 +75,23 @@ class AddTagAutoComplete extends Component { getMenuItems(dataSource = [], searchText) { let menuItems = []; - if (!searchText) return menuItems; const isFoundInDataSource = dataSource.some( - (item) => item.name.toLowerCase() === searchText.toLowerCase(), + (item) => + item.name.toString().toLowerCase() === + searchText.toString().toLowerCase(), ); if (dataSource.length) { const suggestion = { text: "TAG_SUGGESTION", value: ( - Forslag:
- } - /> +
+
Forslag:
+
), }; - menuItems = menuItems.concat( suggestion, dataSource.map((tag, i) => { @@ -93,12 +99,12 @@ class AddTagAutoComplete extends Component { text: tag.name, comment: tag.comment, value: ( - + > + {tag.name} + ), }; }), @@ -107,30 +113,27 @@ class AddTagAutoComplete extends Component { if (!isFoundInDataSource) { menuItems.push({ - text: searchText.toLowerCase(), + text: searchText.toString().toLowerCase(), comment: "", value: ( - - - {toCamelCase(searchText)} - - - {this.props.intl.formatMessage({ id: "new_tag_hint" })} - - - } - /> + > +
+ {toCamelCase(searchText)} + + {this.props.intl.formatMessage({ id: "new_tag_hint" })} + +
+ ), }); } return menuItems; } - handleUpdate(searchText) { + handleUpdate(event, searchText) { this.props.handleInputChange(searchText); this.findTag(searchText); } @@ -143,17 +146,24 @@ class AddTagAutoComplete extends Component { return ( this.handleBlur(e)} - fullWidth={true} - filter={() => true} - onUpdateInput={this.handleUpdate.bind(this)} - /> + freeSolo + value={searchText} + options={menuItems} + getOptionLabel={(option) => + typeof option === "string" ? option : option.text + } + onChange={this.handleSelectedTag.bind(this)} + style={{ marginLeft: 10, width: 350 }} + //filterOptions={(x) => x.text} + onInputChange={this.handleUpdate.bind(this)} + renderInput={(params) => ( + + )} + > ); } } diff --git a/src/components/EditStopPage/AddTagDialog.js b/src/components/EditStopPage/AddTagDialog.js index 998a5621f..2770a8e8c 100644 --- a/src/components/EditStopPage/AddTagDialog.js +++ b/src/components/EditStopPage/AddTagDialog.js @@ -14,8 +14,8 @@ limitations under the Licence. */ import React, { Component } from "react"; import AddTagAutoComplete from "./AddTagAutoComplete"; -import TextField from "material-ui/TextField"; -import FlatButton from "material-ui/FlatButton"; +import TextField from "@mui/material/TextField"; +import FlatButton from "@mui/material/Button"; class AddTagDialog extends Component { constructor(props) { @@ -46,10 +46,6 @@ class AddTagDialog extends Component { searchText: tagName, }); } - - if (this.refs.comment) { - this.refs.comment.focus(); - } } handleAddTag() { @@ -57,7 +53,6 @@ class AddTagDialog extends Component { const { idReference, handleLoading, addTag, getTags } = this.props; handleLoading(true); - addTag(idReference, tagName, comment) .then((result) => { this.setState({ @@ -90,12 +85,13 @@ class AddTagDialog extends Component { display: "flex", flexDirection: "column", marginLeft: 5, - paddingBottom: 5, + marginBottom: 10, + paddingTop: 10, }} >
{ @@ -106,20 +102,24 @@ class AddTagDialog extends Component { />
this.setState({ comment: v || "" })} + onChange={(e) => this.setState({ comment: e.target.value || "" })} /> + > + {formatMessage({ id: "add" })} + ); } diff --git a/src/components/EditStopPage/BoardingPositionItem.tsx b/src/components/EditStopPage/BoardingPositionItem.tsx index 9e25567cd..2be711942 100644 --- a/src/components/EditStopPage/BoardingPositionItem.tsx +++ b/src/components/EditStopPage/BoardingPositionItem.tsx @@ -1,7 +1,7 @@ import React from "react"; -import TextField from "material-ui/TextField"; +import TextField from "@mui/material/TextField"; import { injectIntl } from "react-intl"; -import MdDelete from "material-ui/svg-icons/action/delete-forever"; +import MdDelete from "@mui/icons-material/DeleteForever"; import Code from "./Code"; import Item from "./Item"; import ItemHeader from "./ItemHeader"; @@ -65,8 +65,9 @@ const BoardingPositionItem = ({ className="boarding-position-item-expanded" > { ); return ( -
+
{quay.boardingPositions.map((bp, i) => ( - - + {buttonLabel} + + - -
- - {captionLabel} - +
+ + {captionLabel} + +
+ {columnOptions.map((option) => ( +
+ { + this.props.handleColumnCheck(option.id, checked); + }} + /> + } + label={formatMessage({ + id: `report.columnNames.${option.id}`, + })} + />
- {columnOptions.map((option) => ( -
+ ))} +
+ { - this.props.handleColumnCheck(option.id, checked); + checked={allIsChecked} + onChange={(e, checked) => { + this.props.handleCheckAll(checked); }} /> -
- ))} -
- { - this.props.handleCheckAll(checked); - }} - /> -
-
- + } + label={selectAllLabel} + /> +
+
); } diff --git a/src/components/EditStopPage/CreateKeyValuePair.js b/src/components/EditStopPage/CreateKeyValuePair.js index c81e7fdaa..fa61aafcf 100644 --- a/src/components/EditStopPage/CreateKeyValuePair.js +++ b/src/components/EditStopPage/CreateKeyValuePair.js @@ -13,8 +13,8 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import TextField from "material-ui/TextField"; -import FlatButton from "material-ui/FlatButton"; +import TextField from "@mui/material/TextField"; +import FlatButton from "@mui/material/Button"; import { injectIntl } from "react-intl"; class CreateKeyValuePair extends React.Component { @@ -29,16 +29,9 @@ class CreateKeyValuePair extends React.Component { errorMsg: "", }); - UNSAFE_componentWillReceiveProps(nextProps) { - if (this.props.isOpen !== nextProps.isOpen) { - this.setState(this.getInitialValues); - } - } - handleUpdate() { const { handleCreateValues, keyValues, intl } = this.props; const { key, values } = this.state; - let keyAlreadyExists = keyValues.some( (kv) => kv.key.toLowerCase() === key.toLowerCase(), ); @@ -71,29 +64,31 @@ class CreateKeyValuePair extends React.Component { {formatMessage({ id: "creating_new_key_values" })} { + onChange={(event) => { this.setState({ - key: v, + key: event.target.value, }); }} - value={key} - hintText={formatMessage({ id: "key" })} - floatingLabelText={formatMessage({ id: "key" })} + value={this.state.key} + placeholder={formatMessage({ id: "key" })} + label={formatMessage({ id: "key" })} floatingLabelFixed={true} fullWidth={true} /> { + onChange={(event) => { this.setState({ - values: v, + values: event.target.value, }); }} - hintText={formatMessage({ id: "values" })} - floatingLabelText={formatMessage({ id: "values" })} + placeholder={formatMessage({ id: "values" })} + label={formatMessage({ id: "values" })} floatingLabelFixed={true} - value={values} + value={this.state.values} fullWidth={true} multiLine={true} /> diff --git a/src/components/EditStopPage/EditKeyValuePair.js b/src/components/EditStopPage/EditKeyValuePair.js index b360294c0..a948b2175 100644 --- a/src/components/EditStopPage/EditKeyValuePair.js +++ b/src/components/EditStopPage/EditKeyValuePair.js @@ -13,8 +13,8 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import TextField from "material-ui/TextField"; -import FlatButton from "material-ui/FlatButton"; +import TextField from "@mui/material/TextField"; +import FlatButton from "@mui/material/Button"; import { injectIntl } from "react-intl"; class EditKeyValuePair extends React.Component { @@ -25,12 +25,6 @@ class EditKeyValuePair extends React.Component { }; } - UNSAFE_componentWillReceiveProps(nextProps) { - this.setState({ - values: this.getValuesByKey(nextProps.keyValues, nextProps.editingKey), - }); - } - handleUpdate() { const { handleUpdateValues, editingKey } = this.props; const { values } = this.state; @@ -60,10 +54,11 @@ class EditKeyValuePair extends React.Component { {`${formatMessage({ id: "editing_key" })} ${editingKey}`} { + onChange={(event) => { this.setState({ - values: v, + values: event.target.value, }); }} value={values} diff --git a/src/components/EditStopPage/EditQuayAdditional.js b/src/components/EditStopPage/EditQuayAdditional.js index 9bf78d00f..7c2069cf4 100644 --- a/src/components/EditStopPage/EditQuayAdditional.js +++ b/src/components/EditStopPage/EditQuayAdditional.js @@ -13,21 +13,33 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import { Tabs, Tab } from "material-ui/Tabs"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; import { connect } from "react-redux"; import FacilitiesQuayTab from "./FacilitiesQuayTab"; import AccessiblityQuayTab from "./AcessibilityQuayTab"; import { injectIntl } from "react-intl"; import BoardingPositionsTab from "./BoardingPositionsTab"; import { UserActions } from "../../actions"; +import AcessibilityStopTab from "./AcessibilityStopTab"; +import FacilitiesStopTab from "./FacilitiesStopTab"; class EditQuayAdditional extends React.Component { - handleTabOnChange = (value) => { - this.props.dispatch(UserActions.changeQuayAdditionalTypeTab(value)); + constructor(props) { + super(props); + this.state = { + activeTabIndex: 0, + }; + } + + handleTabOnChange = (event, value) => { + this.setState({ + activeTabIndex: value, + }); }; render() { - const { intl, quay, index, disabled, activeTabIndex } = this.props; + const { intl, quay, index, disabled } = this.props; const { formatMessage } = intl; const style = { @@ -42,6 +54,8 @@ class EditQuayAdditional extends React.Component { marginTop: -10, }; + const { activeTabIndex } = this.state; + return (
- - + > - - + > - - + > + {activeTabIndex === 0 && ( + + )} + {activeTabIndex === 1 && ( + + )} + {activeTabIndex === 2 && ( + + )}
); } diff --git a/src/components/EditStopPage/EditStopAdditional.js b/src/components/EditStopPage/EditStopAdditional.js index c36bc258e..1c5d8fb7d 100644 --- a/src/components/EditStopPage/EditStopAdditional.js +++ b/src/components/EditStopPage/EditStopAdditional.js @@ -13,7 +13,8 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import { Tabs, Tab } from "material-ui/Tabs"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; import FacilitiesStopTab from "./FacilitiesStopTab"; import AcessibilityStopTab from "./AcessibilityStopTab"; import { injectIntl } from "react-intl"; @@ -26,7 +27,7 @@ class EditStopAdditional extends React.Component { }; } - handleTabOnChange = (value) => { + handleTabOnChange = (event, value) => { this.setState({ activeTabIndex: value, }); @@ -59,17 +60,19 @@ class EditStopAdditional extends React.Component { style={tabStyle} label={formatMessage({ id: "accessibility" })} value={0} - > - - + > - - + > + {activeTabIndex === 0 && ( + + )} + {activeTabIndex === 1 && ( + + )} ); } diff --git a/src/components/EditStopPage/EditStopBoxTabs.js b/src/components/EditStopPage/EditStopBoxTabs.js index ef0528047..c21178541 100644 --- a/src/components/EditStopPage/EditStopBoxTabs.js +++ b/src/components/EditStopPage/EditStopBoxTabs.js @@ -18,7 +18,7 @@ import ParkingItem from "./ParkingItem"; import { connect } from "react-redux"; import { StopPlaceActions, UserActions } from "../../actions/"; import { CodeBadge } from "./Code"; -import MdSortByAlpha from "material-ui/svg-icons/av/sort-by-alpha"; +import MdSortByAlpha from "@mui/icons-material/SortByAlpha"; class EditStopBoxTabs extends React.Component { handleLocateOnMap(position, index, type) { diff --git a/src/components/EditStopPage/EditStopGeneral.js b/src/components/EditStopPage/EditStopGeneral.js index 263512b59..b2fc15e9e 100644 --- a/src/components/EditStopPage/EditStopGeneral.js +++ b/src/components/EditStopPage/EditStopGeneral.js @@ -14,22 +14,26 @@ limitations under the Licence. */ import { connect } from "react-redux"; import React from "react"; -import FlatButton from "material-ui/FlatButton"; +import FlatButton from "@mui/material/Button"; import { StopPlaceActions, UserActions } from "../../actions/"; import { injectIntl } from "react-intl"; import ConfirmDialog from "../Dialogs/ConfirmDialog"; import EditStopBoxTabs from "./EditStopBoxTabs"; -import { Tabs, Tab } from "material-ui/Tabs"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import TabContext from "@mui/lab/TabContext"; +import TabList from "@mui/lab/TabList"; +import TabPanel from "@mui/lab/TabPanel"; import StopPlaceDetails from "./StopPlaceDetails"; import mapToMutationVariables from "../../modelUtils/mapToQueryVariables"; import { mutatePathLink, mutateParking } from "../../graphql/Tiamat/mutations"; import * as types from "../../actions/Types"; import EditStopAdditional from "./EditStopAdditional"; -import MdUndo from "material-ui/svg-icons/content/undo"; -import MdSave from "material-ui/svg-icons/content/save"; -import MdBack from "material-ui/svg-icons/navigation/arrow-back"; -import MdLess from "material-ui/svg-icons/navigation/expand-less"; -import Divider from "material-ui/Divider"; +import MdUndo from "@mui/icons-material/Undo"; +import MdSave from "@mui/icons-material/Save"; +import MdBack from "@mui/icons-material/ArrowBack"; +import MdLess from "@mui/icons-material/ExpandLess"; +import Divider from "@mui/material/Divider"; import SaveDialog from "../Dialogs/SaveDialog"; import MergeStopDialog from "../Dialogs/MergeStopDialog"; import MergeQuaysDialog from "../Dialogs/MergeQuaysDialog"; @@ -75,6 +79,7 @@ class EditStopGeneral extends React.Component { errorMessage: "", requiredFieldsMissingOpen: false, isLoading: false, + tabValue: "1", }; } @@ -370,7 +375,8 @@ class EditStopGeneral extends React.Component { this.props.dispatch(StopPlaceActions.discardChangesForEditingStop()); } - handleSlideChange(value) { + handleSlideChange(event, value) { + this.setState({ tabValue: value }); this.props.dispatch(UserActions.changeElementTypeTab(value)); } @@ -581,13 +587,17 @@ class EditStopGeneral extends React.Component { } onClick={() => this.showLessStopPlace()} - /> + > + + ) : ( this.showMoreStopPlace()} - /> + > + {formatMessage({ id: "more" })} + )} @@ -616,6 +626,7 @@ class EditStopGeneral extends React.Component { activeStopPlace={stopPlace} itemTranslation={translations} intl={intl} + value={activeElementTab} /> + > + {formatMessage({ id: "terminate_stop_place" })} + )} } disabled={!stopHasBeenModified} label={formatMessage({ id: "undo_changes" })} - style={{ margin: "8 5", zIndex: 999, minWidth: "120px" }} + style={{ + margin: "8 5", + zIndex: 999, + minWidth: "120px", + fontSize: "0.7em", + color: disabled || !stopHasBeenModified ? "#999" : "#000", + }} labelStyle={{ fontSize: "0.7em" }} onClick={() => { this.setState({ confirmUndoOpen: true }); }} - /> + > + + {formatMessage({ id: "undo_changes" })} + } disabled={disabled || !stopHasBeenModified} label={formatMessage({ id: "save_new_version" })} - style={{ margin: "8 5", zIndex: 999 }} + style={{ + margin: "8 5", + zIndex: 999, + fontSize: "0.7em", + color: disabled || !stopHasBeenModified ? "#999" : "#000", + }} labelStyle={{ fontSize: "0.7em" }} onClick={this.handleSave.bind(this)} - /> + > + + {formatMessage({ id: "save_new_version" })} + ); diff --git a/src/components/EditStopPage/FacilitiesQuayTab.js b/src/components/EditStopPage/FacilitiesQuayTab.js index dcf687f15..396990617 100644 --- a/src/components/EditStopPage/FacilitiesQuayTab.js +++ b/src/components/EditStopPage/FacilitiesQuayTab.js @@ -14,17 +14,17 @@ limitations under the Licence. */ import React from "react"; import { connect } from "react-redux"; -import Checkbox from "material-ui/Checkbox"; +import Checkbox from "@mui/material/Checkbox"; import TicketMachine from "../../static/icons/facilities/TicketMachine"; import BusShelter from "../../static/icons/facilities/BusShelter"; -import Divider from "material-ui/Divider"; +import Divider from "@mui/material/Divider"; import ToolTipIcon from "./ToolTipIcon"; -import MdWc from "material-ui/svg-icons/notification/wc"; +import MdWc from "@mui/icons-material/Wc"; import WaitingRoom from "../../static/icons/facilities/WaitingRoom"; -import TextField from "material-ui/TextField"; -import MdMore from "material-ui/svg-icons/navigation/expand-more"; -import MdLess from "material-ui/svg-icons/navigation/expand-less"; -import FlatButton from "material-ui/FlatButton"; +import TextField from "@mui/material/TextField"; +import MdMore from "@mui/icons-material/ExpandMore"; +import MdLess from "@mui/icons-material/ExpandLess"; +import FlatButton from "@mui/material/Button"; import StairsIcon from "../../static/icons/accessibility/Stairs"; import EnclosedIcon from "../../static/icons/facilities/Enclosed"; import Heated from "../../static/icons/facilities/Heated"; @@ -32,6 +32,7 @@ import equipmentHelpers from "../../modelUtils/equipmentHelpers"; import { EquipmentActions } from "../../actions/"; import { getIn } from "../../utils/"; import Sign512 from "../../static/icons/TransportSign"; +import { FormControlLabel } from "@mui/material"; class FacilitiesQuayTab extends React.Component { constructor(props) { @@ -61,6 +62,9 @@ class FacilitiesQuayTab extends React.Component { } handleValueForTicketMachineChange(numberOfMachines) { + if (numberOfMachines < 0) { + numberOfMachines = 0; + } this.handleTicketMachineChange({ numberOfMachines, ticketOffice: numberOfMachines > 0, @@ -78,6 +82,9 @@ class FacilitiesQuayTab extends React.Component { } handleValueForBusShelterChange(newValue) { + if (newValue.seats < 0) { + newValue.seats = 0; + } const { quay } = this.props; const oldValuesSet = { seats: getIn(quay, ["placeEquipments", "shelterEquipment", "seats"], 0), @@ -111,6 +118,9 @@ class FacilitiesQuayTab extends React.Component { } handleValueForWaitingRoomChange(newValue) { + if (newValue.seats < 0) { + newValue.seats = 0; + } const { quay } = this.props; const oldValuesSet = { seats: getIn( @@ -192,35 +202,32 @@ class FacilitiesQuayTab extends React.Component {
- - } - disabled={disabled} - uncheckedIcon={ - } + disabled={disabled} + icon={ + + } + onChange={(e, v) => { + this.handle512Sign(v); }} /> } label={ - sign512 - ? formatMessage({ id: "transport_sign" }) - : formatMessage({ id: "transport_sign_no" }) +
+ {sign512 + ? formatMessage({ id: "transport_sign" }) + : formatMessage({ id: "transport_sign_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handle512Sign(v); - }} />
- } - uncheckedIcon={ - + } + icon={ + + } + labelStyle={{ fontSize: "0.8em" }} + onChange={(e, v) => { + this.handleTicketMachineChange(v); + }} + /> } label={ - ticketMachine - ? formatMessage({ id: "ticketMachine" }) - : formatMessage({ id: "ticketMachine_no" }) +
+ {ticketMachine + ? formatMessage({ id: "ticketMachine" }) + : formatMessage({ id: "ticketMachine_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleTicketMachineChange(v); - }} /> { - this.handleValueForTicketMachineChange(value); + onChange={(event) => { + this.handleValueForTicketMachineChange(event.target.value); }} />
@@ -273,37 +285,43 @@ class FacilitiesQuayTab extends React.Component { {expandedIndex === 0 ? ( } onClick={() => this.handleCollapseIndex(0)} - /> + > + + ) : ( } onClick={() => this.handleExpandIndex(0)} - /> + > + + )}
- } - uncheckedIcon={ - + } + icon={ + + } + onChange={(e, v) => { + this.handleBusShelterChange(v); + }} + /> } label={ - busShelter - ? formatMessage({ id: "busShelter" }) - : formatMessage({ id: "busShelter_no" }) +
+ {busShelter + ? formatMessage({ id: "busShelter" }) + : formatMessage({ id: "busShelter_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleBusShelterChange(v); - }} /> { - this.handleValueForBusShelterChange({ seats: value }); + onChange={(event) => { + this.handleValueForBusShelterChange({ + seats: event.target.value, + }); }} min="0" fullWidth={true} - floatingLabelText={formatMessage({ id: "number_of_seats" })} />
- } - style={{ width: "auto" }} - label={ - shelterStepFree - ? formatMessage({ id: "step_free_access" }) - : formatMessage({ id: "step_free_access_no" }) + } + style={{ width: "auto" }} + icon={ + + } + labelStyle={{ fontSize: "0.8em" }} + onChange={(e, v) => { + this.handleValueForBusShelterChange({ stepFree: v }); + }} + /> } - uncheckedIcon={ - + label={ +
+ {shelterStepFree + ? formatMessage({ id: "step_free_access" }) + : formatMessage({ id: "step_free_access_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - onCheck={(e, v) => { - this.handleValueForBusShelterChange({ stepFree: v }); - }} /> - } - uncheckedIcon={ - } + icon={ + + } + style={{ width: "auto" }} + onChange={(e, v) => { + this.handleValueForBusShelterChange({ enclosed: v }); + }} /> } label={ - shelterEnclosed - ? formatMessage({ id: "enclosed" }) - : formatMessage({ id: "enclosed_no" }) +
+ {shelterEnclosed + ? formatMessage({ id: "enclosed" }) + : formatMessage({ id: "enclosed_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "auto" }} - onCheck={(e, v) => { - this.handleValueForBusShelterChange({ enclosed: v }); - }} />
@@ -374,37 +407,42 @@ class FacilitiesQuayTab extends React.Component { {expandedIndex === 1 ? ( } onClick={() => this.handleCollapseIndex(1)} - /> + > + + ) : ( } onClick={() => this.handleExpandIndex(1)} - /> + > + + )}
- } - uncheckedIcon={ - + } + icon={} + labelStyle={{ fontSize: "0.8em" }} + onChange={(e, v) => { + this.handleWCChange(v); + }} + /> } label={ - WC - ? formatMessage({ id: "wc" }) - : formatMessage({ id: "wc_no" }) +
+ {WC + ? formatMessage({ id: "wc" }) + : formatMessage({ id: "wc_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleWCChange(v); - }} />
@@ -412,22 +450,26 @@ class FacilitiesQuayTab extends React.Component {
- } - uncheckedIcon={ - + } + icon={ + + } + onChange={(e, v) => { + this.handleWaitingRoomChange(v); + }} + /> } label={ - waitingRoom - ? formatMessage({ id: "waiting_room" }) - : formatMessage({ id: "waiting_room_no" }) +
+ {waitingRoom + ? formatMessage({ id: "waiting_room" }) + : formatMessage({ id: "waiting_room_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleWaitingRoomChange(v); - }} /> { - this.handleValueForWaitingRoomChange({ seats: value }); + onChange={(event) => { + this.handleValueForWaitingRoomChange({ + seats: event.target.value, + }); }} min="0" fullWidth={true} @@ -455,39 +500,51 @@ class FacilitiesQuayTab extends React.Component { justifyContent: "space-around", }} > - } - style={{ width: "auto" }} - label={ - waitingRoomStepFree - ? formatMessage({ id: "step_free_access" }) - : formatMessage({ id: "step_free_access_no" }) + } + style={{ width: "auto" }} + icon={ + + } + onChange={(e, v) => { + this.handleValueForWaitingRoomChange({ stepFree: v }); + }} + /> } - uncheckedIcon={ - + label={ +
+ {waitingRoomStepFree + ? formatMessage({ id: "step_free_access" }) + : formatMessage({ id: "step_free_access_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - onCheck={(e, v) => { - this.handleValueForWaitingRoomChange({ stepFree: v }); - }} /> - } - uncheckedIcon={ - + } + icon={ + + } + style={{ width: "auto" }} + onChange={(e, v) => { + this.handleValueForWaitingRoomChange({ heated: v }); + }} + /> } label={ - waitingRoomHeated - ? formatMessage({ id: "heating" }) - : formatMessage({ id: "heating_no" }) +
+ {waitingRoomHeated + ? formatMessage({ id: "heating" }) + : formatMessage({ id: "heating_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "auto" }} - onCheck={(e, v) => { - this.handleValueForWaitingRoomChange({ heated: v }); - }} />
@@ -497,15 +554,17 @@ class FacilitiesQuayTab extends React.Component { {expandedIndex === 3 ? ( } onClick={() => this.handleCollapseIndex(3)} - /> + > + + ) : ( } onClick={() => this.handleExpandIndex(3)} - /> + > + + )}
diff --git a/src/components/EditStopPage/FacilitiesStopTab.js b/src/components/EditStopPage/FacilitiesStopTab.js index fbd1f9a53..da788e0ce 100644 --- a/src/components/EditStopPage/FacilitiesStopTab.js +++ b/src/components/EditStopPage/FacilitiesStopTab.js @@ -14,17 +14,17 @@ limitations under the Licence. */ import React from "react"; import { connect } from "react-redux"; -import Checkbox from "material-ui/Checkbox"; +import Checkbox from "@mui/material/Checkbox"; import TicketMachine from "../../static/icons/facilities/TicketMachine"; import BusShelter from "../../static/icons/facilities/BusShelter"; -import Divider from "material-ui/Divider"; -import MdWc from "material-ui/svg-icons/notification/wc"; +import Divider from "@mui/material/Divider"; +import MdWc from "@mui/icons-material/Wc"; import WaitingRoom from "../../static/icons/facilities/WaitingRoom"; import ToolTipIcon from "./ToolTipIcon"; -import TextField from "material-ui/TextField"; -import MdMore from "material-ui/svg-icons/navigation/expand-more"; -import MdLess from "material-ui/svg-icons/navigation/expand-less"; -import FlatButton from "material-ui/FlatButton"; +import TextField from "@mui/material/TextField"; +import MdMore from "@mui/icons-material/ExpandMore"; +import MdLess from "@mui/icons-material/ExpandLess"; +import FlatButton from "@mui/material/Button"; import StairsIcon from "../../static/icons/accessibility/Stairs"; import EnclosedIcon from "../../static/icons/facilities/Enclosed"; import Heated from "../../static/icons/facilities/Heated"; @@ -32,6 +32,9 @@ import { getIn } from "../../utils/"; import equiptmentHelpers from "../../modelUtils/equipmentHelpers"; import { EquipmentActions } from "../../actions/"; import Sign512 from "../../static/icons/TransportSign"; +import TransportSign from "../../static/icons/TransportSign"; +import { FormControlLabel } from "@mui/material"; +import IconButton from "@mui/material/IconButton"; class FacilitiesStopTab extends React.Component { constructor(props) { @@ -66,6 +69,9 @@ class FacilitiesStopTab extends React.Component { } handleValueForTicketMachineChange(numberOfMachines) { + if (numberOfMachines < 0) { + numberOfMachines = 0; + } this.handleTicketMachineChange({ numberOfMachines, ticketMachines: numberOfMachines > 0, @@ -86,6 +92,9 @@ class FacilitiesStopTab extends React.Component { handleValueForBusShelterChange(newValue) { const { stopPlace } = this.props; + if (newValue < 0) { + newValue = 0; + } const oldValuesSet = { seats: getIn( stopPlace, @@ -145,6 +154,9 @@ class FacilitiesStopTab extends React.Component { handleValueForWaitingRoomChange(newValue) { const { stopPlace } = this.props; + if (newValue < 0) { + newValue = 0; + } const oldValuesSet = { seats: getIn( stopPlace, @@ -219,34 +231,32 @@ class FacilitiesStopTab extends React.Component {
- - } - uncheckedIcon={ - } + icon={ + + } + style={{ width: "auto" }} + onChange={(e, v) => { + this.handle512Sign(v); }} /> } label={ - sign512 - ? formatMessage({ id: "transport_sign" }) - : formatMessage({ id: "transport_sign_no" }) +
+ {sign512 + ? formatMessage({ id: "transport_sign" }) + : formatMessage({ id: "transport_sign_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handle512Sign(v); - }} />
@@ -254,22 +264,28 @@ class FacilitiesStopTab extends React.Component {
- } - uncheckedIcon={ - + } + icon={ + + } + onChange={(e, v) => { + this.handleTicketMachineChange(v); + }} + /> } label={ - ticketMachine - ? formatMessage({ id: "ticketMachine" }) - : formatMessage({ id: "ticketMachine_no" }) +
+ {ticketMachine + ? formatMessage({ id: "ticketMachine" }) + : formatMessage({ id: "ticketMachine_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleTicketMachineChange(v); - }} /> { - this.handleValueForTicketMachineChange(value); + onChange={(event) => { + this.handleValueForTicketMachineChange(event.target.value); }} - min="0" fullWidth={true} - floatingLabelText={formatMessage({ - id: "number_of_ticket_machines", - })} />
) : null}
{expandedIndex === 0 ? ( - } onClick={() => this.handleCollapseIndex(0)} - /> + > + + ) : ( - } onClick={() => this.handleExpandIndex(0)} - /> + > + + )}
- } - uncheckedIcon={ - + } + icon={ + + } + onChange={(e, v) => { + this.handleBusShelterChange(v); + }} + /> } label={ - busShelter - ? formatMessage({ id: "busShelter" }) - : formatMessage({ id: "busShelter_no" }) +
+ {busShelter + ? formatMessage({ id: "busShelter" }) + : formatMessage({ id: "busShelter_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleBusShelterChange(v); - }} /> { - this.handleValueForBusShelterChange({ seats: value }); + onChange={(event) => { + this.handleValueForBusShelterChange({ + seats: event.target.value, + }); }} min="0" fullWidth={true} @@ -354,41 +377,65 @@ class FacilitiesStopTab extends React.Component { justifyContent: "space-around", }} > - { - this.handleValueForBusShelterChange({ stepFree: v }); - }} - checkedIcon={} - style={{ width: "auto" }} - label={ - shelterStepFree - ? formatMessage({ id: "step_free_access" }) - : formatMessage({ id: "step_free_access_no" }) + { + this.handleValueForBusShelterChange({ stepFree: v }); + }} + checkedIcon={} + style={{ width: "auto" }} + label={ + shelterStepFree + ? formatMessage({ id: "step_free_access" }) + : formatMessage({ id: "step_free_access_no" }) + } + icon={ + + } + labelStyle={{ fontSize: "0.8em" }} + /> } - uncheckedIcon={ - + label={ +
+ {shelterStepFree + ? formatMessage({ id: "step_free_access" }) + : formatMessage({ id: "step_free_access_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} /> - } - uncheckedIcon={ - } + icon={ + + } + label={ + shelterEnclosed + ? formatMessage({ id: "enclosed" }) + : formatMessage({ id: "enclosed_no" }) + } + labelStyle={{ fontSize: "0.8em" }} + style={{ width: "auto" }} + onChange={(e, v) => { + this.handleValueForBusShelterChange({ enclosed: v }); + }} /> } label={ - shelterEnclosed - ? formatMessage({ id: "enclosed" }) - : formatMessage({ id: "enclosed_no" }) +
+ {shelterEnclosed + ? formatMessage({ id: "enclosed" }) + : formatMessage({ id: "enclosed_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "auto" }} - onCheck={(e, v) => { - this.handleValueForBusShelterChange({ enclosed: v }); - }} />
@@ -396,39 +443,43 @@ class FacilitiesStopTab extends React.Component { ) : null}
{expandedIndex === 1 ? ( - } onClick={() => this.handleCollapseIndex(1)} - /> + > + + ) : ( - } onClick={() => this.handleExpandIndex(1)} - /> + > + + )}
- } - uncheckedIcon={ - + } + icon={} + onChange={(e, v) => { + this.handleWCChange(v); + }} + /> } label={ - WC - ? formatMessage({ id: "wc" }) - : formatMessage({ id: "wc_no" }) +
+ {WC + ? formatMessage({ id: "wc" }) + : formatMessage({ id: "wc_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleWCChange(v); - }} />
@@ -436,22 +487,26 @@ class FacilitiesStopTab extends React.Component {
- } - uncheckedIcon={ - + } + icon={ + + } + onChange={(e, v) => { + this.handleWaitingRoomChange(v); + }} + /> } label={ - waitingRoom - ? formatMessage({ id: "waiting_room" }) - : formatMessage({ id: "waiting_room_no" }) +
+ {waitingRoom + ? formatMessage({ id: "waiting_room" }) + : formatMessage({ id: "waiting_room_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "80%" }} - onCheck={(e, v) => { - this.handleWaitingRoomChange(v); - }} /> { - this.handleValueForWaitingRoomChange({ seats: value }); + this.handleValueForWaitingRoomChange({ + seats: event.target.value, + }); }} min="0" fullWidth={true} - floatingLabelText={formatMessage({ id: "number_of_seats" })} + InputLabelProps={{ shrink: true }} />
- } - style={{ width: "auto" }} - label={ - waitingRoomStepFree - ? formatMessage({ id: "step_free_access" }) - : formatMessage({ id: "step_free_access_no" }) + } + style={{ width: "auto" }} + label={ + waitingRoomStepFree + ? formatMessage({ id: "step_free_access" }) + : formatMessage({ id: "step_free_access_no" }) + } + icon={ + + } + labelStyle={{ fontSize: "0.8em" }} + onChange={(e, v) => { + this.handleValueForWaitingRoomChange({ stepFree: v }); + }} + /> } - uncheckedIcon={ - + label={ +
+ {waitingRoomStepFree + ? formatMessage({ id: "step_free_access" }) + : formatMessage({ id: "step_free_access_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - onCheck={(e, v) => { - this.handleValueForWaitingRoomChange({ stepFree: v }); - }} /> - } - uncheckedIcon={ - + } + icon={ + + } + label={ + waitingRoomHeated + ? formatMessage({ id: "heating" }) + : formatMessage({ id: "heating_no" }) + } + labelStyle={{ fontSize: "0.8em" }} + style={{ width: "auto" }} + onChange={(e, v) => { + this.handleValueForWaitingRoomChange({ heated: v }); + }} + /> } label={ - waitingRoomHeated - ? formatMessage({ id: "heating" }) - : formatMessage({ id: "heating_no" }) +
+ {waitingRoomHeated + ? formatMessage({ id: "heating" }) + : formatMessage({ id: "heating_no" })} +
} - labelStyle={{ fontSize: "0.8em" }} - style={{ width: "auto" }} - onCheck={(e, v) => { - this.handleValueForWaitingRoomChange({ heated: v }); - }} />
@@ -519,17 +602,19 @@ class FacilitiesStopTab extends React.Component { ) : null}
{expandedIndex === 3 ? ( - } onClick={() => this.handleCollapseIndex(3)} - /> + > + + ) : ( - } onClick={() => this.handleExpandIndex(3)} - /> + > + + )}
diff --git a/src/components/EditStopPage/ImportedId.js b/src/components/EditStopPage/ImportedId.js index ff523ed62..e94be276c 100644 --- a/src/components/EditStopPage/ImportedId.js +++ b/src/components/EditStopPage/ImportedId.js @@ -16,7 +16,7 @@ import React from "react"; const ImportedId = ({ text, id = [] }) => { return ( -
+
{text}
{id.join(", ")}
diff --git a/src/components/EditStopPage/InformationBanner.js b/src/components/EditStopPage/InformationBanner.js index 33061c8ec..5977f833e 100644 --- a/src/components/EditStopPage/InformationBanner.js +++ b/src/components/EditStopPage/InformationBanner.js @@ -14,8 +14,8 @@ limitations under the Licence. */ import React from "react"; import PropTypes from "prop-types"; -import FlatButton from "material-ui/FlatButton"; -import InformationIcon from "material-ui/svg-icons/action/info"; +import FlatButton from "@mui/material/Button"; +import InformationIcon from "@mui/icons-material/Info"; class InformationBanner extends React.Component { constructor(props) { diff --git a/src/components/EditStopPage/Item.js b/src/components/EditStopPage/Item.js index 3ed810f4c..d550330c8 100644 --- a/src/components/EditStopPage/Item.js +++ b/src/components/EditStopPage/Item.js @@ -1,7 +1,7 @@ import React from "react"; import { injectIntl } from "react-intl"; import CoordinatesDialog from "../Dialogs/CoordinatesDialog"; -import Divider from "material-ui/Divider"; +import Divider from "@mui/material/Divider"; class Item extends React.Component { constructor(props) { diff --git a/src/components/EditStopPage/ItemHeader.js b/src/components/EditStopPage/ItemHeader.js index 5dce542d5..a07619f95 100644 --- a/src/components/EditStopPage/ItemHeader.js +++ b/src/components/EditStopPage/ItemHeader.js @@ -1,13 +1,14 @@ import React from "react"; -import NavigationExpandMore from "material-ui/svg-icons/navigation/expand-more"; -import NavigationExpandLess from "material-ui/svg-icons/navigation/expand-less"; -import MapsMyLocation from "material-ui/svg-icons/maps/my-location"; -import MdError from "material-ui/svg-icons/alert/error"; +import NavigationExpandMore from "@mui/icons-material/ExpandMore"; +import NavigationExpandLess from "@mui/icons-material/ExpandLess"; +import MapsMyLocation from "@mui/icons-material/MyLocation"; +import MdError from "@mui/icons-material/Error"; const locationStyle = { marginRight: 5, height: 16, width: 16, + fill: "#000", }; export default ({ diff --git a/src/components/EditStopPage/MakeExpandable.js b/src/components/EditStopPage/MakeExpandable.js index 25483ff84..c0cc064b5 100644 --- a/src/components/EditStopPage/MakeExpandable.js +++ b/src/components/EditStopPage/MakeExpandable.js @@ -13,9 +13,9 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import MdExpand from "material-ui/svg-icons/navigation/expand-more"; -import MdCollapse from "material-ui/svg-icons/navigation/expand-less"; -import IconButton from "material-ui/IconButton"; +import MdExpand from "@mui/icons-material/ExpandMore"; +import MdCollapse from "@mui/icons-material/ExpandLess"; +import IconButton from "@mui/material/IconButton"; class MakeExpandable extends React.PureComponent { constructor(props) { diff --git a/src/components/EditStopPage/MergeQuaysDetails.js b/src/components/EditStopPage/MergeQuaysDetails.js index c10b10017..955455d26 100644 --- a/src/components/EditStopPage/MergeQuaysDetails.js +++ b/src/components/EditStopPage/MergeQuaysDetails.js @@ -36,7 +36,7 @@ class MergeQuaysDetails extends React.Component { isSource={true} quay={merginQuays.fromQuay} /> - => +
); diff --git a/src/components/EditStopPage/ModalitiesMenuItems.js b/src/components/EditStopPage/ModalitiesMenuItems.js index 63272825c..1f6ada90f 100644 --- a/src/components/EditStopPage/ModalitiesMenuItems.js +++ b/src/components/EditStopPage/ModalitiesMenuItems.js @@ -13,14 +13,14 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import MenuItem from "material-ui/MenuItem"; +import MenuItem from "@mui/material/MenuItem"; import ModalityIconSvg from "../MainPage/ModalityIconSvg"; -import ArrowDropRight from "material-ui/svg-icons/navigation-arrow-drop-right"; +import ArrowDropRight from "@mui/icons-material/ArrowRight"; import { getStopPlacesForSubmodes, getInverseSubmodesWhitelist, } from "../../roles/rolesParser"; -import Menu from "material-ui/Menu"; +import MoreMenuItem from "../MainPage/MoreMenuItem"; class ModalitiesMenuItems extends React.Component { render() { @@ -40,10 +40,11 @@ class ModalitiesMenuItems extends React.Component { const illegalSubmodes = getInverseSubmodesWhitelist(legalSubmodes); // stopPlacesTypes that submodes are depending on to be legal in order to render const adHocStopPlaceTypes = getStopPlacesForSubmodes(legalSubmodes); - const chosenStyle = { fontWeight: 600 }; + const chosenStyle = { fontWeight: "bold" }; + const unchosenStyle = {}; return ( - +
{Object.keys(stopTypes).map((type, index) => { let isLegal = adHocStopPlaceTypes.indexOf(type) > -1 || @@ -83,28 +84,26 @@ class ModalitiesMenuItems extends React.Component { } return ( - + } + label={ {formatMessage({ id: `stopTypes.${type}.name` })} } + key={"stopType" + index} + className={isLegal ? "" : "menu-item--not-legal"} + value={type} + style={{ padding: "0px 10px" }} onClick={() => { !submodes && handleStopTypeChange(type); }} - insetChildren={true} - rightIcon={submodes && } - leftIcon={ - - } - menuItems={ - submodes && + > + {submodes && submodes.map(({ submode, formatted }) => { // make all submodes legal if stopPlace is legal let isLegal = @@ -132,30 +131,38 @@ class ModalitiesMenuItems extends React.Component { value={submode} className={isLegal ? "" : "menu-item--not-legal"} style={{ padding: "0px 10px" }} - primaryText={ - - {formatted} - - } onClick={() => { handleSubModeTypeChange(type, transportMode, submode); }} - leftIcon={ - - } - insetChildren={true} - /> + > + + + {submode && + formatMessage({ + id: `stopTypes.${type}.submodes.${submode}`, + })} + {!submode && + formatMessage({ + id: `stopTypes.${type}.submodes.unspecified`, + })} + + ); - }) - } - /> + })} + ); })} -
+
); } } diff --git a/src/components/EditStopPage/ModalityFilter.js b/src/components/EditStopPage/ModalityFilter.js index f2442f3f5..eb4cdff6b 100644 --- a/src/components/EditStopPage/ModalityFilter.js +++ b/src/components/EditStopPage/ModalityFilter.js @@ -15,7 +15,7 @@ limitations under the Licence. */ import React from "react"; import ModalityIconSvg from "../MainPage/ModalityIconSvg"; import stopTypes from "../../models/stopTypes"; -import Checkbox from "material-ui/Checkbox"; +import Checkbox from "@mui/material/Checkbox"; class ModalityFilter extends React.Component { handleOnCheck(checked, value) { @@ -63,21 +63,22 @@ class ModalityFilter extends React.Component { checkedIcon={ } - uncheckedIcon={ + icon={ } style={{ width: "auto" }} checked={checked} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleOnCheck(v, item); }} /> diff --git a/src/components/EditStopPage/NewStopPlaceInfo.js b/src/components/EditStopPage/NewStopPlaceInfo.js index 6aaea6fa3..5662eb156 100644 --- a/src/components/EditStopPage/NewStopPlaceInfo.js +++ b/src/components/EditStopPage/NewStopPlaceInfo.js @@ -14,8 +14,8 @@ limitations under the Licence. */ import React from "react"; import { injectIntl } from "react-intl"; -import InformationIcon from "material-ui/svg-icons/action/info"; -import FlatButton from "material-ui/FlatButton"; +import InformationIcon from "@mui/icons-material/Info"; +import FlatButton from "@mui/material/Button"; import { getPrimaryDarkerColor } from "../../config/themeConfig"; import { connect } from "react-redux"; import { UserActions } from "../../actions/"; diff --git a/src/components/EditStopPage/ParkingItem.js b/src/components/EditStopPage/ParkingItem.js index 070a36cbe..e5ffbfae2 100644 --- a/src/components/EditStopPage/ParkingItem.js +++ b/src/components/EditStopPage/ParkingItem.js @@ -16,15 +16,15 @@ import React from "react"; import PropTypes from "prop-types"; import { connect } from "react-redux"; import { StopPlaceActions, UserActions } from "../../actions/"; -import Warning from "material-ui/svg-icons/alert/warning"; -import MdDeleteForver from "material-ui/svg-icons/action/delete-forever"; +import Warning from "@mui/icons-material/Warning"; +import MdDeleteForver from "@mui/icons-material/DeleteForever"; import ToolTippable from "./ToolTippable"; import { injectIntl } from "react-intl"; import ConfirmDialog from "../Dialogs/ConfirmDialog"; import { deleteParking } from "../../actions/TiamatActions"; import * as types from "../../actions/Types"; -import { FlatButton } from "material-ui"; -import TextField from "material-ui/TextField"; +import FlatButton from "@mui/material/Button"; +import TextField from "@mui/material/TextField"; import ParkingItemPayAndRideExpandedFields from "./ParkingItemPayAndRideExpandedFields"; import ItemHeader from "./ItemHeader"; import Item from "./Item"; @@ -44,6 +44,9 @@ class ParkingItem extends React.Component { }; handleSetTotalCapacity(value) { + if (value < 0) { + value = 0; + } const { dispatch, index } = this.props; dispatch(StopPlaceActions.changeParkingTotalCapacity(index, value)); } @@ -69,11 +72,17 @@ class ParkingItem extends React.Component { } handleSetNumberOfSpaces(value) { + if (value < 0) { + value = 0; + } const { dispatch, index } = this.props; dispatch(StopPlaceActions.changeParkingNumberOfSpaces(index, value)); } handleSetNumberOfSpacesWithRechargePoint(value) { + if (value < 0) { + value = 0; + } const { dispatch, index } = this.props; dispatch( StopPlaceActions.changeParkingNumberOfSpacesWithRechargePoint( @@ -84,6 +93,9 @@ class ParkingItem extends React.Component { } handleSetNumberOfSpacesForRegisteredDisabledUserType(value) { + if (value < 0) { + value = 0; + } const { dispatch, index } = this.props; dispatch( StopPlaceActions.changeParkingNumberOfSpacesForRegisteredDisabledUserType( @@ -216,14 +228,14 @@ class ParkingItem extends React.Component { {expanded && (
{ this.handleSetName(v); }} + variant="standard" value={this.props.parking.name} - style={{ width: "95%", marginTop: -10 }} + style={{ width: "95%", marginTop: 15, marginLeft: 5 }} /> {parkingType === PARKING_TYPE.PARK_AND_RIDE ? ( @@ -260,15 +272,16 @@ class ParkingItem extends React.Component { /> ) : ( { - this.handleSetTotalCapacity(v); + onChange={(event) => { + this.handleSetTotalCapacity(event.target.value); }} value={parking.totalCapacity} type="number" - style={{ width: "95%", marginTop: -10 }} + style={{ width: "95%", marginTop: 15, marginLeft: 5 }} /> )} diff --git a/src/components/EditStopPage/ParkingItemPayAndRideExpandedFields.js b/src/components/EditStopPage/ParkingItemPayAndRideExpandedFields.js index 1807b118a..390f4b3a3 100644 --- a/src/components/EditStopPage/ParkingItemPayAndRideExpandedFields.js +++ b/src/components/EditStopPage/ParkingItemPayAndRideExpandedFields.js @@ -23,11 +23,11 @@ import Checkbox from "@mui/material/Checkbox"; import { injectIntl } from "react-intl"; import { parkingPaymentProcesses } from "../../models/parkingPaymentProcess"; import { parkingLayouts } from "../../models/parkingLayout"; -import { TextField, Subheader } from "material-ui"; +import { TextField, ListSubheader } from "@mui/material"; import RechargingAvailablePopover from "./RechargingAvailablePopover"; -import LocalParking from "material-ui/svg-icons/maps/local-parking"; -import { ActionAccessible } from "material-ui/svg-icons"; -import Payment from "material-ui/svg-icons/action/payment"; +import LocalParking from "@mui/icons-material/LocalParking"; +import { Accessible } from "@mui/icons-material/"; +import Payment from "@mui/icons-material/Payment"; import Box from "@mui/material/Box"; import { Grid } from "@mui/material"; const PREFIX = "ParkingItemPayAndRideExpandedFields"; @@ -243,10 +243,10 @@ const ParkingItemPayAndRideExpandedFields = (props) => { - + {formatMessage({ id: "parking_parkAndRide_capacity_sub_header" })} ( {`${totalCapacity}`}) - + { floatingLabelText={formatMessage({ id: "parking_number_of_spaces", })} - onChange={(_e, value) => { - handleSetNumberOfSpaces(value); + onChange={(event) => { + handleSetNumberOfSpaces(event.target.value); }} value={numberOfSpaces || ""} type="number" fullWidth className={classes.textField} + style={{ marginTop: 10 }} /> { flexDirection="row" className={classes.boxFullWidth} > - + { - handleSetNumberOfSpacesForRegisteredDisabledUserType(value); + onChange={(event) => { + handleSetNumberOfSpacesForRegisteredDisabledUserType( + event.target.value, + ); }} value={numberOfSpacesForRegisteredDisabledUserType || ""} type="number" @@ -294,9 +294,9 @@ const ParkingItemPayAndRideExpandedFields = (props) => { - + {formatMessage({ id: "parking_recharging_sub_header" })} - + {formatMessage({ id: "parking_recharging_available_info" })} @@ -325,13 +325,14 @@ const ParkingItemPayAndRideExpandedFields = (props) => { floatingLabelText={formatMessage({ id: "parking_number_of_spaces_with_recharge_point", })} - onChange={(_e, value) => { - handleSetNumberOfSpacesWithRechargePoint(value); + onChange={(event) => { + handleSetNumberOfSpacesWithRechargePoint(event.target.value); }} value={numberOfSpacesWithRechargePoint || ""} type="number" fullWidth className={classes.textField} + style={{ marginTop: 15 }} /> diff --git a/src/components/EditStopPage/QuayItem.js b/src/components/EditStopPage/QuayItem.js index 7a9f05732..63a41dde0 100644 --- a/src/components/EditStopPage/QuayItem.js +++ b/src/components/EditStopPage/QuayItem.js @@ -14,7 +14,7 @@ limitations under the Licence. */ import React from "react"; import PropTypes from "prop-types"; -import TextField from "material-ui/TextField"; +import TextField from "@mui/material/TextField"; import { StopPlaceActions, AssessmentActions, @@ -22,15 +22,15 @@ import { UserActions, } from "../../actions/"; import { connect } from "react-redux"; -import Checkbox from "material-ui/Checkbox"; -import IconButton from "material-ui/IconButton"; +import Checkbox from "@mui/material/Checkbox"; +import IconButton from "@mui/material/IconButton"; import TicketMachine from "../../static/icons/facilities/TicketMachine"; import BusShelter from "../../static/icons/facilities/BusShelter"; import { injectIntl } from "react-intl"; -import FlatButton from "material-ui/FlatButton"; +import FlatButton from "@mui/material/Button"; import ImportedId from "./ImportedId"; -import MdLess from "material-ui/svg-icons/navigation/expand-less"; +import MdLess from "@mui/icons-material/ExpandLess"; import EditQuayAdditional from "./EditQuayAdditional"; import WheelChairPopover from "./WheelChairPopover"; import StepFreePopover from "./StepFreePopover"; @@ -39,8 +39,8 @@ import equipmentHelpers from "../../modelUtils/equipmentHelpers"; import Sign512 from "../../static/icons/TransportSign"; import ToolTippable from "./ToolTippable"; -import MdDelete from "material-ui/svg-icons/action/delete-forever"; -import MdKey from "material-ui/svg-icons/communication/vpn-key"; +import MdDelete from "@mui/icons-material/DeleteForever"; +import MdKey from "@mui/icons-material/VpnKey"; import { getPrimaryDarkerColor } from "../../config/themeConfig"; import Code from "./Code"; import ItemHeader from "./ItemHeader"; @@ -269,33 +269,36 @@ class QuayItem extends React.Component { id={quay.importedId} /> typeof e.target.value === "string" && this.handlePublicCodeChange(e) } /> typeof e.target.value === "string" && this.handlePrivateCodeChange(e) } /> typeof e.target.value === "string" && this.handleDescriptionChange(e) @@ -329,50 +332,41 @@ class QuayItem extends React.Component { } + checkedIcon={} disabled={disabled} - uncheckedIcon={ + icon={ } style={{ width: "auto" }} checked={ticketMachine} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleTicketMachineChange(v); }} /> } + checkedIcon={} disabled={disabled} - uncheckedIcon={ + icon={ } style={{ width: "auto" }} checked={busShelter} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleBusShelterChange(v); }} /> - } + checkedIcon={} disabled={disabled} - uncheckedIcon={ + icon={ { + onChange={(event, v) => { this.handleTransportSignChange(v); }} /> @@ -389,16 +383,17 @@ class QuayItem extends React.Component { ) : null}
{additionalExpanded ? ( - } - onClick={() => this.showMoreOptionsForQuay(false)} - /> + this.showMoreOptionsForQuay(false)}> + + ) : ( this.showMoreOptionsForQuay(true)} - /> + > + {formatMessage({ id: "more" })} + )} {additionalExpanded ? ( ( } key={`rechargingAvailable_${key}`} value={key} - primaryText={formatMessage({ - id: `parking_recharging_available_${key}`, - })} onClick={() => this.handleSelect(key)} - /> + > + + + + + {formatMessage({ + id: `parking_recharging_available_${key}`, + })} + + )); return (
{ if (!disabled && !hasExpired) this.handleOpenPopover(e); }} > - + +
{ if (!disabled) this.handleOpenPopover(e); }} > {displayLabel ? ( @@ -94,21 +98,23 @@ class StepFreePopover extends React.Component { onClick={() => { this.handleChange(option); }} - primaryText={formatMessage({ - id: `accessibilityAssessments.stepFreeAccess.${option.toLowerCase()}`, - })} - secondaryText={ + > + - } - /> + + + {formatMessage({ + id: `accessibilityAssessments.stepFreeAccess.${option.toLowerCase()}`, + })} + + ), )} diff --git a/src/components/EditStopPage/StopPlaceDetails.js b/src/components/EditStopPage/StopPlaceDetails.js index 24e940d51..b98105970 100644 --- a/src/components/EditStopPage/StopPlaceDetails.js +++ b/src/components/EditStopPage/StopPlaceDetails.js @@ -14,8 +14,8 @@ limitations under the Licence. */ import React from "react"; import ModalityIconSvg from "../MainPage/ModalityIconSvg"; -import IconButton from "material-ui/IconButton"; -import TextField from "material-ui/TextField"; +import IconButton from "@mui/material/IconButton"; +import TextField from "@mui/material/TextField"; import ImportedId from "./ImportedId"; import { StopPlaceActions, @@ -27,27 +27,27 @@ import { connect } from "react-redux"; import TicketMachine from "../../static/icons/facilities/TicketMachine"; import BusShelter from "../../static/icons/facilities/BusShelter"; import debounce from "lodash.debounce"; -import Checkbox from "material-ui/Checkbox"; +import Checkbox from "@mui/material/Checkbox"; import stopTypes from "../../models/stopTypes"; -import MdWC from "material-ui/svg-icons/notification/wc"; +import MdWC from "@mui/icons-material/Wc"; import WaitingRoom from "../../static/icons/facilities/WaitingRoom"; import WheelChairPopover from "./WheelChairPopover"; import { getIn } from "../../utils"; import equipmentHelpers from "../../modelUtils/equipmentHelpers"; -import MdLanguage from "material-ui/svg-icons/action/language"; +import MdLanguage from "@mui/icons-material/Language"; import { getPrimaryDarkerColor } from "../../config/themeConfig"; import AltNamesDialog from "../Dialogs/AltNamesDialog"; import TariffZonesDialog from "../Dialogs/TariffZonesDialog"; -import MdTransfer from "material-ui/svg-icons/maps/transfer-within-a-station"; +import MdTransfer from "@mui/icons-material/TransferWithinAStation"; import WeightingPopover from "./WeightingPopover"; import weightTypes, { weightColors } from "../../models/weightTypes"; import Sign512 from "../../static/icons/TransportSign"; -import MdWarning from "material-ui/svg-icons/alert/warning"; +import MdWarning from "@mui/icons-material/Warning"; import ToolTippable from "./ToolTippable"; -import MdKey from "material-ui/svg-icons/communication/vpn-key"; +import MdKey from "@mui/icons-material/VpnKey"; import KeyValuesDialog from "../Dialogs/KeyValuesDialog"; import ModalitiesMenuItems from "./ModalitiesMenuItems"; -import FlatButton from "material-ui/FlatButton"; +import FlatButton from "@mui/material/Button"; import TagsDialog from "./TagsDialog"; import TagTray from "../MainPage/TagTray"; import BelongsToGroup from "./../MainPage/BelongsToGroup"; @@ -60,6 +60,9 @@ import { import { Popover } from "@mui/material"; import { Link } from "react-router-dom"; import Routes from "../../routes"; +import { Signpost } from "@mui/icons-material"; +import TransportSign from "../../static/icons/TransportSign"; +import Menu from "@mui/material/Menu"; class StopPlaceDetails extends React.Component { constructor(props) { @@ -471,8 +474,7 @@ class StopPlaceDetails extends React.Component { style={{ display: "flex", alignItems: "center", flex: 2 }} > + > + {formatMessage({ id: "tags" })} +
)}
@@ -507,46 +510,52 @@ class StopPlaceDetails extends React.Component { text={formatMessage({ id: "local_reference" })} />
- - - - - - - { - this.handleOpenStopPlaceTypePopover(e); - }} - > - - - - + + + + + +
+
+ + { + this.handleOpenStopPlaceTypePopover(e); + }} + > + + + +
+ - +
@@ -568,21 +577,19 @@ class StopPlaceDetails extends React.Component { )}
@@ -591,9 +598,9 @@ class StopPlaceDetails extends React.Component { onClick={this.handleOpenTZDialog.bind(this)} style={{ borderBottom: "1px dotted", - marginTop: 13, + marginTop: -10, paddingBottom: 4, - marginLeft: 8, + marginLeft: 28, cursor: "pointer", }} > @@ -612,13 +619,15 @@ class StopPlaceDetails extends React.Component {
- +
@@ -627,17 +636,19 @@ class StopPlaceDetails extends React.Component { {isPublicCodePrivateCodeEnabled && (
- + { this.handleOpenWeightPopover(e); }} + style={{ paddingTop: 12 }} > - + +
+
+ } - uncheckedIcon={ + checkedIcon={} + icon={ } style={{ width: "auto" }} checked={ticketMachine} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleTicketMachineChange(v); }} /> } - uncheckedIcon={ + checkedIcon={} + icon={ } style={{ width: "auto" }} checked={busShelter} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleBusShelterChange(v); }} /> } - uncheckedIcon={ - - } + checkedIcon={} + icon={} style={{ width: "auto" }} checked={WC} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleWCChange(v); }} /> } - uncheckedIcon={ + checkedIcon={} + icon={ } style={{ width: "auto" }} checked={waitingRoom} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleWaitingRoomChange(v); }} /> - } - uncheckedIcon={ - } + checkedIcon={} style={{ width: "auto" }} checked={sign512} - onCheck={(e, v) => { + onChange={(e, v) => { this.handleChangeSign512(v); }} /> diff --git a/src/components/EditStopPage/TagItem.js b/src/components/EditStopPage/TagItem.js index 5a8d5c67b..d508eead0 100644 --- a/src/components/EditStopPage/TagItem.js +++ b/src/components/EditStopPage/TagItem.js @@ -15,8 +15,8 @@ limitations under the Licence. */ import React, { Component } from "react"; import Tag from "../MainPage/Tag"; import moment from "moment"; -import MdDelete from "material-ui/svg-icons/action/delete"; -import IconButton from "material-ui/IconButton"; +import MdDelete from "@mui/icons-material/Delete"; +import IconButton from "@mui/material/IconButton"; class TagItem extends Component { render() { diff --git a/src/components/EditStopPage/TagsDialog.js b/src/components/EditStopPage/TagsDialog.js index dcd339ee3..6d6385947 100644 --- a/src/components/EditStopPage/TagsDialog.js +++ b/src/components/EditStopPage/TagsDialog.js @@ -13,11 +13,11 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React, { Component } from "react"; -import MdClose from "material-ui/svg-icons/navigation/close"; -import IconButton from "material-ui/IconButton"; +import MdClose from "@mui/icons-material/Close"; +import IconButton from "@mui/material/IconButton"; import TagItem from "./TagItem"; import AddTagDialog from "./AddTagDialog"; -import RefreshIndicator from "material-ui/RefreshIndicator"; +import CircularProgress from "@mui/material/CircularProgress"; class TagsDialog extends Component { constructor(props) { @@ -93,7 +93,7 @@ class TagsDialog extends Component {
{formatMessage({ id: "tags" })}
{isLoading && ( - ( diff --git a/src/components/EditStopPage/VersionsPopover.js b/src/components/EditStopPage/VersionsPopover.js index 6a45bc8d2..e04d48367 100644 --- a/src/components/EditStopPage/VersionsPopover.js +++ b/src/components/EditStopPage/VersionsPopover.js @@ -14,10 +14,11 @@ limitations under the Licence. */ import React, { Component } from "react"; import PropTypes from "prop-types"; -import Menu from "material-ui/Menu"; -import MenuItem from "material-ui/MenuItem"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; import { sortVersions } from "../../utils"; import { Popover } from "@mui/material"; +import Divider from "@mui/material/Divider"; class VersionsPopover extends Component { constructor(props) { @@ -54,7 +55,6 @@ class VersionsPopover extends Component { return (
{buttonLabel}
- this.setState({ open: false })} > - - {sortVersions(versions).map((version, i) => ( - -
-
- {version.version} -
-
{version.name}
-
-
- {version.changedBy || notAvailableMessage}:{" "} - {version.versionComment || notAvailableMessage} -
+ {sortVersions(versions).map((version, i) => ( + this.handleOnRequest(version)} + sx={{ fontSize: 12 }} + > +
+
+
+ {version.version}
- } - secondaryText={ -
{`${ - version.fromDate || notAvailableMessage - } - ${version.toDate || notAvailableMessage}`}
- } - onClick={() => this.handleOnRequest(version)} - /> - ))} -
-
+
{version.name}
+
+
+ {version.changedBy || notAvailableMessage}:{" "} + {version.versionComment || notAvailableMessage} +
+
+
+
+ {`${ + version.fromDate || notAvailableMessage + } - ${version.toDate || notAvailableMessage}`} +
+ + ))} +
); } diff --git a/src/components/EditStopPage/WeightingPopover.js b/src/components/EditStopPage/WeightingPopover.js index 31441a54e..5e0bb1706 100644 --- a/src/components/EditStopPage/WeightingPopover.js +++ b/src/components/EditStopPage/WeightingPopover.js @@ -13,11 +13,14 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import MenuItem from "material-ui/MenuItem"; -import MdTransfer from "material-ui/svg-icons/maps/transfer-within-a-station"; +import MenuItem from "@mui/material/MenuItem"; +import MdTransfer from "@mui/icons-material/TransferWithinAStation"; import weightTypes, { weightColors } from "../../models/weightTypes"; import { injectIntl } from "react-intl"; -import { Popover } from "@mui/material"; +import Menu from "@mui/material/Menu"; +import ListItemText from "@mui/material/ListItemText"; +import ListItemIcon from "@mui/material/ListItemIcon"; + class WeightingPopover extends React.Component { render() { const { @@ -29,7 +32,7 @@ class WeightingPopover extends React.Component { } = this.props; return ( - { handleChange(type); }} - leftIcon={} - /> + > + + + + + {formatMessage({ id: `weightTypes.${type}` })} + + ))} - + ); } } diff --git a/src/components/EditStopPage/WheelChairPopover.js b/src/components/EditStopPage/WheelChairPopover.js index f1f06ae7b..e0e32da62 100644 --- a/src/components/EditStopPage/WheelChairPopover.js +++ b/src/components/EditStopPage/WheelChairPopover.js @@ -13,11 +13,14 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import MenuItem from "material-ui/MenuItem"; -import WheelChair from "material-ui/svg-icons/action/accessible"; -import IconButton from "material-ui/IconButton"; +import MenuItem from "@mui/material/MenuItem"; +import WheelChair from "@mui/icons-material/Accessible"; +import IconButton from "@mui/material/IconButton"; import accessibilityAssessments from "../../models/accessibilityAssessments"; -import { Popover } from "@mui/material"; + +import Menu from "@mui/material/Menu"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ListItemText from "@mui/material/ListItemText"; class WheelChairPopover extends React.Component { constructor(props) { @@ -59,13 +62,14 @@ class WheelChairPopover extends React.Component { style={{ display: "flex", alignItems: "center", fontSize: "0.8em" }} > { if (!disabled) this.handleOpenPopover(e); }} > {displayLabel ? ( @@ -78,7 +82,7 @@ class WheelChairPopover extends React.Component { "" )}
- { this.handleChange(option); }} - primaryText={formatMessage({ - id: `accessibilityAssessments.wheelchairAccess.${option.toLowerCase()}`, - })} - secondaryText={ + > + - } - /> + + + {formatMessage({ + id: `accessibilityAssessments.wheelchairAccess.${option.toLowerCase()}`, + })} + + ), )} - +
); } diff --git a/src/components/GroupOfStopPlaces/EditGroupOfStopPlaces.js b/src/components/GroupOfStopPlaces/EditGroupOfStopPlaces.js index e4b6784d6..431b78e78 100644 --- a/src/components/GroupOfStopPlaces/EditGroupOfStopPlaces.js +++ b/src/components/GroupOfStopPlaces/EditGroupOfStopPlaces.js @@ -13,12 +13,12 @@ limitations under the Licence. */ import React, { Component } from "react"; -import MdBack from "material-ui/svg-icons/navigation/arrow-back"; +import MdBack from "@mui/icons-material/ArrowBack"; import GroupOfStopPlaceDetails from "./GroupOfStopPlacesDetails"; import { injectIntl } from "react-intl"; -import FlatButton from "material-ui/FlatButton"; -import MdUndo from "material-ui/svg-icons/content/undo"; -import MdSave from "material-ui/svg-icons/content/save"; +import FlatButton from "@mui/material/Button"; +import MdUndo from "@mui/icons-material/Undo"; +import MdSave from "@mui/icons-material/Save"; import { connect } from "react-redux"; import SaveGroupDialog from "../Dialogs/SaveGroupDialog"; import mapHelper from "../../modelUtils/mapToQueryVariables"; diff --git a/src/components/GroupOfStopPlaces/GroupOfStopPlacesDetails.js b/src/components/GroupOfStopPlaces/GroupOfStopPlacesDetails.js index 4cec9e261..c7a95e0e4 100644 --- a/src/components/GroupOfStopPlaces/GroupOfStopPlacesDetails.js +++ b/src/components/GroupOfStopPlaces/GroupOfStopPlacesDetails.js @@ -1,6 +1,6 @@ import React, { Component } from "react"; -import TextField from "material-ui/TextField"; -import Divider from "material-ui/Divider"; +import TextField from "@mui/material/TextField"; +import Divider from "@mui/material/Divider"; import GroupOfStopPlacesList from "./GroupOfStopPlacesList"; import { StopPlacesGroupActions } from "../../actions/"; import { connect } from "react-redux"; diff --git a/src/components/GroupOfStopPlaces/GroupOfStopPlacesList.js b/src/components/GroupOfStopPlaces/GroupOfStopPlacesList.js index 71315353a..2801866d5 100644 --- a/src/components/GroupOfStopPlaces/GroupOfStopPlacesList.js +++ b/src/components/GroupOfStopPlaces/GroupOfStopPlacesList.js @@ -15,8 +15,8 @@ import React, { Component } from "react"; import StopPlaceListItem from "../EditParentStopPage/StopPlaceListItem"; import { injectIntl } from "react-intl"; -import FloatingActionButton from "material-ui/FloatingActionButton"; -import ContentAdd from "material-ui/svg-icons/content/add"; +import Fab from "@mui/material/Fab"; +import ContentAdd from "@mui/icons-material/Add"; import { connect } from "react-redux"; import StopPlacesGroupActions from "../../actions/StopPlacesGroupActions"; import AddMemberToGroup from "../Dialogs/AddMemberToGroup"; @@ -62,7 +62,7 @@ class GroupOfStopPlacesList extends Component {
{formatMessage({ id: "stop_places" })}
- { this.setState({ addStopPlaceOpen: true }); }} @@ -71,7 +71,7 @@ class GroupOfStopPlacesList extends Component { style={{ marginLeft: 20, marginBottom: 10 }} > - +
{stopPlaces.map((stopPlace, i) => ( diff --git a/src/components/Header.js b/src/components/Header.js index 62e598864..4d2d21fa5 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -13,23 +13,24 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; +import MoreMenuItem from "./MainPage/MoreMenuItem"; import { connect } from "react-redux"; -import AppBar from "material-ui/AppBar"; -import IconButton from "material-ui/IconButton"; -import IconMenu from "material-ui/IconMenu"; -import MenuItem from "material-ui/MenuItem"; -import MoreVertIcon from "material-ui/svg-icons/navigation/more-vert"; -import ArrowDropRight from "material-ui/svg-icons/navigation-arrow-drop-right"; -import { getLogo } from "../config/themeConfig"; -import MdAccount from "material-ui/svg-icons/action/account-circle"; -import MdLanguage from "material-ui/svg-icons/action/language"; -import MdSettings from "material-ui/svg-icons/action/settings"; -import MdMap from "material-ui/svg-icons/maps/map"; +import AppBar from "@mui/material/AppBar"; +import Toolbar from "@mui/material/Toolbar"; +import IconButton from "@mui/material/IconButton"; +import MenuItem from "@mui/material/MenuItem"; +import MoreVertIcon from "@mui/icons-material/MoreVert"; +import Typography from "@mui/material/Typography"; +import { getEnvColor, getLogo, getTheme } from "../config/themeConfig"; +import MdAccount from "@mui/icons-material/AccountCircle"; +import MdLanguage from "@mui/icons-material/Language"; +import MdSettings from "@mui/icons-material/Settings"; +import MdMap from "@mui/icons-material/Map"; import { UserActions } from "../actions/"; import { getIn } from "../utils"; -import MdReport from "material-ui/svg-icons/content/report"; -import MdHelp from "material-ui/svg-icons/action/help"; -import { getTiamatEnv, getEnvColor } from "../config/themeConfig"; +import MdReport from "@mui/icons-material/Report"; +import MdHelp from "@mui/icons-material/Help"; +import { getTiamatEnv } from "../config/themeConfig"; import ConfirmDialog from "./Dialogs/ConfirmDialog"; import { Button } from "@mui/material"; import { @@ -38,6 +39,8 @@ import { } from "../reducers/zonesSlice"; import { injectIntl } from "react-intl"; import { Helmet } from "react-helmet"; +import Menu from "@mui/material/Menu"; +import { Check } from "@mui/icons-material"; class Header extends React.Component { constructor(props) { @@ -137,15 +140,26 @@ class Header extends React.Component { } handleToggleShowFareZones(value) { - this.props.dispatch(toggleShowTariffZonesInMap(!value)); + this.props.dispatch(toggleShowTariffZonesInMap(false)); this.props.dispatch(toggleShowFareZonesInMap(value)); } handleToggleShowTariffZones(value) { - this.props.dispatch(toggleShowFareZonesInMap(!value)); + this.props.dispatch(toggleShowFareZonesInMap(false)); this.props.dispatch(toggleShowTariffZonesInMap(value)); } + state = { + anchorEl: null, + }; + + handleClick = (event) => { + this.setState({ anchorEl: event.currentTarget }); + }; + + handleClose = () => { + this.setState({ anchorEl: null }); + }; render() { const { intl, @@ -193,7 +207,10 @@ class Header extends React.Component { }); const tiamatEnv = getTiamatEnv(); + const headerColor = getEnvColor(tiamatEnv); + const theme = getTheme(); const logo = getLogo(); + const { anchorEl } = this.state; return (
@@ -201,245 +218,425 @@ class Header extends React.Component { defaultTitle={formatMessage({ id: "_title" })} titleTemplate={`${formatMessage({ id: "_title" })} - %s`} /> - -
- {title} - {(tiamatEnv === "test" || tiamatEnv === "development") && ( - - {tiamatEnv} - - )} -
-
- {!this.props.auth.isAuthenticated && ( - - )} -
-
- } - showMenuIconButton={true} - iconElementLeft={ - + + this.handleConfirmChangeRoute( this.goToMain.bind(this), "GoToMain", ) } - /> - } - iconElementRight={ - - - - } - targetOrigin={{ horizontal: "right", vertical: "top" }} - anchorOrigin={{ horizontal: "right", vertical: "top" }} + > + + + + +
+
+ {title} + {(tiamatEnv === "test" || tiamatEnv === "development") && ( + + {tiamatEnv} + + )} +
+
+
+ +
+ {!this.props.auth.isAuthenticated && ( + + )} +
+ + + + + } - primaryText={reportSite} onClick={() => this.handleConfirmChangeRoute( this.goToReports.bind(this), "GoToReports", ) } - style={{ fontSize: 12, padding: 0 }} - /> - } + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + > + + {reportSite} + + } - style={{ fontSize: 12, padding: 0 }} - desktop={true} - multiple - menuItems={[ - - this.handleTogglePublicCodePrivateCodeOnStopPlaces( - !isPublicCodePrivateCodeOnStopPlacesEnabled, - ) - } - insetChildren - desktop={true} - multiple - checked={isPublicCodePrivateCodeOnStopPlacesEnabled} - primaryText={publicCodePrivateCodeSetting} - />, - ]} - /> - } + label={settings} + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + > + + this.handleTogglePublicCodePrivateCodeOnStopPlaces( + !isPublicCodePrivateCodeOnStopPlacesEnabled, + ) + } + > + {isPublicCodePrivateCodeOnStopPlacesEnabled ? ( + + ) : ( +
+ )} + {publicCodePrivateCodeSetting} + + + } - style={{ fontSize: 12, padding: 0 }} - desktop={true} - multiple - menuItems={[ - - this.handleToggleMultiPolylines(!isMultiPolylinesEnabled) - } - insetChildren - desktop={true} - multiple - checked={isMultiPolylinesEnabled} - primaryText={showPathLinks} - />, - - this.handleToggleCompassBearing(!isCompassBearingEnabled) - } - insetChildren - desktop={true} - multiple - checked={isCompassBearingEnabled} - primaryText={showCompassBearing} - />, - - this.handleToggleShowExpiredStops(!showExpiredStops) - } - insetChildren - desktop={true} - multiple - checked={showExpiredStops} - primaryText={expiredStopLabel} - />, - - this.handleToggleMultimodalEdges(!showMultimodalEdges) - } - insetChildren - desktop={true} - multiple - checked={showMultimodalEdges} - primaryText={showMultimodalEdgesLabel} - />, - } - insetChildren - menuItems={[ - this.handleToggleShowPublicCode(true)} - insetChildren - primaryText={showPublicCodeLabel} - checked={showPublicCode} - />, - this.handleToggleShowPublicCode(false)} - insetChildren - primaryText={showPrivateCodeLabel} - checked={!showPublicCode} - />, - ]} - />, + label={mapSettings} + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + > + + this.handleToggleMultiPolylines(!isMultiPolylinesEnabled) + } + > + {isMultiPolylinesEnabled ? ( + + ) : ( +
+ )} + {showPathLinks} + + + + this.handleToggleCompassBearing(!isCompassBearingEnabled) + } + > + {isCompassBearingEnabled ? ( + + ) : ( +
+ )} + {showCompassBearing} + + + + this.handleToggleShowExpiredStops(!showExpiredStops) + } + > + {showExpiredStops ? ( + + ) : ( +
+ )} + {expiredStopLabel} + + + + this.handleToggleMultimodalEdges(!showMultimodalEdges) + } + > + {showMultimodalEdges ? ( + + ) : ( +
+ )} + {showMultimodalEdgesLabel} + + + } + label={quayCodeShowingLabel} + > - this.handleToggleShowFareZones(!showFareZones) - } - insetChildren - desktop={true} - multiple - checked={showFareZones} - primaryText={showFareZonesLabel} - />, + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + onClick={() => this.handleToggleShowPublicCode(true)} + > + {showPublicCode ? ( + + ) : ( +
+ )} + {showPublicCodeLabel} + + - this.handleToggleShowTariffZones(!showTariffZones) - } - insetChildren - desktop={true} - multiple - checked={showTariffZones} - primaryText={showTariffZonesLabel} - />, - ]} - /> - } + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + onClick={() => this.handleToggleShowPublicCode(false)} + > + {!showPublicCode ? ( + + ) : ( +
+ )} + {showPrivateCodeLabel} + + + + this.handleToggleShowFareZones(!showFareZones)} + > + {showFareZones ? ( + + ) : ( +
+ )} + {showFareZonesLabel} + + + + this.handleToggleShowTariffZones(!showTariffZones) + } + checked={showTariffZones} + > + {showTariffZones ? ( + + ) : ( +
+ )} + {showTariffZonesLabel} + + + } - style={{ fontSize: 12, padding: 0 }} - menuItems={[ - this.handleSetLanguage("nb")} - insetChildren - primaryText={norwegian} - checked={locale === "nb"} - />, - this.handleSetLanguage("en")} - insetChildren - primaryText={english} - checked={locale === "en"} - />, - this.handleSetLanguage("fr")} - insetChildren - primaryText={french} - checked={locale === "fr"} - />, - this.handleSetLanguage("sv")} - insetChildren - primaryText={swedish} - checked={locale === "sv"} - />, - ]} - /> + label={language} + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + > + this.handleSetLanguage("nb")} + checked={locale === "nb"} + > + {locale === "nb" ? ( + + ) : ( +
+ )} + {norwegian} + + this.handleSetLanguage("en")} + checked={locale === "en"} + > + {locale === "en" ? ( + + ) : ( +
+ )} + {english} + + this.handleSetLanguage("fr")} + checked={locale === "fr"} + > + {locale === "fr" ? ( + + ) : ( +
+ )} + {french} + + this.handleSetLanguage("sv")} + checked={locale === "sv"} + > + {locale === "sv" ? ( + + ) : ( +
+ )} + {swedish} + + } + component={"a"} href="https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/1225523302/User+guide+national+stop+place+registry" target="_blank" - primaryText={userGuide} - style={{ fontSize: 12, padding: 0 }} - /> + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + > + + {userGuide} + + {this.props.auth.isAuthenticated && ( } - primaryText={`${logOut} ${username}`} onClick={() => this.handleLogOut()} - style={{ fontSize: 12, padding: 0 }} - /> + style={{ + fontSize: 12, + padding: 0, + paddingBottom: 5, + paddingTop: 5, + width: 300, + }} + > + + {`${logOut} ${username}`} + )} - - } - /> +
+
+ + { diff --git a/src/components/MainPage/CreateNewStop.js b/src/components/MainPage/CreateNewStop.js index 3ab67fa15..31cae4b0a 100644 --- a/src/components/MainPage/CreateNewStop.js +++ b/src/components/MainPage/CreateNewStop.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import IconButton from "material-ui/IconButton"; +import Button from "@mui/material/Button"; import { connect } from "react-redux"; import { UserActions } from "../../actions/"; import newStopIcon from "../../static/icons/new-stop-icon-2x.png"; @@ -38,13 +38,13 @@ class CreateNewStop extends React.Component { }} >
- remove - +

- } label={caption} labelStyle={{ fontSize: 12 }} - /> + > + + + {caption.toUpperCase()} - + diff --git a/src/components/MainPage/MoreMenuItem.tsx b/src/components/MainPage/MoreMenuItem.tsx new file mode 100644 index 000000000..cf09f8f20 --- /dev/null +++ b/src/components/MainPage/MoreMenuItem.tsx @@ -0,0 +1,125 @@ +import React, { + KeyboardEventHandler, + useRef, + useState, + useCallback, + useId, + FC, +} from "react"; +import { MenuItemProps, MenuItem, Menu, MenuProps } from "@mui/material"; +import NavigateNextIcon from "@mui/icons-material/NavigateNext"; + +type MoreMenuItemProps = { + button?: true; + label: string; + leftIcon: string; + MenuProps?: Omit; +} & Omit; + +const MoreMenuItem: FC = ({ + label, + leftIcon, + children, + id, + MenuProps, + ...other +}) => { + const [isOpen, setIsOpen] = useState(false); + const open = useCallback(() => setIsOpen(true), []); + const close = useCallback(() => setIsOpen(false), []); + + const menuItemRef = useRef(null); + const menuItemId = useId(); + const normMenuItemId = id ?? menuItemId; + + const handleItemKeyDown: KeyboardEventHandler = (ev) => { + if ( + (ev.key !== "ArrowRight" && ev.key !== "Enter") || + ev.ctrlKey || + ev.shiftKey || + ev.altKey || + ev.metaKey + ) + return; + ev.preventDefault(); + ev.stopPropagation(); + setIsOpen(true); + }; + + const handleMenuKeyDown: KeyboardEventHandler = (ev) => { + ev.stopPropagation(); + if ( + (ev.key !== "ArrowLeft" && ev.key !== "Escape") || + ev.ctrlKey || + ev.shiftKey || + ev.altKey || + ev.metaKey + ) + return; + ev.preventDefault(); + setIsOpen(false); + }; + + return ( + .left-content": { + display: "flex", + alignItems: "center", + }, + }} + onMouseEnter={open} + onMouseLeave={close} + id={normMenuItemId} + > +
+ {leftIcon} + {label} +
+ {children && ( + <> + + menuItemRef.current?.focus() }} + disableRestoreFocus + onKeyDown={handleMenuKeyDown} + sx={{ + pointerEvents: "none", + "& .MuiList-root": { + pointerEvents: "auto", + }, + }} + MenuListProps={{ + ...MenuProps?.MenuListProps, + "aria-labelledby": normMenuItemId, + }} + anchorEl={menuItemRef.current} + open={isOpen} + onClose={close} + anchorOrigin={ + MenuProps?.anchorOrigin ?? { + vertical: "center", + horizontal: "left", + } + } + transformOrigin={ + MenuProps?.transformOrigin ?? { + vertical: "center", + horizontal: "right", + } + } + > + {children} + + + )} +
+ ); +}; + +export default MoreMenuItem; diff --git a/src/components/MainPage/ParentStopPlaceResultInfo.js b/src/components/MainPage/ParentStopPlaceResultInfo.js index c02cadcfb..b11859fa6 100644 --- a/src/components/MainPage/ParentStopPlaceResultInfo.js +++ b/src/components/MainPage/ParentStopPlaceResultInfo.js @@ -19,7 +19,7 @@ import ModalityTray from "../ReportPage/ModalityIconTray"; import React, { Component } from "react"; import StopPlaceLink from "../ReportPage/StopPlaceLink"; import TagTray from "./TagTray"; -import WheelChair from "material-ui/svg-icons/action/accessible"; +import WheelChair from "@mui/icons-material/Accessible"; import { getIn } from "../../utils/"; import { getPrimaryDarkerColor } from "../../config/themeConfig"; import ModalityIconImg from "./ModalityIconImg"; diff --git a/src/components/MainPage/SearchBox.js b/src/components/MainPage/SearchBox.js index cf36957ec..80d1edd24 100644 --- a/src/components/MainPage/SearchBox.js +++ b/src/components/MainPage/SearchBox.js @@ -15,17 +15,14 @@ limitations under the Licence. */ import { connect } from "react-redux"; import React from "react"; import ReactDOM from "react-dom"; -import AutoComplete from "material-ui/AutoComplete"; -import IconButton from "material-ui/IconButton"; -import RaisedButton from "material-ui/RaisedButton"; -import FlatButton from "material-ui/FlatButton"; -import MdMore from "material-ui/svg-icons/navigation/expand-more"; +import Autocomplete, { createFilterOptions } from "@mui/material/Autocomplete"; +import MdMore from "@mui/icons-material/ExpandMore"; import { StopPlaceActions, UserActions } from "../../actions/"; import SearchBoxDetails from "./SearchBoxDetails"; import NewStopPlace from "./CreateNewStop"; import { injectIntl } from "react-intl"; -import MenuItem from "material-ui/MenuItem"; -import SearchIcon from "material-ui/svg-icons/action/search"; +import MenuItem from "@mui/material/MenuItem"; +import SearchIcon from "@mui/icons-material/Search"; import FavoriteManager from "../../singletons/FavoriteManager"; import CoordinatesDialog from "../Dialogs/CoordinatesDialog"; import { @@ -36,19 +33,26 @@ import FavoritePopover from "./FavoritePopover"; import ModalityFilter from "../EditStopPage/ModalityFilter"; import FavoriteNameDialog from "../Dialogs/FavoriteNameDialog"; import TopographicalFilter from "./TopographicalFilter"; -import Divider from "material-ui/Divider"; import debounce from "lodash.debounce"; import { getIn } from "../../utils/"; import { getPrimaryDarkerColor } from "../../config/themeConfig"; -import MdLocationSearching from "material-ui/svg-icons/device/location-searching"; +import MdLocationSearching from "@mui/icons-material/LocationSearching"; import MdSpinner from "../../static/icons/spinner"; import { createSearchMenuItem } from "./SearchMenuItem"; -import Menu from "material-ui/Menu"; -import CheckBox from "material-ui/Checkbox"; +import Menu from "@mui/material/Menu"; +import CheckBox from "@mui/material/Checkbox"; import Routes from "../../routes/"; import { Entities } from "../../models/Entities"; import RoleParser from "../../roles/rolesParser"; -import { Popover } from "@mui/material"; +import { + Box, + Button, + Checkbox, + FormControlLabel, + FormGroup, + Popover, +} from "@mui/material"; +import TextField from "@mui/material/TextField"; class SearchBox extends React.Component { constructor(props) { @@ -58,6 +62,8 @@ class SearchBox extends React.Component { createNewStopOpen: false, coordinatesDialogOpen: false, loading: false, + stopPlaceSearchValue: "", + topographicPlaceFilterValue: "", }; const searchStop = (searchText, dataSource, params, filter) => { @@ -68,7 +74,6 @@ class SearchBox extends React.Component { const stopPlaceTypes = filter ? filter.stopType : this.props.stopTypeFilter; - this.setState({ loading: true }); this.props @@ -87,22 +92,32 @@ class SearchBox extends React.Component { this.debouncedSearch = debounce(searchStop, 500); } - handleSearchUpdate(searchText, dataSource, params, filter) { + handleSearchUpdate = (event, searchText, reason) => { // prevents ghost clicks - if (params && params.source === "click") { + if (event && event.source === "click") { return; } + if (reason && reason === "clear") { + this.setState({ stopPlaceSearchValue: "" }); + this.props.dispatch(UserActions.clearSearchResults()); + this.props.dispatch(UserActions.setSearchText("")); + } if (!searchText || !searchText.length) { this.props.dispatch(UserActions.clearSearchResults()); this.props.dispatch(UserActions.setSearchText("")); + this.setState({ stopPlaceSearchValue: "" }); } else if (searchText.indexOf("(") > -1 && searchText.indexOf(")") > -1) { - return; } else { this.props.dispatch(UserActions.setSearchText(searchText)); - this.debouncedSearch(searchText, dataSource, params, filter); + this.debouncedSearch( + searchText, + this.props.dataSource, + this.props.params, + this.props.filter, + ); } - } + }; handleEdit(id, entityType) { const route = @@ -118,15 +133,12 @@ class SearchBox extends React.Component { removeFiltersAndSearch() { this.props.dispatch(UserActions.removeAllFilters()); - this.handleSearchUpdate(this.props.searchText, null, null, { - topoiChips: [], - stopTypeFilter: [], - }); + this.handleSearchUpdate(null, this.props.searchText); } handleRetrieveFilter(filter) { this.props.dispatch(UserActions.loadFavoriteSearch(filter)); - this.handleSearchUpdate(filter.searchText, null, null, filter); + this.handleSearchUpdate(null, filter.searchText, null, null, filter); this.refs.searchText.setState({ open: true, @@ -150,14 +162,22 @@ class SearchBox extends React.Component { this.props.dispatch(UserActions.toggleShowFutureAndExpired(value)); } - handleTopographicalPlaceInput(searchText) { + handleTopographicalPlaceInput(event, searchText, reason) { + if (reason && reason === "clear") { + this.setState({ topographicPlaceFilterValue: "" }); + } const { dispatch } = this.props; dispatch(findTopographicalPlace(searchText)); } - handleNewRequest(result) { - if (typeof result.element !== "undefined") { + handleNewRequest(event, result, reason) { + if ( + result && + typeof result.element !== "undefined" && + result.element !== null + ) { this.props.dispatch(StopPlaceActions.setMarkerOnMap(result.element)); + this.setState({ stopPlaceSearchValue: "" }); } } @@ -198,26 +218,31 @@ class SearchBox extends React.Component { }); } - handleAddChip({ text, type, id }) { - const { searchText, stopTypeFilters, showFutureAndExpired, topoiChips } = - this.props; - if (searchText) { - this.handleSearchUpdate(searchText, null, null, { - showFutureAndExpired, - topoiChips: topoiChips.concat({ - text, - type, - value: id, - }), - stopType: stopTypeFilters, - }); + handleAddChip(event, value) { + if (value == null) { + // + } else { + const { text, type, id } = value; + const { searchText, stopTypeFilters, showFutureAndExpired, topoiChips } = + this.props; + + if (searchText) { + this.handleSearchUpdate(null, searchText, null, { + showFutureAndExpired, + topoiChips: topoiChips.concat({ + text, + type, + value: id, + }), + stopType: stopTypeFilters, + }); + } + this.props.dispatch( + UserActions.addToposChip({ text: text, type: type, value: id }), + ); + + this.setState({ topographicPlaceFilterValue: "" }); } - this.props.dispatch( - UserActions.addToposChip({ text: text, type: type, value: id }), - ); - this.refs.topoFilter.setState({ - searchText: "", - }); } handleDeleteChip(chipValue) { @@ -229,7 +254,7 @@ class SearchBox extends React.Component { topoiChips, } = this.props; if (searchText) { - this.handleSearchUpdate(searchText, null, null, { + this.handleSearchUpdate(null, searchText, { showFutureAndExpired, topoiChips: topoiChips.filter((chip) => chip.value !== chipValue), stopType: stopTypeFilters, @@ -248,9 +273,6 @@ class SearchBox extends React.Component { } handleClearSearch() { - this.refs.searchText.setState({ - searchText: "", - }); this.props.dispatch(UserActions.setSearchText("")); } @@ -273,7 +295,7 @@ class SearchBox extends React.Component { } getMenuItems(nextProps) { - const { dataSource, topoiChips, stopTypeFilter } = nextProps; + const { dataSource, topoiChips, stopTypeFilter, searchText } = nextProps; const { formatMessage } = nextProps.intl; let menuItems = []; if (dataSource && dataSource.length) { @@ -283,16 +305,12 @@ class SearchBox extends React.Component { } else { menuItems = [ { - text: "", + element: null, + text: searchText, value: ( - - {formatMessage({ id: "no_results_found" })} -

- } - /> + + {formatMessage({ id: "no_results_found" })} + ), }, ]; @@ -300,41 +318,32 @@ class SearchBox extends React.Component { if (stopTypeFilter.length || topoiChips.length) { const filterNotification = { - text: "", + text: searchText, value: ( - - + this.removeFiltersAndSearch()}> +
+
+
{formatMessage({ id: "filters_are_applied" })} - - this.removeFiltersAndSearch()} +
+
{formatMessage({ id: "remove" })} - +
- } - /> +
+
), }; @@ -369,30 +378,26 @@ class SearchBox extends React.Component { const { formatMessage, locale } = intl; const menuItems = this.getMenuItems(this.props); - const Loading = loading && !dataSource.length && [ { text: "", value: ( - - -
- {formatMessage({ id: "loading" })} -
+ +
+ +
+ {formatMessage({ id: "loading" })}
- } - /> +
+
), }, ]; @@ -414,16 +419,21 @@ class SearchBox extends React.Component { text: name, id: place.id, value: ( - + > +
+
{name}
+
+ {formatMessage({ id: place.topographicPlaceType })} +
+
+
), type: place.topographicPlaceType, }; @@ -449,6 +459,12 @@ class SearchBox extends React.Component { view: formatMessage({ id: "view" }), }; + const formControlLabelStyle = { + "& .MuiFormControlLabel-label": { + fontSize: "0.8em", + }, + }; + const searchBoxWrapperStyle = { top: 60, background: "#fff", @@ -461,6 +477,11 @@ class SearchBox extends React.Component { border: "1px solid rgb(81, 30, 18)", }; + const filterOptions = createFilterOptions({ + matchFrom: "any", + stringify: (option) => option.text, + }); + return (
- this.handleToggleFilter(false)} - style={{ fontSize: 12 }} + style={{ + fontSize: 12, + paddingBottom: "12px", + color: "black", + }} > {formatMessage({ id: "filters_less" })} - +
-
- + `${option.text}`} + options={topographicalPlacesDataSource} + onInputChange={this.handleTopographicalPlaceInput.bind( this, )} - listStyle={{ width: "auto", minWidth: 300 }} - filter={AutoComplete.caseInsensitiveFilter} - style={{ - margin: "auto", - width: "100%", - marginTop: -20, - }} - maxSearchResults={7} - ref="topoFilter" - onNewRequest={this.handleAddChip.bind(this)} - /> - - this.toggleShowFutureAndExpired(value) - } - label={formatMessage({ - id: "show_future_expired_and_terminated", - })} - labelStyle={{ fontSize: "0.8em" }} + inputValue={this.state.topographicPlaceFilterValue} + onChange={this.handleAddChip.bind(this)} + noOptionsText={formatMessage({ id: "no_results_found" })} + renderInput={(params) => ( + { + // don't fire API if the user delete or not entered anything + if (event.target.value !== null) { + this.setState({ + topographicPlaceFilterValue: event.target.value, + }); + } + }} + /> + )} + renderOption={(props, option, { selected }) => ( + + {option.value} + + )} /> +
+ + + this.toggleShowFutureAndExpired(value) + } + /> + } + label={formatMessage({ + id: "show_future_expired_and_terminated", + })} + sx={formControlLabelStyle} + /> + +
) : (
- this.handleToggleFilter(true)} + color={"textColor"} > {formatMessage({ id: "filters_more" })} - +
)}
- - +
+ +
+ {formatMessage({ id: "loading" })} +
+
+ } - filter={(searchText, key) => searchText !== ""} - onUpdateInput={this.handleSearchUpdate.bind(this)} - maxSearchResults={10} - searchText={this.props.searchText} - ref="searchText" - onNewRequest={this.handleNewRequest.bind(this)} - listStyle={{ width: "auto" }} + //filterOptions={(x) => x !== ""} + //filterOptions={filterOptions} + onInputChange={this.handleSearchUpdate.bind(this)} + //maxSearchResults={10} + inputValue={this.state.stopPlaceSearchValue} + //value={this.state.stopPlaceSearchValue} + //dataSource={ + // loading && !dataSource.length ? Loading : menuItems || [] + //} + renderOption={(props, option, { selected }) => ( + + {option.value} + + )} + onChange={this.handleNewRequest.bind(this)} + getOptionLabel={(option) => `${option.text}`} + //getOptionLabel={option.value} + //renderOption={(props, option) => ( + // + // {option.text}{option.value} + // + //)} + noOptionsText={formatMessage({ id: "no_results_found" })} + renderInput={(params) => ( + + + { + // don't fire API if the user delete or not entered anything + if (event.target.value !== null) { + this.setState({ + stopPlaceSearchValue: event.target.value, + }); + } + }} + /> + + )} /> -
- - clear - -
-
- { this.handleSaveAsFavorite(!!favorited); }} + color={"textColor"} > {formatMessage({ id: "filter_save_favorite" })} - +
{chosenResult ? ( @@ -635,32 +712,36 @@ class SearchBox extends React.Component { justifyContent: "space-between", }} > - } - primary={false} - labelStyle={{ fontSize: 11 }} - label={formatMessage({ id: "lookup_coordinates" })} - /> - + {formatMessage({ id: "lookup_coordinates" })} + + + + - - this.handleNewStop(false)} - style={{ fontSize: "0.9em" }} - primaryText={formatMessage({ id: "new_stop" })} - /> - this.handleNewStop(true)} - style={{ fontSize: "0.9em" }} - primaryText={formatMessage({ - id: "new__multi_stop", - })} - /> - - + this.handleNewStop(false)}> + {formatMessage({ id: "new_stop" })} + + this.handleNewStop(true)}> + {formatMessage({ + id: "new__multi_stop", + })} + +
)} diff --git a/src/components/MainPage/SearchBoxEditActions.js b/src/components/MainPage/SearchBoxEditActions.js index f97d01a79..5aa008bb3 100644 --- a/src/components/MainPage/SearchBoxEditActions.js +++ b/src/components/MainPage/SearchBoxEditActions.js @@ -13,9 +13,9 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React, { Component } from "react"; -import Edit from "material-ui/svg-icons/editor/mode-edit"; -import FlatButton from "material-ui/FlatButton"; -import MapsMyLocation from "material-ui/svg-icons/maps/my-location"; +import Edit from "@mui/icons-material/ModeEdit"; +import FlatButton from "@mui/material/Button"; +import MapsMyLocation from "@mui/icons-material/MyLocation"; class SearchBoxEditAction extends Component { render() { diff --git a/src/components/MainPage/SearchBoxGeoWarning.js b/src/components/MainPage/SearchBoxGeoWarning.js index df72a6bb8..707a22092 100644 --- a/src/components/MainPage/SearchBoxGeoWarning.js +++ b/src/components/MainPage/SearchBoxGeoWarning.js @@ -14,7 +14,7 @@ limitations under the Licence. */ import React, { Component } from "react"; import { FormattedMessage } from "react-intl"; -import Warning from "material-ui/svg-icons/alert/warning"; +import Warning from "@mui/icons-material/Warning"; class SearchBoxGeoWarning extends Component { render() { diff --git a/src/components/MainPage/SearchMenuItem.js b/src/components/MainPage/SearchMenuItem.js index 40d2dd573..b8a28ea5f 100644 --- a/src/components/MainPage/SearchMenuItem.js +++ b/src/components/MainPage/SearchMenuItem.js @@ -14,11 +14,11 @@ limitations under the Licence. */ import React from "react"; import ModalityIconImg from "./ModalityIconImg"; -import MenuItem from "material-ui/MenuItem"; +import MenuItem from "@mui/material/MenuItem"; import ModalityIconTray from "../ReportPage/ModalityIconTray"; import { hasExpired, isFuture } from "../../modelUtils/validBetween"; import { Entities } from "../../models/Entities"; -import MdGroup from "material-ui/svg-icons/action/group-work"; +import MdGroup from "@mui/icons-material/GroupWork"; export const createSearchMenuItem = (element, formatMessage) => { if (!element) return null; @@ -51,10 +51,9 @@ const getFutureOrExpiredLabel = (stopPlace) => { return null; }; -const topographicPlaceStyle = { +export const topographicPlaceStyle = { color: "grey", - marginTop: -20, - marginBottom: -10, + fontSize: "0.7em", display: "flex", justifyContent: "space-between", @@ -65,42 +64,33 @@ const createGroupOfStopPlacesMenuItem = (element, formatMessage) => { element, text: element.name, value: ( - -
-
-
{element.name}
-
- {element.id} -
-
- {element.topographicPlaces.length && ( -
- {element.topographicPlaces.map((place, i) => ( -
- {`${place.topographicPlace}, ${place.parentTopographicPlace}`} -
- ))} +
+
+
+
{element.name}
+
{element.id}
+
+ {element.topographicPlaces.length && ( +
+ {element.topographicPlaces.map((place, i) => ( +
+ {`${place.topographicPlace}, ${place.parentTopographicPlace}`}
- )} + ))}
- -
- } - /> + )} +
+ +
), }; }; @@ -111,63 +101,51 @@ const createParentStopPlaceMenuItem = (element, formatMessage) => { element, text: element.name, value: ( - -
-
-
- {element.name} - - MM - -
-
- {element.id} -
-
-
-
{`${element.topographicPlace}, ${element.parentTopographicPlace}`}
- {futureOrExpiredLabel && ( -
- {formatMessage({ id: futureOrExpiredLabel })} -
- )} -
+
+
+
+
+ {element.name} + + MM +
- ({ - submode: child.submode, - stopPlaceType: child.stopPlaceType, - }))} - /> +
{element.id}
+
+
+
{`${element.topographicPlace}, ${element.parentTopographicPlace}`}
+ {futureOrExpiredLabel && ( +
+ {formatMessage({ id: futureOrExpiredLabel })} +
+ )}
- } - /> +
+ ({ + submode: child.submode, + stopPlaceType: child.stopPlaceType, + }))} + /> +
), }; }; @@ -177,55 +155,51 @@ const createStopPlaceMenuItem = (element, formatMessage) => { return { element: element, text: element.name, + stopPlaceType: element.stopPlaceType, + submode: element.submode, + id: element.id, + topographicPlace: element.topographicPlace, + parentTopographicPlace: element.parentTopographicPlace, + futureOrExpiredLabel: getFutureOrExpiredLabel(element), value: ( - +
+
{element.name}
+
{element.id}
+
+
-
-
{element.name}
-
- {element.id} -
+ style={{ fontSize: "0.6em", color: "grey" }} + >{`${element.topographicPlace}, ${element.parentTopographicPlace}`}
+ {element.futureOrExpiredLabel && ( +
+ {formatMessage({ id: element.futureOrExpiredLabel })}
-
-
{`${element.topographicPlace}, ${element.parentTopographicPlace}`}
- {futureOrExpiredLabel && ( -
- {formatMessage({ id: futureOrExpiredLabel })} -
- )} -
-
- + )}
- } - /> +
+ +
), }; }; diff --git a/src/components/MainPage/StopPlaceResultInfo.js b/src/components/MainPage/StopPlaceResultInfo.js index 55a1a61a3..4af654e91 100644 --- a/src/components/MainPage/StopPlaceResultInfo.js +++ b/src/components/MainPage/StopPlaceResultInfo.js @@ -16,7 +16,7 @@ import React, { Component } from "react"; import HasExpiredInfo from "./HasExpiredInfo"; import ModalityIconImg from "./ModalityIconImg"; import CircularNumber from "./CircularNumber"; -import WheelChair from "material-ui/svg-icons/action/accessible"; +import WheelChair from "@mui/icons-material/Accessible"; import { getIn } from "../../utils/"; import TagTray from "./TagTray"; import { getPrimaryDarkerColor } from "../../config/themeConfig"; diff --git a/src/components/MainPage/TopographicalFilter.js b/src/components/MainPage/TopographicalFilter.js index 23f277112..567cd8f87 100644 --- a/src/components/MainPage/TopographicalFilter.js +++ b/src/components/MainPage/TopographicalFilter.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import Chip from "material-ui/Chip"; +import Chip from "@mui/material/Chip"; class TopographicalFilter extends React.Component { renderChip(data) { @@ -24,20 +24,17 @@ class TopographicalFilter extends React.Component { const chipStyle = { margin: 4, backgroundColor: typeColor, + color: typeTextColor, }; - let id = data.id || data.value; return ( this.props.handleDeleteChip(id)} + onDelete={() => this.props.handleDeleteChip(id)} style={chipStyle} - > - - {data.text} - - + label={data.text} + > ); } diff --git a/src/components/ReportPage/AdvancedReportFilters.js b/src/components/ReportPage/AdvancedReportFilters.js index 3e45fc90e..73575d03e 100644 --- a/src/components/ReportPage/AdvancedReportFilters.js +++ b/src/components/ReportPage/AdvancedReportFilters.js @@ -13,11 +13,12 @@ limitations under the Licence. */ import React, { Component } from "react"; -import Checkbox from "material-ui/Checkbox"; -import RaisedButton from "material-ui/RaisedButton"; -import Menu from "material-ui/Menu"; -import MenuItem from "material-ui/MenuItem"; -import { Popover } from "@mui/material"; +import Checkbox from "@mui/material/Checkbox"; +import Button from "@mui/material/Button"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import { FormControlLabel, Popover } from "@mui/material"; +import MdMore from "@mui/icons-material/ExpandMore"; class AdvancedReportFilters extends Component { constructor(props) { @@ -45,86 +46,111 @@ class AdvancedReportFilters extends Component { return (
- { this.setState({ open: true, anchorEl: e.currentTarget, }); }} - style={{ transform: "scale(0.9)" }} - label={formatMessage({ id: "filters_admin" })} - /> - } + > + {formatMessage({ id: "filters_admin" })} + + + { this.setState({ open: false }); }} > - - - { - handleCheckboxChange("showFutureAndExpired", value); - }} - /> - - - { - handleCheckboxChange("withoutLocationOnly", value); - }} - /> - - - { - handleCheckboxChange("withDuplicateImportedIds", value); - }} - style={{ marginTop: 10 }} - /> - - - { - handleCheckboxChange("withNearbySimilarDuplicates", value); - }} - style={{ marginTop: 10 }} - /> - - - { - handleCheckboxChange("withTags", value); - }} - style={{ marginTop: 10 }} - /> - - - + + { + handleCheckboxChange("showFutureAndExpired", value); + }} + /> + } + label={formatMessage({ + id: "show_future_expired_and_terminated", + })} + /> + + + { + handleCheckboxChange("withoutLocationOnly", value); + }} + /> + } + label={formatMessage({ + id: "only_without_coordinates", + })} + /> + + + { + handleCheckboxChange("withDuplicateImportedIds", value); + }} + /> + } + label={formatMessage({ + id: "only_duplicate_importedIds", + })} + /> + + + { + handleCheckboxChange("withNearbySimilarDuplicates", value); + }} + /> + } + label={formatMessage({ + id: "with_nearby_similar_duplicates", + })} + /> + + + { + handleCheckboxChange("withTags", value); + }} + /> + } + label={formatMessage({ + id: "only_with_tags", + })} + /> + +
); } diff --git a/src/components/ReportPage/GeneralReportFilters.js b/src/components/ReportPage/GeneralReportFilters.js index d8a0eb0bf..2c093044b 100644 --- a/src/components/ReportPage/GeneralReportFilters.js +++ b/src/components/ReportPage/GeneralReportFilters.js @@ -13,11 +13,12 @@ limitations under the Licence. */ import React, { Component } from "react"; -import Checkbox from "material-ui/Checkbox"; -import RaisedButton from "material-ui/RaisedButton"; -import Menu from "material-ui/Menu"; -import MenuItem from "material-ui/MenuItem"; -import { Popover } from "@mui/material"; +import Checkbox from "@mui/material/Checkbox"; +import Button from "@mui/material/Button"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import { FormControlLabel, Popover } from "@mui/material"; +import MdMore from "@mui/icons-material/ExpandMore"; class GeneralReportFilters extends Component { constructor(props) { @@ -37,38 +38,50 @@ class GeneralReportFilters extends Component { return (
- { this.setState({ open: true, anchorEl: e.currentTarget, }); }} - style={{ transform: "scale(0.9)" }} - label={formatMessage({ id: "filters_general" })} - /> - } + > + {formatMessage({ id: "filters_general" })} + + { this.setState({ open: false }); }} > - - - { - handleCheckboxChange("hasParking", value); - }} - style={{ marginTop: 10 }} - /> - - - + + { + handleCheckboxChange("hasParking", value); + }} + /> + } + label={formatMessage({ + id: "has_parking", + })} + /> + +
); } diff --git a/src/components/ReportPage/ReportPageFooter.js b/src/components/ReportPage/ReportPageFooter.js index 0a105b137..fe55bf159 100644 --- a/src/components/ReportPage/ReportPageFooter.js +++ b/src/components/ReportPage/ReportPageFooter.js @@ -13,14 +13,14 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import RaisedButton from "material-ui/RaisedButton"; +import Button from "@mui/material/Button"; import { jsonArrayToCSV } from "../../utils/CSVHelper"; import { ColumnTransformersStopPlace, ColumnTransformersQuays, } from "../../models/columnTransformers"; -import Menu from "material-ui/Menu"; -import MenuItem from "material-ui/MenuItem"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; import moment from "moment"; import { getDarkColor } from "../../config/themeConfig"; import { Popover } from "@mui/material"; @@ -189,32 +189,34 @@ class ReportPageFooter extends React.Component { ))}
- - + {formatMessage({ id: "export_to_csv" })} + + + { this.setState({ open: false }); }} > - - - - - + + {formatMessage({ id: "export_to_csv_stop_places" })} + + + {formatMessage({ id: "export_to_csv_quays" })} + +
); diff --git a/src/components/ReportPage/ShowMoreMenuFooter.js b/src/components/ReportPage/ShowMoreMenuFooter.js index 5246fd724..d0f1e30ae 100644 --- a/src/components/ReportPage/ShowMoreMenuFooter.js +++ b/src/components/ReportPage/ShowMoreMenuFooter.js @@ -13,7 +13,8 @@ limitations under the Licence. */ import React, { Component } from "react"; -import FlatButton from "material-ui/FlatButton"; +import FlatButton from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; class ShowMoreMenuFooter extends Component { render() { @@ -39,12 +40,9 @@ class ShowMoreMenuFooter extends Component { return (
- + + {label} +
); } diff --git a/src/components/ReportPage/TagFilterTray.js b/src/components/ReportPage/TagFilterTray.js index 5e86a8a1b..ce7912d19 100644 --- a/src/components/ReportPage/TagFilterTray.js +++ b/src/components/ReportPage/TagFilterTray.js @@ -13,7 +13,7 @@ limitations under the Licence. */ import React, { Component } from "react"; -import Chip from "material-ui/Chip"; +import Chip from "@mui/material/Chip"; import TagSuggestionPopover from "./TagSuggestionPopover"; class TagFilterTray extends Component { @@ -33,17 +33,18 @@ class TagFilterTray extends Component { handleItemOnCheck(tag, false)} - > - {tag} - + label={tag} + onDelete={() => handleItemOnCheck(tag, false)} + /> ))} @@ -51,5 +52,4 @@ class TagFilterTray extends Component { ); } } - export default TagFilterTray; diff --git a/src/components/ReportPage/TagSuggestionPopover.js b/src/components/ReportPage/TagSuggestionPopover.js index be130da4e..8297e0d87 100644 --- a/src/components/ReportPage/TagSuggestionPopover.js +++ b/src/components/ReportPage/TagSuggestionPopover.js @@ -13,17 +13,18 @@ limitations under the Licence. */ import React, { Component } from "react"; -import FlatButton from "material-ui/FlatButton"; +import FlatButton from "@mui/material/Button"; import { getTagsByName } from "../../actions/TiamatActions"; -import MenuItem from "material-ui/MenuItem"; -import Menu from "material-ui/Menu"; -import Checkbox from "material-ui/Checkbox"; +import MenuItem from "@mui/material/MenuItem"; +import Menu from "@mui/material/Menu"; +import Checkbox from "@mui/material/Checkbox"; import ShowMoreMenuFooter from "./ShowMoreMenuFooter"; import { injectIntl } from "react-intl"; -import TextField from "material-ui/TextField"; -import MdAdd from "material-ui/svg-icons/content/add"; +import TextField from "@mui/material/TextField"; +import MdAdd from "@mui/icons-material/Add"; import { connect } from "react-redux"; -import { Popover } from "@mui/material"; +import { FormControlLabel, Popover } from "@mui/material"; +import Typography from "@mui/material/Typography"; class TagSuggestionPopover extends Component { constructor(props) { @@ -75,9 +76,8 @@ class TagSuggestionPopover extends Component { return (
} + variant="contained" + startIcon={} onClick={(e) => { e.preventDefault(); this.setState({ @@ -85,49 +85,56 @@ class TagSuggestionPopover extends Component { anchorEl: e.currentTarget, }); }} - /> - + {formatMessage({ id: "add_tag" })} + + + { this.setState({ open: false }); }} + disableAutoFocus={true} > -
- { - this.setState({ - filterText, - }); - }} - /> -
- - {filteredTags && filteredTags.length ? ( - filteredTags.map((tag, i) => ( - - -1} - onCheck={(e, checked) => { - handleItemOnCheck(tag.name, checked); - }} - labelStyle={{ fontSize: "0.9em" }} - /> - - )) - ) : ( -
- {formatMessage({ id: "no_tags_found" })} -
- )} -
+ { + this.setState({ + filterText: filterText, + }); + }} + /> + + {filteredTags && filteredTags.length ? ( + filteredTags.map((tag, i) => ( + + -1} + onChange={(e, checked) => { + handleItemOnCheck(tag.name, checked); + }} + /> + } + label={ + + {tag.name} + + } + /> + + )) + ) : ( +
+ {formatMessage({ id: "no_tags_found" })} +
+ )} - +
); } diff --git a/src/config/themeConfig.js b/src/config/themeConfig.js index 646a1967c..6dc67a4fe 100644 --- a/src/config/themeConfig.js +++ b/src/config/themeConfig.js @@ -23,6 +23,7 @@ import { primary as defaultPrimary } from "./themes/default/defaultTheme"; import { primaryDarker as defaultPrimaryDarker, darkColor as defaultDarkColor, + headerColor as defaultBanner, } from "./themes/default/defaultTheme"; export const getTiamatEnv = () => { @@ -77,6 +78,15 @@ export const getPrimaryColor = () => { } }; +export const getHeaderColor = () => { + if (process.env.REACT_APP_THEME) { + return require("./themes/" + process.env.REACT_APP_THEME + "/index.js") + .primary; + } else { + return headerColor; + } +}; + export const getDarkColor = () => { if (process.env.REACT_APP_THEME) { return require("./themes/" + process.env.REACT_APP_THEME + "/index.js") diff --git a/src/config/themes/default/defaultTheme.js b/src/config/themes/default/defaultTheme.js index 4f331c1c9..8242f9130 100644 --- a/src/config/themes/default/defaultTheme.js +++ b/src/config/themes/default/defaultTheme.js @@ -12,12 +12,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licence for the specific language governing permissions and limitations under the Licence. */ -import { fade } from "material-ui/utils/colorManipulator"; +import { lighten } from "@mui/material/styles/"; import { getTiamatEnv } from "../../themeConfig"; export const primary = "#5AC39A"; export const primaryDarker = "#181C56"; export const darkColor = "#181C56"; + const cyan700 = "#5AC39A"; const grey100 = "#f5f5f5"; const grey300 = "#e0e0e0"; @@ -54,9 +55,9 @@ export const getV0Theme = () => ({ alternateTextColor: white, canvasColor: white, borderColor: grey300, - disabledColor: fade(darkBlack, 0.3), + disabledColor: lighten(darkBlack, 0.3), pickerHeaderColor: primary, - clockCircleColor: fade(darkBlack, 0.07), + clockCircleColor: lighten(darkBlack, 0.07), shadowColor: fullBlack, }, datePicker: { @@ -74,15 +75,57 @@ export const getV0Theme = () => ({ export const getTheme = () => ({ fontFamily: "Roboto, sans-serif", palette: { - primary: { + primary1Color: { main: primary, }, - }, - overrides: { - MuiButton: { - containedPrimary: { - color: white, - }, + primary2Color: { + main: cyan700, + }, + primary3Color: { + main: grey400, + }, + accent1Color: { + main: primary, + }, + accent2Color: { + main: grey100, + }, + accent3Color: { + main: grey500, + }, + textColor: { + main: darkBlack, + }, + alternateTextColor: { + main: white, + }, + canvasColor: { + main: white, + }, + borderColor: { + main: grey300, + }, + disabledColor: { + main: lighten(darkBlack, 0.3), + }, + pickerHeaderColor: { + main: primary, + }, + clockCircleColor: { + main: lighten(darkBlack, 0.07), }, + shadowColor: { + main: fullBlack, + }, + }, + datePicker: { + selectColor: primary, + selectTextColor: white, + }, + checkbox: { + checkedColor: primaryDarker, + }, + appBar: { + color: darkColor, }, }); diff --git a/src/containers/App.js b/src/containers/App.js index d81fbb368..fb8dccd37 100644 --- a/src/containers/App.js +++ b/src/containers/App.js @@ -13,14 +13,12 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React, { useEffect } from "react"; -import getMuiTheme from "material-ui/styles/getMuiTheme"; import { ThemeProvider, createTheme, - adaptV4Theme, StyledEngineProvider, } from "@mui/material/styles"; -import { MuiThemeProvider as V0MuiThemeProvider } from "material-ui"; + import { IntlProvider } from "react-intl"; import { useDispatch } from "react-redux"; import Header from "../components/Header"; @@ -32,9 +30,9 @@ import configureLocalization from "../localization/localization"; import { UserActions } from "../actions"; import { Helmet } from "react-helmet"; import { useAuth } from "../auth/auth"; +import MuiThemeProvider from "@mui/material/styles/ThemeProvider"; -const muiThemeV0 = getMuiTheme(getV0Theme()); -const muiTheme = createTheme(adaptV4Theme(getTheme())); +const muiTheme = createTheme(getTheme()); const App = ({ children }) => { const auth = useAuth(); @@ -71,15 +69,13 @@ const App = ({ children }) => { - - -
-
- {children} - -
-
-
+ +
+
+ {children} + +
+
); diff --git a/src/containers/ReportPage.js b/src/containers/ReportPage.js index 29f6f8caa..cc5774572 100644 --- a/src/containers/ReportPage.js +++ b/src/containers/ReportPage.js @@ -19,18 +19,18 @@ import ReportResultView from "../components/ReportPage/ReportResultView"; import ReportFilterBox from "../components/ReportPage/ReportFilterBox"; import ModalityFilter from "../components/EditStopPage/ModalityFilter"; import TopographicalFilter from "../components/MainPage/TopographicalFilter"; -import AutoComplete from "material-ui/AutoComplete"; +import AutoComplete from "@mui/material/Autocomplete"; import { findStopForReport, getParkingForMultipleStopPlaces, getTopographicPlaces, topographicalPlaceSearch, } from "../actions/TiamatActions"; -import MenuItem from "material-ui/MenuItem"; -import RaisedButton from "material-ui/RaisedButton"; -import TextField from "material-ui/TextField"; +import MenuItem from "@mui/material/MenuItem"; +import Button from "@mui/material/Button"; +import TextField from "@mui/material/TextField"; import MdSpinner from "../static/icons/spinner"; -import MdSearch from "material-ui/svg-icons/action/search"; +import MdSearch from "@mui/icons-material/Search"; import ColumnFilterPopover from "../components/EditStopPage/ColumnFilterPopover"; import { injectIntl } from "react-intl"; import { @@ -55,6 +55,7 @@ class ReportPage extends React.Component { topoiChips: [], activePageIndex: 0, searchQuery: "", + topographicPlaceFilterValue: "", isLoading: false, columnOptionsQuays: columnOptionsQuays, columnOptionsStopPlace: columnOptionsStopPlace, @@ -311,22 +312,21 @@ class ReportPage extends React.Component { }); } - handleAddChip(chip, index) { + handleAddChip(event, chip, index) { if (chip && index > -1) { let addedChipsIds = this.state.topoiChips.map((tc) => tc.id); if (addedChipsIds.indexOf(chip.id) === -1) { this.setState({ topoiChips: this.state.topoiChips.concat(chip), }); - this.refs.topoFilter.setState({ - searchText: "", - }); + this.setState({ topographicPlaceFilterValue: "" }); } } } - handleTopographicalPlaceSearch(searchText) { - this.props.dispatch(topographicalPlaceSearch(searchText)); + handleTopographicalPlaceSearch(event, searchText, reason) { + const { dispatch } = this.props; + dispatch(topographicalPlaceSearch(searchText)); } createTopographicPlaceMenuItem(place, formatMessage) { @@ -335,10 +335,21 @@ class ReportPage extends React.Component { text: name, id: place.id, value: ( - +
+
+
{name}
+
+ {formatMessage({ id: place.topographicPlaceType })} +
+
+
), type: place.topographicPlaceType, }; @@ -397,6 +408,8 @@ class ReportPage extends React.Component { this.createTopographicPlaceMenuItem(place, formatMessage), ); + console.log({ topographicalPlacesDataSource }); + return (
@@ -425,20 +438,31 @@ class ReportPage extends React.Component { {formatMessage({ id: "filter_report_by_topography" })}
x} + options={topographicalPlacesDataSource} + onInputChange={this.handleTopographicalPlaceSearch.bind(this)} + onChange={this.handleAddChip.bind(this)} + noOptionsText={formatMessage({ id: "no_results_found" })} + renderInput={(params) => ( + { + this.setState({ + topographicPlaceFilterValue: event.target.value, + }); + }} + /> + )} + renderOption={(props, option, { selected }) => { + return ( + + {option.value} + + ); }} - maxSearchResults={5} - fullWidth={true} - ref="topoFilter" - onNewRequest={this.handleAddChip.bind(this)} /> - : } - label={formatMessage({ id: "search" })} onClick={() => this.handleSearch()} - /> + > + {formatMessage({ id: "search" })} + { } else { parentStopVariables.stopPlaceIds = stop.children.map((child) => child.id); } - if (stop.location) { parentStopVariables.legacyCoordinates = [ [stop.location[1], stop.location[0]], diff --git a/src/models/columnTransformers.js b/src/models/columnTransformers.js index d41105c88..9c9e82bc4 100644 --- a/src/models/columnTransformers.js +++ b/src/models/columnTransformers.js @@ -19,9 +19,9 @@ import CarParkingIcon from "../static/icons/ParkingIcon"; import BikeParkingIcon from "../static/icons/facilities/BikeParking"; import { getIn, getInTransform } from "../utils/"; import accessibilityAssessments from "../models/accessibilityAssessments"; -import WheelChair from "material-ui/svg-icons/action/accessible"; -import MdCheck from "material-ui/svg-icons/action/check-circle"; -import MdNotChecked from "material-ui/svg-icons/action/highlight-off"; +import WheelChair from "@mui/icons-material/Accessible"; +import MdCheck from "@mui/icons-material/CheckCircle"; +import MdNotChecked from "@mui/icons-material/HighlightOff"; import StairsIcon from "../static/icons/accessibility/Stairs"; import ModalityIconTray from "../components/ReportPage/ModalityIconTray"; import { darkColor } from "../config/themes/default/defaultTheme"; @@ -31,7 +31,7 @@ import moment from "moment"; const getParkingElements = (parking = [], formatMessage) => { if (!parking || !parking.length) { - return ; + return ; } return parking.map((p) => (
@@ -189,23 +189,23 @@ export const ColumnTransformerStopPlaceJsx = { }, shelterEquipment: (stop) => { return isEquipted(stop, ["placeEquipments", "shelterEquipment"]) ? ( - + ) : ( - + ); }, waitingRoomEquipment: (stop) => { return isEquipted(stop, ["placeEquipments", "waitingRoomEquipment"]) ? ( - + ) : ( - + ); }, sanitaryEquipment: (stop) => { return isEquipted(stop, ["placeEquipments", "sanitaryEquipment"]) ? ( - + ) : ( - + ); }, generalSign: (stop) => { @@ -236,7 +236,7 @@ export const ColumnTransformerStopPlaceJsx = { }); return transportModeSigns; } - return ; + return ; }, tags: (stop) => ( { return boardingPositions.map((bp) => { return { geometry: { - legacyCoordinates: [[bp.location[1], bp.location[0]]], + coordinates: [[bp.location[1], bp.location[0]]], type: "Point", }, publicCode: bp.publicCode, diff --git a/src/reducers/userReducer.js b/src/reducers/userReducer.js index 25b3ab5b9..499e93509 100644 --- a/src/reducers/userReducer.js +++ b/src/reducers/userReducer.js @@ -50,7 +50,6 @@ export const initialState = { keyValuesOrigin: null, lookupCoordinatesOpen: false, newStopIsMultiModal: false, - isCreatingNewStop: false, serverTimeDiff: 0, deleteStopDialogWarning: { warning: false, @@ -93,7 +92,7 @@ const userReducer = (state = initialState, action) => { case types.REMOVED_ALL_FILTERS: return Object.assign({}, state, { - searchFilters: { topoiChips: [], stopType: [] }, + searchFilters: { ...state.searchFilters, topoiChips: [], stopType: [] }, }); case types.OPEN_LOOKUP_COORDINATES_DIALOG: diff --git a/src/static/icons/ParkingIcon.js b/src/static/icons/ParkingIcon.js index e0c6f9537..2aeddc466 100644 --- a/src/static/icons/ParkingIcon.js +++ b/src/static/icons/ParkingIcon.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const ParkingIcon = (props) => ( { return ( - + { /> - + ); }; diff --git a/src/static/icons/accessibility/NoWheelChair.js b/src/static/icons/accessibility/NoWheelChair.js index 7759c02de..38df394ff 100644 --- a/src/static/icons/accessibility/NoWheelChair.js +++ b/src/static/icons/accessibility/NoWheelChair.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const NoWheelChair = (props) => ( diff --git a/src/static/icons/accessibility/Stairs.js b/src/static/icons/accessibility/Stairs.js index d0ee10a26..35c6a66ac 100644 --- a/src/static/icons/accessibility/Stairs.js +++ b/src/static/icons/accessibility/Stairs.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const Stairs = (props) => ( diff --git a/src/static/icons/accessibility/StepFree.js b/src/static/icons/accessibility/StepFree.js index 1783adc83..212c71444 100644 --- a/src/static/icons/accessibility/StepFree.js +++ b/src/static/icons/accessibility/StepFree.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const StepFree = (props) => ( diff --git a/src/static/icons/facilities/BikeParking.js b/src/static/icons/facilities/BikeParking.js index 5604c884b..a1d76efcc 100644 --- a/src/static/icons/facilities/BikeParking.js +++ b/src/static/icons/facilities/BikeParking.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const BikeParking = (props) => ( ( ( ( ( ( diff --git a/src/static/icons/facilities/TicketMachine.js b/src/static/icons/facilities/TicketMachine.js index 766835c08..1d55ae207 100644 --- a/src/static/icons/facilities/TicketMachine.js +++ b/src/static/icons/facilities/TicketMachine.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const TicketMachine = (props) => ( diff --git a/src/static/icons/facilities/WaitingRoom.js b/src/static/icons/facilities/WaitingRoom.js index 5f98795ff..3e8ea810d 100644 --- a/src/static/icons/facilities/WaitingRoom.js +++ b/src/static/icons/facilities/WaitingRoom.js @@ -13,7 +13,7 @@ See the Licence for the specific language governing permissions and limitations under the Licence. */ import React from "react"; -import SvgIcon from "material-ui/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; const WaitingRoom = (props) => ( ( diff --git a/src/utils/index.js b/src/utils/index.js index 8756c11dd..04d8a9d25 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -78,10 +78,10 @@ export const toCamelCase = (string) => { if (!string) return ""; if (!/\s/g.test(string)) { - return string.toLowerCase(); + return string.toString().toLowerCase(); } - return string.replace(/^([A-Z])|\s(\w)/g, (match, p1, p2) => { + return string.toString().replace(/^([A-Z])|\s(\w)/g, (match, p1, p2) => { if (p2) return p2.toUpperCase(); return p1.toLowerCase(); });