UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

38 lines (37 loc) 1.6 kB
import AbstractSearchClient from './abstractsearchclient.js'; import IGirafeContext from '../context/icontext.js'; import GirafeSingleton from '../../base/GirafeSingleton.js'; import Feature from 'ol/Feature.js'; import { Extent } from 'ol/extent.js'; export type SearchProviderConfig = { type: 'geomapfish' | 'geoadminch'; providerName: string; [key: string]: unknown; }; declare class SearchManager extends GirafeSingleton { protected readonly clients: Map<string, AbstractSearchClient>; private abortController; private defaultSrid; private defaultMaxExtent?; readonly minSearchTermLength = 3; constructor(context: IGirafeContext); initializeSingleton(): void; protected createClient(providerConfig: SearchProviderConfig): void; abortSearch(): void; /** * Performs a search operation with all available clients based on the provided term and returns results * grouped by provider name and result category. */ doSearch(term: string): Promise<Record<string, Record<string, Feature[]>> | null>; private createCoordinateSearchResult; /** * Detects and parses a coordinate search term into an array of two numerical values. * The method attempts to identify valid coordinate pairs from the given term, * using different separators such as `;`, `/`, `,`, or whitespace. */ detectCoordinatesInTerm(term: string): [number, number] | null; private parseCoordinateFromString; private isCoordinatePairValid; getZoomToBbox(feature: Feature): Extent | undefined; } export default SearchManager;