import type { IPopperControlOption } from './popperControl'; import { PopperControl } from './popperControl'; type BaseOptionItem = { value: string; text: string; [key: string]: string; }; type NormalOptionItem = BaseOptionItem & { icon?: HTMLElement; }; type ImageOptionItem = BaseOptionItem & { img: string; }; export type ControlOptionItem = ImageOptionItem | NormalOptionItem; export interface ISelectControlOption extends IPopperControlOption { options: ControlOptionItem[]; defaultValue?: string | string[]; } export { SelectControl }; export default class SelectControl extends PopperControl { /** * 当前选中的值 * @protected */ protected selectValue: string[]; /** * 选项对应的 DOM 列表 * @protected */ protected optionDOMList: HTMLElement[]; setOptions(option: Partial): void; onAdd(): HTMLElement; getSelectValue(): string | string[]; setSelectValue(value: string | string[], emitEvent?: boolean): void; /** * 是否为多选 * @protected */ protected getIsMultiple(): boolean; /** * 渲染弹窗内容 * @param options * @returns */ protected getPopperContent(options: ControlOptionItem[]): HTMLElement; protected createNormalOption: (option: NormalOptionItem) => HTMLElement; protected createImageOption(option: ImageOptionItem): HTMLElement; protected createCheckbox(isSelect: boolean): HTMLElement; protected createRadio(isSelect: boolean): HTMLElement; protected onItemClick: (item: ControlOptionItem) => void; protected isImageOptions(): boolean; protected transSelectValue(value: string | string[]): string[]; }