import type { FormatType, InternalMode, PickerMode } from '../../interface'; import type { RangePickerProps } from '../RangePicker'; import useInvalidate from './useInvalidate'; type UseInvalidate = typeof useInvalidate; type PickedProps = Pick, 'generateConfig' | 'locale' | 'picker' | 'prefixCls' | 'styles' | 'classNames' | 'order' | 'components' | 'inputRender' | 'clearIcon' | 'allowClear' | 'needConfirm' | 'format' | 'inputReadOnly' | 'disabledDate' | 'minDate' | 'maxDate' | 'defaultOpenValue'> & { multiple?: boolean; showTime?: any; value?: any; defaultValue?: any; pickerValue?: any; defaultPickerValue?: any; }; type ExcludeBooleanType = T extends boolean ? never : T; type GetGeneric = T extends PickedProps ? U : never; type ToArrayType = T extends any[] ? T : DateType[]; /** * Align the outer props with unique typed and fill undefined props. * This is shared with both RangePicker and Picker. This will do: * - Convert `value` & `defaultValue` to array * - handle the legacy props fill like `clearIcon` + `allowClear` = `clearIcon` */ export default function useFilledProps, UpdaterProps extends object>(props: InProps, updater?: () => UpdaterProps): [ filledProps: Omit & UpdaterProps & { picker: PickerMode; showTime?: ExcludeBooleanType; value?: ToArrayType; defaultValue?: ToArrayType; pickerValue?: ToArrayType; defaultPickerValue?: ToArrayType; }, internalPicker: InternalMode, complexPicker: boolean, formatList: FormatType[], maskFormat: string, isInvalidateDate: ReturnType> ]; export {};