Commit Graph

337 Commits

Author SHA1 Message Date
gnezim ef04c19e13 Add calendarRange helpers for flights-map date picker window and snapping 2026-04-17 12:16:22 +03:00
gnezim 5a18e86bec Add Flights Map C.5 implementation plan
Six TDD tasks: calendarRange pure helpers, useGeolocationDefault hook,
FlightsMapFilter Calendar wiring (minDate/maxDate/disabledDates + snap
effect), Calendar prop capture tests, FlightsMapStartPage geolocation
hook call, final verification.
2026-04-17 12:13:50 +03:00
gnezim 9ee9c6b089 Add design spec for Flights Map C.5 (Calendar + Geolocation)
Final C-gap sub-feature: calendarRange pure helpers
(getMinDate/getMaxDate/buildDisabledDates/findNextEnabledDate), snap-to-
nearest-enabled effect in FlightsMapFilter, and useGeolocationDefault
hook that pre-fills departure from browser position on mount when no
dep/arr is already set.
2026-04-17 12:07:48 +03:00
gnezim f4b96b8248 Test FlightsMapStartPage filterRoutes + popups + auto-fallback wiring 2026-04-17 11:06:16 +03:00
gnezim 4e92e79a99 Wire filterRoutes, auto-fallback, and buy-ticket popups into Flights Map
routesToPolylines + intermediateCityIds now normalize airport codes to city
codes via the dictionaries so API responses resolve correctly. The page adds
effectiveConnections state + two effects for Angular-parity fallback
(retry connections=1 on empty direct-route result, then flip the UI toggle),
a filterRoutes memo feeding polylines and intermediateIds, and a popups memo
rendering departure + arrival buy-ticket popups in route mode only.
2026-04-17 11:00:40 +03:00
gnezim 77272423c1 Add buildBuyTicketUrl + escapeHtml helpers for popup content 2026-04-17 10:52:32 +03:00
gnezim 40f170f87a Add filterRoutes pure helper with airport-code normalization 2026-04-17 10:52:27 +03:00
gnezim 5225df0dd1 Add Flights Map C.4 implementation plan
Six TDD tasks covering filterRoutes, buildBuyTicketUrl + escapeHtml,
routesToPolylines airport-code normalization, FlightsMapStartPage wiring
(effectiveConnections + auto-fallback effects, filteredRoutes + popups
memos), integration tests, and final verification.
2026-04-17 10:48:02 +03:00
gnezim 299b0285b0 Add design spec for Flights Map C.4 (Popups + Filtering + Fallback)
Covers the final four Angular-parity gaps: filterRoutes pure helper,
buildBuyTicketUrl + escapeHtml, routesToPolylines/intermediateCityIds
airport→city normalization, and FlightsMapStartPage wiring for the
auto-fallback effect plus departure/arrival buy-ticket popups.
2026-04-17 10:43:24 +03:00
gnezim 76e9270f5e Test FlightsMapStartPage polyline + intermediateIds wiring 2026-04-17 10:14:06 +03:00
gnezim 4e103d8073 Drive polylines and intermediateIds from useFlightsMapSearch routes 2026-04-17 10:12:15 +03:00
gnezim a9ed92466f Draw routes as city-code polylines and force-open intermediate tooltips
- routesToPolylines + intermediateCityIds pure helpers with unit coverage.
- IMapPolyline reshaped from points to cityIds for Angular-parity drawing.
- MapCanvas resolves coords via markerIndex, filters invisible cities on
  every zoom/toggle change, and runs a second tooltip pass that keeps
  intermediate-city tooltips open regardless of zoom/highlight rules.
2026-04-17 10:08:44 +03:00
gnezim 514bae6051 Add Flights Map C.3 implementation plan
Six TDD tasks covering the routes-to-polylines pure helper, IMapPolyline
reshape to cityIds, MapCanvas polyline sync with visibility filtering,
intermediate-tooltip force-open pass, page wiring, and integration tests.
Tasks 1-3 share a commit due to coupling between type and consumer.
2026-04-17 10:00:48 +03:00
gnezim a23513045b Add design spec for Flights Map C.3 (Route + Spider Drawing)
Covers the polyline layer: routesToPolylines pure function, city-code-
based IMapPolyline shape, MapCanvas polyline sync via markerIndexRef
with visibility filtering, intermediate-city tooltip force-open pass.
2026-04-17 09:53:21 +03:00
gnezim a9b47036b5 Test FlightsMapStartPage marker construction from dictionaries 2026-04-17 08:46:43 +03:00
gnezim 1f24ee7159 Populate FlightsMapStartPage markers from dictionaries with zoom tiers 2026-04-17 08:44:40 +03:00
gnezim 725a048315 Add categorized rendering to MapCanvas: zoom-tier layers, highlight layer, tooltip rules 2026-04-17 08:41:42 +03:00
gnezim 855a7c31e6 Fix POPULATION_1KK size in C.2 spec: Angular source has 30 entries, not 29 2026-04-17 08:36:08 +03:00
gnezim 54f9282a99 Extend IMapMarker with zoomLevel, countryType, highlighted fields 2026-04-17 08:35:27 +03:00
gnezim a61457bc90 Port Angular CityCategoryService to feature-local cityCategory module 2026-04-17 08:35:01 +03:00
gnezim 43f251e177 Add Flights Map C.2 implementation plan
Six TDD tasks: cityCategory port, IMapMarker extension, MapCanvas
10-layer rendering + highlight + tooltip rules (with a fresh Leaflet
mock), FlightsMapStartPage marker wiring, integration tests, final
verification.
2026-04-17 08:32:32 +03:00
gnezim 13bb96fdec Add design spec for Flights Map C.2 (Markers + Zoom Tiers)
Captures the markers-from-dictionaries + zoom-visibility scope:
cityCategory.ts port, IMapMarker extension, MapCanvas 10-LayerGroup
bookkeeping, highlighted-layer, domestic/international toggles, and
the Angular-parity tooltip visibility rules.
2026-04-17 08:27:38 +03:00
gnezim 9a7fcba6ff Test FlightsMapStartPage dictionaries loading/error wiring 2026-04-17 03:21:39 +03:00
gnezim cfc6e12dc9 Wire useDictionaries into FlightsMapStartPage loading/error states 2026-04-17 03:20:01 +03:00
gnezim 03a720179c Expose dictionaries module barrel 2026-04-17 03:18:35 +03:00
gnezim 715b09fd18 Add useDictionaries hook wiring api + transform 2026-04-17 03:16:42 +03:00
gnezim e575c1baa1 Add dictionary lookup helpers and findCityByCoord 2026-04-17 03:14:28 +03:00
gnezim 64dd5421e2 Cover enrichment, lookup-map, and region ordering in transform tests 2026-04-17 03:13:46 +03:00
gnezim e5b49acecf Add dictionaries transform with filtering and partitioning rules 2026-04-17 03:13:18 +03:00
gnezim dc373553d2 Add fetchDictionaries parallel-fetch layer 2026-04-17 03:10:26 +03:00
gnezim da605f0576 Add Flights Map dictionaries type module 2026-04-17 03:09:39 +03:00
gnezim 9f8a3a45f0 Add Flights Map C.1 implementation plan and updated spec
Spec: narrows useCityName handling (leave untouched due to active
consumers). Plan: 10 TDD tasks covering types, api, transform rules,
helpers, hook, barrel, page wiring, and regression tests.
2026-04-17 03:07:30 +03:00
gnezim 397dc2a575 Add design spec for Flights Map C.1 (Dictionaries)
Captures the data-layer scope for the flights-map rebuild: useDictionaries
hook, parallel fetch of world_regions/countries/cities/airports, transform
rules matching Angular DictionariesService, and the testing contract.
2026-04-17 02:51:22 +03:00
gnezim 31c6bf1788 Add integration coverage for multi-leg timeline and transfer-bar
Verifies FullRouteTimeline + TransferBar render for MultiLeg fixtures
and stay absent for Direct flights, locking in the B.5 page wiring.
2026-04-17 02:41:31 +03:00
gnezim 6805b8fe4d Wire FullRouteTimeline and TransferBar into OnlineBoardDetailsPage
Multi-leg flights now render a full-route timeline header and interleave
a transfer-bar between consecutive legs, surfacing station change and
intermediate-landing duration inline with the leg details.
2026-04-17 02:38:24 +03:00
gnezim 4c87a3b362 Add FullRouteTimeline wrapper component 2026-04-17 02:33:52 +03:00
gnezim b8197b2db5 Add Timeline component with 2-leg carousel for multi-leg flights 2026-04-17 02:32:42 +03:00
gnezim dd43ea6905 Add TransferBar component for multi-leg transfer info 2026-04-17 02:31:42 +03:00
gnezim 01b2981407 Add TransferTime component for layover duration display 2026-04-17 02:30:16 +03:00
gnezim 391db7c948 Add StationChange component for multi-leg timeline 2026-04-17 02:29:43 +03:00
gnezim 2d01e1a37e Add Station component for multi-leg timeline 2026-04-17 02:28:59 +03:00
gnezim 81d04bdc49 Add computeTransferMinutes and formatMinutesAsDuration helpers 2026-04-17 02:26:33 +03:00
gnezim 6854d93344 Add detectStationChange helper for multi-leg timeline 2026-04-17 02:26:33 +03:00
gnezim 009c6a3aa1 Extend IFlightLeg with optional estimatedDuration/scheduledDuration 2026-04-17 02:25:20 +03:00
gnezim ced66acc7b Add transfer bar + multi-leg timeline (B.5) implementation plan 2026-04-17 02:23:52 +03:00
gnezim c08e7c3c3b Add transfer bar + multi-leg timeline (B.5) design spec 2026-04-17 02:19:33 +03:00
gnezim 6fd42585c1 Wire DetailsBackButton and FlightSchedule into OnlineBoardDetailsPage 2026-04-17 02:07:58 +03:00
gnezim 4093a2f1b5 Add DetailsBackButton component for header navigation 2026-04-17 02:05:21 +03:00
gnezim 00f88406db Add FlightSchedule accordion with days-of-week strip 2026-04-17 02:04:36 +03:00
gnezim 34b84fd44d Add DaysOfWeekStrip component for flight schedule 2026-04-17 02:03:24 +03:00