useRangeValue.d.ts 2.2 KB

12345678910111213141516171819202122232425262728
  1. import type { GenerateConfig } from '../../generate';
  2. import type { BaseInfo, FormatType, Locale, ReplaceListType } from '../../interface';
  3. import type { RangePickerProps } from '../RangePicker';
  4. import type { ReplacedPickerProps } from '../SinglePicker';
  5. type TriggerCalendarChange<ValueType extends object[]> = (calendarValues: ValueType) => void;
  6. /**
  7. * Control the internal `value` align with prop `value` and provide a temp `calendarValue` for ui.
  8. * `calendarValue` will be reset when blur & focus & open.
  9. */
  10. export declare function useInnerValue<ValueType extends DateType[], DateType extends object = any>(generateConfig: GenerateConfig<DateType>, locale: Locale, formatList: FormatType[],
  11. /** Used for RangePicker. `true` means [DateType, DateType] or will be DateType[] */
  12. rangeValue: boolean,
  13. /**
  14. * Trigger order when trigger calendar value change.
  15. * This should only used in SinglePicker with `multiple` mode.
  16. * So when `rangeValue` is `true`, order will be ignored.
  17. */
  18. order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType), ignoreDestroy?: boolean) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
  19. export default function useRangeValue<ValueType extends DateType[], DateType extends object = any>(info: Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'allowEmpty' | 'order' | 'picker'> & ReplacedPickerProps<DateType>, mergedValue: ValueType, setInnerValue: (nextValue: ValueType) => void, getCalendarValue: () => ValueType, triggerCalendarChange: TriggerCalendarChange<ValueType>, disabled: ReplaceListType<Required<ValueType>, boolean>, formatList: FormatType[], focused: boolean, open: boolean, isInvalidateDate: (date: DateType, info?: {
  20. from?: DateType;
  21. activeIndex: number;
  22. }) => boolean): [
  23. /** Trigger `onChange` by check `disabledDate` */
  24. flushSubmit: (index: number, needTriggerChange: boolean) => void,
  25. /** Trigger `onChange` directly without check `disabledDate` */
  26. triggerSubmitChange: (value: ValueType) => boolean
  27. ];
  28. export {};