preline
Version:
Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.
158 lines (155 loc) • 4.73 kB
TypeScript
export interface ISelectOptions {
value?: string | string[];
isOpened?: boolean;
placeholder?: string;
hasSearch?: boolean;
mode?: string;
viewport?: string;
toggleTag?: string;
toggleClasses?: string;
toggleCountText?: string;
toggleCountTextMinItems?: number;
tagsClasses?: string;
tagsItemTemplate?: string;
tagsItemClasses?: string;
tagsInputClasses?: string;
dropdownTag?: string;
dropdownClasses?: string;
dropdownDirectionClasses?: {
top?: string;
bottom?: string;
};
dropdownSpace: number;
searchWrapperTemplate?: string;
searchClasses?: string;
searchWrapperClasses?: string;
searchPlaceholder?: string;
searchNoItemsText?: string;
searchNoItemsClasses?: string;
optionTemplate?: string;
optionTag?: string;
optionClasses?: string;
descriptionClasses?: string;
iconClasses?: string;
}
export interface ISelect {
options?: ISelectOptions;
open(): void;
close(): void;
recalculateDirection(): void;
}
export interface IBasePlugin<O, E> {
el: E;
options?: O;
events?: {};
}
declare class HSBasePlugin<O, E = HTMLElement> implements IBasePlugin<O, E> {
el: E;
options: O;
events?: any;
constructor(el: E, options: O, events?: any);
isIOS(): boolean;
isIpadOS(): boolean;
createCollection(collection: any[], element: any): void;
fireEvent(evt: string, payload?: any): any;
dispatch(evt: string, element: any, payload?: any): void;
on(evt: string, cb: Function): void;
afterTransition(el: HTMLElement, callback: Function): void;
onTransitionEnd(el: HTMLElement, cb: Function): void;
getClassProperty(el: HTMLElement, prop: string, val?: string): string;
getClassPropertyAlt(el: HTMLElement, prop?: string, val?: string): string;
htmlToElement(html: string): HTMLElement;
classToClassList(classes: string, target: HTMLElement, splitter?: string): void;
debounce(func: Function, timeout?: number): (...args: any[]) => void;
checkIfFormElement(target: HTMLElement): boolean;
static isEnoughSpace(el: HTMLElement, toggle: HTMLElement, preferredPosition?: "top" | "bottom" | "auto", space?: number, wrapper?: HTMLElement | null): boolean;
static isParentOrElementHidden(element: any): any;
}
declare class HSSelect extends HSBasePlugin<ISelectOptions> implements ISelect {
value: string | string[] | null;
private readonly placeholder;
private readonly hasSearch;
private readonly mode;
private readonly viewport;
isOpened: boolean | null;
isMultiple: boolean | null;
isDisabled: boolean | null;
private readonly toggleTag;
private readonly toggleClasses;
private readonly toggleCountText;
private readonly toggleCountTextMinItems;
private readonly tagsClasses;
private readonly tagsItemTemplate;
private readonly tagsItemClasses;
private readonly tagsInputClasses;
private readonly dropdownTag;
private readonly dropdownClasses;
private readonly dropdownDirectionClasses;
dropdownSpace: number | null;
private readonly searchWrapperTemplate;
private readonly searchPlaceholder;
private readonly searchClasses;
private readonly searchWrapperClasses;
private readonly optionTag;
private readonly optionTemplate;
private readonly optionClasses;
private readonly descriptionClasses;
private readonly iconClasses;
private animationInProcess;
private wrapper;
private toggle;
private toggleTextWrapper;
private tags;
private tagsItems;
private tagsInput;
private dropdown;
private searchWrapper;
private search;
private selectOptions;
constructor(el: HTMLElement, options?: ISelectOptions);
private init;
private build;
private buildWrapper;
private buildToggle;
private setToggleIcon;
private setToggleTitle;
private buildTags;
private buildTagsItems;
private buildTagsItem;
private getItemByValue;
private setTagsItems;
private buildTagsInput;
private buildDropdown;
private buildSearch;
private buildOption;
private onSelectOption;
private addSelectOption;
private resetTagsInputField;
private clearSelections;
private setNewValue;
private stringFromValue;
private selectSingleItem;
private selectMultipleItems;
private unselectMultipleItems;
private searchOptions;
open(): boolean;
close(): boolean;
recalculateDirection(): void;
static getInstance(target: HTMLElement | string, isInstance?: boolean): HSSelect | {
id: number;
element: HSSelect;
};
static autoInit(): void;
static close(target: HTMLElement | string): void;
static closeCurrentlyOpened(evtTarget?: HTMLElement | null): void;
static accessibility(evt: KeyboardEvent): void;
static onEscape(): void;
static onArrow(isArrowUp?: boolean): boolean;
static onTab(isArrowUp?: boolean): boolean;
static onStartEnd(isStart?: boolean): boolean;
static onEnter(evt: Event): void;
}
export {
HSSelect as default,
};
export {};