import { ReactNode } from 'react' ; import { GeoJsonProperties } from 'geojson' ; import { Geometry } from 'geojson' ; import { DRAW_SHAPE , ES_SPATIAL_RELATIONS } from '../constants' ; export type MapExtent = { minLon : number ; minLat : number ; maxLon : number ; maxLat : number ; } ; export type MapCenter = { lat : number ; lon : number ; } ; export type MapCenterAndZoom = MapCenter & { zoom : number ; } ; export type Goto = { bounds ? : MapExtent ; center ? : MapCenterAndZoom ; } ; export const GEOMETRY_FILTER_ACTION = 'GEOMETRY_FILTER_ACTION' ; export type TooltipFeatureAction = { label : string ; id : typeof GEOMETRY_FILTER_ACTION ; form : ReactNode ; } ; export type TooltipFeature = { id ? : number | string ; layerId : string ; geometry ? : Geometry ; mbProperties : GeoJsonProperties ; actions : TooltipFeatureAction [ ] ; } ; export type TooltipState = { features : TooltipFeature [ ] ; id : string ; isLocked : boolean ; location : [ number , number ] ; } ; export type DrawState = { actionId : string ; drawShape ? : DRAW_SHAPE ; filterLabel ? : string ; geometryLabel ? : string ; relation ? : ES_SPATIAL_RELATIONS ; } ; export type EditState = { layerId : string ; drawShape ? : DRAW_SHAPE ; } ;