@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
38 lines (37 loc) • 1.6 kB
TypeScript
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;