import { ConfiguredComponent } from '@befe/brick-core'; import { Dayjs } from 'dayjs'; import { DatePickerProps } from '../create-inner-date-picker'; import { TypeDatePickerMode, TypePickerSize, TypePickerStatus } from '../prop-types'; export interface MultiDatePickerProps { /** * 自定义 class */ className?: string; /** * 选中的日期值列表 (控制属性) * **注意: 此项值与 DatePicker 不一样, 单个值为 string, 而非 Dayjs 格式** * * e.g. * 日期格式 : ['2023-01-01', '2024-10-10', ...] * 月份格式 : ['2023-01', '2024-10', ...] * 季度格式 : ['2023-Q1', '2024-Q4', ...] * * @type string[] */ value?: string[]; /** * 选中的日期值 (非控制属性) * 值的说明见 value 属性 * * @type string[] */ defaultValue?: string[]; disabled?: boolean; /** * 整体大小控制 : xs, sm, md, lg, xl * 会影响 "输入框" & "面板" 的尺寸 */ size?: TypePickerSize; /** * 是否当前出于出错状态 */ status?: TypePickerStatus; /** * 选择器的取值类型 */ mode?: TypeDatePickerMode; /** * 选中的值, 在 "输入框" 中展示的内容 * 注意, 这个和 DatePicker 的 itemFormat (dayjs format 模板) 不同 */ formatItem?: (dateText: string) => string; /** * @param date 当前计算 disabled 的日期 or 月份 or 季度 (**的第一天**) * @param firstDayOfCurrentUnit 今天的日期 or 月份 or 季度 (**的第一天**) */ getDisabledItem?: (date: Dayjs, firstDayOfCurrentUnit: Dayjs) => boolean; /** * 当日期面板打开时, 设置其 "显示的面板位置" * * 这个可能主要在当没有选择日期时, 用于确定面板月份的显示策略 ( 缺省方案是显示 "当月" 或 "当年" ) */ getDefaultDisplayDate?: (today: Dayjs) => Dayjs; /** * 是否显示 : 今日 (注意, 本项在 `月份`, `季度` 模式下无效) * * @default false */ hideNow?: boolean; hideSummary?: boolean; /** * 面板的附加 className */ popupClassName?: string; /** * 当选择中一个日期时, 会触发该回调 * * @param selectedList 选中的日期列表, 具体格式见 value 属性 */ onChange?: (selectedList: string[]) => void; /** * 日期选择器 input 框的 placeholder */ placeholder?: string; } interface MultiDatePickerState { innerValue: string[]; isZooming: boolean; displayedDate: Dayjs | null; } /** */ export declare class MultiDatePicker extends ConfiguredComponent { static defaultProps: MultiDatePickerProps; get size(): DatePickerProps['size']; get className(): string; get popupClassName(): string; state: MultiDatePickerState; constructor(props: MultiDatePickerProps); static getDerivedStateFromProps(nextProps: MultiDatePickerProps, prevState: MultiDatePickerState): Partial | null; render(): import("react/jsx-runtime").JSX.Element; private renderInputContent; private readonly dayjsCached; private readonly parseDateText; private renderPickerIcon; private renderPickerIcon_withSelectedList; private renderSelectedList_clearAll; private renderPickerIcon_plainIcon; private renderSelectedList; private renderPanelContent; private renderQuarterPanel; private renderDatePanel; private renderMonthPanel; private renderDateZoomedMonthPanel; private getValueList; private readonly handleDateForZoomingClick; private readonly handleDateClick; private toDateText; private readonly handlePrevDisplayedYear; private readonly handleNextDisplayedYear; private readonly handlePrevDisplayedMonth; private readonly handleNextDisplayedMonth; private readonly handleToggleZooming; private readonly handleTogglePopper; private readonly handleDisplayedDateChange; private removeSelectedDate; private handleChange; private readonly clearAllSelected; } export {};