@helgoland/core
Version:
84 lines (83 loc) • 3.62 kB
TypeScript
import { DoCheck, EventEmitter, IterableDiffers, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { LangChangeEvent, TranslateService } from '@ngx-translate/core';
import { DatasetApiInterface } from '../dataset-api/api-interface';
import { InternalIdHandler } from '../dataset-api/internal-id-handler.service';
import { DatasetOptions } from '../model/internal/options';
import { ResizableComponent } from '../model/internal/ResizableComponent';
import { TimeInterval, Timespan } from '../model/internal/timeInterval';
import { HasLoadableContent } from '../model/mixins/has-loadable-content';
import { Time } from '../time/time.service';
import { PresenterMessage } from './presenter-message';
export interface PresenterOptions {
}
/**
* Abstract superclass for all components, which will present datasets.
*/
export declare abstract class DatasetPresenterComponent<T extends DatasetOptions | DatasetOptions[], U extends PresenterOptions> extends ResizableComponent implements OnChanges, DoCheck, OnDestroy, HasLoadableContent {
protected iterableDiffers: IterableDiffers;
protected api: DatasetApiInterface;
protected datasetIdResolver: InternalIdHandler;
protected timeSrvc: Time;
protected translateService: TranslateService;
/**
* List of presented dataset ids.
*/
datasetIds: string[];
/**
* List of presented selected dataset ids.
*/
selectedDatasetIds: string[];
/**
* The time interval in which the data should presented.
*/
timeInterval: TimeInterval;
/**
* The corresponding dataset options.
*/
datasetOptions: Map<string, T>;
protected oldDatasetOptions: Map<string, T>;
/**
* Options for general presentation of the data.
*/
presenterOptions: U;
protected oldPresenterOptions: U;
/**
* List of datasets for which a reload should be triggered, when the Array is set to new value.
*/
reloadForDatasets: string[];
/**
* Event with a list of selected datasets.
*/
onDatasetSelected: EventEmitter<string[]>;
/**
* Event when the timespan in the presentation is adjusted.
*/
onTimespanChanged: EventEmitter<Timespan>;
/**
* Event, when there occured a message in the component.
*/
onMessageThrown: EventEmitter<PresenterMessage>;
/**
* Event flag, while there is data loaded in the component.
*/
onContentLoading: EventEmitter<boolean>;
isContentLoading: (loading: boolean) => void;
protected timespan: Timespan;
private datasetIdsDiffer;
private selectedDatasetIdsDiffer;
private langChangeSubscription;
constructor(iterableDiffers: IterableDiffers, api: DatasetApiInterface, datasetIdResolver: InternalIdHandler, timeSrvc: Time, translateService: TranslateService);
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
ngDoCheck(): void;
abstract reloadDataForDatasets(datasets: string[]): void;
protected addDatasetByInternalId(internalId: string): void;
protected abstract onLanguageChanged(langChangeEvent: LangChangeEvent): void;
protected abstract timeIntervalChanges(): void;
protected abstract addDataset(id: string, url: string): void;
protected abstract removeDataset(internalId: string): void;
protected abstract setSelectedId(internalId: string): void;
protected abstract removeSelectedId(internalId: string): void;
protected abstract presenterOptionsChanged(options: U): void;
protected abstract datasetOptionsChanged(internalId: string, options: T, firstChange: boolean): void;
}