import { OnChanges, EventEmitter, TemplateRef, Type, SimpleChanges, Injector } from '@angular/core'; import { IMapPoint } from './map-renderer/map-renderer.component'; import { IMapListener } from './map-styler.directive'; import { BaseWidgetComponent } from '../../../shared/base.component'; export interface IMapPointOfInterest { /** Unique identifier for the Point of interest */ uid: string; /** Map Element selector */ id?: string; /** Map coordinates */ coordinates?: IMapPoint; /** Content to render at position */ content: MapOverlayContent; /** Content render method. Determined automatically */ method?: string; /** Data to inject into the content template/component */ data?: T; /** Zoom level used when focusing on the POI */ zoom?: number; /** Inject for passing data into components */ injector?: Injector; /** Map render location. Determined based on coordinates or element grabbed using id */ center?: IMapPoint; } /** Valid content types Template, Component or HTML string */ export declare type MapOverlayContent = TemplateRef | Type | string; export declare class MapComponent extends BaseWidgetComponent implements OnChanges { /** URL to the map SVG file */ src: string; /** CSS styles to apply to the map */ css: { [name: string]: ({ [name: string]: (number | string); }); }; /** Zoom level as a percentage */ zoom: number; /** Points of interest to render on the map */ poi: IMapPointOfInterest[]; /** Point on map to center on */ focus: IMapPointOfInterest; /** Event listeners for elements on the map */ listeners: IMapListener[]; /** Center point of the map */ center: IMapPoint; /** Disable moving and zooming the map */ lock: boolean; /** Emitter for changes to the zoom percentage */ zoomChange: EventEmitter<{}>; /** Emitter for changes to the center position */ centerChange: EventEmitter<{}>; /** Emitter for listened events */ event: EventEmitter<{}>; model: { [name: string]: any; }; ngOnChanges(changes: SimpleChanges): void; update(data: { [name: string]: any; }): void; post(): void; handleEvent(e: any): void; updateMap(el: SVGElement): void; }