Files
nodeMap/package.json
ISA d8567a9928 feat: implement map-specific localStorage and TALAS-Kabelstrecken dependency logic
- Add map-specific localStorage keys using URL parameters (m=mapId, u=userId)
- Implement kartenspezifische Sichtbarkeitseinstellungen per Map/User
- Fix localStorage priority over GisSystemStatic Allow values to preserve user settings
- Add bidirectional TALAS ↔ Kabelstrecken dependency logic:
  * Kabelstrecken aktiviert → TALAS automatisch aktiviert
  * TALAS deaktiviert → Kabelstrecken automatisch deaktiviert
- Update mapLayersSlice.js to respect existing localStorage values over system defaults
- Modify MapComponent.js to load map-specific visibility settings on mount
- Update MapLayersControlPanel.js with kartenspezifische localStorage handling
- Fix useDynamicDeviceLayers.js visibility logic (corrected boolean conditions)
- Update useAreaMarkersLayer.js for map-specific localStorage keys

BREAKING CHANGES:
- localStorage structure changed from "mapLayersVisibility" to "mapLayersVisibility_m{mapId}_u{userId}"
- User visibility preferences now have priority over GisSystemStatic Allow values
- TALAS and Kabelstrecken are now logically linked (dependency relationship)

This resolves issues with:
- Map switching losing visibility settings
- Browser reload overriding user preferences with system defaults
- Missing logical connection between TALAS stations and their cable routes
2025-07-29 10:12:56 +02:00

64 lines
1.9 KiB
JSON

{
"name": "nodemap",
"version": "1.1.307",
"dependencies": {
"@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0",
"@heroicons/react": "^2.1.5",
"@mui/icons-material": "^6.0.2",
"@reduxjs/toolkit": "^2.5.1",
"autoprefixer": "^10.4.19",
"axios": "^1.7.9",
"cookies": "^0.9.1",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"fast-xml-parser": "^4.5.1",
"http-proxy-middleware": "^3.0.0",
"leaflet": "^1.9.4",
"leaflet-contextmenu": "^1.4.0",
"leaflet-control-geocoder": "^3.1.0",
"leaflet.smooth_marker_bouncing": "^3.1.0",
"mysql": "^2.18.1",
"mysql2": "^3.11.0",
"next": "^14.2.5",
"nextjs-cors": "^2.2.0",
"overlapping-marker-spiderfier-leaflet": "^0.2.7",
"postcss": "^8.4.40",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-redux": "^9.2.0",
"react-select": "^5.8.0",
"react-toastify": "^10.0.5",
"redux": "^5.0.1",
"redux-thunk": "^3.1.0",
"socket.io": "^4.8.1",
"socket.io-client": "^4.8.1",
"tailwindcss": "^3.4.7",
"xml2js": "^0.6.2"
},
"scripts": {
"dev": "node server.js",
"build": "next build",
"build:deploy": "next build && npm run create-zip",
"create-zip": "powershell -ExecutionPolicy Bypass -File ./scripts/create-deployment-zip.ps1",
"start": "cross-env NODE_ENV=production node server.js",
"export": "next export",
"test": "jest",
"cypress": "cypress open",
"cypress:run": "cypress run",
"prepare": "husky",
"bump-version": "node ./scripts/bumpVersion.js"
},
"devDependencies": {
"cross-env": "^7.0.3",
"cypress": "^13.17.0",
"husky": "^9.1.7",
"identity-obj-proxy": "^3.0.0",
"jest-environment-jsdom": "^29.7.0",
"jest-fetch-mock": "^3.0.3",
"jest-junit": "^16.0.0",
"node-fetch": "^3.3.2",
"node-mocks-http": "^1.16.2",
"raw-loader": "^4.0.2"
}
}