mirror of
https://github.com/Findus23/vienna-cycling-quality.git
synced 2024-09-09 04:13:48 +02:00
cherry-pick all upstream commits until now
This commit is contained in:
parent
099eee7bee
commit
cfec34ae1e
17 changed files with 500 additions and 304 deletions
373
package-lock.json
generated
373
package-lock.json
generated
|
@ -10,7 +10,7 @@
|
|||
"dependencies": {
|
||||
"@headlessui/react": "^1.7.18",
|
||||
"@nanostores/react": "^0.7.2",
|
||||
"@nanostores/router": "^0.13.0",
|
||||
"@nanostores/router": "^0.14.1",
|
||||
"@turf/turf": "^7.0.0-alpha.114",
|
||||
"maplibre-gl": "^4.1.1",
|
||||
"matomo-lite-tracker": "github:Findus23/MatomoLiteTracker",
|
||||
|
@ -86,27 +86,27 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/compat-data": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz",
|
||||
"integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==",
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
|
||||
"integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.24.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz",
|
||||
"integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==",
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz",
|
||||
"integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.24.2",
|
||||
"@babel/generator": "^7.24.1",
|
||||
"@babel/generator": "^7.24.4",
|
||||
"@babel/helper-compilation-targets": "^7.23.6",
|
||||
"@babel/helper-module-transforms": "^7.23.3",
|
||||
"@babel/helpers": "^7.24.1",
|
||||
"@babel/parser": "^7.24.1",
|
||||
"@babel/helpers": "^7.24.4",
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@babel/template": "^7.24.0",
|
||||
"@babel/traverse": "^7.24.1",
|
||||
"@babel/types": "^7.24.0",
|
||||
|
@ -134,9 +134,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz",
|
||||
"integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==",
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz",
|
||||
"integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.24.0",
|
||||
|
@ -299,9 +299,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/helpers": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz",
|
||||
"integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==",
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz",
|
||||
"integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.24.0",
|
||||
|
@ -328,9 +328,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz",
|
||||
"integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==",
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz",
|
||||
"integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
|
@ -370,9 +370,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.24.1",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz",
|
||||
"integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==",
|
||||
"version": "7.24.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz",
|
||||
"integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==",
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
},
|
||||
|
@ -956,9 +956,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/object-schema": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
|
||||
"integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
|
||||
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@isaacs/cliui": {
|
||||
|
@ -1141,9 +1141,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@nanostores/router": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@nanostores/router/-/router-0.13.0.tgz",
|
||||
"integrity": "sha512-oMFlgPLM2iswDbDDxwQ2loA1GRFrkEPMwKPRN+D7Ixihu/gWWwMX4na0EAYogHgpl2+nU5AqplwftiikNZ/4GA==",
|
||||
"version": "0.14.1",
|
||||
"resolved": "https://registry.npmjs.org/@nanostores/router/-/router-0.14.1.tgz",
|
||||
"integrity": "sha512-bmKngXQxF8d9RmvZe3iBKax/bVXb+PbkKKMR+34FeXWqwQbvGwzOxJyiCWNB0lHmBw/l9D3cRAAHEXrL0TEoFg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
|
@ -1154,7 +1154,7 @@
|
|||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"nanostores": "^0.9.0"
|
||||
"nanostores": "^0.9.0 || ^0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
|
@ -1203,9 +1203,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz",
|
||||
"integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz",
|
||||
"integrity": "sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
|
@ -1216,9 +1216,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz",
|
||||
"integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz",
|
||||
"integrity": "sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -1229,9 +1229,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz",
|
||||
"integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz",
|
||||
"integrity": "sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -1242,9 +1242,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz",
|
||||
"integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz",
|
||||
"integrity": "sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -1255,9 +1255,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz",
|
||||
"integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz",
|
||||
"integrity": "sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
|
@ -1268,9 +1268,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz",
|
||||
"integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz",
|
||||
"integrity": "sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -1281,9 +1281,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz",
|
||||
"integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz",
|
||||
"integrity": "sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -1293,10 +1293,23 @@
|
|||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz",
|
||||
"integrity": "sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==",
|
||||
"cpu": [
|
||||
"ppc64le"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz",
|
||||
"integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz",
|
||||
"integrity": "sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
|
@ -1306,10 +1319,23 @@
|
|||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz",
|
||||
"integrity": "sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz",
|
||||
"integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz",
|
||||
"integrity": "sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -1320,9 +1346,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz",
|
||||
"integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz",
|
||||
"integrity": "sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -1333,9 +1359,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz",
|
||||
"integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz",
|
||||
"integrity": "sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -1346,9 +1372,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz",
|
||||
"integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz",
|
||||
"integrity": "sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
|
@ -1359,9 +1385,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz",
|
||||
"integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz",
|
||||
"integrity": "sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -1384,9 +1410,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@tailwindcss/typography": {
|
||||
"version": "0.5.10",
|
||||
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz",
|
||||
"integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==",
|
||||
"version": "0.5.12",
|
||||
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.12.tgz",
|
||||
"integrity": "sha512-CNwpBpconcP7ppxmuq3qvaCxiRWnbhANpY/ruH4L5qs2GCiVDJXde/pjj2HWPV1+Q4G9+V/etrwUYopdcjAlyg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash.castarray": "^4.4.0",
|
||||
|
@ -3260,9 +3286,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/@types/leaflet": {
|
||||
"version": "1.9.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.8.tgz",
|
||||
"integrity": "sha512-EXdsL4EhoUtGm2GC2ZYtXn+Fzc6pluVgagvo2VC1RHWToLGlTRwVYoDpqS/7QXa01rmDyBjJk3Catpf60VMkwg==",
|
||||
"version": "1.9.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.9.tgz",
|
||||
"integrity": "sha512-o0qD9ReJzWpGNIAY0O32NkpfM6rhV4sxnwVkz7x7Ah4Zy9sP+2T9Q3byccL5la1ZX416k+qiyvt8ksBavPPY7A==",
|
||||
"dependencies": {
|
||||
"@types/geojson": "*"
|
||||
}
|
||||
|
@ -3302,31 +3328,24 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/@types/react": {
|
||||
"version": "18.2.69",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.69.tgz",
|
||||
"integrity": "sha512-W1HOMUWY/1Yyw0ba5TkCV+oqynRjG7BnteBB+B7JmAK7iw3l2SW+VGOxL+akPweix6jk2NNJtyJKpn4TkpfK3Q==",
|
||||
"version": "18.2.74",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.74.tgz",
|
||||
"integrity": "sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
"@types/scheduler": "*",
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/react-dom": {
|
||||
"version": "18.2.22",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz",
|
||||
"integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==",
|
||||
"version": "18.2.23",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.23.tgz",
|
||||
"integrity": "sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/react": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/scheduler": {
|
||||
"version": "0.16.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
|
||||
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/semver": {
|
||||
"version": "7.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
|
||||
|
@ -3342,16 +3361,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz",
|
||||
"integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz",
|
||||
"integrity": "sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/regexpp": "^4.5.1",
|
||||
"@typescript-eslint/scope-manager": "7.3.1",
|
||||
"@typescript-eslint/type-utils": "7.3.1",
|
||||
"@typescript-eslint/utils": "7.3.1",
|
||||
"@typescript-eslint/visitor-keys": "7.3.1",
|
||||
"@typescript-eslint/scope-manager": "7.5.0",
|
||||
"@typescript-eslint/type-utils": "7.5.0",
|
||||
"@typescript-eslint/utils": "7.5.0",
|
||||
"@typescript-eslint/visitor-keys": "7.5.0",
|
||||
"debug": "^4.3.4",
|
||||
"graphemer": "^1.4.0",
|
||||
"ignore": "^5.2.4",
|
||||
|
@ -3377,15 +3396,15 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.3.1.tgz",
|
||||
"integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.5.0.tgz",
|
||||
"integrity": "sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "7.3.1",
|
||||
"@typescript-eslint/types": "7.3.1",
|
||||
"@typescript-eslint/typescript-estree": "7.3.1",
|
||||
"@typescript-eslint/visitor-keys": "7.3.1",
|
||||
"@typescript-eslint/scope-manager": "7.5.0",
|
||||
"@typescript-eslint/types": "7.5.0",
|
||||
"@typescript-eslint/typescript-estree": "7.5.0",
|
||||
"@typescript-eslint/visitor-keys": "7.5.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3405,13 +3424,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz",
|
||||
"integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz",
|
||||
"integrity": "sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "7.3.1",
|
||||
"@typescript-eslint/visitor-keys": "7.3.1"
|
||||
"@typescript-eslint/types": "7.5.0",
|
||||
"@typescript-eslint/visitor-keys": "7.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || >=20.0.0"
|
||||
|
@ -3422,13 +3441,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz",
|
||||
"integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz",
|
||||
"integrity": "sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/typescript-estree": "7.3.1",
|
||||
"@typescript-eslint/utils": "7.3.1",
|
||||
"@typescript-eslint/typescript-estree": "7.5.0",
|
||||
"@typescript-eslint/utils": "7.5.0",
|
||||
"debug": "^4.3.4",
|
||||
"ts-api-utils": "^1.0.1"
|
||||
},
|
||||
|
@ -3449,9 +3468,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz",
|
||||
"integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.5.0.tgz",
|
||||
"integrity": "sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^18.18.0 || >=20.0.0"
|
||||
|
@ -3462,13 +3481,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz",
|
||||
"integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz",
|
||||
"integrity": "sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "7.3.1",
|
||||
"@typescript-eslint/visitor-keys": "7.3.1",
|
||||
"@typescript-eslint/types": "7.5.0",
|
||||
"@typescript-eslint/visitor-keys": "7.5.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
|
@ -3490,17 +3509,17 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz",
|
||||
"integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.5.0.tgz",
|
||||
"integrity": "sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.4.0",
|
||||
"@types/json-schema": "^7.0.12",
|
||||
"@types/semver": "^7.5.0",
|
||||
"@typescript-eslint/scope-manager": "7.3.1",
|
||||
"@typescript-eslint/types": "7.3.1",
|
||||
"@typescript-eslint/typescript-estree": "7.3.1",
|
||||
"@typescript-eslint/scope-manager": "7.5.0",
|
||||
"@typescript-eslint/types": "7.5.0",
|
||||
"@typescript-eslint/typescript-estree": "7.5.0",
|
||||
"semver": "^7.5.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3515,12 +3534,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz",
|
||||
"integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==",
|
||||
"version": "7.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz",
|
||||
"integrity": "sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "7.3.1",
|
||||
"@typescript-eslint/types": "7.5.0",
|
||||
"eslint-visitor-keys": "^3.4.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3861,9 +3880,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001600",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz",
|
||||
"integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==",
|
||||
"version": "1.0.30001605",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz",
|
||||
"integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
|
@ -4166,9 +4185,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.715",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz",
|
||||
"integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==",
|
||||
"version": "1.4.724",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.724.tgz",
|
||||
"integrity": "sha512-RTRvkmRkGhNBPPpdrgtDKvmOEYTrPlXDfc0J/Nfq5s29tEahAwhiX4mmhNzj6febWMleulxVYPh7QwCSL/EldA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
|
@ -5632,9 +5651,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/maplibre-gl": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.1.1.tgz",
|
||||
"integrity": "sha512-DmHru9FTHCOngNHzIx9W2+MlUziYPfPxd2qjyeWwczBYNx2SDpmH394MkuCvSgnfUm5Zvs4NaYCqMu44jUga1Q==",
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.1.2.tgz",
|
||||
"integrity": "sha512-98T+3BesL4w/N39q/rgs9q6HzHLG6pgbS9UaTqg6fMISfzy2WGKokjK205ENFDDmEljj54/LTfdXgqg2XfYU4A==",
|
||||
"dependencies": {
|
||||
"@mapbox/geojson-rewind": "^0.5.2",
|
||||
"@mapbox/jsonlint-lines-primitives": "^2.0.2",
|
||||
|
@ -5789,9 +5808,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/nanostores": {
|
||||
"version": "0.9.5",
|
||||
"resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.9.5.tgz",
|
||||
"integrity": "sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==",
|
||||
"version": "0.10.2",
|
||||
"resolved": "https://registry.npmjs.org/nanostores/-/nanostores-0.10.2.tgz",
|
||||
"integrity": "sha512-Z/nqsDGQvjYTXZcVge06IS8OAJ8Lzb1jLUSAbDDomDBtlSXh88M4toUKW3iKwN+BfblEXhft0KlwJ+bgGi/Ysw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
|
@ -5800,7 +5819,7 @@
|
|||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": "^16.0.0 || ^18.0.0 || >=20.0.0"
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/natural-compare": {
|
||||
|
@ -6001,12 +6020,12 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/path-scurry": {
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
|
||||
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz",
|
||||
"integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^9.1.1 || ^10.0.0",
|
||||
"lru-cache": "^10.2.0",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -6532,9 +6551,9 @@
|
|||
"integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg=="
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz",
|
||||
"integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==",
|
||||
"version": "4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.0.tgz",
|
||||
"integrity": "sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.5"
|
||||
|
@ -6547,19 +6566,21 @@
|
|||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.13.0",
|
||||
"@rollup/rollup-android-arm64": "4.13.0",
|
||||
"@rollup/rollup-darwin-arm64": "4.13.0",
|
||||
"@rollup/rollup-darwin-x64": "4.13.0",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.13.0",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.13.0",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.13.0",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.13.0",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.13.0",
|
||||
"@rollup/rollup-linux-x64-musl": "4.13.0",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.13.0",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.13.0",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.13.0",
|
||||
"@rollup/rollup-android-arm-eabi": "4.14.0",
|
||||
"@rollup/rollup-android-arm64": "4.14.0",
|
||||
"@rollup/rollup-darwin-arm64": "4.14.0",
|
||||
"@rollup/rollup-darwin-x64": "4.14.0",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.14.0",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.14.0",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.14.0",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.14.0",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.14.0",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.14.0",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.14.0",
|
||||
"@rollup/rollup-linux-x64-musl": "4.14.0",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.14.0",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.14.0",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.14.0",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
|
@ -6956,16 +6977,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/sucrase/node_modules/glob": {
|
||||
"version": "10.3.10",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
||||
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
|
||||
"version": "10.3.12",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
|
||||
"integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"foreground-child": "^3.1.0",
|
||||
"jackspeak": "^2.3.5",
|
||||
"jackspeak": "^2.3.6",
|
||||
"minimatch": "^9.0.1",
|
||||
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
|
||||
"path-scurry": "^1.10.1"
|
||||
"minipass": "^7.0.4",
|
||||
"path-scurry": "^1.10.2"
|
||||
},
|
||||
"bin": {
|
||||
"glob": "dist/esm/bin.mjs"
|
||||
|
@ -7030,9 +7051,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/tailwindcss": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz",
|
||||
"integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==",
|
||||
"version": "3.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
|
||||
"integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
|
@ -7043,7 +7064,7 @@
|
|||
"fast-glob": "^3.3.0",
|
||||
"glob-parent": "^6.0.2",
|
||||
"is-glob": "^4.0.3",
|
||||
"jiti": "^1.19.1",
|
||||
"jiti": "^1.21.0",
|
||||
"lilconfig": "^2.1.0",
|
||||
"micromatch": "^4.0.5",
|
||||
"normalize-path": "^3.0.0",
|
||||
|
@ -7299,13 +7320,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.2.6",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.6.tgz",
|
||||
"integrity": "sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==",
|
||||
"version": "5.2.8",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.8.tgz",
|
||||
"integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.20.1",
|
||||
"postcss": "^8.4.36",
|
||||
"postcss": "^8.4.38",
|
||||
"rollup": "^4.13.0"
|
||||
},
|
||||
"bin": {
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"dependencies": {
|
||||
"@headlessui/react": "^1.7.18",
|
||||
"@nanostores/react": "^0.7.2",
|
||||
"@nanostores/router": "^0.13.0",
|
||||
"@nanostores/router": "^0.14.1",
|
||||
"@turf/turf": "^7.0.0-alpha.114",
|
||||
"maplibre-gl": "^4.1.1",
|
||||
"matomo-lite-tracker": "github:Findus23/MatomoLiteTracker",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { createSearchParams } from '@nanostores/router'
|
||||
import { createSearchParams } from '../store/createSearchParams'
|
||||
import { atom } from 'nanostores'
|
||||
import type { MapGeoJSONFeature } from 'react-map-gl/maplibre'
|
||||
|
||||
|
|
|
@ -10,10 +10,9 @@ import { Overlay } from './Overlay'
|
|||
import { interactiveLayerIdsByGroup, legendByGroups } from './layers/layers'
|
||||
import {
|
||||
filterParamsKey,
|
||||
filterParamsObject,
|
||||
filterParamsStringify,
|
||||
validAnzeigeValues,
|
||||
type SearchParamsCqiMap,
|
||||
type CqiMapSearchparams,
|
||||
} from './storeCqi'
|
||||
import {MapInfo} from "./MapInfo.tsx";
|
||||
|
||||
|
@ -24,7 +23,7 @@ type Props = {
|
|||
}
|
||||
|
||||
export const CqiMap = ({ maxBounds, minZoom, maxZoom }: Props) => {
|
||||
const params = useStore($searchParams) as SearchParamsCqiMap
|
||||
const params = useStore($searchParams) as CqiMapSearchparams
|
||||
|
||||
// Guard against invalid "anzeige" param values
|
||||
if (!validAnzeigeValues.includes(params.mode)) {
|
||||
|
|
|
@ -4,10 +4,10 @@ import type { FilterSpecification } from 'maplibre-gl'
|
|||
import { Layer, Source } from 'react-map-gl/maplibre'
|
||||
import { wrapFilterWithAll } from '../BaseMap/utils/wrapFilterWithAll'
|
||||
import { layerByGroups, layersSelected, legendByGroups } from './layers/layers'
|
||||
import { filterParamsObject, type SearchParamsCqiMap } from './storeCqi'
|
||||
import { filterParamsObject, type CqiMapSearchparams } from './storeCqi'
|
||||
import {default as dataTiles} from "../assets/data.pmtiles";
|
||||
export const MapSourceCqi = () => {
|
||||
const params = useStore($searchParams) as SearchParamsCqiMap
|
||||
const params = useStore($searchParams) as CqiMapSearchparams
|
||||
const mapData = useStore($clickedMapData)
|
||||
const mapDataIds = mapData?.map((feature) => feature.properties?.id) ?? []
|
||||
|
||||
|
@ -17,7 +17,9 @@ export const MapSourceCqi = () => {
|
|||
// console.log(map.current?.getStyle())
|
||||
const pmtilesUrl = "pmtiles://" + dataTiles
|
||||
|
||||
const focusFilter: ['match', ['get', string], (string | number)[], boolean, boolean][] = []
|
||||
const userFilterGroups: {
|
||||
[group: string]: ['in', string, ...(string | number)[]][]
|
||||
} = {}
|
||||
const filters = filterParamsObject(params.filters)
|
||||
const flatLayerGroups = Object.values(legendByGroups)
|
||||
.map((groups) => groups)
|
||||
|
@ -29,10 +31,14 @@ export const MapSourceCqi = () => {
|
|||
.find((g) => g.key === groupKey)
|
||||
?.legends?.find((l) => l.key === legendKey)?.filterConfig
|
||||
if (filterConfig) {
|
||||
focusFilter.push(['match', ['get', filterConfig.key], filterConfig.values, true, false])
|
||||
userFilterGroups[groupKey!] = [
|
||||
...(userFilterGroups[groupKey!] || []),
|
||||
['in', filterConfig.key, ...filterConfig.values],
|
||||
]
|
||||
}
|
||||
})
|
||||
}
|
||||
const userFilterExpression = Object.values(userFilterGroups).map((filters) => ['any', ...filters])
|
||||
|
||||
return (
|
||||
<Source
|
||||
|
@ -54,7 +60,7 @@ export const MapSourceCqi = () => {
|
|||
layout={layer.layout}
|
||||
filter={
|
||||
wrapFilterWithAll([
|
||||
wrapFilterWithAll(focusFilter),
|
||||
...userFilterExpression,
|
||||
...(layer.filter ? layer.filter : []),
|
||||
['in', 'id', ...mapDataIds],
|
||||
]) as FilterSpecification
|
||||
|
@ -78,7 +84,7 @@ export const MapSourceCqi = () => {
|
|||
layout={{ visibility: visible ? 'visible' : 'none' }}
|
||||
filter={
|
||||
wrapFilterWithAll([
|
||||
wrapFilterWithAll(focusFilter),
|
||||
...userFilterExpression,
|
||||
...(layer.filter ? layer.filter : []),
|
||||
]) as FilterSpecification
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import { OverlayLayerSelection } from './OverlayLayerSelection'
|
||||
import { OverlayLegendAndFocus } from './OverlayLegendAndFocus'
|
||||
import { OverlayLegendAndFilter } from './OverlayLegendAndFilter.tsx'
|
||||
|
||||
export const Overlay = () => {
|
||||
return (
|
||||
<nav className="absolute left-6 top-6 flex flex-col rounded-md bg-white shadow">
|
||||
<OverlayLayerSelection />
|
||||
<OverlayLegendAndFocus />
|
||||
<OverlayLegendAndFilter />
|
||||
</nav>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -3,19 +3,22 @@ import { RadioGroup } from '@headlessui/react'
|
|||
import { useStore } from '@nanostores/react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { twJoin } from 'tailwind-merge'
|
||||
import { layerSelection } from './layers/layers'
|
||||
import { type SearchParamsCqiMap } from './storeCqi'
|
||||
import { layerSelection, legendByGroups } from './layers/layers'
|
||||
import { type CqiMapSearchparams } from './storeCqi'
|
||||
import { defaultFilterByGroup, paramsWithDefaultFilters } from './utils/filterUtils'
|
||||
|
||||
export const OverlayLayerSelection = () => {
|
||||
const params = useStore($searchParams)
|
||||
const params = useStore($searchParams) as CqiMapSearchparams
|
||||
// TODO: I really don't get why we need this but something prevents the rerendering of the buttons so the active state is wrong. Did not find any AstroJS Docs on this. And we are doing what we are supposed to do with nanostores.
|
||||
const [localSelected, setLocalSelected] = useState<SearchParamsCqiMap['mode']>('cqi')
|
||||
const [localSelected, setLocalSelected] = useState<CqiMapSearchparams['mode']>('cqi')
|
||||
|
||||
const setSelected = (value: string) => {
|
||||
delete params.filter
|
||||
const setSelected = (value: CqiMapSearchparams['mode']) => {
|
||||
params.mode = value
|
||||
$searchParams.open(params)
|
||||
setLocalSelected(value as SearchParamsCqiMap['mode'])
|
||||
const curentLegendGroup = legendByGroups[params?.mode ?? 'cqi']
|
||||
const defaultFilters = defaultFilterByGroup(curentLegendGroup)
|
||||
const newParams = paramsWithDefaultFilters(defaultFilters, params)
|
||||
$searchParams.open(newParams)
|
||||
setLocalSelected(value)
|
||||
}
|
||||
|
||||
// Initialize URL with filter=none
|
||||
|
@ -23,7 +26,7 @@ export const OverlayLayerSelection = () => {
|
|||
setSelected(params.mode || 'cqi')
|
||||
}, [])
|
||||
|
||||
const handleChange = (value: SearchParamsCqiMap['mode']) => {
|
||||
const handleChange = (value: CqiMapSearchparams['mode']) => {
|
||||
setSelected(value)
|
||||
}
|
||||
|
||||
|
|
|
@ -2,22 +2,23 @@ import { $searchParams } from '../BaseMap/store'
|
|||
import { Disclosure } from '@headlessui/react'
|
||||
import { useStore } from '@nanostores/react'
|
||||
import { twJoin } from 'tailwind-merge'
|
||||
import { legendByGroups, type Legend } from './layers/layers'
|
||||
import { legendByGroups } from './layers/layers'
|
||||
import {
|
||||
filterParamsKey,
|
||||
filterParamsObject,
|
||||
filterParamsStringify,
|
||||
type SearchParamsCqiMap,
|
||||
type CqiMapSearchparams,
|
||||
} from './storeCqi'
|
||||
import { defaultFilterByGroup, paramsWithDefaultFilters } from './utils/filterUtils'
|
||||
|
||||
export const OverlayLegendAndFocus = () => {
|
||||
const params = useStore($searchParams) as SearchParamsCqiMap
|
||||
export const OverlayLegendAndFilter = () => {
|
||||
const params = useStore($searchParams) as CqiMapSearchparams
|
||||
const curentLegendGroup = legendByGroups[params?.mode ?? 'cqi']
|
||||
|
||||
// const map = useMap()
|
||||
// console.log(map.current?.getStyle())
|
||||
|
||||
const smallScreen = typeof window !== 'undefined' && window.innerWidth < 1024
|
||||
const legendDefaultClosedOnSmallScreen = typeof window !== 'undefined' && window.innerWidth < 1024
|
||||
|
||||
const filters = filterParamsObject(params.filters)
|
||||
|
||||
|
@ -25,45 +26,63 @@ export const OverlayLegendAndFocus = () => {
|
|||
const active = filters?.includes(key)
|
||||
if (active) {
|
||||
// remove
|
||||
console.log('Remove filter1', key, filters)
|
||||
const newFilterString = filterParamsStringify(filters?.filter((f) => f !== key))
|
||||
if (!newFilterString) {
|
||||
delete params.filters
|
||||
}
|
||||
const newParams = newFilterString ? { ...params, ...{ filters: newFilterString } } : params
|
||||
$searchParams.open(newParams)
|
||||
console.log('Remove filter2', newParams)
|
||||
} else {
|
||||
// add
|
||||
const filterString = filterParamsStringify([params?.filters, key])
|
||||
const newParams = filterString ? { ...params, ...{ filters: filterString } } : params
|
||||
$searchParams.open(newParams)
|
||||
console.log('Add filter', newParams)
|
||||
}
|
||||
}
|
||||
|
||||
// State if no filter is active except the default filter.
|
||||
// State if no filter is active except the default filter.
|
||||
const defaultFilters = defaultFilterByGroup(curentLegendGroup)
|
||||
const currentNonDefaultFilter = filters?.filter((f) => !defaultFilters.includes(f))
|
||||
const noUserFilter = currentNonDefaultFilter ? currentNonDefaultFilter?.length === 0 : true
|
||||
|
||||
const resetFilter = () => {
|
||||
const newParams = paramsWithDefaultFilters(defaultFilters, params)
|
||||
$searchParams.open(newParams)
|
||||
}
|
||||
|
||||
return (
|
||||
<Disclosure defaultOpen={!smallScreen}>
|
||||
<Disclosure defaultOpen={!legendDefaultClosedOnSmallScreen}>
|
||||
{({ open }) => (
|
||||
<>
|
||||
<Disclosure.Button
|
||||
className={twJoin(
|
||||
'gap-1 px-2 py-2 text-sm hover:font-medium',
|
||||
smallScreen ? 'flex' : 'hidden',
|
||||
)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
strokeWidth={1.5}
|
||||
stroke="currentColor"
|
||||
className={twJoin('h-5 w-5 transition-transform', open ? 'rotate-90 transform' : '')}
|
||||
>
|
||||
<path strokeLinecap="round" strokeLinejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" />
|
||||
</svg>
|
||||
Legende
|
||||
</Disclosure.Button>
|
||||
<div className="flex items-center justify-between">
|
||||
<Disclosure.Button className="flex grow gap-1 px-2 py-2 text-sm hover:font-medium">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
strokeWidth={1.5}
|
||||
stroke="currentColor"
|
||||
className={twJoin(
|
||||
'h-5 w-5 transition-transform',
|
||||
open ? 'rotate-90 transform' : '',
|
||||
)}
|
||||
>
|
||||
<path strokeLinecap="round" strokeLinejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" />
|
||||
</svg>
|
||||
Legende
|
||||
</Disclosure.Button>
|
||||
{!noUserFilter && (
|
||||
<>
|
||||
<button
|
||||
onClick={resetFilter}
|
||||
className="mr-1 underline decoration-yellow-500 underline-offset-2 hover:decoration-2"
|
||||
>
|
||||
Filter löschen
|
||||
</button>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
<Disclosure.Panel>
|
||||
{curentLegendGroup.map((legendGroup) => {
|
||||
return (
|
||||
|
@ -74,7 +93,6 @@ export const OverlayLegendAndFocus = () => {
|
|||
<ul
|
||||
className={twJoin(
|
||||
'group/legend px-2 pb-4 text-sm font-normal leading-4 text-gray-900',
|
||||
open && smallScreen ? '' : 'pt-4',
|
||||
)}
|
||||
>
|
||||
{legendGroup.legends.map((legend) => {
|
|
@ -3,7 +3,7 @@ import { useStore } from '@nanostores/react'
|
|||
import { twJoin } from 'tailwind-merge'
|
||||
import { legendCqi } from '../layers/layersCqi'
|
||||
import { legendLts } from '../layers/layersLts'
|
||||
import type { SearchParamsCqiMap } from '../storeCqi'
|
||||
import type { CqiMapSearchparams } from '../storeCqi'
|
||||
import { MapInspectorValueAsList } from './MapInspectorValueAsList'
|
||||
|
||||
type Props = {
|
||||
|
@ -11,7 +11,7 @@ type Props = {
|
|||
}
|
||||
|
||||
export const MapInspectorPrimaryInformation = ({ properties }: Props) => {
|
||||
const params = useStore($searchParams) as SearchParamsCqiMap
|
||||
const params = useStore($searchParams) as CqiMapSearchparams
|
||||
|
||||
if (!properties) {
|
||||
return null
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { cleanupMapboxLayerJson } from '../../BaseMap/utils/cleanupMapboxLayerJson'
|
||||
import type { SearchParamsCqiMap } from '../storeCqi'
|
||||
import type { CqiMapSearchparams } from '../storeCqi'
|
||||
import { layersCqi, legendCqi } from './layersCqi'
|
||||
import { layersIncompletness, legendIncompletness } from './layersIncompletness'
|
||||
import { layersLts, legendLts } from './layersLts'
|
||||
|
@ -50,7 +50,7 @@ export const layersSelected = [
|
|||
]
|
||||
|
||||
export const layerSelection: {
|
||||
key: SearchParamsCqiMap['mode']
|
||||
key: CqiMapSearchparams['mode']
|
||||
name: string
|
||||
description: null | string
|
||||
}[] = [
|
||||
|
@ -59,14 +59,13 @@ export const layerSelection: {
|
|||
{ key: 'incompleteness', name: 'Datenlücken', description: null },
|
||||
]
|
||||
|
||||
export const layerByGroups: Record<SearchParamsCqiMap['mode'], Record<string, any>[]> = {
|
||||
export const layerByGroups: Record<CqiMapSearchparams['mode'], Record<string, any>[]> = {
|
||||
cqi: layersCqi,
|
||||
lts: layersLts,
|
||||
incompleteness: layersIncompletness,
|
||||
}
|
||||
|
||||
export type FilterConfig = {
|
||||
groupKey: LegendGroup['key']
|
||||
key: string
|
||||
values: (string | number)[]
|
||||
}
|
||||
|
@ -86,7 +85,7 @@ export type Legend = {
|
|||
defaultOn?: true
|
||||
}
|
||||
|
||||
export const legendByGroups: Record<SearchParamsCqiMap['anzeige'], LegendGroup[]> = {
|
||||
export const legendByGroups: Record<CqiMapSearchparams['mode'], LegendGroup[]> = {
|
||||
cqi: legendCqi,
|
||||
lts: legendLts,
|
||||
incompleteness: legendIncompletness,
|
||||
|
|
|
@ -360,74 +360,74 @@ export const layersCqi = [
|
|||
export const legendCqi: LegendGroup[] = [
|
||||
{
|
||||
title: 'Hauptkategorie',
|
||||
key: 'main',
|
||||
key: 'cqi',
|
||||
primary: true,
|
||||
legends: [
|
||||
{
|
||||
key: 'index_0',
|
||||
key: 'l0',
|
||||
color: '#7a0403',
|
||||
label: '0-9 (am schlechtesten)',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [0] },
|
||||
filterConfig: { key: 'index_10', values: [0] },
|
||||
},
|
||||
{
|
||||
key: 'index_1',
|
||||
key: 'l1',
|
||||
color: '#ab1b04',
|
||||
label: '10-19',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [1] },
|
||||
filterConfig: { key: 'index_10', values: [1] },
|
||||
},
|
||||
{
|
||||
key: 'index_2',
|
||||
key: 'l2',
|
||||
color: '#d54a12',
|
||||
label: '20-29',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [2] },
|
||||
filterConfig: { key: 'index_10', values: [2] },
|
||||
},
|
||||
{
|
||||
key: 'index_3',
|
||||
key: 'l3',
|
||||
color: '#f5a038',
|
||||
label: '30-39',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [3] },
|
||||
filterConfig: { key: 'index_10', values: [3] },
|
||||
},
|
||||
{
|
||||
key: 'index_4',
|
||||
key: 'l4',
|
||||
color: '#f3cf33',
|
||||
label: '40-49',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [4] },
|
||||
filterConfig: { key: 'index_10', values: [4] },
|
||||
},
|
||||
{
|
||||
key: 'index_5',
|
||||
key: 'l5',
|
||||
color: '#e6f122',
|
||||
label: '50-59',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [5] },
|
||||
filterConfig: { key: 'index_10', values: [5] },
|
||||
},
|
||||
{
|
||||
key: 'index_6',
|
||||
key: 'l6',
|
||||
color: '#a7c878',
|
||||
label: '60-69',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [6] },
|
||||
filterConfig: { key: 'index_10', values: [6] },
|
||||
},
|
||||
{
|
||||
key: 'index_7',
|
||||
key: 'l7',
|
||||
color: '#679fce',
|
||||
label: '70-79',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [7] },
|
||||
filterConfig: { key: 'index_10', values: [7] },
|
||||
},
|
||||
{
|
||||
key: 'index_8',
|
||||
key: 'l8',
|
||||
color: '#4473e1',
|
||||
label: '80-89',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [8] },
|
||||
filterConfig: { key: 'index_10', values: [8] },
|
||||
},
|
||||
{
|
||||
key: 'index_9',
|
||||
key: 'l9',
|
||||
color: '#436dda',
|
||||
label: '90-99',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [9] },
|
||||
filterConfig: { key: 'index_10', values: [9] },
|
||||
},
|
||||
{
|
||||
key: 'index_10',
|
||||
key: 'l10',
|
||||
color: '#4143a7',
|
||||
label: '100 (am besten)',
|
||||
filterConfig: { groupKey: 'main', key: 'index_10', values: [10] },
|
||||
filterConfig: { key: 'index_10', values: [10] },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -440,7 +440,7 @@ export const legendCqi: LegendGroup[] = [
|
|||
key: 'yes',
|
||||
color: 'gray',
|
||||
label: 'Nur nutzbare anzeigen',
|
||||
filterConfig: { groupKey: 'usable', key: 'filter_usable', values: [1] },
|
||||
filterConfig: { key: 'filter_usable', values: [1] },
|
||||
defaultOn: true,
|
||||
},
|
||||
],
|
||||
|
|
|
@ -190,68 +190,68 @@ export const layersIncompletness = [
|
|||
export const legendIncompletness: LegendGroup[] = [
|
||||
{
|
||||
title: 'Hauptkategorie',
|
||||
key: 'main',
|
||||
key: 'missing',
|
||||
primary: true,
|
||||
legends: [
|
||||
{
|
||||
key: 'incompleteness_0',
|
||||
key: 'm0',
|
||||
color: '#fafafa',
|
||||
label: 'Vollständige Daten',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [0] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [0] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_10',
|
||||
key: 'm10',
|
||||
color: '#dfdfdf',
|
||||
label: 'Wenige Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [10] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [10] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_20',
|
||||
key: 'm20',
|
||||
color: '#c4c4c4',
|
||||
label: 'Wenige Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [20] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [20] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_30',
|
||||
key: 'm30',
|
||||
color: '#a8a8a8',
|
||||
label: 'Einige Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [30] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [30] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_40',
|
||||
key: 'm40',
|
||||
color: '#8d8d8d',
|
||||
label: 'Einige Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [40] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [40] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_50',
|
||||
key: 'm50',
|
||||
color: '#727272',
|
||||
label: 'Viele Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [50] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [50] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_60',
|
||||
key: 'm60',
|
||||
color: '#575757',
|
||||
label: 'Viele Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [60] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [60] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_70',
|
||||
key: 'm70',
|
||||
color: '#3b3b3b',
|
||||
label: 'Sehr viele Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [70] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [70] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_80',
|
||||
key: 'm80',
|
||||
color: '#202020',
|
||||
label: 'Sehr viele Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [80] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [80] },
|
||||
},
|
||||
{
|
||||
key: 'incompleteness_90',
|
||||
key: 'm90',
|
||||
color: '#000000',
|
||||
label: 'Fast alle Daten fehlen',
|
||||
filterConfig: { groupKey: 'main', key: 'data_incompleteness', values: [90] },
|
||||
filterConfig: { key: 'data_incompleteness', values: [90] },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|