@kelvininc/ui-components
Version:
Kelvin UI Components
149 lines (148 loc) • 4.57 kB
TypeScript
import { EventEmitter } from '../../stencil-public-runtime';
import { EIconName } from '../icon/icon.types';
import { EValidationState, ITextField } from '../text-field/text-field.types';
import { ISingleSelectDropdown, ISingleSelectDropdownEvents, ISelectSingleOptions } from './single-select-dropdown.types';
import { CustomCssClass, EComponentSize, IIllustrationMessage, ISelectOption } from '../../types';
import { ComputePositionConfig } from '@floating-ui/dom';
/**
* @part select - The select container.
*/
export declare class KvSingleSelectDropdown implements ISingleSelectDropdown, ISingleSelectDropdownEvents {
/** @inheritdoc */
placeholder: string;
/** @inheritdoc */
isOpen?: boolean;
/** @inheritdoc */
loading?: boolean;
/** @inheritdoc */
icon?: EIconName;
/** @inheritdoc */
required?: boolean;
/** @inheritdoc */
label?: string;
/** @inheritdoc */
displayValue?: string;
/** @inheritdoc */
displayPrefix?: string;
/** @inheritdoc */
badge?: string;
/** @inheritdoc */
errorState?: EValidationState;
/** @inheritdoc */
helpText?: string | string[];
/** @inheritdoc */
disabled?: boolean;
/** @inheritdoc */
inputSize?: EComponentSize;
/** @inheritdoc */
dropdownOptions: Partial<ComputePositionConfig>;
/** @inheritdoc */
customClass?: CustomCssClass;
/** @inheritdoc */
clickOutsideClose?: boolean;
/** @inheritdoc */
actionElement?: HTMLElement | null;
/** @inheritdoc */
options?: ISelectSingleOptions;
/** @inheritdoc */
selectedOption?: string;
/** @inheritdoc */
filteredOptions?: ISelectSingleOptions;
/** @inheritdoc */
noDataAvailableConfig?: IIllustrationMessage;
/** @inheritdoc */
noResultsFoundConfig?: IIllustrationMessage;
/** @inheritdoc */
searchable?: boolean;
/** @inheritdoc */
searchPlaceholder?: string;
/** @inheritdoc */
selectionClearable?: boolean;
/** @inheritdoc */
clearSelectionLabel?: string;
/** @inheritdoc */
minHeight?: string;
/** @inheritdoc */
maxHeight?: string;
/** @inheritdoc */
minWidth?: string;
/** @inheritdoc */
maxWidth?: string;
/** @inheritdoc */
selectionAll?: boolean;
/** @inheritdoc */
selectAllLabel?: string;
/** @inheritdoc */
counter?: boolean;
/** @inheritdoc */
minSearchOptions?: number;
/** @inheritdoc */
shortcuts?: boolean;
/** @inheritdoc */
zIndex?: number;
/** @inheritdoc */
canAddItems?: boolean;
/** @inheritdoc */
createInputPlaceholder?: string;
/** @inheritdoc */
createOptionPlaceholder?: string;
/** @inheritdoc */
inputConfig?: Partial<ITextField>;
/** @inheritdoc */
autoFocus?: boolean;
/** @inheritdoc */
optionSelected: EventEmitter<string>;
/** @inheritdoc */
searchChange: EventEmitter<string>;
/** @inheritdoc */
clearSelection: EventEmitter<void>;
/** @inheritdoc */
dismiss: EventEmitter<void>;
/** @inheritdoc */
clickOutside: EventEmitter<void>;
/** @inheritdoc */
optionCreated: EventEmitter<string>;
/** @inheritdoc */
openStateChange: EventEmitter<boolean>;
_searchValue: string;
_selectionDisplayValue: string | undefined;
/** The Host's element reference */
el: HTMLKvSingleSelectDropdownElement;
selectOptions: {
total: Record<string, ISelectOption>;
filtered: Record<string, ISelectOption>;
flatten: Record<string, ISelectOption>;
};
highlightedOption?: string;
optionsChangeHandler(): void;
selectedOptionChangeHandler(): void;
displayValueChangeHandler(): void;
filterOptionsChangeHandler(): void;
/** Focuses the search text field */
focusSearch(): Promise<void>;
componentWillLoad(): void;
private selectRef?;
private onOptionSelected;
private onDismiss;
private onSearchChange;
private onOpenStateChange;
private onClearSelection;
private onOptionCreated;
private selectOption;
private focusSearchInput;
private setOpenState;
private setSearch;
private getMaxHeight;
private getMinHeight;
private getMaxWidth;
private getMinWidth;
private getInputConfig;
private clearHighlightedOption;
private closeCreatePopup;
private calculateLabelValue;
private validateSelectedOptionValue;
private buildSelectionOptions;
private get selectedOptions();
connectedCallback(): void;
render(): any;
}