import PAGES from './pages' ; const ROUTER_NAMESPACE = 'atlasRouter' ; export const MAIN_PATHS = { DATA : 'data' , DATASETS : 'datasets' , CONTENT : 'content' , MAPS : 'kaarten' , MAP : 'kaart' , } ; export interface Route { title : string ; path : string ; type : string ; page : string ; useHooks ? : boolean ; } function typeHelper < K extends PropertyKey > ( obj ) { return obj ; } export const routing = typeHelper ( { home : { title : 'Home' , path : '/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . HOME }` , page : PAGES . HOME , } , data : { title : 'Data' , path : `/${ MAIN_PATHS . DATA }/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATA }` , page : PAGES . DATA , } , addresses : { title : 'Adressen' , path : `/${ MAIN_PATHS . DATA }/bag/adressen/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . ADDRESSES }` , page : PAGES . ADDRESSES , } , establishments : { title : 'Vestigingen' , path : `/${ MAIN_PATHS . DATA }/hr/vestigingen/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . ESTABLISHMENTS }` , page : PAGES . ESTABLISHMENTS , } , cadastralObjects : { title : 'Kadastrale objecten' , path : `/${ MAIN_PATHS . DATA }/brk/kadastrale-objecten/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . CADASTRAL_OBJECTS }` , page : PAGES . CADASTRAL_OBJECTS , } , datasetSearch : { title : 'Datasets' , path : `/${ MAIN_PATHS . DATASETS }/zoek/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATASET_SEARCH }` , page : PAGES . DATASET_SEARCH , } , datasetDetail : { title : 'Dataset' , path : `/${ MAIN_PATHS . DATASETS }/:id/:slug*/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATASET_DETAIL }` , page : PAGES . DATASET_DETAIL , } , search : { title : 'Alle zoekresultaten' , path : `/zoek/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . SEARCH }` , page : PAGES . SEARCH , } , dataSearch : { title : 'Data' , path : `/${ MAIN_PATHS . DATA }/zoek/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATA_SEARCH }` , page : PAGES . DATA_SEARCH , } , dataSearchGeo : { title : 'Data zoekresultaten op locatie' , path : `/${ MAIN_PATHS . DATA }/geozoek/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATA_SEARCH_GEO }` , page : PAGES . DATA_SEARCH_GEO , } , constructionDossier : { title : 'Bouwdossier' , path : `/${ MAIN_PATHS . DATA }/bouwdossiers/bouwdossier/:id/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . CONSTRUCTION_DOSSIER }` , useHooks : true , page : PAGES . CONSTRUCTION_DOSSIER , } , updates : { title : 'Actualiteit' , path : `/${ MAIN_PATHS . CONTENT }/actualiteit/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . UPDATES }` , page : PAGES . UPDATES , } , help : { title : 'Help' , path : `/help/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . HELP }` , page : PAGES . HELP , } , inloggen : { title : 'Inloggen' , path : `/${ MAIN_PATHS . CONTENT }/inloggen/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . LOGIN }` , page : PAGES . LOGIN , } , notFound : { title : 'Pagina niet gevonden' , path : '/niet-gevonden/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . NOT_FOUND }` , page : PAGES . NOT_FOUND , } , dataDetail : { title : 'Data detail' , path : `/${ MAIN_PATHS . DATA }/:type/:subtype/:id/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATA_DETAIL }` , page : PAGES . DATA_DETAIL , } , mapSearch : { title : 'Kaarten' , path : `/${ MAIN_PATHS . MAPS }/zoek/` , type : `${ ROUTER_NAMESPACE }/${ PAGES . MAP_SEARCH }` , page : PAGES . MAP_SEARCH , } , about : { title : 'Over OIS' , path : '/over-ois/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . ABOUT }` , page : PAGES . ABOUT , } , aboutOIS : { title : 'About OIS' , path : '/about-ois/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . ABOUT_OIS }` , page : PAGES . ABOUT_OIS , } , aboutWebsite : { title : 'Over deze site' , path : '/over-deze-site/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . ABOUT_WEBSITE }` , page : PAGES . ABOUT_WEBSITE , } , dataPolicy : { title : 'Amsterdam en data' , path : '/amsterdam-en-data/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATA_POLICY }` , page : PAGES . DATA_POLICY , } , dataContact : { title : 'Gegevens' , path : '/gegevens/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . DATA_CONTACT }` , page : PAGES . DATA_CONTACT , } , sources : { title : 'Welke data en informatie vind je hier?' , path : '/bronnen/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . SOURCES }` , page : PAGES . SOURCES , } , contact : { title : 'Contact' , path : '/contact/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . CONTACT }` , page : PAGES . CONTACT , } , products : { title : 'Producten en diensten' , path : '/producten-en-diensten/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . PRODUCTS }` , page : PAGES . PRODUCTS , } , accessibility : { title : 'Toegankelijkheidsverklaring' , path : '/toegankelijkheidsverklaring/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . ACCESSIBILITY }` , page : PAGES . ACCESSIBILITY , } , technicalManagement : { title : 'Technisch beheer en werkwijze' , path : '/technisch-beheer-werkwijze/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . TECHNICAL_MANAGEMENT }` , page : PAGES . TECHNICAL_MANAGEMENT , } , privacy : { title : 'Privacy en informatiebeveiliging' , path : '/privacy-informatiebeveiliging/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . PRIVACY }` , page : PAGES . PRIVACY , } , quality : { title : 'Beschikbaarheid en kwaliteit data' , path : '/beschikbaarheid-kwaliteit-data/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . QUALITY }` , page : PAGES . QUALITY , } , faq : { title : 'Veelgestelde vragen' , path : '/veelgestelde-vragen/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . FAQ }` , page : PAGES . FAQ , } , features : { title : 'Wat kun je hier' , path : '/wat-kun-je-hier/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . FEATURES }` , page : PAGES . FEATURES , } , services : { title : 'Data services' , path : '/services/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . SERVICES }` , page : PAGES . SERVICES , } , tables : { title : 'Data in tabellen' , path : '/tabellen/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . TABLES }` , page : PAGES . TABLES , } , employees : { title : 'Alleen voor medewerkers' , path : '/alleen-voor-medewerkers/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . EMPLOYEES }` , page : PAGES . EMPLOYEES , } , mapLayersInfo : { title : 'Informatie over kaartlagen' , path : '/informatie-over-kaartlagen/' , type : `${ ROUTER_NAMESPACE }/${ PAGES . MAP_LAYERS_INFO }` , page : PAGES . MAP_LAYERS_INFO , } , } ) ; /**
 * We need to check if the route paths have a trailing slash
 */ Object . values ( routing ) . forEach ( ( value ) => { if ( value . path . substring ( value . path . length - 1 ) !== '/' ) { console . warn ( `Route for "${ value . title }" doesn't have trailing slash` ) ; } } ) ; const routes = Object . keys ( routing ) . reduce ( ( acc , key ) => { acc [ routing [ key ] . type ] = routing [ key ] . path ; return acc ; } , { } ) ; export const mapSearchPagePaths = [ routing . search . path , routing . dataSearch . path , routing . datasetSearch . path , routing . mapSearch . path , ] ; export default routes ;