@furystack/shades-common-components
Version:
29 lines • 1.14 kB
TypeScript
import type { Injector } from '@furystack/inject';
import { EventHub, ObservableValue } from '@furystack/utils';
import type { SuggestionResult } from './suggestion-result.js';
export declare class SuggestManager<T> extends EventHub<{
onSelectSuggestion: T;
}> implements Disposable {
private readonly getEntries;
private readonly getSuggestionEntry;
isOpened: ObservableValue<boolean>;
isLoading: ObservableValue<boolean>;
term: ObservableValue<string>;
selectedIndex: ObservableValue<number>;
currentSuggestions: ObservableValue<{
entry: T;
suggestion: SuggestionResult;
}[]>;
keyPressListener: (ev: KeyboardEvent) => void;
element?: HTMLElement;
clickOutsideListener: (ev: MouseEvent) => void;
[Symbol.dispose](): void;
selectSuggestion(index?: number): void;
private lastGetSuggestionOptions?;
getSuggestion: (options: {
injector: Injector;
term: string;
}) => Promise<void>;
constructor(getEntries: (term: string) => Promise<T[]>, getSuggestionEntry: (entry: T) => SuggestionResult);
}
//# sourceMappingURL=suggest-manager.d.ts.map