import BaseFoundation, { DefaultAdapter } from '../base/foundation';
import { BasicOptionProps } from './optionFoundation';
export interface SelectAdapter
, S = Record> extends DefaultAdapter {
getTriggerWidth(): number;
updateFocusState(focus: boolean): void;
focusTrigger(): void;
unregisterClickOutsideHandler(): void;
setOptionWrapperWidth(width: string | number): void;
getOptionsFromChildren(): BasicOptionProps[];
updateOptions(options: BasicOptionProps[]): void;
rePositionDropdown(): void;
updateFocusIndex(index: number): void;
updateSelection(selection: Map): void;
openMenu(cb?: () => void): void;
notifyDropdownVisibleChange(visible: boolean): void;
registerClickOutsideHandler(event: any): void;
toggleInputShow(show: boolean, cb: () => void): void;
closeMenu(): void;
notifyCreate(option: BasicOptionProps): void;
getMaxLimit(): number;
getSelections(): Map;
notifyMaxLimit(arg: BasicOptionProps): void;
notifyClear(): void;
updateInputValue(inputValue: string): void;
focusInput(): void;
focusDropdownInput(): void;
notifySearch(inputValue: string, event?: any): void;
registerKeyDown(handler: () => void): void;
unregisterKeyDown(): void;
notifyChange(value: string | BasicOptionProps | (string | BasicOptionProps)[]): void;
notifySelect(value: BasicOptionProps['value'], option: BasicOptionProps): void;
notifyDeselect(value: BasicOptionProps['value'], option: BasicOptionProps): void;
notifyBlur(event: any): void;
notifyFocus(event: any): void;
notifyListScroll(event: any): void;
notifyMouseLeave(event: any): void;
notifyMouseEnter(event: any): void;
updateHovering(isHover: boolean): void;
updateScrollTop(index?: number): void;
updateOverflowItemCount(count: number): void;
getContainer(): any;
getFocusableElements(node: any): any[];
getActiveElement(): any;
setIsFocusInContainer(isFocusInContainer: boolean): void;
getIsFocusInContainer(): boolean;
on(eventName: string, eventCallback: () => void): void;
off(eventName: string): void;
emit(eventName: string): void;
once(eventName: string, eventCallback: () => void): void;
}
type LabelValue = string | number;
type PropValue = LabelValue | Record;
export default class SelectFoundation extends BaseFoundation {
constructor(adapter: SelectAdapter);
_keydownHandler: (...arg: any[]) => void | null;
init(): void;
focus(): void;
_focusTrigger(): void;
destroy(): void;
_setDropdownWidth(): void;
_collectOptions(): BasicOptionProps[];
_setDefaultSelection(originalOptions: BasicOptionProps[]): void;
handleOptionListChange(): void;
handleOptionListChangeHadDefaultValue(): void;
handleValueChange(value: PropValue): void;
_update(propValue: PropValue, originalOptions: BasicOptionProps[]): void;
_updateSingle(propValue: PropValue, originalOptions: BasicOptionProps[]): Map;
_updateMultiple(propValue: PropValue[], originalOptions: BasicOptionProps[]): Map;
_isMultiple(): any;
_isDisabled(): any;
_isFilterable(): boolean;
handleClick(e: any): void;
open(acInput?: string, originalOptions?: BasicOptionProps[]): void;
toggle2SearchInput(isShow: boolean): void;
close(closeConfig?: {
event?: any;
closeCb?: () => void;
notToggleInput?: boolean;
}): void;
onSelect(option: BasicOptionProps, optionIndex: number, event: MouseEvent | KeyboardEvent): void;
_handleSingleSelect({ value, label, ...rest }: BasicOptionProps, event: any): void;
_handleMultipleSelect({ value, label, ...rest }: BasicOptionProps, event: MouseEvent | KeyboardEvent): void;
clearSelected(): void;
updateOptionsActiveStatus(selections: Map, options?: BasicOptionProps[]): void;
removeTag(item: BasicOptionProps): void;
clearInput(event?: any): void;
focusInput(): void;
handleInputChange(sugInput: string, event: any): void;
_filterOption(originalOptions: BasicOptionProps[], sugInput: string): BasicOptionProps[];
_createOptionByInput(allowCreate: boolean, optionsAfterFilter: BasicOptionProps[], sugInput: string): BasicOptionProps[];
bindKeyBoardEvent(): void;
unBindKeyBoardEvent(): void;
_handleKeyDown(event: KeyboardEvent): void;
handleContainerKeyDown(event: any): void;
_getEnableFocusIndex(offset: number): void;
_handleArrowKeyDown(offset: number): void;
_handleTabKeyDown(event: any): void;
_handlePanelOpenTabKeyDown(focusableElements: any[], event: any): void;
_handlePanelOpenShiftTabKeyDown(focusableElements: any[], event: any): void;
_handleEnterKeyDown(event: KeyboardEvent): void;
_handleBackspaceKeyDown(): void;
_notifyChange(selections: Map): void;
_removeInternalKey(option: BasicOptionProps): {
[x: string]: any;
value?: string | number;
label?: unknown;
children?: unknown;
disabled?: boolean;
showTick?: boolean;
className?: string;
style?: Record;
};
_notifySelect(value: BasicOptionProps['value'], option: BasicOptionProps): void;
_notifyDeselect(value: BasicOptionProps['value'], option: BasicOptionProps): void;
_diffSelections(selections: Map, oldSelections: Map, isMultiple: boolean): boolean;
_notifyChangeWithObject(selections: Map): void;
_notifyBlur(e: FocusEvent): void;
_notifyFocus(e: FocusEvent): void;
handleMouseEnter(e: MouseEvent): void;
handleMouseLeave(e: MouseEvent): void;
handleClearClick(e: MouseEvent): void;
handleKeyPress(e: KeyboardEvent): void;
handleClearBtnEnterPress(e: KeyboardEvent): void;
handleOptionMouseEnter(optionIndex: number): void;
handleListScroll(e: any): void;
handleTriggerFocus(e: any): void;
handleTriggerBlur(e: FocusEvent): void;
handleInputBlur(e: any): void;
selectAll(): void;
/**
* Check whether the props
* -defaultValue/value in multiple selection mode is array
* @param {Object} props
*/
checkMultipleProps(props?: Record): void;
updateScrollTop(): void;
updateOverflowItemCount(selectionLength: number, overFlowCount?: number): void;
updateIsFullTags(): void;
handlePopoverClose(): void;
handleSlotMouseEnter(): void;
}
export {};