import TerraElement from '../../internal/terra-element.js'; import type { CSSResultGroup } from 'lit'; import { DataSubsetterController } from './data-subsetter.controller.js'; import { type BoundingBox, type CollectionWithAvailableServices, type Variable } from '../../data-services/types.js'; import TerraSpatialPicker from '../spatial-picker/spatial-picker.component.js'; import type { CmrSearchResult, VariableDetails } from '../../metadata-catalog/types.js'; import type { LatLng, LatLngBounds } from 'leaflet'; import TerraDialog from '../dialog/dialog.component.js'; /** * @summary Easily allow users to select, subset, and download NASA Earth science data collections with spatial, temporal, and variable filters. * @documentation https://terra-ui.netlify.app/components/data-subsetter * @status stable * @since 1.0 * * @dependency terra-accordion * @dependency terra-date-picker * @dependency terra-icon * @dependency terra-spatial-picker * * @event terra-subset-job-complete - called when a subset job enters a final state (e.g. successful, failed, completed_with_errors) */ export default class TerraDataSubsetter extends TerraElement { #private; static styles: CSSResultGroup; static dependencies: Record; collectionEntryId?: string; shortName?: string; version?: string; showCollectionSearch?: boolean; showHistoryPanel?: boolean; jobId?: string; bearerToken?: string; /** * Optional dialog ID. When set, the subsetter will render inside a dialog with this ID. */ dialog?: string; isHistoryView: boolean; collectionWithServices?: CollectionWithAvailableServices; variableDetails?: Array; selectedVariables: Variable[]; expandedVariableGroups: Set; variableFilterText: string; touchedFields: Set; spatialSelection: BoundingBox | LatLng | null; selectedDateRange: { startDate: string | null; endDate: string | null; }; selectedFormat: string; cancelingGetData: boolean; selectedTab: 'web-links' | 'selected-params'; refineParameters: boolean; collectionSearchType: 'collection' | 'variable' | 'all'; collectionSearchQuery?: string; collectionSearchLoading: boolean; collectionSearchResults?: Array; collectionLoading: boolean; collectionAccordionOpen: boolean; dataAccessMode: 'original' | 'subset'; validationError?: string; granuleMinDate?: string; granuleMaxDate?: string; giovanniConfiguredVariables?: Set; spatialPicker: TerraSpatialPicker; dialogElement?: TerraDialog; controller: DataSubsetterController; jobIdChanged(): void; shortNameAndVersionChanged(): void; collectionEntryIdChanged(): void; firstUpdated(): void; updated(changedProps: Map): void; collectionChanged(): void; granuleDatesChanged(): void; selectedFormatChanged(): void; showDialog(): void; render(): import("lit-html").TemplateResult<1>; minimizeDialog(): void; handleCollectionSearch(searchTerm: string): void; isLatLng(value: any): value is LatLng; isLatLngBounds(value: any): value is LatLngBounds; renderHistoryPanel(): void; }