Files
geointel/frontend/src/config/primaryFocus.ts
T

62 lines
2.6 KiB
TypeScript

import type { DatasetCreateResponse, ProjectRead } from '../types'
export const PRIMARY_FOCUS_LABEL = 'Mol'
export const PRIMARY_FOCUS_REGION = 'Mol, Kempen'
export const NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'
export const NATIONAL_WORKSPACE_LABEL = 'België en Belgische Noordzee'
export const NATIONAL_WORKSPACE_REGION = 'België en Belgische Noordzee'
export const NATIONAL_MAP_CENTER: [number, number] = [4.62, 50.72]
export const NATIONAL_MAP_ZOOM = 7.25
export const REGIONAL_WORKSPACE_PROJECT_NAME = 'Kempen Regional Workbench'
export const REGIONAL_WORKSPACE_LABEL = 'Kempen (28 gemeenten)'
export const FLANDERS_WORKSPACE_PROJECT_NAME = 'Flanders Regional Workbench'
export const FLANDERS_WORKSPACE_LABEL = 'Vlaanderen (285 gemeenten)'
export const PRIMARY_FOCUS_CENTER: [number, number] = [5.1167, 51.1919]
export const PRIMARY_FOCUS_AREA_NAME = 'Mol primary AOI'
export const PRIMARY_FOCUS_MUNICIPALITY_PROJECT_NAME = 'Mol Municipality Workbench'
export const PRIMARY_FOCUS_AREA_GEOJSON =
'{"type":"MultiPolygon","coordinates":[[[[5.109476746222376,51.18745107550715],[5.123924622861509,51.18745107550715],[5.123924622861509,51.19634848029239],[5.109476746222376,51.19634848029239],[5.109476746222376,51.18745107550715]]]]}'
const PRIMARY_FOCUS_TOKEN = /(^|[^a-z0-9])mol([^a-z0-9]|$)/i
function containsPrimaryFocus(values: Array<string | null | undefined>): boolean {
return values.some((value) => Boolean(value && PRIMARY_FOCUS_TOKEN.test(value)))
}
export function isPrimaryFocusProject(project: ProjectRead): boolean {
return containsPrimaryFocus([project.name, project.description, project.region])
}
export function isPrimaryFocusMunicipalityProject(project: ProjectRead): boolean {
return project.name === PRIMARY_FOCUS_MUNICIPALITY_PROJECT_NAME
}
export function isPrimaryFocusMunicipalityBoundaryDataset(dataset: DatasetCreateResponse): boolean {
return (
dataset.status === 'ready' &&
(dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson') &&
dataset.source_name === 'vrbg' &&
dataset.source_metadata?.coverage_scope === 'municipality' &&
dataset.source_metadata?.nis_code === '13025'
)
}
export function isPrimaryFocusProjectData(
project: ProjectRead,
datasets: DatasetCreateResponse[],
): boolean {
if (isPrimaryFocusProject(project)) {
return true
}
return datasets.some((dataset) =>
containsPrimaryFocus([
dataset.name,
dataset.original_filename,
dataset.stored_filename,
dataset.storage_path,
dataset.source_name,
dataset.reference_layer_name,
]),
)
}