props.d.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. import { IBaseProps } from '../_util/base';
  2. export interface CalendarDate {
  3. year: number;
  4. month: number;
  5. date: number;
  6. }
  7. export declare const defaultLocaleText: {
  8. weekdayNames: string[];
  9. title: string;
  10. today: string;
  11. start: string;
  12. end: string;
  13. startAndEnd: string;
  14. };
  15. export interface LocaleText {
  16. /**
  17. * 星期的名称。从周一到周日
  18. * 默认为 ['一', '二', '三', '四', '五', '六', '日']
  19. */
  20. weekdayNames: string[];
  21. /**
  22. * 月份标题的格式。 默认为 'YYYY年MM月'
  23. */
  24. title: string;
  25. /**
  26. * 今日的文案。 默认为 '今日'
  27. */
  28. today: string;
  29. /**
  30. * 开始的文案。 默认为 '开始'
  31. */
  32. start: string;
  33. /**
  34. * 结束的文案。 默认为 '结束'
  35. */
  36. startAndEnd: string;
  37. /**
  38. * 开始/结束的文案。 默认为 '开始/结束'
  39. */
  40. end: string;
  41. }
  42. export interface CellState {
  43. /**
  44. * 是否被禁止
  45. */
  46. disabled: boolean;
  47. /**
  48. * 日历单元格的顶部内容
  49. */
  50. top?: {
  51. label: string;
  52. className?: string;
  53. };
  54. /**
  55. * 日历单元格的底部内容
  56. */
  57. bottom?: {
  58. label: string;
  59. className?: string;
  60. };
  61. /**
  62. * 时间戳
  63. */
  64. time: number;
  65. /**
  66. * 日期
  67. */
  68. date: number;
  69. /**
  70. * 是否被选择
  71. */
  72. isSelected: boolean;
  73. /**
  74. * 是否是选择区间的开始
  75. */
  76. isSelectedBegin: boolean;
  77. /**
  78. * 是否是选择区间的结束
  79. */
  80. isSelectedEnd: boolean;
  81. /**
  82. * 是否是每一行的第一个
  83. */
  84. isRowBegin: boolean;
  85. isRowEnd: boolean;
  86. inThisMonth: boolean;
  87. }
  88. export type CalendarValue = number | number[];
  89. export type SelectionMode = 'single' | 'range';
  90. export interface ICalendarProps extends IBaseProps {
  91. /**
  92. * 初始值
  93. */
  94. defaultValue?: CalendarValue;
  95. /**
  96. * 日历选择的日期,受控模式
  97. */
  98. value?: CalendarValue;
  99. /**
  100. * 设置选择模式,单选或者连续区间, 默认为 'range'
  101. */
  102. selectionMode?: SelectionMode;
  103. /**
  104. * 月份范围,默认为最近 3 个月
  105. * 格式为时间戳
  106. * @default [本月第一天的时间戳, 3个月后第一天的时间戳]
  107. */
  108. monthRange?: [number, number];
  109. /**
  110. * 星期栏,以周几作为第一天显示,默认为 'Sunday'
  111. */
  112. weekStartsOn?: 'Sunday' | 'Monday';
  113. /**
  114. * 国际化文案
  115. */
  116. localeText?: Partial<LocaleText>;
  117. /**
  118. * 选中值改变后滚动视图
  119. */
  120. changedScrollIntoView?: boolean;
  121. /**
  122. * 日期变化回调
  123. */
  124. onChange?: (date: CalendarValue) => void;
  125. /**
  126. * onFormatter 用于设置单元格的自定义数据
  127. * @param cell 原始数据
  128. * @param currentValue 当前的 value
  129. * @returns 返回新的数据
  130. */
  131. onFormatter?: (cell: Pick<CellState, 'disabled' | 'top' | 'bottom' | 'time' | 'isSelectedBegin' | 'isSelectedEnd' | 'isSelected'>, currentValue: CalendarValue) => Pick<CellState, 'disabled' | 'top' | 'bottom'>;
  132. }
  133. export declare const CalendarDefaultProps: {
  134. defaultValue: any;
  135. value: any;
  136. selectionMode: string;
  137. monthRange: [number, number];
  138. weekStartsOn: string;
  139. localeText: {
  140. weekdayNames: string[];
  141. title: string;
  142. today: string;
  143. start: string;
  144. end: string;
  145. startAndEnd: string;
  146. };
  147. onFormatter: any;
  148. changedScrollIntoView: any;
  149. };