@algolia/autocomplete-js
Version:
Fast and fully-featured autocomplete JavaScript library.
207 lines (206 loc) • 9.76 kB
TypeScript
import { BaseItem } from '@algolia/autocomplete-core';
import { AutocompleteClassNames, AutocompleteOptions, AutocompleteRender } from './types';
export declare function getDefaultOptions<TItem extends BaseItem>(options: AutocompleteOptions<TItem>): {
renderer: {
classNames: AutocompleteClassNames;
container: HTMLElement;
getEnvironmentProps: (params: {
props: {
onTouchStart(event: TouchEvent): void;
onTouchMove(event: TouchEvent): void;
onMouseDown(event: MouseEvent): void;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
onTouchStart(event: TouchEvent): void;
onTouchMove(event: TouchEvent): void;
onMouseDown(event: MouseEvent): void;
};
getFormProps: (params: {
props: {
action: "";
noValidate: true;
role: "search";
onSubmit(event: Event): void;
onReset(event: Event): void;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
action: "";
noValidate: true;
role: "search";
onSubmit(event: Event): void;
onReset(event: Event): void;
};
getInputProps: (params: {
props: {
id: string;
value: string;
autoFocus: boolean;
placeholder: string;
autoComplete: "on" | "off";
autoCorrect: "on" | "off";
autoCapitalize: "on" | "off";
enterKeyHint: import("@algolia/autocomplete-core").AutocompleteEnterKeyHint;
spellCheck: "false";
maxLength: number;
type: "search";
'aria-autocomplete': "list" | "none" | "inline" | "both";
'aria-activedescendant': string | undefined;
'aria-controls': string | undefined;
'aria-labelledby': string;
onChange(event: Event): void;
onCompositionEnd(event: Event): void;
onKeyDown(event: KeyboardEvent): void;
onFocus(event: Event): void;
onBlur(): void;
onClick(event: MouseEvent): void;
};
inputElement: HTMLInputElement;
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
id: string;
value: string;
autoFocus: boolean;
placeholder: string;
autoComplete: "on" | "off";
autoCorrect: "on" | "off";
autoCapitalize: "on" | "off";
enterKeyHint: import("@algolia/autocomplete-core").AutocompleteEnterKeyHint;
spellCheck: "false";
maxLength: number;
type: "search";
'aria-autocomplete': "list" | "none" | "inline" | "both";
'aria-activedescendant': string | undefined;
'aria-controls': string | undefined;
'aria-labelledby': string;
onChange(event: Event): void;
onCompositionEnd(event: Event): void;
onKeyDown(event: KeyboardEvent): void;
onFocus(event: Event): void;
onBlur(): void;
onClick(event: MouseEvent): void;
};
getItemProps: (params: {
props: {
id: string;
role: "option";
'aria-selected': boolean;
onMouseMove(event: MouseEvent): void;
onMouseDown(event: MouseEvent): void;
onClick(event: MouseEvent): void;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
id: string;
role: "option";
'aria-selected': boolean;
onMouseMove(event: MouseEvent): void;
onMouseDown(event: MouseEvent): void;
onClick(event: MouseEvent): void;
};
getLabelProps: (params: {
props: {
htmlFor: string;
id: string;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
htmlFor: string;
id: string;
};
getListProps: (params: {
props: {
role: "listbox";
'aria-labelledby': string;
id: string;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
role: "listbox";
'aria-labelledby': string;
id: string;
};
getPanelProps: (params: {
props: {
onMouseDown(event: MouseEvent): void;
onMouseLeave(): void;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
onMouseDown(event: MouseEvent): void;
onMouseLeave(): void;
};
getRootProps: (params: {
props: {
role: "combobox";
'aria-expanded': boolean;
'aria-haspopup': boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
'aria-controls': string | undefined;
'aria-labelledby': string;
};
} & {
state: import("@algolia/autocomplete-shared").AutocompleteState<TItem>;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi<TItem>) => {
role: "combobox";
'aria-expanded': boolean;
'aria-haspopup': boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
'aria-controls': string | undefined;
'aria-labelledby': string;
};
panelContainer: HTMLElement;
panelPlacement: "start" | "end" | "full-width" | "input-wrapper-width";
render: AutocompleteRender<any> | AutocompleteRender<TItem>;
renderNoResults: AutocompleteRender<TItem> | undefined;
renderer: {
createElement: import("@algolia/autocomplete-shared").Pragma;
Fragment: any;
render: import("@algolia/autocomplete-shared").Render;
};
detachedMediaQuery: string;
components: {
[x: string]: (props: any) => import("@algolia/autocomplete-shared").VNode<any>;
Highlight: <THit>({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams<THit>) => import("@algolia/autocomplete-shared").VNode<any>;
ReverseHighlight: <THit>({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams<THit>) => import("@algolia/autocomplete-shared").VNode<any>;
ReverseSnippet: <THit>({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams<THit>) => import("@algolia/autocomplete-shared").VNode<any>;
Snippet: <THit>({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams<THit>) => import("@algolia/autocomplete-shared").VNode<any>;
};
translations: {
detachedCancelButtonText: string;
clearButtonTitle: string;
submitButtonTitle: string;
detachedSearchButtonTitle: string;
};
};
core: {
id: string;
environment: Window;
insights?: boolean | import("@algolia/autocomplete-plugin-algolia-insights").CreateAlgoliaInsightsPluginParams | undefined;
getSources?: import("@algolia/autocomplete-shared").GetSources<TItem> | undefined;
initialState?: Partial<import("@algolia/autocomplete-shared").AutocompleteState<TItem>> | undefined;
onStateChange?(props: import("@algolia/autocomplete-shared").OnStateChangeProps<TItem>): void;
plugins?: import("@algolia/autocomplete-shared").AutocompletePlugin<any, any>[] | undefined;
debug?: boolean | undefined;
enterKeyHint?: import("@algolia/autocomplete-core").AutocompleteEnterKeyHint | undefined;
ignoreCompositionEvents?: boolean | undefined;
placeholder?: string | undefined;
autoFocus?: boolean | undefined;
defaultActiveItemId?: number | null | undefined;
openOnFocus?: boolean | undefined;
stallThreshold?: number | undefined;
navigator?: Partial<import("@algolia/autocomplete-shared/dist/esm/core/AutocompleteNavigator").AutocompleteNavigator<TItem>> | undefined;
shouldPanelOpen?(params: {
state: import("@algolia/autocomplete-core").AutocompleteState<TItem>;
}): boolean;
onSubmit?(params: import("@algolia/autocomplete-core").OnSubmitParams<TItem>): void;
onReset?(params: import("@algolia/autocomplete-core").OnResetParams<TItem>): void;
reshape?: import("@algolia/autocomplete-core").Reshape<TItem, import("@algolia/autocomplete-core").AutocompleteState<TItem>> | undefined;
};
};