/// import { MapDatasource, CsMap, ILayerAction, ILayerService, PropertyDetails, FeatureEventDetails, ILayerExtensionType, LayerFilter, LayerStyle, ILayerExtension } from '..'; import { MessageBusService, MessageBusManager, MessageBusHandle } from '@csnext/cs-core'; import { LayerLegend } from './layer-legend'; import { PropertyType, DataSource, FeatureTypes, FeatureType } from '@csnext/cs-data'; export interface IMapLayerType { getInstance?: (init?: Partial) => IMapLayer; typeId?: string; types?: string[]; } export interface IMapLayer { /** layer id */ id: string; /** layer as shown in interface */ title: string; /** list of tags, used for clustering in layer selection */ tags: string[]; state?: 'hidden' | 'loading' | 'visible'; enabled?: boolean; sourceType?: string; color: string; description: string; popupContent?: string | Function | undefined; opacity?: number; source?: string | DataSource; type?: string; parentId?: string; style?: LayerStyle; extensions?: ILayerExtensionType[]; filter?: any; externalUrl?: string; isEditable?: boolean; isLive?: boolean; /** toggle visibility of layer */ openFeatureDetails?: boolean; hideInLayerList?: boolean; featureTypes?: FeatureTypes; selectedFeature?: mapboxgl.MapboxGeoJSONFeature; _busManager: MessageBusManager; _events?: MessageBusService; _legends?: LayerLegend[]; _filters?: { [key: string]: LayerFilter; }; _manager?: MapDatasource; _extensions: ILayerExtension[]; /** associated service */ _service?: ILayerService; _showMenu?: boolean; _showMore?: boolean; _source?: DataSource; _featureEventHandle?: MessageBusHandle; addLayer(widget: CsMap): any; getBounds(): any; getLayerActions?(): ILayerAction[]; initLayer(manager: MapDatasource): Promise; moveLayer(beforeId?: string): any; removeLayer(widget: CsMap): any; setFilter(filter: any[]): any; initFilter(property: string): any; applyFilter(filter: LayerFilter): any; removeFilter(filter: LayerFilter): any; setLegend(property: PropertyDetails | PropertyType | string, refreshLayer: boolean): any; setOpacity(value: number): any; setPopupContent(value: string | ((f: FeatureEventDetails) => {})): any; updateLayer(): any; updateLegends(): any; updateFilters(): any; getFeatureType(): FeatureType | undefined; }