- Icon im eingeklappten Zustand von Lupe (wirkte wie Such-Icon) auf ein
Chevron (◂) geändert, das klar als Aufklappen-Symbol erkennbar ist.
- ResizeObserver auf dem Kartencontainer ruft map.invalidateSize() auf,
sobald sich dessen Größe ändert (z.B. beim Ein-/Ausklappen der
Filter-Spalte). Ohne das blieb der neu hinzugewonnene Kartenbereich
grau/leer, bis die Karte manuell bewegt wurde.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bisher blieb die Filter-Spalte auch bei geschlossenem <details>-Element
in voller Breite stehen, da nur der Inhalt (nicht die Grid-Spalte)
ausgeblendet wurde. Jetzt schrumpft die Spalte per :has()-Selektor auf
56px und zeigt nur noch ein Icon zum Wiederaufklappen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neues Modul js/filters/ mit reiner Filterlogik (filterEngine.js:
applyFilters(), getDistanceKm()) und UI (filterPanel.js) fuer alle Filter
aus anforderung.md Abschnitt 3: Kategorie, Entfernung (mit "Standort
verwenden"-Button), Alter der Kinder, Kosten, Indoor/Outdoor, 5
Ausstattungsmerkmale, Aufenthaltsdauer, Mindestbewertung sowie
Freitextsuche ueber Name/Ort/Region/Adresse. Trefferzaehler, "Filter
zuruecksetzen" und "Auf Ergebnisse zoomen" ergaenzt.
Store erweitert um updateFilters()/getFilteredPlaces() (Selector).
Karte und Liste rendern jetzt die gefilterte statt die volle
Ausflugsziel-Liste; die Karten-Rerender-Optimierung vergleicht dafuer
die Trefferliste per Id-Schluessel statt nur state.places, damit reine
Filter-/Standortaenderungen ohne Places-Aenderung erkannt werden.
Layout: Filter-Panel als aufklappbares <details> auf Mobile, eigener
Grid-Bereich neben der Karte auf Desktop. docs/plan.md entsprechend
fortgeschrieben (Phase 2-5 als umgesetzt markiert, Phase 5
Navigation war bereits Teil von Phase 2).