import { ComponentWillLoad, ComponentDidLoad } from '../../../stencil-public-runtime'; import { EventEmitter } from '../../../stencil-public-runtime'; import { FlowCoreMap } from '../../../core/flow-core-map/flow-core-map'; import { HTMLStencilElement } from '../../../stencil-public-runtime'; import { FlowMapExportOptions } from '../../../core/flow-core-map/map-exporter'; import { FlowCoreMapPopup, FlowCoreMapPopupOptions } from '../../../core/flow-core-map/flow-core-map-popup'; import { FeatureIdentifier, LngLatLike, MapGeoJSONFeature } from '@emuanalytics/maplibre-gl'; /** * @since 1.0 * @status stable * * @reactive * * @slot - Specify map data sources, layers and icons. * @slot header - The map header content. * @slot footer - The map footer content. * @slot top-left - The top-left control content. * @slot top-right - The top-right control content. * @slot bottom-left - The bottom-left control content. * @slot bottom-right - The bottom-right control content. * * @slot popup - Default map popup content. * @slot - Content for additional map popups. */ export declare class FlowMap implements ComponentWillLoad, ComponentDidLoad { static FORWARDED_MAP_EVENTS: string[]; private mapContainerEl; private mutationObserver; private mapLoading; private boundDrawerChangedHandler; el: HTMLStencilElement; flowDrawerContainer: HTMLFlowDrawerContainerElement; private isFeatureHovered; private drawerClasses; private showBusyIndicator; /** @internal */ _map: FlowCoreMap; /** * Set to `true` to activate the map busy indicator. */ busyIndicator: boolean; /** * The initial position and zoom for the map (format: `"lng,lat,zoom"`). If unset * the default position and zoom from the map style will be used. */ center: string; /** * The Flo.w context ID to use for application state. */ flowContext: string; /** * The base map style ID. */ mapStyle: string; protected updateMapStyle(styleUrlOrId: string): void; /** * Set to true to sync the map position, zoom, bearing and pitch with the browser URL. */ sync: boolean; /** * Specify radius in pixels of area around clicked point to search for map features. */ featureClickTolerance: number; /** * Emitted when the initial map style has loaded. */ flowMapLoad: EventEmitter; /** * Emitted when the initial map style has loaded. * * @deprecated Use flowMapLoad. */ mapLoad: EventEmitter; /** * Emitted when the user clicks on the map. */ flowMapClick: EventEmitter; /** * Emitted when the user double-clicks on the map. */ flowMapDblClick: EventEmitter; /** * Emitted when the selection state of a data source changes. */ flowMapSelectionStateChanged: EventEmitter; /** * Emitted when the selection feature state of a data source changes. */ flowMapSelectionFeatureStateChanged: EventEmitter; /** * Emitted when the user clicks on the map. * * @deprecated Use flowMapClick. */ mapClick: EventEmitter; /** * Emitted when the user double-clicks on the map. * * @deprecated Use flowMapDblClick. */ mapDblClick: EventEmitter; /** * Emitted when the map has finished zooming or panning. */ flowMapMoveEnd: EventEmitter; /** * Emitted when the map has finished zooming or panning. * * @deprecated Use flowMapMoveEnd. */ mapMoveEnd: EventEmitter; componentWillLoad(): Promise; componentDidLoad(): Promise; disconnectedCallback(): Promise; updateBusyIndicator(): void; /** * Returns the underlying JavaScript map object. */ getMap(): Promise; /** * Zoom the map by the specified increment. Use a positive increment to zoom in * and a negative increment to zoom out. * @param increment +/- zoom level */ zoomBy(increment: number): Promise; /** * Export the map to PNG format. * * @param options */ export(options: FlowMapExportOptions): Promise; /** * Set feature state on a single map feature. * * @param feature * @param state */ setFeatureState(feature: FeatureIdentifier | MapGeoJSONFeature, state: { [key: string]: any; }): Promise; /** * Remove feature state from a single map feature. * @param feature * @param key */ removeFeatureState(feature: FeatureIdentifier | MapGeoJSONFeature, key?: string): Promise; /** * Open a map popup. * * @param lngLat * @param options */ openPopup(lngLat: LngLatLike, options?: FlowCoreMapPopupOptions): Promise; closeAllPopups(): Promise; private forwardMapEvents; private updateMapComponents; private setMapLayers; private setMapDataSources; private setMapPopups; private mouseMoveHandler; private mapLoadingHandler; private convertTrackLocation; render(): any; }