Interface ExplorationState

Immutable exploration-state snapshot. Reducers return a new object on change; readers compare by reference (prev.filters !== next.filters).

Fields map 1:1 to the slices that views can subscribe to (see ExplorationSlice). Adding a field requires extending the slice union, the reducer's diff logic, and the linked-view preset table.

interface ExplorationState {
    aggregation?: AggregationSpec;
    extent?: HonuaExtent;
    filters: Readonly<Record<string, FilterClause>>;
    grouping: readonly string[];
    page: PaginationSpec;
    preset: LinkedViewPresetName;
    selection: readonly FeatureSelectionTarget[];
    sort: readonly SortSpec[];
    spatialFilter?: SpatialFilter;
    visibleFields: readonly string[];
}

Properties

aggregation?: AggregationSpec

Aggregation spec (mirrors Query.aggregation).

extent?: HonuaExtent

Current viewport extent.

filters: Readonly<Record<string, FilterClause>>

Global filters keyed by clause id.

grouping: readonly string[]

Group-by keys for chart / pivot views.

Pagination offset / limit.

Active linked-view preset name.

selection: readonly FeatureSelectionTarget[]

Currently selected features. Raw ids are supported for single-source apps; multi-source apps should use source-qualified targets.

sort: readonly SortSpec[]

Sort order shared across linked views.

spatialFilter?: SpatialFilter

Optional spatial filter (geometry + relationship).

visibleFields: readonly string[]

Field visibility for tabular / form views. Empty = "all".