import { MapDropdownContent } from '../../ca-map-dropdown/models'; export interface IRoutePath { lat: number; lng: number; } export interface IRouteLocation { latitude?: number | null; longitude?: number | null; } export interface ICaMapProps { clusterMarkers?: IMapMarkers[]; routingMarkers?: IMapMarkers[]; routePaths?: IMapRoutePath[]; selectedMarkerData?: IMapSelectedMarkerData; selectedRoutingMarkerData?: IMapMarkers; isAccidentMap?: boolean; stateBoundariesUrl?: { url: string }; markers?: IMapMarkers[]; view?: string; isUnitViewStops?: boolean; isDriverMiles?: boolean; mapType?: string; darkMode?: boolean; isZoomShown?: boolean; isVerticalZoom?: boolean; isOpenInMapShown?: boolean; areaFilterData?: IMapAreaFilter; } export interface IMapOptions { fullscreenControl: boolean; disableDefaultUI: boolean; restriction: { latLngBounds: { north: number; south: number; east: number; west: number; }; strictBounds: boolean; }; streetViewControl: boolean; styles?: IMapStyles[]; keyboardShortcuts: boolean; panControl: boolean; gestureHandling: string; mapTypeControl?: boolean; zoom?: number; center?: IRoutePath; } export interface IMapStyles { elementType?: string | null; featureType?: string | null; stylers: IMapColor[]; } export interface IMapColor { color?: string; visibility?: string; weight?: number; saturation?: number; lightness?: number; } export interface IMapMarkers { position: IRoutePath; icon?: IMapMarkersIcon; infoWindowContent?: MapDropdownContent; label?: string; labelOrigin?: { x: number; y: number }; data?: any; options?: { zIndex?: number }; isLargeMarker?: boolean; isFavorite?: boolean; isClosed?: boolean; isShowLabelOnHover?: boolean; hasClickEvent?: boolean; hasHoverEvent?: boolean; id?: number; content?: any; routeId?: number; isRouteHover?: boolean; } export interface IMapMarkersIcon { url: string; labelOrigin?: google.maps.Point; scaledSize?: google.maps.Size; } export interface IMarkerLabel { text: string; fontSize?: string; color?: string; fontWeight?: string; isShowOnHover?: boolean; } export interface IMapRoutePath { path: IRoutePath[]; decodedShape?: IRouteLocation[]; strokeColor: string; strokeOpacity?: number; strokeWeight?: number; isDashed?: boolean; dashedLineStyle?: IMapDashedRouteStyle[]; id?: number; } export interface IMapBoundsZoom { bounds: google.maps.LatLngBounds; zoom: number; } export interface IMapSelectedMarkerData extends IMapMarkers { isClusterMarker?: boolean; } export interface IMapDashedRouteStyle { icon: IMapDashedRouteIcon; offset: string; repeat: string; } export interface IMapDashedRouteIcon { path: string; strokeOpacity: number; strokeColor: string; scale: number; } export interface IMapPagination { pageIndex: number; pageSize: number; } export interface IMapBounds { northEastLatitude: number; northEastLongitude: number; southWestLatitude: number; southWestLongitude: number; zoomLevel: number; } export interface IMapList { isSelected?: boolean; id?: number; } export interface IMapAreaFilter { options: IMapAreaFilterOptions; center: IRoutePath; radius: number; } interface IMapAreaFilterOptions { fillColor: string; strokeWeight: number; fillOpacity: number; editable: boolean; draggable: boolean; clickable: boolean; }