platina-core
Version:
UI Kit of SberMarketing
46 lines (45 loc) • 1.52 kB
TypeScript
import { type Readable, type Writable } from 'svelte/store';
import type { Props, State, SearchBy, KeyBy, ComboboxDispatcher, LoadOptions } from './types';
import { type EventDispatcher } from 'svelte';
export declare class Combobox<T> {
props: Props<T>;
options: Writable<T[]>;
selected: Writable<T[]>;
stateMap: Writable<State>;
search: Writable<string>;
opened: Writable<boolean>;
filtered: Readable<T[]>;
ctxKey: string;
multiple: boolean;
disabled: Writable<boolean>;
dispatch: EventDispatcher<ComboboxDispatcher<T>> | null;
private lastOptions;
private searchIndex;
private selectedItems;
groupBy: Props<T>['groupBy'];
searchBy: SearchBy<T>;
keyBy: KeyBy<T>;
loadCallback: LoadOptions<T> | null;
pageSize: number;
searchDebounce: number;
loading: Writable<boolean>;
hasMore: Writable<boolean>;
private currentSearch;
private currentSkip;
private abortController;
private searchTimer;
private lastDebouncedSearch;
constructor({ selected, groupBy, searchBy, keyBy, multiple, config, disabled, loadOptions }: Props<T>);
fetchFirstPage(search: string): Promise<void>;
loadMore(): Promise<void>;
destroy(): void;
initDispatcher(element: HTMLElement | undefined): void;
render(options: T[], { append }?: {
append?: boolean;
}): void;
static get self(): Combobox<Option>;
toggle(option: T): void;
toggleAll(): void;
isSelectedAll(): boolean;
close(): void;
}