diff --git a/package.json b/package.json
index ebaf2df..8602c1c 100644
--- a/package.json
+++ b/package.json
@@ -24,11 +24,13 @@
"pinia": "^3.0.3",
"tailwindcss": "^4.1.11",
"vue": "^3.5.18",
+ "vue-leaflet-markercluster": "^0.6.1",
"vue-router": "^4.5.1"
},
"devDependencies": {
"@prettier/plugin-oxc": "^0.0.4",
"@tsconfig/node22": "^22.0.2",
+ "@types/leaflet": "^1.9.20",
"@types/node": "^22.16.5",
"@vitejs/plugin-vue": "^6.0.1",
"@vue/eslint-config-prettier": "^10.2.0",
@@ -41,6 +43,7 @@
"npm-run-all2": "^8.0.4",
"oxlint": "~1.8.0",
"prettier": "3.6.2",
+ "sass-embedded": "^1.90.0",
"typescript": "~5.8.0",
"vite": "npm:rolldown-vite@latest",
"vite-plugin-vue-devtools": "^8.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f449565..1f7bd2d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,10 +10,10 @@ importers:
dependencies:
'@tailwindcss/vite':
specifier: ^4.1.11
- version: 4.1.11(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))
+ version: 4.1.11(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))
'@vue-leaflet/vue-leaflet':
specifier: ^0.10.1
- version: 0.10.1(leaflet@1.9.4)(typescript@5.8.3)
+ version: 0.10.1(@types/leaflet@1.9.20)(leaflet@1.9.4)(typescript@5.8.3)
leaflet:
specifier: ^1.9.4
version: 1.9.4
@@ -26,6 +26,9 @@ importers:
vue:
specifier: ^3.5.18
version: 3.5.18(typescript@5.8.3)
+ vue-leaflet-markercluster:
+ specifier: ^0.6.1
+ version: 0.6.1(@vue-leaflet/vue-leaflet@0.10.1(@types/leaflet@1.9.20)(leaflet@1.9.4)(typescript@5.8.3))(typescript@5.8.3)
vue-router:
specifier: ^4.5.1
version: 4.5.1(vue@3.5.18(typescript@5.8.3))
@@ -36,12 +39,15 @@ importers:
'@tsconfig/node22':
specifier: ^22.0.2
version: 22.0.2
+ '@types/leaflet':
+ specifier: ^1.9.20
+ version: 1.9.20
'@types/node':
specifier: ^22.16.5
version: 22.17.0
'@vitejs/plugin-vue':
specifier: ^6.0.1
- version: 6.0.1(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))(vue@3.5.18(typescript@5.8.3))
+ version: 6.0.1(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))
'@vue/eslint-config-prettier':
specifier: ^10.2.0
version: 10.2.0(eslint@9.32.0(jiti@2.5.1))(prettier@3.6.2)
@@ -72,15 +78,18 @@ importers:
prettier:
specifier: 3.6.2
version: 3.6.2
+ sass-embedded:
+ specifier: ^1.90.0
+ version: 1.90.0
typescript:
specifier: ~5.8.0
version: 5.8.3
vite:
specifier: npm:rolldown-vite@latest
- version: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
+ version: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
vite-plugin-vue-devtools:
specifier: ^8.0.0
- version: 8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))(vue@3.5.18(typescript@5.8.3))
+ version: 8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))
vue-tsc:
specifier: ^3.0.4
version: 3.0.5(typescript@5.8.3)
@@ -231,6 +240,9 @@ packages:
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
engines: {node: '>=6.9.0'}
+ '@bufbuild/protobuf@2.7.0':
+ resolution: {integrity: sha512-qn6tAIZEw5i/wiESBF4nQxZkl86aY4KoO0IkUa2Lh+rya64oTOdJQFlZuMwI1Qz9VBJQrQC4QlSA2DNek5gCOA==}
+
'@emnapi/core@1.4.5':
resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
@@ -472,6 +484,88 @@ packages:
cpu: [x64]
os: [win32]
+ '@parcel/watcher-android-arm64@2.5.1':
+ resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.1':
+ resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.1':
+ resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.1':
+ resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.1':
+ resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@parcel/watcher-linux-arm-musl@2.5.1':
+ resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.1':
+ resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.1':
+ resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ '@parcel/watcher-linux-x64-musl@2.5.1':
+ resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ '@parcel/watcher-win32-arm64@2.5.1':
+ resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.1':
+ resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.1':
+ resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.1':
+ resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
+ engines: {node: '>= 10.0.0'}
+
'@pkgr/core@0.2.9':
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
@@ -665,9 +759,15 @@ packages:
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+ '@types/geojson@7946.0.16':
+ resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
+
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ '@types/leaflet@1.9.20':
+ resolution: {integrity: sha512-rooalPMlk61LCaLOvBF2VIf9M47HgMQqi5xQ9QRi7c8PkdIe0WrIi5IxXUXQjAdL0c+vcQ01mYWbthzmp9GHWw==}
+
'@types/node@22.17.0':
resolution: {integrity: sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==}
@@ -917,6 +1017,9 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ buffer-builder@0.2.0:
+ resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==}
+
bundle-name@4.1.0:
resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
engines: {node: '>=18'}
@@ -932,6 +1035,10 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
chownr@3.0.0:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'}
@@ -943,6 +1050,9 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ colorjs.io@0.5.2:
+ resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==}
+
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -992,6 +1102,11 @@ packages:
resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
engines: {node: '>=12'}
+ detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
detect-libc@2.0.4:
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
engines: {node: '>=8'}
@@ -1205,6 +1320,9 @@ packages:
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
engines: {node: '>= 4'}
+ immutable@5.1.3:
+ resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -1447,6 +1565,9 @@ packages:
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
@@ -1584,6 +1705,10 @@ packages:
resolution: {integrity: sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==}
engines: {node: ^18.17.0 || >=20.5.0}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -1646,6 +1771,123 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
+ sass-embedded-all-unknown@1.90.0:
+ resolution: {integrity: sha512-/n7jTQvI+hftDDrHzK19G4pxfDzOhtjuQO1K54ui1pT2S0sWfWDjCYUbQgtWQ6FO7g5qWS0hgmrWdc7fmS3rgA==}
+ cpu: ['!arm', '!arm64', '!riscv64', '!x64']
+
+ sass-embedded-android-arm64@1.90.0:
+ resolution: {integrity: sha512-bkTlewzWksa6Sj4Zs1CWiutnvUbsO3xuYh2QBRknXsOtuMlfTPoXnwhCnyE4lSvUxw2qxSbv+NdQev9qMfsBgA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ sass-embedded-android-arm@1.90.0:
+ resolution: {integrity: sha512-usF6kVJQWa1CMgPH1nCT1y8KEmAT2fzB00dDIPBYHq8U5VZLCihi2bJRP5U9NlcwP1TlKGKCjwsbIdSjDKfecg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [android]
+
+ sass-embedded-android-riscv64@1.90.0:
+ resolution: {integrity: sha512-bpqCIOaX+0Lou/BNJ4iJIKbWbVaYXFdg26C3gG6gxxKZRzp/6OYCxHrIQDwhKz6YC8Q5rwNPMpfDVYbWPcgroA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [android]
+
+ sass-embedded-android-x64@1.90.0:
+ resolution: {integrity: sha512-GNxVKnCMd/p2icZ+Q4mhvNk19NrLXq1C4guiqjrycHYQLEnxRkjbW1QXYiL+XyDn4e+Bcq0knzG0I9pMuNZxkg==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [android]
+
+ sass-embedded-darwin-arm64@1.90.0:
+ resolution: {integrity: sha512-qr4KBMJfBA+lzXiWnP00qzpLzHQzGd1OSK3VHcUFjZ8l7VOYf2R7Tc3fcTLhpaNPMJtTK0jrk8rFqBvsiZExnA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ sass-embedded-darwin-x64@1.90.0:
+ resolution: {integrity: sha512-z2nr1nNqtWDLVRwTbHtL7zriK90U7O/Gb15UaCSMYeAz9Y+wog5s/sDEKm0+GsVdzzkaCaMZRWGN4jTilnUwmQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ sass-embedded-linux-arm64@1.90.0:
+ resolution: {integrity: sha512-SPMcGZuP71Fj8btCGtlBnv8h8DAbJn8EQfLzXs9oo6NGFFLVjNGiFpqGfgtUV6DLWCuaRyEFeViO7wZow/vKGQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ sass-embedded-linux-arm@1.90.0:
+ resolution: {integrity: sha512-FeBxI5Q2HvM3CCadcEcQgvWbDPVs2YEF0PZ87fbAVTCG8dV+iNnQreSz7GRJroknpvbRhm5t2gedvcgmTnPb2Q==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ sass-embedded-linux-musl-arm64@1.90.0:
+ resolution: {integrity: sha512-xLH7+PFq763MoEm3vI7hQk5E+nStiLWbijHEYW/tEtCbcQIphgzSkDItEezxXew3dU4EJ1jqrBUySPdoXFLqWA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ sass-embedded-linux-musl-arm@1.90.0:
+ resolution: {integrity: sha512-EB2z0fUXdUdvSoddf4DzdZQkD/xyreD72gwAi8YScgUvR4HMXI7bLcK/n78Rft6OnqvV8090hjC8FsLDo3x5xQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ sass-embedded-linux-musl-riscv64@1.90.0:
+ resolution: {integrity: sha512-L21UkOgnSrD+ERF+jo1IWneGv40t0ap9+3cI+wZWYhQS5MkxponhT9QaNU57JEDJwB9mOl01LVw14opz4SN+VQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+
+ sass-embedded-linux-musl-x64@1.90.0:
+ resolution: {integrity: sha512-NeAycQlsdhFdnIeSmRmScYUyCd+uE+x15NLFunbF8M0PgCKurrUhaxgGKSuBbaK56FpxarKOHCqcOrWbemIGzQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ sass-embedded-linux-riscv64@1.90.0:
+ resolution: {integrity: sha512-lJopaQhW8S+kaQ61vMqq3c+bOurcf9RdZf2EmzQYpc2y1vT5cWfRNrRkbAgO/23IQxsk/fq3UIUnsjnyQmi6MA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [riscv64]
+ os: [linux]
+
+ sass-embedded-linux-x64@1.90.0:
+ resolution: {integrity: sha512-Cc061gBfMPwH9rN7neQaH36cvOQC+dFMSGIeX5qUOhrEL4Ng51iqBV6aI4RIB1jCFGth6eDydVRN1VdV9qom8A==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ sass-embedded-unknown-all@1.90.0:
+ resolution: {integrity: sha512-DBGzHVCJDqtjTHZFohush9YTxd4ZxhIygIRTNRXnA0359woF9Z8AS7/YxfzwkqrTX5durSJa6ZamGFYVLoRphQ==}
+ os: ['!android', '!darwin', '!linux', '!win32']
+
+ sass-embedded-win32-arm64@1.90.0:
+ resolution: {integrity: sha512-c3/vL/CATnaW3x/6kcNbCROEOUU7zvJpIURp7M9664GJj08/gLPRWKNruw0OkAPQ3C5TTQz7+/fQWEpRA6qmvA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ sass-embedded-win32-x64@1.90.0:
+ resolution: {integrity: sha512-PFwdW7AYtCkwi3NfWFeexvIZEJ0nuShp8Bjjc3px756+18yYwBWa78F4TGdIQmJfpYKBhgkVjFOctwq+NCHntA==}
+ engines: {node: '>=14.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ sass-embedded@1.90.0:
+ resolution: {integrity: sha512-XP1EltyLLfuU5FsGVjSz8PcT925oA3rDnJTWOEBHR42k62ZEbKTcZ4gVlFwKi0Ggzi5E8v1K2BplD8ELHwusYg==}
+ engines: {node: '>=16.0.0'}
+ hasBin: true
+
+ sass@1.90.0:
+ resolution: {integrity: sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -1699,6 +1941,18 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+
+ sync-child-process@1.0.2:
+ resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==}
+ engines: {node: '>=16.0.0'}
+
+ sync-message-port@1.1.3:
+ resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==}
+ engines: {node: '>=16.0.0'}
+
synckit@0.11.11:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -1774,6 +2028,9 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ varint@6.0.0:
+ resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
+
vite-dev-rpc@1.1.0:
resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==}
peerDependencies:
@@ -1814,6 +2071,11 @@ packages:
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
+ vue-leaflet-markercluster@0.6.1:
+ resolution: {integrity: sha512-jdU1k7qRb7R4o7kNjcH6hQkw9P0UPUdXcfGcpvFIpWPCeVbkTMo2vK2wIHtZexScw2Pa+tYjsZlYxrOHOR6+gA==}
+ peerDependencies:
+ '@vue-leaflet/vue-leaflet': ^0.10.1
+
vue-router@4.5.1:
resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==}
peerDependencies:
@@ -2068,6 +2330,8 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
+ '@bufbuild/protobuf@2.7.0': {}
+
'@emnapi/core@1.4.5':
dependencies:
'@emnapi/wasi-threads': 1.0.4
@@ -2262,6 +2526,67 @@ snapshots:
'@oxlint/win32-x64@1.8.0':
optional: true
+ '@parcel/watcher-android-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.1':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.1':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.1':
+ optional: true
+
+ '@parcel/watcher@2.5.1':
+ dependencies:
+ detect-libc: 1.0.3
+ is-glob: 4.0.3
+ micromatch: 4.0.8
+ node-addon-api: 7.1.1
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.1
+ '@parcel/watcher-darwin-arm64': 2.5.1
+ '@parcel/watcher-darwin-x64': 2.5.1
+ '@parcel/watcher-freebsd-x64': 2.5.1
+ '@parcel/watcher-linux-arm-glibc': 2.5.1
+ '@parcel/watcher-linux-arm-musl': 2.5.1
+ '@parcel/watcher-linux-arm64-glibc': 2.5.1
+ '@parcel/watcher-linux-arm64-musl': 2.5.1
+ '@parcel/watcher-linux-x64-glibc': 2.5.1
+ '@parcel/watcher-linux-x64-musl': 2.5.1
+ '@parcel/watcher-win32-arm64': 2.5.1
+ '@parcel/watcher-win32-ia32': 2.5.1
+ '@parcel/watcher-win32-x64': 2.5.1
+ optional: true
+
'@pkgr/core@0.2.9': {}
'@polka/url@1.0.0-next.29': {}
@@ -2386,12 +2711,12 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.11
'@tailwindcss/oxide-win32-x64-msvc': 4.1.11
- '@tailwindcss/vite@4.1.11(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))':
+ '@tailwindcss/vite@4.1.11(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))':
dependencies:
'@tailwindcss/node': 4.1.11
'@tailwindcss/oxide': 4.1.11
tailwindcss: 4.1.11
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
'@tsconfig/node22@22.0.2': {}
@@ -2402,8 +2727,14 @@ snapshots:
'@types/estree@1.0.8': {}
+ '@types/geojson@7946.0.16': {}
+
'@types/json-schema@7.0.15': {}
+ '@types/leaflet@1.9.20':
+ dependencies:
+ '@types/geojson': 7946.0.16
+
'@types/node@22.17.0':
dependencies:
undici-types: 6.21.0
@@ -2501,10 +2832,10 @@ snapshots:
'@typescript-eslint/types': 8.39.0
eslint-visitor-keys: 4.2.1
- '@vitejs/plugin-vue@6.0.1(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))(vue@3.5.18(typescript@5.8.3))':
+ '@vitejs/plugin-vue@6.0.1(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
vue: 3.5.18(typescript@5.8.3)
'@volar/language-core@2.4.22':
@@ -2519,10 +2850,12 @@ snapshots:
path-browserify: 1.0.1
vscode-uri: 3.1.0
- '@vue-leaflet/vue-leaflet@0.10.1(leaflet@1.9.4)(typescript@5.8.3)':
+ '@vue-leaflet/vue-leaflet@0.10.1(@types/leaflet@1.9.20)(leaflet@1.9.4)(typescript@5.8.3)':
dependencies:
leaflet: 1.9.4
vue: 3.5.18(typescript@5.8.3)
+ optionalDependencies:
+ '@types/leaflet': 1.9.20
transitivePeerDependencies:
- typescript
@@ -2596,14 +2929,14 @@ snapshots:
dependencies:
'@vue/devtools-kit': 7.7.7
- '@vue/devtools-core@8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))(vue@3.5.18(typescript@5.8.3))':
+ '@vue/devtools-core@8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@vue/devtools-kit': 8.0.0
'@vue/devtools-shared': 8.0.0
mitt: 3.0.1
nanoid: 5.1.5
pathe: 2.0.3
- vite-hot-client: 2.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))
+ vite-hot-client: 2.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))
vue: 3.5.18(typescript@5.8.3)
transitivePeerDependencies:
- vite
@@ -2751,6 +3084,8 @@ snapshots:
node-releases: 2.0.19
update-browserslist-db: 1.1.3(browserslist@4.25.1)
+ buffer-builder@0.2.0: {}
+
bundle-name@4.1.0:
dependencies:
run-applescript: 7.0.0
@@ -2764,6 +3099,11 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+ optional: true
+
chownr@3.0.0: {}
color-convert@2.0.1:
@@ -2772,6 +3112,8 @@ snapshots:
color-name@1.1.4: {}
+ colorjs.io@0.5.2: {}
+
concat-map@0.0.1: {}
convert-source-map@2.0.0: {}
@@ -2807,6 +3149,9 @@ snapshots:
define-lazy-prop@3.0.0: {}
+ detect-libc@1.0.3:
+ optional: true
+
detect-libc@2.0.4: {}
electron-to-chromium@1.5.197: {}
@@ -3024,6 +3369,8 @@ snapshots:
ignore@7.0.5: {}
+ immutable@5.1.3: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -3194,6 +3541,9 @@ snapshots:
natural-compare@1.4.0: {}
+ node-addon-api@7.1.1:
+ optional: true
+
node-releases@2.0.19: {}
npm-normalize-package-bin@4.0.0: {}
@@ -3340,13 +3690,16 @@ snapshots:
json-parse-even-better-errors: 4.0.0
npm-normalize-package-bin: 4.0.0
+ readdirp@4.1.2:
+ optional: true
+
resolve-from@4.0.0: {}
reusify@1.1.0: {}
rfdc@1.4.1: {}
- rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1):
+ rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0):
dependencies:
fdir: 6.4.6(picomatch@4.0.3)
lightningcss: 1.30.1
@@ -3358,6 +3711,8 @@ snapshots:
'@types/node': 22.17.0
fsevents: 2.3.3
jiti: 2.5.1
+ sass: 1.90.0
+ sass-embedded: 1.90.0
rolldown@1.0.0-beta.30:
dependencies:
@@ -3387,6 +3742,107 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
+ sass-embedded-all-unknown@1.90.0:
+ dependencies:
+ sass: 1.90.0
+ optional: true
+
+ sass-embedded-android-arm64@1.90.0:
+ optional: true
+
+ sass-embedded-android-arm@1.90.0:
+ optional: true
+
+ sass-embedded-android-riscv64@1.90.0:
+ optional: true
+
+ sass-embedded-android-x64@1.90.0:
+ optional: true
+
+ sass-embedded-darwin-arm64@1.90.0:
+ optional: true
+
+ sass-embedded-darwin-x64@1.90.0:
+ optional: true
+
+ sass-embedded-linux-arm64@1.90.0:
+ optional: true
+
+ sass-embedded-linux-arm@1.90.0:
+ optional: true
+
+ sass-embedded-linux-musl-arm64@1.90.0:
+ optional: true
+
+ sass-embedded-linux-musl-arm@1.90.0:
+ optional: true
+
+ sass-embedded-linux-musl-riscv64@1.90.0:
+ optional: true
+
+ sass-embedded-linux-musl-x64@1.90.0:
+ optional: true
+
+ sass-embedded-linux-riscv64@1.90.0:
+ optional: true
+
+ sass-embedded-linux-x64@1.90.0:
+ optional: true
+
+ sass-embedded-unknown-all@1.90.0:
+ dependencies:
+ sass: 1.90.0
+ optional: true
+
+ sass-embedded-win32-arm64@1.90.0:
+ optional: true
+
+ sass-embedded-win32-x64@1.90.0:
+ optional: true
+
+ sass-embedded@1.90.0:
+ dependencies:
+ '@bufbuild/protobuf': 2.7.0
+ buffer-builder: 0.2.0
+ colorjs.io: 0.5.2
+ immutable: 5.1.3
+ rxjs: 7.8.2
+ supports-color: 8.1.1
+ sync-child-process: 1.0.2
+ varint: 6.0.0
+ optionalDependencies:
+ sass-embedded-all-unknown: 1.90.0
+ sass-embedded-android-arm: 1.90.0
+ sass-embedded-android-arm64: 1.90.0
+ sass-embedded-android-riscv64: 1.90.0
+ sass-embedded-android-x64: 1.90.0
+ sass-embedded-darwin-arm64: 1.90.0
+ sass-embedded-darwin-x64: 1.90.0
+ sass-embedded-linux-arm: 1.90.0
+ sass-embedded-linux-arm64: 1.90.0
+ sass-embedded-linux-musl-arm: 1.90.0
+ sass-embedded-linux-musl-arm64: 1.90.0
+ sass-embedded-linux-musl-riscv64: 1.90.0
+ sass-embedded-linux-musl-x64: 1.90.0
+ sass-embedded-linux-riscv64: 1.90.0
+ sass-embedded-linux-x64: 1.90.0
+ sass-embedded-unknown-all: 1.90.0
+ sass-embedded-win32-arm64: 1.90.0
+ sass-embedded-win32-x64: 1.90.0
+
+ sass@1.90.0:
+ dependencies:
+ chokidar: 4.0.3
+ immutable: 5.1.3
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.1
+ optional: true
+
semver@6.3.1: {}
semver@7.7.2: {}
@@ -3423,6 +3879,16 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ sync-child-process@1.0.2:
+ dependencies:
+ sync-message-port: 1.1.3
+
+ sync-message-port@1.1.3: {}
+
synckit@0.11.11:
dependencies:
'@pkgr/core': 0.2.9
@@ -3455,8 +3921,7 @@ snapshots:
dependencies:
typescript: 5.8.3
- tslib@2.8.1:
- optional: true
+ tslib@2.8.1: {}
type-check@0.4.0:
dependencies:
@@ -3496,17 +3961,19 @@ snapshots:
util-deprecate@1.0.2: {}
- vite-dev-rpc@1.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)):
+ varint@6.0.0: {}
+
+ vite-dev-rpc@1.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)):
dependencies:
birpc: 2.5.0
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
- vite-hot-client: 2.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
+ vite-hot-client: 2.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))
- vite-hot-client@2.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)):
+ vite-hot-client@2.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)):
dependencies:
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
- vite-plugin-inspect@11.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)):
+ vite-plugin-inspect@11.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)):
dependencies:
ansis: 4.1.0
debug: 4.4.1
@@ -3516,27 +3983,27 @@ snapshots:
perfect-debounce: 1.0.0
sirv: 3.0.1
unplugin-utils: 0.2.5
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
- vite-dev-rpc: 1.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
+ vite-dev-rpc: 1.1.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))
transitivePeerDependencies:
- supports-color
- vite-plugin-vue-devtools@8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))(vue@3.5.18(typescript@5.8.3)):
+ vite-plugin-vue-devtools@8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3)):
dependencies:
- '@vue/devtools-core': 8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))(vue@3.5.18(typescript@5.8.3))
+ '@vue/devtools-core': 8.0.0(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))
'@vue/devtools-kit': 8.0.0
'@vue/devtools-shared': 8.0.0
execa: 9.6.0
sirv: 3.0.1
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
- vite-plugin-inspect: 11.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))
- vite-plugin-vue-inspector: 5.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1))
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
+ vite-plugin-inspect: 11.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))
+ vite-plugin-vue-inspector: 5.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0))
transitivePeerDependencies:
- '@nuxt/kit'
- supports-color
- vue
- vite-plugin-vue-inspector@5.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)):
+ vite-plugin-vue-inspector@5.3.2(rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)):
dependencies:
'@babel/core': 7.28.0
'@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0)
@@ -3547,7 +4014,7 @@ snapshots:
'@vue/compiler-dom': 3.5.18
kolorist: 1.8.0
magic-string: 0.30.17
- vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)
+ vite: rolldown-vite@7.0.12(@types/node@22.17.0)(jiti@2.5.1)(sass-embedded@1.90.0)(sass@1.90.0)
transitivePeerDependencies:
- supports-color
@@ -3565,6 +4032,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ vue-leaflet-markercluster@0.6.1(@vue-leaflet/vue-leaflet@0.10.1(@types/leaflet@1.9.20)(leaflet@1.9.4)(typescript@5.8.3))(typescript@5.8.3):
+ dependencies:
+ '@vue-leaflet/vue-leaflet': 0.10.1(@types/leaflet@1.9.20)(leaflet@1.9.4)(typescript@5.8.3)
+ vue: 3.5.18(typescript@5.8.3)
+ transitivePeerDependencies:
+ - typescript
+
vue-router@4.5.1(vue@3.5.18(typescript@5.8.3)):
dependencies:
'@vue/devtools-api': 6.6.4
diff --git a/public/map/icons/asian.svg b/public/map/icons/asian.svg
new file mode 100644
index 0000000..61f60f6
--- /dev/null
+++ b/public/map/icons/asian.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/bakery.svg b/public/map/icons/bakery.svg
new file mode 100644
index 0000000..374ff72
--- /dev/null
+++ b/public/map/icons/bakery.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/bar.svg b/public/map/icons/bar.svg
new file mode 100644
index 0000000..7a0ca12
--- /dev/null
+++ b/public/map/icons/bar.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/burgers.svg b/public/map/icons/burgers.svg
new file mode 100644
index 0000000..91de416
--- /dev/null
+++ b/public/map/icons/burgers.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/italian.svg b/public/map/icons/italian.svg
new file mode 100644
index 0000000..6b08da2
--- /dev/null
+++ b/public/map/icons/italian.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/restaurant.svg b/public/map/icons/restaurant.svg
new file mode 100644
index 0000000..bfef082
--- /dev/null
+++ b/public/map/icons/restaurant.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/seafood.svg b/public/map/icons/seafood.svg
new file mode 100644
index 0000000..30269ab
--- /dev/null
+++ b/public/map/icons/seafood.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/map/icons/vegetarian.svg b/public/map/icons/vegetarian.svg
new file mode 100644
index 0000000..e362dd9
--- /dev/null
+++ b/public/map/icons/vegetarian.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/App.vue b/src/App.vue
index 724205f..a6301b5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,27 +1,110 @@
-
+
+
+
+
+
+
+ {{ marker.title }}
+
+ {{ marker.reviews?.[0].grade }} / 20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/src/stores/counter.ts b/src/stores/counter.ts
deleted file mode 100644
index b6757ba..0000000
--- a/src/stores/counter.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ref, computed } from 'vue'
-import { defineStore } from 'pinia'
-
-export const useCounterStore = defineStore('counter', () => {
- const count = ref(0)
- const doubleCount = computed(() => count.value * 2)
- function increment() {
- count.value++
- }
-
- return { count, doubleCount, increment }
-})
diff --git a/src/stores/reviews.ts b/src/stores/reviews.ts
new file mode 100644
index 0000000..13f2e93
--- /dev/null
+++ b/src/stores/reviews.ts
@@ -0,0 +1,775 @@
+import type { PointTuple } from 'leaflet'
+import { defineStore } from 'pinia'
+
+type MarkerType = "restaurant" | "bar" | "bakery"
+type FoodType = "mixed" | "asian" | "vegetarian" | "italian" | "fast-food" | "street-food" | "burgers" | "seafood" | "creperie" | "eastern"
+
+interface ReviewMarker {
+ coords: PointTuple
+ title?: string
+ type?: MarkerType
+ food?: FoodType
+ reviews?: Review[]
+}
+
+interface Review {
+ text?: string
+ grade: number
+}
+
+export const useReviewStore = defineStore('reviews', () => {
+ const markers: ReviewMarker[] = [
+ {
+ title: "La Tempête",
+ coords: [47.47828668587478, -3.125865802320788],
+ type: "restaurant",
+ food: "seafood",
+ reviews: [
+ {
+ grade: 20
+ }
+ ]
+ },
+ {
+ title: "Khmer Thaï",
+ coords: [48.11752297250921, -1.6811361830581657],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 16
+ }
+ ]
+ },
+ {
+ title: "La Baie d'Halong",
+ coords: [48.724854571841945, -3.9833849929135576],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 18.5
+ }
+ ]
+ },
+ {
+ title: "Angello",
+ coords: [48.10933306853774, -1.6847963807279722],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 17.5
+ }
+ ]
+ },
+ {
+ title: "Le Petit Hanoï",
+ coords: [48.10850561023402, -1.684263611795858],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 17.5
+ }
+ ]
+ },
+ {
+ title: "Côté Sushi",
+ coords: [48.11324625619256, -1.6800305422199695],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 17
+ }
+ ]
+ },
+ {
+ title: "Dans la Grand Rue",
+ coords: [48.684192460939094, -3.986498144514444],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 16.5
+ }
+ ]
+ },
+ {
+ title: "Fringale",
+ coords: [48.01905889927451, -2.171397985096437],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 16.5
+ }
+ ]
+ },
+ {
+ title: "Cibeles",
+ coords: [48.106735005295626, -1.6856652735268327],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 16.5
+ }
+ ]
+ },
+ {
+ title: "La Lupa",
+ coords: [48.11295052226835, -1.6812203185427346],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 16.5
+ }
+ ]
+ },
+ {
+ title: "Le Bacchus",
+ coords: [48.10855324414594, -1.6973786525587304],
+ type: "bar",
+ reviews: [
+ {
+ grade: 16.5
+ }
+ ]
+ },
+ {
+ title: "Le Coucou Rennais",
+ coords: [48.11534187578985, -1.678974672201788],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 16.5
+ }
+ ]
+ },
+ {
+ title: "Le Tourne Pierre",
+ coords: [48.64939200441161, -2.0238274201262283],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 16
+ }
+ ]
+ },
+ {
+ title: "Casa Antonio",
+ coords: [48.108374092201004, -1.676335338367073],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 16
+ }
+ ]
+ },
+ {
+ title: "Hot My Dog",
+ coords: [48.11026179127679, -1.6874321757846735],
+ type: "restaurant",
+ food: "street-food",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Banh Mi Viet",
+ coords: [48.11400719159279, -1.6807249915598401],
+ type: "restaurant",
+ food: "street-food",
+ reviews: [
+ {
+ grade: 15.5
+ }
+ ]
+ },
+ {
+ title: "Asian Street Food",
+ coords: [50.40718269352876, 1.564250350722199],
+ type: "restaurant",
+ food: "street-food",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Pépé Pizza",
+ coords: [50.48121523204103, 1.590577696567199],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "La Cabane",
+ coords: [47.215538947496775, -1.552375181167602],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "KilKenny's Pub",
+ coords: [48.11105421896557, -1.6773275062735566],
+ type: "bar",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "La Louperie",
+ coords: [48.11899359758488, -1.668218313830956],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "La Casa Pépé",
+ coords: [48.11192815040314, -1.6758654492733234],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Monsieur Joe",
+ coords: [48.11039424415681, -1.6627597599281814],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Fox and Friends",
+ coords: [48.11215429073604, -1.6830048833083207],
+ type: "bar",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Ty'Anna",
+ coords: [48.11474624851543, -1.6814620536068385],
+ type: "bar",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Pitaya",
+ coords: [48.11275152309647, -1.681332848723036],
+ type: "restaurant",
+ food: "street-food",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Louise - Bistrot vivant ",
+ coords: [48.102723651057815, -1.6623584050501647],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Les Brocanteurs",
+ coords: [48.111004933372435, -1.6809616054195273],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Panier Vert",
+ coords: [48.11328698821665, -1.6611717430165736],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 15
+ }
+ ]
+ },
+ {
+ title: "Uliva",
+ coords: [48.136000026894976, -1.6681454418705541],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 14.5
+ }
+ ]
+ },
+ {
+ title: "La Ptite Flambée",
+ coords: [48.10531486284804, -1.6284269785657488],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 14.5
+ }
+ ]
+ },
+ {
+ title: "Whitefields Café",
+ coords: [48.13507870007574, -1.6225106053811715],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 14.5
+ }
+ ]
+ },
+ {
+ title: "Les 3 Brasseurs",
+ coords: [48.132017471024135, -1.6888373517551438],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 14.5
+ }
+ ]
+ },
+ {
+ title: "Chez Les Ducs",
+ coords: [47.21628942491444, -1.5506918098742497],
+ type: "restaurant",
+ food: "creperie",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "Penny Lane",
+ coords: [48.11103695795259, -1.6786062621912323],
+ type: "bar",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "La Cucina",
+ coords: [48.11403284472226, -1.680257872370312],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "Coppa Saint Mélaine",
+ coords: [48.11480321724176, -1.676270117028458],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "Les Grands Gamins",
+ coords: [48.109745722688515, -1.6896362295368355],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "La Cité d'Ys",
+ coords: [48.108656698303605, -1.6772447857456239],
+ type: "bar",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "Falafel",
+ coords: [48.11601935822433, -1.6807647155460153],
+ type: "restaurant",
+ food: "eastern",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "Basilic & Co",
+ coords: [48.109668130909405, -1.6657984439029816],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "L'Escale",
+ coords: [50.7304430557406, 1.5963067512524898],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 13.5
+ }
+ ]
+ },
+ {
+ title: "Mary Stuart",
+ coords: [48.68904281867946, -3.9691572771418047],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 13.5
+ }
+ ]
+ },
+ {
+ title: "Le Papier Timbré",
+ coords: [48.115182616625766, -1.6846097395426023],
+ type: "bar",
+ reviews: [
+ {
+ grade: 13.5
+ }
+ ]
+ },
+ {
+ title: "Big Fernand",
+ coords: [48.11347562584714, -1.6814439702872734],
+ type: "restaurant",
+ food: "burgers",
+ reviews: [
+ {
+ grade: 14
+ }
+ ]
+ },
+ {
+ title: "Le Wok",
+ coords: [48.129943141404155, -1.6427404479388241],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "La Gavotte",
+ coords: [48.11194212832854, -1.675360124008564],
+ type: "restaurant",
+ food: "creperie",
+ reviews: [
+ {
+ grade: 13
+ }
+ ]
+ },
+ {
+ title: "Les Burgers de Colette",
+ coords: [48.113617013564735, -1.6775973992185587],
+ type: "restaurant",
+ food: "burgers",
+ reviews: [
+ {
+ grade: 13
+ }
+ ]
+ },
+ {
+ title: "Le Chanya",
+ coords: [48.11976336112167, -1.6665742873250897],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 13
+ }
+ ]
+ },
+ {
+ title: "Le Lapin noir",
+ coords: [48.11095515153713, -1.677499632237847],
+ type: "restaurant",
+ food: "vegetarian",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "Tiffany's",
+ coords: [48.1108461948547, -1.669435256663923],
+ type: "bar",
+ reviews: [
+ {
+ grade: 12.5
+ }
+ ]
+ },
+ {
+ title: "Au Bureau",
+ coords: [48.11178519749741, -1.5901936624448747],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 11
+ }
+ ]
+ },
+ {
+ title: "Boulangerie 'My'",
+ coords: [48.1083913929429, -1.6933925246110162],
+ type: "bakery",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "Roadside",
+ coords: [48.108738196772215, -1.6776529242210632],
+ type: "restaurant",
+ food: "burgers",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "Poutines Bros",
+ coords: [48.11380361886915, -1.6809323015470785],
+ type: "restaurant",
+ food: "burgers",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "Les Italiens du coin",
+ coords: [48.11623649490153, -1.6739699469480376],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "O'bread",
+ coords: [48.12986333170566, -1.6569573969582505],
+ type: "restaurant",
+ food: "fast-food",
+ reviews: [
+ {
+ grade: 12
+ }
+ ]
+ },
+ {
+ title: "Black and White Burger",
+ coords: [48.10919682486201, -1.6799545325429213],
+ type: "restaurant",
+ food: "burgers",
+ reviews: [
+ {
+ grade: 11.5
+ }
+ ]
+ },
+ {
+ title: "Ramen ya",
+ coords: [48.1143674948123, -1.6791145410742345],
+ type: "restaurant",
+ food: "asian",
+ reviews: [
+ {
+ grade: 11
+ }
+ ]
+ },
+ {
+ title: "Class'Croute",
+ coords: [48.13042865928908, -1.6223519152906614],
+ type: "restaurant",
+ food: "street-food",
+ reviews: [
+ {
+ grade: 10
+ }
+ ]
+ },
+ {
+ title: "Coppa Colombier",
+ coords: [48.10486715424073, -1.678274121410079],
+ type: "restaurant",
+ food: "italian",
+ reviews: [
+ {
+ grade: 10
+ }
+ ]
+ },
+ {
+ title: "Al'saj",
+ coords: [48.11406777261912, -1.6795804290437015],
+ type: "restaurant",
+ food: "eastern",
+ reviews: [
+ {
+ grade: 8.5
+ }
+ ]
+ },
+ {
+ title: "Frencheez",
+ coords: [48.114769618169206, -1.6791796367468956],
+ type: "restaurant",
+ food: "fast-food",
+ reviews: [
+ {
+ grade: 8
+ }
+ ]
+ },
+ {
+ title: "Royal Kébab",
+ coords: [48.10754609376947, -1.6731889814647676],
+ type: "restaurant",
+ food: "fast-food",
+ reviews: [
+ {
+ grade: 7
+ }
+ ]
+ },
+ {
+ title: "Ethnic Food",
+ coords: [48.11425969273338, -1.6798136555011158],
+ type: "restaurant",
+ food: "fast-food",
+ reviews: [
+ {
+ grade: 7
+ }
+ ]
+ },
+ {
+ title: "Tacozh",
+ coords: [48.11045956306925, -1.6787808089703555],
+ type: "restaurant",
+ food: "street-food",
+ reviews: [
+ {
+ grade: 6.5
+ }
+ ]
+ },
+ {
+ title: "Croc' Midi",
+ coords: [48.10581968022915, -1.6284936688855927],
+ type: "restaurant",
+ food: "fast-food",
+ reviews: [
+ {
+ grade: 6
+ }
+ ]
+ },
+ {
+ title: "Ober food",
+ coords: [48.11342567412467, -1.6615374938838021],
+ type: "restaurant",
+ food: "fast-food",
+ reviews: [
+ {
+ grade: 3.5
+ }
+ ]
+ },
+ {
+ title: "Les Clandestines",
+ coords: [48.112433245186544, -1.6668202940483952],
+ type: "restaurant",
+ food: "mixed",
+ reviews: [
+ {
+ grade: 2
+ }
+ ]
+ },
+ ]
+
+ return { markers }
+})