Picker.d.ts 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * Removed:
  3. * - getCalendarContainer: use `getPopupContainer` instead
  4. * - onOk
  5. *
  6. * New Feature:
  7. * - picker
  8. * - allowEmpty
  9. * - selectable
  10. *
  11. * Tips: Should add faq about `datetime` mode with `defaultValue`
  12. */
  13. import type { PickerPanelBaseProps, PickerPanelDateProps, PickerPanelTimeProps } from './PickerPanel';
  14. import type { CustomFormat, PanelMode, PickerMode, PresetDate, RangeValue } from './interface';
  15. import type { CSSProperties, HTMLAttributes } from 'vue';
  16. import type { FocusEventHandler, MouseEventHandler } from '../_util/EventInterface';
  17. import type { VueNode } from '../_util/type';
  18. import type { AlignType } from '../vc-align/interface';
  19. import type { SharedTimeProps } from './panels/TimePanel';
  20. export type PickerRefConfig = {
  21. focus: () => void;
  22. blur: () => void;
  23. };
  24. export type PickerSharedProps<DateType> = {
  25. dropdownClassName?: string;
  26. dropdownAlign?: AlignType;
  27. popupStyle?: CSSProperties;
  28. transitionName?: string;
  29. placeholder?: string;
  30. allowClear?: boolean;
  31. autofocus?: boolean;
  32. disabled?: boolean;
  33. tabindex?: number;
  34. open?: boolean;
  35. defaultOpen?: boolean;
  36. /** Make input readOnly to avoid popup keyboard in mobile */
  37. inputReadOnly?: boolean;
  38. id?: string;
  39. presets?: PresetDate<DateType>[];
  40. format?: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];
  41. suffixIcon?: VueNode;
  42. clearIcon?: VueNode;
  43. prevIcon?: VueNode;
  44. nextIcon?: VueNode;
  45. superPrevIcon?: VueNode;
  46. superNextIcon?: VueNode;
  47. getPopupContainer?: (node: HTMLElement) => HTMLElement;
  48. panelRender?: (originPanel: VueNode) => VueNode;
  49. inputRender?: (props: HTMLAttributes) => VueNode;
  50. onChange?: (value: DateType | null, dateString: string) => void;
  51. onOpenChange?: (open: boolean) => void;
  52. onPanelChange?: (values: RangeValue<DateType>, modes: [PanelMode, PanelMode]) => void;
  53. onFocus?: FocusEventHandler;
  54. onBlur?: FocusEventHandler;
  55. onMousedown?: MouseEventHandler;
  56. onMouseup?: MouseEventHandler;
  57. onMouseenter?: MouseEventHandler;
  58. onMouseleave?: MouseEventHandler;
  59. onClick?: MouseEventHandler;
  60. onContextmenu?: MouseEventHandler;
  61. onKeydown?: (event: KeyboardEvent, preventDefault: () => void) => void;
  62. role?: string;
  63. name?: string;
  64. autocomplete?: string;
  65. direction?: 'ltr' | 'rtl';
  66. showToday?: boolean;
  67. showTime?: boolean | SharedTimeProps<DateType>;
  68. };
  69. type OmitPanelProps<Props> = Omit<Props, 'onChange' | 'hideHeader' | 'pickerValue' | 'onPickerValueChange'>;
  70. export type PickerBaseProps<DateType> = {} & PickerSharedProps<DateType> & OmitPanelProps<PickerPanelBaseProps<DateType>>;
  71. export type PickerDateProps<DateType> = {} & PickerSharedProps<DateType> & OmitPanelProps<PickerPanelDateProps<DateType>>;
  72. export type PickerTimeProps<DateType> = {
  73. picker: 'time';
  74. /**
  75. * @deprecated Please use `defaultValue` directly instead
  76. * since `defaultOpenValue` will confuse user of current value status
  77. */
  78. defaultOpenValue?: DateType;
  79. } & PickerSharedProps<DateType> & Omit<OmitPanelProps<PickerPanelTimeProps<DateType>>, 'format'>;
  80. export type PickerProps<DateType> = PickerBaseProps<DateType> | PickerDateProps<DateType> | PickerTimeProps<DateType>;
  81. type OmitType<DateType> = Omit<PickerBaseProps<DateType>, 'picker'> & Omit<PickerDateProps<DateType>, 'picker'> & Omit<PickerTimeProps<DateType>, 'picker'>;
  82. type MergedPickerProps<DateType> = {
  83. picker?: PickerMode;
  84. } & OmitType<DateType>;
  85. declare const _default: import("vue").DefineComponent<MergedPickerProps<any>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MergedPickerProps<any>>, {
  86. value?: any;
  87. defaultValue?: any;
  88. defaultPickerValue?: any;
  89. defaultOpenValue?: any;
  90. }, {}>;
  91. export default _default;