EodashItemCatalog
A STAC item search and browse panel. It wraps eox-itemfilter, fetches items from <stacEndpoint>/search?limit=<searchLimit> (100 by default) on mount, and renders configurable filters alongside a results list. A declared filters, sortBy, or hoverProperties entry is shown only when a selected collection has that property; with none selected, all are shown. Filter values - range bounds and multiselect options - are filled from the collection's STAC summaries and queryables as well. Set staticFilters: true to skip this lookup and use the declared filters as-is (for large catalogs). Selecting an item loads it into the map. Item footprints are drawn on the map and highlighted on hover; when bboxFilter is true the search re-runs on every map move.
Example
Default configuration with a cloud-cover filter and bbox-linked search:
{
id: "catalog",
title: "Catalog",
type: "internal",
layout: { x: 0, y: 0, w: 3, h: 12 },
widget: {
name: "EodashItemCatalog",
properties: {
filtersTitle: "Filters:",
resultsTitle: "Items:",
bboxFilter: true,
imageProperty: "assets.thumbnail.href",
filters: [
{
property: "eo:cloud_cover",
type: "range",
title: "Cloud Cover (%)",
min: 0,
max: 100,
unitLabel: "%",
},
],
},
},
}Adding a second filter on a custom property:
widget: {
name: "EodashItemCatalog",
properties: {
bboxFilter: false,
filters: [
{ property: "platform", type: "multiselect", title: "Platform" },
{ property: "eo:cloud_cover", type: "range", title: "Cloud Cover (%)", min: 0, max: 100 },
],
},
}Properties
bboxFilter?
optional bboxFilter?: boolean = true;datetimeFilter?
optional datetimeFilter?: boolean = false;enableCompare?
optional enableCompare?: boolean = false;filters?
optional filters?: FiltersConfig = [ { property: "eo:cloud_cover", type: "range", title: "Cloud Cover (%)", min: 0, max: 100, step: 1, state: { min: 0, max: 30, }, icon: `<svg style="height: 1rem; transform: translateY(-2px); fill: currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>weather-cloudy</title><path d="M6,19A5,5 0 0,1 1,14A5,5 0 0,1 6,9C7,6.65 9.3,5 12,5C15.43,5 18.24,7.66 18.5,11.03L19,11A4,4 0 0,1 23,15A4,4 0 0,1 19,19H6M19,13H17V12A5,5 0 0,0 12,7C9.5,7 7.45,8.82 7.06,11.19C6.73,11.07 6.37,11 6,11A3,3 0 0,0 3,14A3,3 0 0,0 6,17H19A2,2 0 0,0 21,15A2,2 0 0,0 19,13Z" /></svg>`, unitLabel: "%", }, ];filtersTitle?
optional filtersTitle?: string = "Filters:";hoverProperties?
optional hoverProperties?: string[] = ["datetime", "eo:cloud_cover"];imageProperty?
optional imageProperty?: string = "assets.thumbnail.href";layoutIcon?
optional layoutIcon?: string = mdiViewDashboard;layoutTarget?
optional layoutTarget?: string = "lite";mosaicIndicators?
optional mosaicIndicators?: string[] = undefined;resultsTitle?
optional resultsTitle?: string = "Items:";searchLimit?
optional searchLimit?: number = 100;showTitleBlock?
optional showTitleBlock?: boolean = true;sortBy?
optional sortBy?: object[] = [ { property: "datetime", label: "Date" }, { property: "eo:cloud_cover", label: "Cloud Cover" }, ];label
label: string;property
property: string;stacEndpoint?
optional stacEndpoint?: string = null;stacItemsInteractionStyle?
optional stacItemsInteractionStyle?: Record<string, any> = undefined;stacItemsStyle?
optional stacItemsStyle?: Record<string, any> = undefined;staticFilters?
Show the declared filters and their filterKeys as-is, without fetching per-collection metadata to resolve/narrow options. Use for large catalogs where fetching every collection's summaries/queryables does not scale.
optional staticFilters?: boolean = false;title?
optional title?: string = "Explore Catalog";useMosaic?
optional useMosaic?: boolean = false;Filters (filters)
Each entry in the filters array configures one filter panel in eox-itemfilter. The defaults provide a single cloud-cover range filter.
| Field | Type | Required | Description |
|---|---|---|---|
property | string | yes | STAC property key to filter on. |
type | "range" | "multiselect" | "select" | yes | Control type rendered for this filter. |
title | string | no | Label shown above the filter control. |
min | number | no | Minimum value for type: "range". |
max | number | no | Maximum value for type: "range". |
step | number | no | Step increment for type: "range" sliders. |
format | string | no | Value format string applied to range labels. |
filterKeys | string[] | no | Additional STAC keys matched by this filter entry. |
state | Record<string, boolean> | { min: number, max: number } | no | Initial selection state: a boolean map for multiselect/select, or { min, max } for range. |
placeholder | string | no | Placeholder text for select inputs. |
icon | string | no | SVG markup rendered next to the filter label. |
unitLabel | string | no | Unit suffix appended to range values (e.g. "%"). |
See also
- Internal widgets overview
- EodashItemFilter - collection-level filter panel (wraps the same
eox-itemfilterelement but operates on the STAC catalog root). - EodashLayoutSwitcher - the layout-toggle icon rendered in this widget's title row.