@exadel/esl
Version:
Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components
64 lines (63 loc) • 2.38 kB
TypeScript
import { ESLSelectWrapper } from '../../esl-select-list/core/esl-select-wrapper';
import { ESLSelectRenderer } from './esl-select-renderer';
import { ESLSelectDropdown } from './esl-select-dropdown';
/**
* ESLSelect component
* @author Alexey Stsefanovich (ala'n)
*
* ESLSelect is a component on top of native select that brings more customization features.
* Uses "select with dropdown" view. Supports both single and multiple selection.
*/
export declare class ESLSelect extends ESLSelectWrapper {
static readonly is = "esl-select";
static observedAttributes: string[];
static register(): void;
/** Placeholder text property */
placeholder: string;
/** Class(es) to mark not empty state */
hasValueClass: string;
/** Class(es) for focused state. Select is also focused if the dropdown list is opened */
hasFocusClass: string;
/** Class(es) for select dropdown */
dropdownClass: string;
/** Select all options text */
selectAllLabel: string;
/**
* Text to add when there is not enough space to show all selected options inline,
* Supports `{rest}`, `{length}` and `{limit}` placeholders
*/
moreLabelFormat: string;
/** Dropdown open marker */
open: boolean;
/** Disabled state marker */
disabled: boolean;
/** Marker for selecting items to be pinned to the top of the dropdown */
pinSelected: boolean;
protected $renderer: ESLSelectRenderer;
protected $dropdown: ESLSelectDropdown;
constructor();
protected attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void;
protected connectedCallback(): void;
protected disconnectedCallback(): void;
/** Catches the focus */
focus(options?: FocusOptions): void;
/** Updates select component */
update(valueChanged?: boolean): void;
protected _prepare(): void;
protected _dispose(): void;
protected _updateMarkers(): void;
protected _updateDisabled(): void;
protected _onChange(event: Event): void;
protected _onFocusOut(): void;
protected _onClick(): void;
protected _onKeydown(e: KeyboardEvent): void;
protected _onPopupStateChange(e: CustomEvent): void;
}
declare global {
export interface ESLLibrary {
Select: typeof ESLSelect;
}
export interface HTMLElementTagNameMap {
'esl-select': ESLSelect;
}
}