RangePicker.d.ts 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import type { DisabledTimes, PanelMode, PickerMode, RangeValue, EventValue, PresetDate } from './interface';
  2. import type { PickerBaseProps, PickerDateProps, PickerTimeProps } from './Picker';
  3. import type { SharedTimeProps } from './panels/TimePanel';
  4. import type { VueNode } from '../_util/type';
  5. import type { FocusEventHandler, MouseEventHandler } from '../_util/EventInterface';
  6. export type RangeType = 'start' | 'end';
  7. export type RangeInfo = {
  8. range: RangeType;
  9. };
  10. export type RangeDateRender<DateType> = (props: {
  11. current: DateType;
  12. today: DateType;
  13. info: RangeInfo;
  14. }) => VueNode;
  15. export type RangePickerSharedProps<DateType> = {
  16. id?: string;
  17. value?: RangeValue<DateType>;
  18. defaultValue?: RangeValue<DateType>;
  19. defaultPickerValue?: [DateType, DateType];
  20. placeholder?: [string, string];
  21. disabled?: boolean | [boolean, boolean];
  22. disabledTime?: (date: EventValue<DateType>, type: RangeType) => DisabledTimes;
  23. presets?: PresetDate<RangeValue<DateType>>[];
  24. /** @deprecated Please use `presets` instead */
  25. ranges?: Record<string, Exclude<RangeValue<DateType>, null> | (() => Exclude<RangeValue<DateType>, null>)>;
  26. separator?: VueNode;
  27. allowEmpty?: [boolean, boolean];
  28. mode?: [PanelMode, PanelMode];
  29. onChange?: (values: RangeValue<DateType>, formatString: [string, string]) => void;
  30. onCalendarChange?: (values: RangeValue<DateType>, formatString: [string, string], info: RangeInfo) => void;
  31. onPanelChange?: (values: RangeValue<DateType>, modes: [PanelMode, PanelMode]) => void;
  32. onFocus?: FocusEventHandler;
  33. onBlur?: FocusEventHandler;
  34. onMousedown?: MouseEventHandler;
  35. onMouseup?: MouseEventHandler;
  36. onMouseenter?: MouseEventHandler;
  37. onMouseleave?: MouseEventHandler;
  38. onClick?: MouseEventHandler;
  39. onOk?: (dates: RangeValue<DateType>) => void;
  40. direction?: 'ltr' | 'rtl';
  41. autocomplete?: string;
  42. /** @private Internal control of active picker. Do not use since it's private usage */
  43. activePickerIndex?: 0 | 1;
  44. dateRender?: RangeDateRender<DateType>;
  45. panelRender?: (originPanel: VueNode) => VueNode;
  46. prevIcon?: VueNode;
  47. nextIcon?: VueNode;
  48. superPrevIcon?: VueNode;
  49. superNextIcon?: VueNode;
  50. };
  51. type OmitPickerProps<Props> = Omit<Props, 'value' | 'defaultValue' | 'defaultPickerValue' | 'placeholder' | 'disabled' | 'disabledTime' | 'showToday' | 'showTime' | 'mode' | 'onChange' | 'onSelect' | 'onPanelChange' | 'pickerValue' | 'onPickerValueChange' | 'onOk' | 'dateRender' | 'presets'>;
  52. type RangeShowTimeObject<DateType> = Omit<SharedTimeProps<DateType>, 'defaultValue'> & {
  53. defaultValue?: DateType[];
  54. };
  55. export type RangePickerBaseProps<DateType> = {} & RangePickerSharedProps<DateType> & OmitPickerProps<PickerBaseProps<DateType>>;
  56. export type RangePickerDateProps<DateType> = {
  57. showTime?: boolean | RangeShowTimeObject<DateType>;
  58. } & RangePickerSharedProps<DateType> & OmitPickerProps<PickerDateProps<DateType>>;
  59. export type RangePickerTimeProps<DateType> = {
  60. order?: boolean;
  61. } & RangePickerSharedProps<DateType> & OmitPickerProps<PickerTimeProps<DateType>>;
  62. export type RangePickerProps<DateType> = RangePickerBaseProps<DateType> | RangePickerDateProps<DateType> | RangePickerTimeProps<DateType>;
  63. type OmitType<DateType> = Omit<RangePickerBaseProps<DateType>, 'picker'> & Omit<RangePickerDateProps<DateType>, 'picker'> & Omit<RangePickerTimeProps<DateType>, 'picker'>;
  64. type MergedRangePickerProps<DateType> = {
  65. picker?: PickerMode;
  66. } & OmitType<DateType>;
  67. declare const InterRangerPicker: import("vue").DefineComponent<MergedRangePickerProps<any>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MergedRangePickerProps<any>>, {
  68. defaultOpenValue?: any;
  69. }, {}>;
  70. export default InterRangerPicker;