import '../select-input'; import './panel/SinglePanel'; import 'tdesign-icons-web-components/esm/components/calendar'; import { Component, OmiProps } from 'omi'; import { StyledProps } from '../common'; import { TdDatePickerProps } from './type'; export interface DatePickerProps extends Omit, Omit { style?: TdDatePickerProps['style']; } export default class DatePicker extends Component { static defaultProps: Partial; static propTypes: { value: (ObjectConstructor | ArrayConstructor | NumberConstructor | StringConstructor)[]; defaultValue: (ObjectConstructor | ArrayConstructor | NumberConstructor | StringConstructor)[]; popupVisible: BooleanConstructor; defaultPopupVisible: BooleanConstructor; format: StringConstructor; mode: StringConstructor; enableTimePicker: BooleanConstructor; disabled: BooleanConstructor; presets: ObjectConstructor; presetsPlacement: StringConstructor; placeholder: StringConstructor; tips: (ObjectConstructor | FunctionConstructor | StringConstructor)[]; status: StringConstructor; borderless: BooleanConstructor; onChange: FunctionConstructor; onPick: FunctionConstructor; onClear: FunctionConstructor; onVisibleChange: FunctionConstructor; onPresetClick: FunctionConstructor; }; private classPrefix; private formatInfo; private valueState; private setValueState; private popupVisibleState; private setPopupVisibleState; private inputValueSignal; private cacheValueSignal; private placeholderSignal; private yearSignal; private monthSignal; install(): void; ready(): void; receiveProps(nextProps: OmiProps): void; /** * 初始化受控状态 * 设置值和弹窗的受控逻辑,同步派生状态 */ private initializeControlled; /** * 管理value的受控/非受控状态 */ private setupValueControl; /** * 管理popupVisible的受控/非受控状态 */ private setupPopupControl; /** * 将不同类型的日期值标准化为Date对象 */ private normalizeValue; /** * 同步派生状态 * 根据当前值更新输入框显示值、缓存值、年月信号 */ private syncDerivedState; /** * 处理弹窗visible change * 弹窗打开时同步状态,关闭时根据输入的值是否有效来决定值的更新 */ private handlePopupVisibleChange; /** * 弹窗关闭时确认是否存在有效的输入更新 * 如果输入值有效且与当前值不同,则更新值 */ private triggerConfirmOnClose; /** * 清空值并关闭弹窗 */ private handleClear; /** * 处理日期单元格点击 * 更新选中值、同步年月面板、触发回调并关闭弹窗 */ private handleCellClick; /** * 日期单元格mouse enter * 更新placeholder */ private handleCellMouseEnter; /** * 日期单元格mouse leave * placeholder */ private handleCellMouseLeave; /** * 处理输入框内容变化 * 验证输入格式,有效时同步更新值和年月面板 */ private handleInputChange; /** * 处理year, month面板快速切换 * 根据mode计算跳转的月数,更新year, month signal */ private handlePanelJumperClick; private handlePanelMonthChange; private handlePanelYearChange; /** * 处理预设按钮点击 * 解析预设值,更新选中值和面板状态 */ private handlePresetClick; private renderPanel; render(props: OmiProps): JSX.Element; }