import { Dayjs } from 'dayjs'; import { CSSProperties, ReactNode } from 'react'; import { TriggerProps } from '../trigger/index'; export declare type CalendarValue = Dayjs | Date | string | number; /** * @title Picker * `TimePicker` 和 `RangePicker` 的通用属性 */ export interface PickerProps { style?: CSSProperties; className?: string | string[]; /** * 是否禁用 */ disabled?: boolean; /** * 状态 */ status?: 'error' | 'warning'; /** * 前缀 */ prefix?: ReactNode; /** * 允许清除 * @defaultValue true */ allowClear?: boolean; /** * 禁用确认步骤,开启后直接点选时间不需要点击确认按钮。 */ disableConfirm?: boolean; /** * 弹出的框的位置 * @defaultValue bl */ position?: 'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br'; /** * 弹出框挂载的父节点 */ getPopupContainer?: (node: HTMLElement) => Element; /** * 提示文案 */ placeholder?: string | string[]; /** * 展示日期的格式,参考[dayjs](https://github.com/iamkun/dayjs) * @defaultValue HH:mm:ss */ format?: string; /** * 12 小时制 */ use12Hours?: boolean; /** * 点击清除按钮的回调 */ onClear?: () => void; /** * 控制弹出框打开或者关闭 */ popupVisible?: boolean; /** * 触发元素。 */ triggerElement?: ReactNode; /** * 可以传入 `Trigger` 组件的参数 */ triggerProps?: Partial; /** * 设置 时 / 分 / 秒 的选择间隔 */ step?: { hour?: number; minute?: number; second?: number; }; /** * 禁用的部分小时选项 */ disabledHours?: () => number[]; /** * 禁用的部分分钟选项 */ disabledMinutes?: (selectedHour: any) => number[]; /** * 禁用的部分秒数选项 */ disabledSeconds?: (selectedHour: any, selectedMinute: any) => number[]; /** * 隐藏禁止选择的选项 */ hideDisabledOptions?: boolean; /** * 输入框尺寸 */ size?: 'small' | 'middle' | 'large'; /** * 时间列在滚动的时候自动吸附和选中 * @defaultValue true */ scrollSticky?: boolean; /** * 是否可手动输入 * @defaultValue true */ editable?: boolean; /** * 用于配置图标 */ icons?: { inputSuffix?: ReactNode; }; /** * 底部附加内容 */ extra?: ReactNode; /** * 是否在关闭后销毁 dom 结构 */ unmountOnExit?: boolean; /** * 设置时区偏移,如果需要 utc 时间则设置为 0。 */ utcOffset?: number; /** * 设置时区, 如果设置了 `utcOffset`,则以 `utcOffset` 为准。 */ timezone?: string; } /** * @title TimePicker */ export declare type BaseTimePickerProps = { /** * 组件值发生改变时的回调 */ onSelect?: (valueString: string, value: Dayjs) => void; /** * 选择时间时的回调 */ onChange?: (valueString: string, value: Dayjs) => void; /** * 默认时间 */ defaultValue?: CalendarValue; /** * 组件的值,受控模式 */ value?: CalendarValue; /** * 是否显示选择当前时间的按钮 * @defaultValue true */ showNowBtn?: boolean; }; export declare type TimePickerProps = BaseTimePickerProps & PickerProps; /** * @title TimePicker.RangePicker */ export declare type BaseRangePickerProps = { /** * 日历组件值发生改变时的回调 */ onChange?: (valueString: string[], value: Dayjs[]) => void; /** * 选择日期时的回调 */ onSelect?: (valueString: string[], value: Dayjs[]) => void; /** * 默认时间 */ defaultValue?: CalendarValue[]; /** * 日历组件的值 */ value?: CalendarValue[]; /** * 提示文案 */ placeholder?: string[]; /** * 起止时间是否自动排序 * @defaultValue true */ order?: boolean; }; export declare type RangePickerProps = BaseRangePickerProps & PickerProps; export interface TimePickerDecorator extends React.ComponentClass { RangePicker: React.ComponentClass; }