UNPKG

urbi-exhibitions

Version:
67 lines (66 loc) 1.92 kB
import { BuildingOptions } from '../../types'; import { FlightPart } from '../../modules/mapFlight'; import { MarkerTooltipPosition } from './components/marker'; export type PovTooltipPosition = 'top' | 'bottom' | 'top-left' | 'top-right' | 'left' | 'right' | 'bottom-left' | 'bottom-right'; interface PointOfViewContent { title: string; description: string; } interface BasePointOfView { id: string; buildingStates?: Array<{ modelId: string; floorId: string; }>; lonLat: number[]; height?: number; elevation?: number; flightScenario: FlightPart[]; tooltipPos: PovTooltipPosition; markerTooltipPos?: MarkerTooltipPosition; } export type PointOfView = BasePointOfView & PointOfViewContent; interface ComplexContent { title: string; description?: string; architects?: string; year?: string; } interface BaseComplex { id: string; tooltipPosition?: MarkerTooltipPosition; image?: string; flightPitch?: number; flightStyleZoom?: number; flightRotationDuration?: number; flightDontResetView?: boolean; flightScenario?: FlightPart[]; coordinates: number[]; mapOptions: BuildingOptions['mapOptions']; buildings: BuildingOptions[]; maxZoom?: number; } export interface Complex extends BaseComplex, ComplexContent { pointsOfView?: PointOfView[]; } interface ComplexWithoutContent extends BaseComplex { pointsOfView?: BasePointOfView[]; } export type ComplexWithCity = Complex & { cityId: string; }; interface BaseCityData { id: string; mapOptions: BuildingOptions['mapOptions']; complexPreviews?: string[]; tooltipPosition?: MarkerTooltipPosition; } export interface CityData extends BaseCityData { title?: string; mode?: string; complexes: Complex[]; } export interface CityDataWithoutContent extends BaseCityData { complexes: ComplexWithoutContent[]; } export {};