108 lines
4.8 KiB
TypeScript
108 lines
4.8 KiB
TypeScript
/**
|
|
* The map workspace's props.
|
|
*
|
|
* Its own module so the view-model hook and both render paths can name the
|
|
* same shape without importing the component that renders them.
|
|
*/
|
|
|
|
import type { AreaRead, CoverageResolveResponse, DatasetCreateResponse, DetectionQaResult, MapResultExportRequest, MapViewportState, OrthophotoAcquisitionResult, OrthophotoProductRead, ProjectRead, QaComparisonResult, VectorSelectionBBox, VectorSelectionResponse } from '../../types'
|
|
|
|
export interface MapWorkspaceProps {
|
|
readOnly?: boolean
|
|
managementLocked?: boolean
|
|
sourceAcquisitionEnabled?: boolean
|
|
derivedDatasetWritesEnabled?: boolean
|
|
secondaryResultsContainer?: HTMLElement | null
|
|
selectedProjectId: string | null
|
|
projects: ProjectRead[]
|
|
areas: AreaRead[]
|
|
selectedMapAreaId: string
|
|
areaFeatureCollection: GeoJSON.FeatureCollection | null
|
|
mapFeatureCollection: GeoJSON.FeatureCollection | null
|
|
qualityEvidenceGeoJson?: GeoJSON.FeatureCollection | null
|
|
qualityEvidenceFeatureCount?: number
|
|
qualityEvidenceLoading?: boolean
|
|
qualityEvidenceError?: string | null
|
|
qualityEvidenceWarnings?: string[]
|
|
mapLayerLabel: string
|
|
mapLayerSourceLabel: string
|
|
mapLayerProvenance: string
|
|
mapLayerVisible: boolean
|
|
mapLayerOpacity: number
|
|
areaLayerVisible: boolean
|
|
areaLayerOpacity: number
|
|
mapFeatureCount: number
|
|
areaFeatureCount: number
|
|
viewportVectorEnabled: boolean
|
|
viewportVectorStatus: string | null
|
|
viewportVectorTone: 'ready' | 'pending' | 'warning' | 'error'
|
|
fitMapDataOnChange: boolean
|
|
mapContentMode: 'dataset' | 'analysis'
|
|
analysisLayerAvailable: boolean
|
|
selectedMapFeature: GeoJSON.Feature | null
|
|
selectedFeature?: GeoJSON.Feature | null
|
|
mapSelectionBbox: VectorSelectionBBox | null
|
|
mapSelectionResult: VectorSelectionResponse | null
|
|
mapSelectionLoading: boolean
|
|
mapSelectionError: string | null
|
|
coverage: CoverageResolveResponse | null
|
|
coverageLoading: boolean
|
|
coverageError: string | null
|
|
coverageDurationMs: number | null
|
|
coverageBudgetExceeded: boolean
|
|
workspaceLoading: boolean
|
|
workspaceError: string | null
|
|
selectionExporting: boolean
|
|
selectionExportError: string | null
|
|
latestSelectionExportPath: string | null
|
|
selectionDatasetSaving: boolean
|
|
selectionDatasetError: string | null
|
|
latestSelectionDataset: DatasetCreateResponse | null
|
|
latestSelectionDatasetName: string | null
|
|
mapQaReferenceDatasets: DatasetCreateResponse[]
|
|
selectedMapQaReferenceDatasetId: string
|
|
mapSelectionQaRunning: boolean
|
|
mapSelectionQaError: string | null
|
|
mapSelectionQaResult: QaComparisonResult | null
|
|
latestMapSelectionQualityCheckId: string | null
|
|
orthophotoAnalysisStage: 'idle' | 'acquiring' | 'detecting' | 'validating' | 'complete' | 'failed'
|
|
orthophotoAnalysisStatus: string
|
|
orthophotoAnalysisError: string | null
|
|
orthophotoAnalysisRunning: boolean
|
|
orthophotoAnalysisQuality: DetectionQaResult | null
|
|
orthophotoAnalysisDetectionCount: number | null
|
|
orthophotoProducts: OrthophotoProductRead[]
|
|
selectedOrthophotoProductKey: string
|
|
orthophotoResult: OrthophotoAcquisitionResult | null
|
|
orthophotoImageUrl: string | null
|
|
availableMapDatasets: DatasetCreateResponse[]
|
|
selectedMapDatasetId: string
|
|
onSelectMapArea: (areaId: string) => void
|
|
onActivateMunicipality: (niscode: string) => Promise<AreaRead | null>
|
|
onSetContextSourceLabel: (label: string | null) => void
|
|
onSetContextLayerLabel: (label: string | null) => void
|
|
onOpenDatasetInMap: (dataset: DatasetCreateResponse) => void
|
|
onSetAreaLayerVisible: (visible: boolean) => void
|
|
onSetAreaLayerOpacity: (opacity: number) => void
|
|
onSetMapLayerVisible: (visible: boolean) => void
|
|
onSetMapLayerOpacity: (opacity: number) => void
|
|
onSetMapContentMode: (mode: 'dataset' | 'analysis') => void
|
|
onSelectMapFeature: (feature: GeoJSON.Feature | null) => void
|
|
onMapViewportChange: (viewport: MapViewportState) => void
|
|
onSetMapSelectionBbox: (bbox: VectorSelectionBBox | null) => void
|
|
onRunMapSelectionExtract: (bbox: VectorSelectionBBox, areaId?: string) => Promise<VectorSelectionResponse | null>
|
|
onClearMapSelectionExtract: () => void
|
|
onExportMapSelection: (bbox: VectorSelectionBBox, areaId?: string) => Promise<unknown>
|
|
onPersistMapResult: (payload: MapResultExportRequest) => Promise<unknown>
|
|
onDeriveMapSelectionDataset: (bbox: VectorSelectionBBox, areaId?: string) => Promise<DatasetCreateResponse | null>
|
|
onSelectMapQaReferenceDataset: (datasetId: string) => void
|
|
onRunMapSelectionQa: (candidateDataset?: DatasetCreateResponse | null) => Promise<QaComparisonResult | null>
|
|
onOpenMapSelectionQualityEvidence: () => void
|
|
onRunOrthophotoAnalysis: (bbox: VectorSelectionBBox) => Promise<boolean>
|
|
onSelectOrthophotoProduct: (productKey: string) => void
|
|
onClearQualityEvidence?: () => void
|
|
onRefreshProjectData: () => Promise<unknown>
|
|
onOpenAssistant: () => void
|
|
onOpenExports: () => void
|
|
}
|