import { searchTerritoryHref } from './search-territory.ts'; /** Only a query string is carried; the return destination is always local. */ export function catalogueDetailHref( path: string, query: string, pageUrl?: string, ): string { if (pageUrl) { const page = new URL( pageUrl, 'https://portal.invalid', ).searchParams.get('page'); if ( page && /^[1-9]\d*$/.test(page) && Number.isSafeInteger(Number(page)) ) { const params = new URLSearchParams(query); params.set('page', page); query = params.toString(); } } return query ? `${path}?catalogue_query=${encodeURIComponent(query)}` : path; } export function catalogueReturnHref(base: string, pageUrl: string): string { const query = new URL(pageUrl, 'https://portal.invalid').searchParams.get( 'catalogue_query', ); return searchTerritoryHref( base + (query ? `?${new URLSearchParams(query).toString()}` : ''), pageUrl, ); }