import TerraButton from '../button/button.component.js'; import TerraAlert from '../alert/alert.component.js'; import TerraElement from '../../internal/terra-element.js'; import TerraIcon from '../icon/icon.component.js'; import TerraLoader from '../loader/loader.component.js'; import TerraPlot from '../plot/plot.component.js'; import type { CSSResultGroup } from 'lit'; import type { Variable } from '../browse-variables/browse-variables.types.js'; import TerraPlotToolbar from '../plot-toolbar/plot-toolbar.component.js'; import { AuthController } from '../../auth/auth.controller.js'; /** * @summary A component for visualizing time series data using the GES DISC Giovanni API. * @documentation https://terra-ui.netlify.app/components/time-series * @status stable * @since 1.0 * * @dependency terra-plot * * @event terra-date-range-change - Emitted whenever the date range is modified * @event terra-time-series-data-change - Emitted whenever time series data has been fetched from Giovanni */ export default class TerraTimeSeries extends TerraElement { #private; static styles: CSSResultGroup; static dependencies: { 'terra-plot': typeof TerraPlot; 'terra-loader': typeof TerraLoader; 'terra-icon': typeof TerraIcon; 'terra-button': typeof TerraButton; 'terra-alert': typeof TerraAlert; 'terra-plot-toolbar': typeof TerraPlotToolbar; }; /** * a variable entry ID (ex: GPM_3IMERGHH_06_precipitationCal) */ variableEntryId?: string; /** * a collection entry id (ex: GPM_3IMERGHH_06) * only required if you don't include a variableEntryId */ collection?: string; /** * a variable short name to plot (ex: precipitationCal) * only required if you don't include a variableEntryId */ variable?: string; /** * The start date for the time series plot. (ex: 2021-01-01) */ startDate?: string; /** * The end date for the time series plot. (ex: 2021-01-01) */ endDate?: string; /** * The point location in "lat,lon" format. * Or the bounding box in "west,south,east,north" format. */ location?: string; showCitation: boolean; /** * if you include an application citation, it will be displayed in the citation panel alongside the dataset citation */ applicationCitation?: string; /** * When true, disables automatic data fetching when the user zooms, pans, or otherwise interacts with the plot. * When disabled, the plot will only show the data for the initial date range and won't fetch new data on plot interactions. */ disableAutoFetch: boolean; /** * The token to be used for authentication with remote servers. * The component provides the header "Authorization: Bearer" (the request header and authentication scheme). * The property's value will be inserted after "Bearer" (the authentication scheme). */ bearerToken?: string; mobileView: boolean; hideToolbar: boolean; productLabel?: string; plot: TerraPlot; plotToolbar: TerraPlotToolbar; catalogVariable: Variable; /** * user quota reached maximum request */ private quotaExceededOpen; /** * stores error information from time series requests */ private timeSeriesError; /** * if true, we'll show a warning to the user about them requesting a large number of data points */ showDataPointWarning: boolean; /** * stores the estimated */ estimatedDataPoints: number; _authController: AuthController; _fetchVariableTask: import("@lit/task").Task<(string | undefined)[], void>; connectedCallback(): void; updated(changedProps: Map): void; disconnectedCallback(): void; render(): import("lit-html").TemplateResult<1>; }