generateCalendar.d.ts 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import type { GenerateConfig } from '../vc-picker/generate';
  2. import type { PickerPanelBaseProps as RCPickerPanelBaseProps, PickerPanelDateProps as RCPickerPanelDateProps, PickerPanelTimeProps as RCPickerPanelTimeProps } from '../vc-picker/PickerPanel';
  3. import enUS from './locale/en_US';
  4. import type { VueNode } from '../_util/type';
  5. declare type InjectDefaultProps<Props> = Omit<Props, 'locale' | 'generateConfig' | 'prevIcon' | 'nextIcon' | 'superPrevIcon' | 'superNextIcon'> & {
  6. locale?: typeof enUS;
  7. size?: 'large' | 'default' | 'small';
  8. };
  9. export declare type PickerPanelBaseProps<DateType> = InjectDefaultProps<RCPickerPanelBaseProps<DateType>>;
  10. export declare type PickerPanelDateProps<DateType> = InjectDefaultProps<RCPickerPanelDateProps<DateType>>;
  11. export declare type PickerPanelTimeProps<DateType> = InjectDefaultProps<RCPickerPanelTimeProps<DateType>>;
  12. export declare type PickerProps<DateType> = PickerPanelBaseProps<DateType> | PickerPanelDateProps<DateType> | PickerPanelTimeProps<DateType>;
  13. export declare type CalendarMode = 'year' | 'month';
  14. export declare type HeaderRender<DateType> = (config: {
  15. value: DateType;
  16. type: CalendarMode;
  17. onChange: (date: DateType) => void;
  18. onTypeChange: (type: CalendarMode) => void;
  19. }) => VueNode;
  20. declare type CustomRenderType<DateType> = (config: {
  21. current: DateType;
  22. }) => VueNode;
  23. export interface CalendarProps<DateType> {
  24. prefixCls?: string;
  25. locale?: typeof enUS;
  26. validRange?: [DateType, DateType];
  27. disabledDate?: (date: DateType) => boolean;
  28. dateFullCellRender?: CustomRenderType<DateType>;
  29. dateCellRender?: CustomRenderType<DateType>;
  30. monthFullCellRender?: CustomRenderType<DateType>;
  31. monthCellRender?: CustomRenderType<DateType>;
  32. headerRender?: HeaderRender<DateType>;
  33. value?: DateType | string;
  34. defaultValue?: DateType | string;
  35. mode?: CalendarMode;
  36. fullscreen?: boolean;
  37. onChange?: (date: DateType | string) => void;
  38. 'onUpdate:value'?: (date: DateType | string) => void;
  39. onPanelChange?: (date: DateType | string, mode: CalendarMode) => void;
  40. onSelect?: (date: DateType | string) => void;
  41. valueFormat?: string;
  42. }
  43. declare function generateCalendar<DateType, Props extends CalendarProps<DateType> = CalendarProps<DateType>>(generateConfig: GenerateConfig<DateType>): import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<Props extends import("vue").ComponentPropsOptions<{
  44. [x: string]: unknown;
  45. }> ? import("vue").ExtractPropTypes<Props> : Props>, import("vue").ExtractDefaultPropTypes<Props>>;
  46. export default generateCalendar;