@expofp/floorplan
Version:
Interactive floor plan library for expos and events
39 lines • 1.65 kB
TypeScript
import type RootStore from '../store/RootStore';
import { type URLFilters } from '../store/types';
export declare class URLFilterManager {
private rootStore;
currentFilters: URLFilters;
isInitialized: boolean;
constructor(rootStore: RootStore);
initialize(): void;
private parseURLFilters;
/**
* The raw filter values, before catalog validation. The canonical
* `config.filters` node wins when present (`?filters[categories][0]=food` or
* any config layer; values are plain names, no custom decoding).
*/
private readRawFilters;
private applyFiltersToStore;
/**
* The active filters' contribution to `location.search` — `''` when no
* filter is active, else `'?<legacy filter keys>'`, byte-identical to what
* `updateURLFromFilters` writes. Also read by the URL autorun (url-dispatch):
* when nothing else claims the URL, the filter query IS the selection. Both
* writers must emit the same string — emitting different ones made their
* MobX ordering decide the final address bar (the poiType-clearing race).
*/
filterSearch(): string;
updateURLFromFilters(): void;
setCategories(categoryNames: string[]): void;
setPoiType(poiTypeName: string | null): void;
setPoiTypes(poiTypeNames: string[]): void;
clearAllFilters(): void;
getCurrentFilters(): URLFilters;
private setupReactions;
validateFilters(filters: URLFilters): boolean;
private getCategoryIdByName;
private getPoiTypeIdByName;
private focusOnFilteredBooths;
private openExhibitorsList;
}
//# sourceMappingURL=URLFilterManager.d.ts.map