62 lines
2.6 KiB
TypeScript
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,
|
|
]),
|
|
)
|
|
}
|