FetchTimeseries: feature clicks to chart-series events - #294
Open
BhattaraiSijan wants to merge 6 commits into
Open
FetchTimeseries: feature clicks to chart-series events#294BhattaraiSijan wants to merge 6 commits into
BhattaraiSijan wants to merge 6 commits into
Conversation
This was referenced Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds FetchTimeseries, a no-UI plugin bridging
feature:clickto the chart-series contract: on a vector feature click it reads the layer'svariables.timeseriesblock over the bus (layers:getConfig), templates the fetch URL from the clicked feature ({properties.<key>},{id},{lon},{lat}— unresolvable placeholders surface as named errors, not silent no-ops), fetches with abort-on-supersede, normalizes the response, and emitsplugin:fetch-timeseries:*events for SeriesChart.Normalization handles both response shapes the VEDA features API serves under content negotiation — GeoJSON FeatureCollections and flat rows — via loose
properties.-prefix path resolution, plusgroupBy(one series per parameter),unitKey, and auto-detected time/value keys.Layers opt in per mission config; clicks on layers without the block do nothing.
enabled: falsedisables without deleting. Charts persist until the next click replaces them (singlechartId). The README documents the config schema and a working EPA AQS demo.Merge order
feature:clickcore event — merge before this PR (runtime dependency; no compile dependency)Testing
tests/unit/fetchTimeseries.spec.js(31 cases): config gating incl.enabled:false, URL templating and its error cases, response mapping for both API shapes, grouping/units, payload building. Full unit suite green.Manual: add the README's
timeseriesblock to the AQS layer in Configure, click a station — loading → chart with the parameter picker. Station54-39-20("Dixie St.") exercises 15 parameters across 5 units.