@rainbow-oh/yee-c 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/cjs/Button/button.d.ts +1 -1
  2. package/dist/cjs/CSV/download.d.ts +1 -1
  3. package/dist/cjs/Carousel/carousel.d.ts +2 -2
  4. package/dist/cjs/Carousel/carousel.js +9 -2
  5. package/dist/cjs/Carousel/interface.d.ts +5 -0
  6. package/dist/cjs/Dialog/demo/basic.js +1 -1
  7. package/dist/cjs/Dialog/dialog.js +1 -1
  8. package/dist/cjs/Drawer/style/index.less +4 -0
  9. package/dist/cjs/Field/demo/validation.js +23 -3
  10. package/dist/cjs/Field/field.js +1 -1
  11. package/dist/cjs/FloatButton/float-button.d.ts +1 -1
  12. package/dist/cjs/Form/Field.js +1 -4
  13. package/dist/cjs/Form/Form.js +1 -1
  14. package/dist/cjs/Form/Group.js +36 -14
  15. package/dist/cjs/Form/List.js +23 -3
  16. package/dist/cjs/Form/demo/async-validate.d.ts +3 -0
  17. package/dist/cjs/Form/demo/async-validate.js +108 -0
  18. package/dist/cjs/Form/demo/basic.js +2 -2
  19. package/dist/cjs/Form/demo/virtual.js +1 -1
  20. package/dist/cjs/Form/form-store.d.ts +4 -4
  21. package/dist/cjs/Form/form-store.js +55 -25
  22. package/dist/cjs/Form/interface.d.ts +10 -7
  23. package/dist/cjs/Form/style/index.less +15 -0
  24. package/dist/cjs/Form/utils/validate.d.ts +23 -2
  25. package/dist/cjs/Form/utils/validate.js +59 -10
  26. package/dist/cjs/Input/style/index.less +0 -17
  27. package/dist/cjs/InputNumber/style/index.less +0 -29
  28. package/dist/cjs/PickerPanel/interface.d.ts +44 -2
  29. package/dist/cjs/PickerPanel/panels/DatePanel/DateBody.d.ts +2 -1
  30. package/dist/cjs/PickerPanel/panels/DatePanel/DateHeader.d.ts +2 -1
  31. package/dist/cjs/PickerPanel/panels/DatePanel/DateHeader.js +1 -1
  32. package/dist/cjs/PickerPanel/panels/DatePanel/index.d.ts +2 -1
  33. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.d.ts +7 -1
  34. package/dist/cjs/PickerPanel/panels/DateTimePanel/index.js +18 -4
  35. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeBody.d.ts +2 -1
  36. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeBody.js +1 -1
  37. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeHeader.d.ts +2 -1
  38. package/dist/cjs/PickerPanel/panels/DecadePanel/DecadeHeader.js +1 -1
  39. package/dist/cjs/PickerPanel/panels/DecadePanel/index.d.ts +2 -1
  40. package/dist/cjs/PickerPanel/panels/DecadePanel/index.js +1 -1
  41. package/dist/cjs/PickerPanel/panels/Header.d.ts +13 -1
  42. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthBody.d.ts +2 -1
  43. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.d.ts +2 -1
  44. package/dist/cjs/PickerPanel/panels/MonthPanel/MonthHeader.js +1 -1
  45. package/dist/cjs/PickerPanel/panels/MonthPanel/index.d.ts +2 -1
  46. package/dist/cjs/PickerPanel/panels/MonthPanel/index.js +1 -1
  47. package/dist/cjs/PickerPanel/panels/PanelBody.d.ts +21 -1
  48. package/dist/cjs/PickerPanel/panels/PanelBody.js +3 -3
  49. package/dist/cjs/PickerPanel/panels/QuarterPanel/QuarterBody.d.ts +2 -1
  50. package/dist/cjs/PickerPanel/panels/QuarterPanel/QuarterHeader.d.ts +2 -1
  51. package/dist/cjs/PickerPanel/panels/QuarterPanel/index.d.ts +2 -1
  52. package/dist/cjs/PickerPanel/panels/RangePanel/index.d.ts +2 -1
  53. package/dist/cjs/PickerPanel/panels/RangePanel/index.js +2 -2
  54. package/dist/cjs/PickerPanel/panels/RangePanel/interface.d.ts +5 -5
  55. package/dist/cjs/PickerPanel/panels/TimePanel/TimeBody.d.ts +17 -1
  56. package/dist/cjs/PickerPanel/panels/TimePanel/TimeCell.d.ts +7 -1
  57. package/dist/cjs/PickerPanel/panels/TimePanel/TimeCell.js +1 -1
  58. package/dist/cjs/PickerPanel/panels/TimePanel/TimeColumn.d.ts +14 -1
  59. package/dist/cjs/PickerPanel/panels/TimePanel/TimeColumn.js +1 -1
  60. package/dist/cjs/PickerPanel/panels/TimePanel/TimeHeader.d.ts +4 -1
  61. package/dist/cjs/PickerPanel/panels/TimePanel/index.d.ts +9 -1
  62. package/dist/cjs/PickerPanel/panels/WeekPanel/WeekBody.d.ts +2 -1
  63. package/dist/cjs/PickerPanel/panels/WeekPanel/WeekHeader.d.ts +2 -1
  64. package/dist/cjs/PickerPanel/panels/WeekPanel/index.d.ts +2 -1
  65. package/dist/cjs/PickerPanel/panels/YearPanel/YearBody.d.ts +2 -1
  66. package/dist/cjs/PickerPanel/panels/YearPanel/YearBody.js +2 -2
  67. package/dist/cjs/PickerPanel/panels/YearPanel/YearHeader.d.ts +2 -1
  68. package/dist/cjs/PickerPanel/panels/YearPanel/YearHeader.js +7 -1
  69. package/dist/cjs/PickerPanel/panels/YearPanel/index.d.ts +2 -1
  70. package/dist/cjs/PickerPanel/panels/YearPanel/index.js +1 -1
  71. package/dist/cjs/PickerPanel/utils/pickerUtils.d.ts +7 -7
  72. package/dist/cjs/PickerPanel/utils/pickerUtils.js +2 -2
  73. package/dist/cjs/Select/demo/basic.js +1 -1
  74. package/dist/cjs/Select/demo/virtual.d.ts +3 -0
  75. package/dist/cjs/Select/demo/virtual.js +55 -0
  76. package/dist/cjs/Select/hooks/useSelectKeyboard.d.ts +7 -1
  77. package/dist/cjs/Select/hooks/useSelectKeyboard.js +16 -6
  78. package/dist/cjs/Select/interface.d.ts +44 -0
  79. package/dist/cjs/Select/option.js +3 -2
  80. package/dist/cjs/Select/options.js +115 -15
  81. package/dist/cjs/Select/select.js +20 -4
  82. package/dist/cjs/Select/style/index.less +17 -13
  83. package/dist/cjs/Selector/style/index.less +2 -137
  84. package/dist/cjs/Table/style/index.less +19 -0
  85. package/dist/cjs/TextArea/style/index.less +0 -17
  86. package/dist/cjs/hooks/index.d.ts +2 -1
  87. package/dist/cjs/hooks/index.js +3 -1
  88. package/dist/cjs/hooks/useEvent.js +4 -1
  89. package/dist/cjs/hooks/useVirtualList.d.ts +71 -0
  90. package/dist/cjs/hooks/useVirtualList.js +117 -0
  91. package/dist/cjs/style/size.css +1 -0
  92. package/dist/cjs/style/themes.css +1 -1
  93. package/dist/cjs/style/variables.css +2 -1
  94. package/dist/cjs/version.d.ts +1 -1
  95. package/dist/cjs/version.js +1 -1
  96. package/dist/esm/Button/button.d.ts +1 -1
  97. package/dist/esm/CSV/download.d.ts +1 -1
  98. package/dist/esm/Carousel/carousel.d.ts +2 -2
  99. package/dist/esm/Carousel/carousel.js +5 -1
  100. package/dist/esm/Carousel/interface.d.ts +5 -0
  101. package/dist/esm/Dialog/demo/basic.js +1 -1
  102. package/dist/esm/Dialog/dialog.js +1 -1
  103. package/dist/esm/Drawer/style/index.less +4 -0
  104. package/dist/esm/Field/demo/validation.js +30 -9
  105. package/dist/esm/Field/field.js +2 -1
  106. package/dist/esm/FloatButton/float-button.d.ts +1 -1
  107. package/dist/esm/Form/Field.js +3 -4
  108. package/dist/esm/Form/Form.js +1 -1
  109. package/dist/esm/Form/Group.js +142 -53
  110. package/dist/esm/Form/List.js +61 -42
  111. package/dist/esm/Form/demo/async-validate.d.ts +3 -0
  112. package/dist/esm/Form/demo/async-validate.js +95 -0
  113. package/dist/esm/Form/demo/basic.js +4 -2
  114. package/dist/esm/Form/demo/virtual.js +1 -1
  115. package/dist/esm/Form/form-store.d.ts +4 -4
  116. package/dist/esm/Form/form-store.js +187 -93
  117. package/dist/esm/Form/interface.d.ts +10 -7
  118. package/dist/esm/Form/style/index.less +15 -0
  119. package/dist/esm/Form/utils/validate.d.ts +23 -2
  120. package/dist/esm/Form/utils/validate.js +122 -17
  121. package/dist/esm/Input/style/index.less +0 -17
  122. package/dist/esm/InputNumber/style/index.less +0 -29
  123. package/dist/esm/PickerPanel/interface.d.ts +44 -2
  124. package/dist/esm/PickerPanel/panels/DatePanel/DateBody.d.ts +2 -1
  125. package/dist/esm/PickerPanel/panels/DatePanel/DateHeader.d.ts +2 -1
  126. package/dist/esm/PickerPanel/panels/DatePanel/DateHeader.js +1 -1
  127. package/dist/esm/PickerPanel/panels/DatePanel/index.d.ts +2 -1
  128. package/dist/esm/PickerPanel/panels/DateTimePanel/index.d.ts +7 -1
  129. package/dist/esm/PickerPanel/panels/DateTimePanel/index.js +11 -7
  130. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeBody.d.ts +2 -1
  131. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeBody.js +2 -1
  132. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeHeader.d.ts +2 -1
  133. package/dist/esm/PickerPanel/panels/DecadePanel/DecadeHeader.js +2 -1
  134. package/dist/esm/PickerPanel/panels/DecadePanel/index.d.ts +2 -1
  135. package/dist/esm/PickerPanel/panels/DecadePanel/index.js +1 -1
  136. package/dist/esm/PickerPanel/panels/Header.d.ts +13 -1
  137. package/dist/esm/PickerPanel/panels/MonthPanel/MonthBody.d.ts +2 -1
  138. package/dist/esm/PickerPanel/panels/MonthPanel/MonthHeader.d.ts +2 -1
  139. package/dist/esm/PickerPanel/panels/MonthPanel/MonthHeader.js +2 -1
  140. package/dist/esm/PickerPanel/panels/MonthPanel/index.d.ts +2 -1
  141. package/dist/esm/PickerPanel/panels/MonthPanel/index.js +1 -1
  142. package/dist/esm/PickerPanel/panels/PanelBody.d.ts +21 -1
  143. package/dist/esm/PickerPanel/panels/PanelBody.js +2 -4
  144. package/dist/esm/PickerPanel/panels/QuarterPanel/QuarterBody.d.ts +2 -1
  145. package/dist/esm/PickerPanel/panels/QuarterPanel/QuarterHeader.d.ts +2 -1
  146. package/dist/esm/PickerPanel/panels/QuarterPanel/index.d.ts +2 -1
  147. package/dist/esm/PickerPanel/panels/RangePanel/index.d.ts +2 -1
  148. package/dist/esm/PickerPanel/panels/RangePanel/index.js +2 -2
  149. package/dist/esm/PickerPanel/panels/RangePanel/interface.d.ts +5 -5
  150. package/dist/esm/PickerPanel/panels/TimePanel/TimeBody.d.ts +17 -1
  151. package/dist/esm/PickerPanel/panels/TimePanel/TimeCell.d.ts +7 -1
  152. package/dist/esm/PickerPanel/panels/TimePanel/TimeCell.js +1 -1
  153. package/dist/esm/PickerPanel/panels/TimePanel/TimeColumn.d.ts +14 -1
  154. package/dist/esm/PickerPanel/panels/TimePanel/TimeColumn.js +1 -1
  155. package/dist/esm/PickerPanel/panels/TimePanel/TimeHeader.d.ts +4 -1
  156. package/dist/esm/PickerPanel/panels/TimePanel/index.d.ts +9 -1
  157. package/dist/esm/PickerPanel/panels/WeekPanel/WeekBody.d.ts +2 -1
  158. package/dist/esm/PickerPanel/panels/WeekPanel/WeekHeader.d.ts +2 -1
  159. package/dist/esm/PickerPanel/panels/WeekPanel/index.d.ts +2 -1
  160. package/dist/esm/PickerPanel/panels/YearPanel/YearBody.d.ts +2 -1
  161. package/dist/esm/PickerPanel/panels/YearPanel/YearBody.js +3 -2
  162. package/dist/esm/PickerPanel/panels/YearPanel/YearHeader.d.ts +2 -1
  163. package/dist/esm/PickerPanel/panels/YearPanel/YearHeader.js +2 -1
  164. package/dist/esm/PickerPanel/panels/YearPanel/index.d.ts +2 -1
  165. package/dist/esm/PickerPanel/panels/YearPanel/index.js +1 -1
  166. package/dist/esm/PickerPanel/picker-panel.js +3 -0
  167. package/dist/esm/PickerPanel/utils/pickerUtils.d.ts +7 -7
  168. package/dist/esm/PickerPanel/utils/pickerUtils.js +4 -10
  169. package/dist/esm/Select/demo/basic.js +1 -1
  170. package/dist/esm/Select/demo/virtual.d.ts +3 -0
  171. package/dist/esm/Select/demo/virtual.js +38 -0
  172. package/dist/esm/Select/hooks/useSelectKeyboard.d.ts +7 -1
  173. package/dist/esm/Select/hooks/useSelectKeyboard.js +25 -9
  174. package/dist/esm/Select/interface.d.ts +44 -0
  175. package/dist/esm/Select/option.js +4 -2
  176. package/dist/esm/Select/options.js +132 -13
  177. package/dist/esm/Select/select.js +19 -4
  178. package/dist/esm/Select/style/index.less +17 -13
  179. package/dist/esm/Selector/style/index.less +2 -137
  180. package/dist/esm/Table/style/index.less +19 -0
  181. package/dist/esm/TextArea/style/index.less +0 -17
  182. package/dist/esm/hooks/index.d.ts +2 -1
  183. package/dist/esm/hooks/index.js +2 -1
  184. package/dist/esm/hooks/useVirtualList.d.ts +71 -0
  185. package/dist/esm/hooks/useVirtualList.js +129 -0
  186. package/dist/esm/style/size.css +1 -0
  187. package/dist/esm/style/themes.css +1 -1
  188. package/dist/esm/style/variables.css +2 -1
  189. package/dist/esm/version.d.ts +1 -1
  190. package/dist/esm/version.js +1 -1
  191. package/dist/umd/yee-c.min.css +2 -2
  192. package/dist/umd/yee-c.min.js +1 -1
  193. package/package.json +1 -1
  194. package/src/Carousel/carousel.tsx +14 -3
  195. package/src/Carousel/interface.ts +6 -0
  196. package/src/Cascader/cascader.tsx +3 -1
  197. package/src/Cascader/column.tsx +1 -1
  198. package/src/Dialog/demo/basic.tsx +1 -1
  199. package/src/Dialog/dialog.tsx +1 -1
  200. package/src/Drawer/style/index.less +4 -0
  201. package/src/Dropdown/dropdown.tsx +1 -1
  202. package/src/Field/demo/validation.tsx +2 -2
  203. package/src/Field/field.tsx +2 -1
  204. package/src/Field/index.en-US.md +1 -1
  205. package/src/Field/index.zh-CN.md +1 -1
  206. package/src/FloatButton/float-button.tsx +5 -3
  207. package/src/Form/Field.tsx +3 -4
  208. package/src/Form/Form.tsx +1 -1
  209. package/src/Form/Group.tsx +15 -12
  210. package/src/Form/List.tsx +3 -3
  211. package/src/Form/demo/async-validate.tsx +71 -0
  212. package/src/Form/demo/basic.tsx +2 -2
  213. package/src/Form/demo/virtual.tsx +1 -1
  214. package/src/Form/form-store.ts +37 -21
  215. package/src/Form/index.en-US.md +6 -5
  216. package/src/Form/index.zh-CN.md +6 -5
  217. package/src/Form/interface.ts +13 -7
  218. package/src/Form/style/index.less +15 -0
  219. package/src/Form/utils/validate.ts +65 -13
  220. package/src/Input/style/index.less +0 -17
  221. package/src/InputNumber/style/index.less +0 -29
  222. package/src/PickerPanel/interface.ts +43 -2
  223. package/src/PickerPanel/panels/DatePanel/DateBody.tsx +2 -1
  224. package/src/PickerPanel/panels/DatePanel/DateHeader.tsx +3 -2
  225. package/src/PickerPanel/panels/DatePanel/index.tsx +2 -1
  226. package/src/PickerPanel/panels/DateTimePanel/index.tsx +12 -5
  227. package/src/PickerPanel/panels/DecadePanel/DecadeBody.tsx +3 -2
  228. package/src/PickerPanel/panels/DecadePanel/DecadeHeader.tsx +3 -2
  229. package/src/PickerPanel/panels/DecadePanel/index.tsx +3 -2
  230. package/src/PickerPanel/panels/Header.tsx +14 -1
  231. package/src/PickerPanel/panels/MonthPanel/MonthBody.tsx +2 -1
  232. package/src/PickerPanel/panels/MonthPanel/MonthHeader.tsx +3 -2
  233. package/src/PickerPanel/panels/MonthPanel/index.tsx +3 -2
  234. package/src/PickerPanel/panels/PanelBody.tsx +27 -5
  235. package/src/PickerPanel/panels/QuarterPanel/QuarterBody.tsx +2 -1
  236. package/src/PickerPanel/panels/QuarterPanel/QuarterHeader.tsx +2 -1
  237. package/src/PickerPanel/panels/QuarterPanel/index.tsx +2 -1
  238. package/src/PickerPanel/panels/RangePanel/index.tsx +11 -9
  239. package/src/PickerPanel/panels/RangePanel/interface.ts +5 -5
  240. package/src/PickerPanel/panels/TimePanel/TimeBody.tsx +21 -5
  241. package/src/PickerPanel/panels/TimePanel/TimeCell.tsx +9 -2
  242. package/src/PickerPanel/panels/TimePanel/TimeColumn.tsx +15 -2
  243. package/src/PickerPanel/panels/TimePanel/TimeHeader.tsx +5 -1
  244. package/src/PickerPanel/panels/TimePanel/index.tsx +10 -1
  245. package/src/PickerPanel/panels/WeekPanel/WeekBody.tsx +2 -1
  246. package/src/PickerPanel/panels/WeekPanel/WeekHeader.tsx +2 -1
  247. package/src/PickerPanel/panels/WeekPanel/index.tsx +2 -1
  248. package/src/PickerPanel/panels/YearPanel/YearBody.tsx +4 -3
  249. package/src/PickerPanel/panels/YearPanel/YearHeader.tsx +9 -3
  250. package/src/PickerPanel/panels/YearPanel/index.tsx +3 -2
  251. package/src/PickerPanel/picker-panel.tsx +5 -3
  252. package/src/PickerPanel/utils/pickerUtils.ts +17 -8
  253. package/src/Select/demo/basic.tsx +1 -1
  254. package/src/Select/demo/virtual.tsx +25 -0
  255. package/src/Select/hooks/useSelectKeyboard.ts +30 -6
  256. package/src/Select/index.en-US.md +4 -0
  257. package/src/Select/index.zh-CN.md +4 -0
  258. package/src/Select/interface.ts +48 -2
  259. package/src/Select/option.tsx +2 -1
  260. package/src/Select/options.tsx +139 -8
  261. package/src/Select/select.tsx +23 -1
  262. package/src/Select/style/index.less +17 -13
  263. package/src/Selector/style/index.less +2 -137
  264. package/src/Splitter/hooks/useMove.ts +2 -2
  265. package/src/Table/style/index.less +19 -0
  266. package/src/TextArea/style/index.less +0 -17
  267. package/src/hooks/index.ts +2 -0
  268. package/src/hooks/useEvent.ts +7 -4
  269. package/src/hooks/useMergedState.ts +6 -4
  270. package/src/hooks/useVirtualList.ts +169 -0
  271. package/src/style/size.css +1 -0
  272. package/src/version.ts +1 -1
@@ -103,7 +103,7 @@ export interface FormInstance<Values = any> {
103
103
  /**
104
104
  * Submit form
105
105
  */
106
- submit: () => ValidateMessage[];
106
+ submit: () => Promise<ValidateMessage[]>;
107
107
  /**
108
108
  * Get all field values
109
109
  */
@@ -127,7 +127,7 @@ export interface FormInstance<Values = any> {
127
127
  /**
128
128
  * Validate field
129
129
  */
130
- validateField: (name: Name, trigger?: 'onChange' | 'onBlur') => ValidateMessage[];
130
+ validateField: (name: Name, trigger?: 'onChange' | 'onBlur') => Promise<ValidateMessage[]>;
131
131
  /**
132
132
  * Get callback functions
133
133
  */
@@ -139,7 +139,7 @@ export interface FormInstance<Values = any> {
139
139
  /**
140
140
  * Validate fields and get error messages
141
141
  */
142
- validateFields: (names?: Name[], trigger?: TRIGGER) => ValidateMessage[];
142
+ validateFields: (names?: Name[], trigger?: TRIGGER) => Promise<ValidateMessage[]>;
143
143
  /**
144
144
  * Initialize form - mainly used to set initial values and callbacks
145
145
  */
@@ -214,9 +214,12 @@ export type Rule = {
214
214
  */
215
215
  message?: string;
216
216
  /**
217
- * Custom validation function, returns true for pass, false or throw for fail
217
+ * Custom validation function. Supports sync and async:
218
+ * - sync: return true/undefined to pass, return false or throw to fail
219
+ * - async: return a Promise (resolve to pass, reject/throw to fail)
220
+ * When throwing/rejecting with an Error, its message overrides rule.message.
218
221
  */
219
- validator?: (value: unknown) => boolean;
222
+ validator?: (value: unknown) => boolean | void | Promise<boolean | void>;
220
223
  /**
221
224
  * Validation trigger timing
222
225
  */
@@ -314,7 +317,7 @@ export type FormListField<T = any> = {
314
317
  value: T;
315
318
  };
316
319
  export type FormListOperation = {
317
- add: (defaultValue?: any, insertIndex?: number) => void;
320
+ add: (defaultValue?: any, insertIndex?: number) => void | Promise<void>;
318
321
  remove: (index: number | number[]) => void;
319
322
  move: (from: number, to: number) => void;
320
323
  };
@@ -357,6 +360,6 @@ export type FieldGroupProps = {
357
360
  className?: string;
358
361
  };
359
362
  export interface GroupEntity {
360
- validate: (force: boolean) => ValidateMessage[];
363
+ validate: (force: boolean) => Promise<ValidateMessage[]>;
361
364
  reset: () => void;
362
365
  }
@@ -56,5 +56,20 @@
56
56
  color: var(--yee-error-color);
57
57
  }
58
58
  }
59
+
60
+ // 表单校验态:在此重定义控件读取的 border / box-shadow 变量,
61
+ // 后代里的 Input / Selector / InputNumber / TextArea 等通过 CSS 变量继承自动变色,
62
+ // 无需在每个组件里重复 .yee-form-item-error 块,也不存在 specificity / !important 问题。
63
+ &&-error {
64
+ --yee-input-border-color: var(--yee-error-color);
65
+ --yee-input-hover-border-color: var(--yee-error-color-hover);
66
+ --yee-input-focus-bs-color: var(--yee-error-color-border);
67
+ }
68
+
69
+ &&-warning {
70
+ --yee-input-border-color: var(--yee-warning-color);
71
+ --yee-input-hover-border-color: var(--yee-warning-color-hover);
72
+ --yee-input-focus-bs-color: var(--yee-warning-color-border);
73
+ }
59
74
  }
60
75
  }
@@ -1,3 +1,24 @@
1
- import { Rule } from '../interface';
2
- declare function validate(rule: Rule, value: unknown): boolean;
1
+ import type { Rule } from '../interface';
2
+ export interface ValidateResult {
3
+ passed: boolean;
4
+ message?: string;
5
+ }
6
+ /**
7
+ * Run a custom validator, dispatching between sync and async at runtime.
8
+ *
9
+ * Supports all of the following shapes (backwards compatible):
10
+ * - sync `return true` / `return undefined` → pass
11
+ * - sync `return false` → fail (use rule.message)
12
+ * - sync `throw new Error(msg)` → fail (use msg)
13
+ * - async `return Promise.resolve()` → pass
14
+ * - async `return Promise.resolve(false)` → fail (use rule.message)
15
+ * - async `throw` / `return Promise.reject(new Error(msg))` → fail (use msg)
16
+ */
17
+ export declare function runValidator(validator: NonNullable<Rule['validator']>, value: unknown): Promise<ValidateResult>;
18
+ /**
19
+ * Validate a single rule against a value.
20
+ * Returns { passed, message? }. Sync rules short-circuit; the custom validator
21
+ * is awaited so async validators are supported.
22
+ */
23
+ declare function validate(rule: Rule, value: unknown): Promise<ValidateResult>;
3
24
  export default validate;
@@ -15,11 +15,32 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var __async = (__this, __arguments, generator) => {
19
+ return new Promise((resolve, reject) => {
20
+ var fulfilled = (value) => {
21
+ try {
22
+ step(generator.next(value));
23
+ } catch (e) {
24
+ reject(e);
25
+ }
26
+ };
27
+ var rejected = (value) => {
28
+ try {
29
+ step(generator.throw(value));
30
+ } catch (e) {
31
+ reject(e);
32
+ }
33
+ };
34
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
35
+ step((generator = generator.apply(__this, __arguments)).next());
36
+ });
37
+ };
18
38
 
19
39
  // src/Form/utils/validate.ts
20
40
  var validate_exports = {};
21
41
  __export(validate_exports, {
22
- default: () => validate_default
42
+ default: () => validate_default,
43
+ runValidator: () => runValidator
23
44
  });
24
45
  module.exports = __toCommonJS(validate_exports);
25
46
  function isEmpty(v) {
@@ -80,8 +101,8 @@ function verifyRuleOfRegexp(regexp, value) {
80
101
  return true;
81
102
  }
82
103
  }
83
- function verifyMain(rule, value) {
84
- const { min, max, minLength, maxLength, regexp, validator } = rule;
104
+ function verifySyncRules(rule, value) {
105
+ const { min, max, minLength, maxLength, regexp } = rule;
85
106
  if (typeof min !== "undefined" && !verifyRuleOfMin(min, value)) {
86
107
  return false;
87
108
  }
@@ -97,15 +118,43 @@ function verifyMain(rule, value) {
97
118
  if (regexp instanceof RegExp && !verifyRuleOfRegexp(regexp, value)) {
98
119
  return false;
99
120
  }
100
- if (typeof validator === "function" && !validator(value)) {
101
- return false;
102
- }
103
121
  return true;
104
122
  }
123
+ function runValidator(validator, value) {
124
+ return __async(this, null, function* () {
125
+ try {
126
+ const res = validator(value);
127
+ if (res instanceof Promise) {
128
+ const resolved = yield res;
129
+ if (resolved === false) {
130
+ return { passed: false };
131
+ }
132
+ return { passed: true };
133
+ }
134
+ if (res === false) {
135
+ return { passed: false };
136
+ }
137
+ return { passed: true };
138
+ } catch (e) {
139
+ return {
140
+ passed: false,
141
+ message: e instanceof Error ? e.message : String(e)
142
+ };
143
+ }
144
+ });
145
+ }
105
146
  function validate(rule, value) {
106
- if (rule.required && isEmpty(value)) {
107
- return false;
108
- }
109
- return verifyMain(rule, value);
147
+ return __async(this, null, function* () {
148
+ if (rule.required && isEmpty(value)) {
149
+ return { passed: false };
150
+ }
151
+ if (!verifySyncRules(rule, value)) {
152
+ return { passed: false };
153
+ }
154
+ if (typeof rule.validator === "function") {
155
+ return runValidator(rule.validator, value);
156
+ }
157
+ return { passed: true };
158
+ });
110
159
  }
111
160
  var validate_default = validate;
@@ -110,20 +110,3 @@ input[type='number']::-webkit-outer-spin-button {
110
110
  input::placeholder {
111
111
  color: var(--yee-placeholder-color);
112
112
  }
113
-
114
- // form error status
115
- .yee-form-item-error {
116
- @{pls} {
117
- border-color: var(--yee-error-color);
118
-
119
- &:hover {
120
- border-color: var(--yee-error-color-hover);
121
- }
122
- }
123
- }
124
-
125
- .yee-form-item-warning {
126
- @{pls} {
127
- border-color: var(--yee-warning-color);
128
- }
129
- }
@@ -185,32 +185,3 @@
185
185
  padding-right: 0;
186
186
  }
187
187
  }
188
-
189
- // Form error status
190
- .yee-form-item-error {
191
- @{pls} {
192
- border-color: var(--yee-error-color);
193
-
194
- &:not(@{pls}-disabled):hover {
195
- border-color: var(--yee-error-color);
196
- }
197
-
198
- &-focused {
199
- box-shadow: 0 0 0 2px var(--yee-input-content-error-focus-bs-color);
200
- }
201
- }
202
- }
203
-
204
- .yee-form-item-warning {
205
- @{pls} {
206
- border-color: var(--yee-warning-color);
207
-
208
- &:not(@{pls}-disabled):hover {
209
- border-color: var(--yee-warning-color);
210
- }
211
-
212
- &-focused {
213
- box-shadow: 0 0 0 2px var(--yee-input-content-warning-focus-bs-color);
214
- }
215
- }
216
- }
@@ -1,8 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { Dayjs } from 'dayjs';
3
+ import type { usePanelConfigs } from './configs/locale-adapter';
3
4
  export type PickerType = 'date' | 'week' | 'month' | 'quarter' | 'year' | 'decade' | 'datetime' | 'time';
4
5
  export type SemanticType = 'prevIcon' | 'nextIcon' | 'superPrevIcon' | 'superNextIcon' | 'footer';
5
6
  export type UnitType = 'day' | 'hour' | 'minute' | 'second';
7
+ /** Hour/minute/second granularity used by the time sub-panels. */
8
+ export type TimeUnit = 'hour' | 'minute' | 'second';
6
9
  interface HeaderProps {
7
10
  showPrevIcon?: boolean;
8
11
  showNextIcon?: boolean;
@@ -103,14 +106,53 @@ export interface PickerPanelProps extends HeaderProps {
103
106
  /**
104
107
  * Hover range dates [start date, end date]
105
108
  */
106
- hoverRange?: Array<Dayjs | null>;
109
+ hoverRange?: Array<Dayjs | null | undefined>;
107
110
  /**
108
111
  * Selected range dates [start date, end date]
109
112
  */
110
- selectedRange?: Array<Dayjs | null>;
113
+ selectedRange?: Array<Dayjs | null | undefined>;
111
114
  /**
112
115
  * Disabled date function
113
116
  */
114
117
  disabledDate?: (current: Dayjs) => boolean;
115
118
  }
119
+ /**
120
+ * Locale/config bag produced by `usePanelConfigs`, shared by every panel.
121
+ */
122
+ export type PanelConfigs = ReturnType<typeof usePanelConfigs>;
123
+ /**
124
+ * The `panelProps` bag shared by all date-picking panels, headers and bodies.
125
+ *
126
+ * Standalone (does not extend `PickerPanelProps`) so each panel only declares
127
+ * the fields it actually reads while still receiving the full bag via
128
+ * `{...props}` spreads (JSX spreads do not trigger excess-property checks).
129
+ */
130
+ export interface PanelSharedProps {
131
+ prefixCls?: string;
132
+ picker?: PickerType;
133
+ offset?: {
134
+ year?: number;
135
+ month?: number;
136
+ day?: number;
137
+ };
138
+ viewDate: Dayjs;
139
+ selectedDate?: Dayjs;
140
+ panelConfigs: PanelConfigs;
141
+ handleMouseChange?: (date: Dayjs | '') => void;
142
+ onViewDateChange: (date: Dayjs) => void;
143
+ onPanelChange: (view: PickerType) => void;
144
+ onSelect?: (date: Dayjs) => void;
145
+ offsetYear?: number;
146
+ /** Never set in `panelProps`, so always `undefined` at runtime. */
147
+ nowDate?: Dayjs;
148
+ weekStart?: number;
149
+ showHeader?: boolean;
150
+ cellRender?: (date: Dayjs, panel: PickerType) => React.ReactNode;
151
+ prefixColumn?: (currentDate: Dayjs) => React.ReactNode;
152
+ getRowClassName?: (currentDate: Dayjs) => string;
153
+ hoverRange?: Array<Dayjs | null | undefined>;
154
+ selectedRange?: Array<Dayjs | null | undefined>;
155
+ maxDate?: Dayjs;
156
+ minDate?: Dayjs;
157
+ }
116
158
  export {};
@@ -1,3 +1,4 @@
1
1
  import React from 'react';
2
- declare function DateBody(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ declare function DateBody(props: PanelSharedProps): React.JSX.Element;
3
4
  export default DateBody;
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
- export default function DateHeader(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DateHeader(props: PanelSharedProps): React.JSX.Element;
@@ -74,7 +74,7 @@ function DateHeader(props) {
74
74
  let year = import_pickerUtils.default.getYear(viewDate);
75
75
  const month = import_pickerUtils.default.getMonth(viewDate);
76
76
  if (offset == null ? void 0 : offset.year) {
77
- year = year + parseInt(offset.year);
77
+ year = year + offset.year;
78
78
  }
79
79
  const onSuperPrevClick = (0, import_useEvent.default)(() => {
80
80
  const newViewDate = import_pickerUtils.default.addYear(viewDate, -1);
@@ -1,2 +1,3 @@
1
1
  import React from 'react';
2
- export default function DatePanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DatePanel(props: PanelSharedProps): React.JSX.Element;
@@ -1,3 +1,9 @@
1
+ import { Dayjs } from 'dayjs';
1
2
  import * as React from 'react';
2
- declare function DateTimePanel(props: any): React.JSX.Element;
3
+ import type { PickerType, PanelSharedProps } from '../../interface';
4
+ interface DateTimePanelProps extends Omit<PanelSharedProps, 'onSelect'> {
5
+ onSelect?: (panel: PickerType, date: Dayjs) => void;
6
+ showTime?: boolean;
7
+ }
8
+ declare function DateTimePanel(props: DateTimePanelProps): React.JSX.Element;
3
9
  export default DateTimePanel;
@@ -21,6 +21,18 @@ var __spreadValues = (a, b) => {
21
21
  return a;
22
22
  };
23
23
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
24
36
  var __export = (target, all) => {
25
37
  for (var name in all)
26
38
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -53,18 +65,20 @@ var React = __toESM(require("react"));
53
65
  var import_DatePanel = __toESM(require("../DatePanel"));
54
66
  var import_TimePanel = __toESM(require("../TimePanel"));
55
67
  function DateTimePanel(props) {
56
- const { prefixCls = "yee-picker", onSelect, showTime } = props;
68
+ var _b;
69
+ const _a = props, { onSelect, showTime } = _a, rest = __objRest(_a, ["onSelect", "showTime"]);
70
+ const prefixCls = (_b = rest.prefixCls) != null ? _b : "yee-picker";
57
71
  const handleSelect = (type, date) => {
58
- onSelect(type, date);
72
+ onSelect == null ? void 0 : onSelect(type, date);
59
73
  };
60
74
  return /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-datetime-panel` }, /* @__PURE__ */ React.createElement(
61
75
  import_DatePanel.default,
62
- __spreadProps(__spreadValues({}, props), {
76
+ __spreadProps(__spreadValues({}, rest), {
63
77
  onSelect: (date) => handleSelect("date", date)
64
78
  })
65
79
  ), showTime ? /* @__PURE__ */ React.createElement(
66
80
  import_TimePanel.default,
67
- __spreadProps(__spreadValues({}, props), {
81
+ __spreadProps(__spreadValues({}, rest), {
68
82
  onSelect: (date) => handleSelect("datetimetime", date),
69
83
  showHeader: true
70
84
  })
@@ -1,3 +1,4 @@
1
1
  import * as React from 'react';
2
- declare function DecadeBody(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ declare function DecadeBody(props: PanelSharedProps): React.JSX.Element;
3
4
  export default DecadeBody;
@@ -55,7 +55,7 @@ var import_useEvent = __toESM(require("../../../hooks/useEvent"));
55
55
  var import_pickerUtils = __toESM(require("../../utils/pickerUtils"));
56
56
  var import_PanelBody = __toESM(require("../PanelBody"));
57
57
  function DecadeBody(props) {
58
- const { prefixCls, viewDate, offsetYear } = props;
58
+ const { prefixCls, viewDate, offsetYear = 0 } = props;
59
59
  const baseDate = import_pickerUtils.default.getBaseDate("decade", viewDate);
60
60
  const getCellDate = (0, import_useEvent.default)((baseDate2, offset) => {
61
61
  return import_pickerUtils.default.addYear(baseDate2, offset * 10);
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function DecadeHeader(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DecadeHeader(props: PanelSharedProps): React.JSX.Element;
@@ -54,7 +54,7 @@ var import_useEvent = __toESM(require("../../../hooks/useEvent"));
54
54
  var import_pickerUtils = __toESM(require("../../utils/pickerUtils"));
55
55
  var import_Header = __toESM(require("../Header"));
56
56
  function DecadeHeader(props) {
57
- const { viewDate, offsetYear, onViewDateChange } = props;
57
+ const { viewDate, offsetYear = 0, onViewDateChange } = props;
58
58
  const onSuperPrevClick = (0, import_useEvent.default)(() => {
59
59
  onViewDateChange(import_pickerUtils.default.addYear(viewDate, -100));
60
60
  });
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function DecadePanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DecadePanel(props: PanelSharedProps): React.JSX.Element;
@@ -56,7 +56,7 @@ function DecadePanel(props) {
56
56
  const { prefixCls, offset } = props;
57
57
  let offsetYear = 0;
58
58
  if (offset == null ? void 0 : offset.year) {
59
- offsetYear = parseInt(offset.year);
59
+ offsetYear = offset.year;
60
60
  }
61
61
  return /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-decade-panel` }, /* @__PURE__ */ React.createElement(import_DecadeHeader.default, __spreadProps(__spreadValues({}, props), { offsetYear })), /* @__PURE__ */ React.createElement(import_DecadeBody.default, __spreadProps(__spreadValues({}, props), { offsetYear })));
62
62
  }
@@ -1,2 +1,14 @@
1
1
  import React from 'react';
2
- export default function Header(props: any): React.JSX.Element;
2
+ export interface PanelHeaderProps {
3
+ prefixCls?: string;
4
+ onPrevClick?: () => void;
5
+ onSuperPrevClick?: () => void;
6
+ onNextClick?: () => void;
7
+ onSuperNextClick?: () => void;
8
+ showPrevIcon?: boolean;
9
+ showNextIcon?: boolean;
10
+ showSuperPrevIcon?: boolean;
11
+ showSuperNextIcon?: boolean;
12
+ children?: React.ReactNode;
13
+ }
14
+ export default function Header(props: PanelHeaderProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
1
  import * as React from 'react';
2
- declare function MonthBody(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ declare function MonthBody(props: PanelSharedProps): React.JSX.Element;
3
4
  export default MonthBody;
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function MonthHeader(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function MonthHeader(props: PanelSharedProps): React.JSX.Element;
@@ -55,7 +55,7 @@ var import_useEvent = __toESM(require("../../../hooks/useEvent"));
55
55
  var import_pickerUtils = __toESM(require("../../utils/pickerUtils"));
56
56
  var import_Header = __toESM(require("../Header"));
57
57
  function MonthHeader(props) {
58
- const { prefixCls, viewDate, offsetYear, onViewDateChange, onPanelChange } = props;
58
+ const { prefixCls, viewDate, offsetYear = 0, onViewDateChange, onPanelChange } = props;
59
59
  const year = import_pickerUtils.default.getYear(viewDate) + offsetYear;
60
60
  const onSuperPrevClick = (0, import_useEvent.default)(() => {
61
61
  const newViewDate = import_pickerUtils.default.addYear(viewDate, -1);
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function DecadePanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DecadePanel(props: PanelSharedProps): React.JSX.Element;
@@ -56,7 +56,7 @@ function DecadePanel(props) {
56
56
  const { prefixCls, offset, showHeader = true } = props;
57
57
  let offsetYear = 0;
58
58
  if (offset == null ? void 0 : offset.year) {
59
- offsetYear = parseInt(offset.year);
59
+ offsetYear = offset.year;
60
60
  }
61
61
  return /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-month-panel` }, showHeader ? /* @__PURE__ */ React.createElement(import_MonthHeader.default, __spreadProps(__spreadValues({}, props), { offsetYear })) : null, /* @__PURE__ */ React.createElement(import_MonthBody.default, __spreadValues({}, props)));
62
62
  }
@@ -1,3 +1,23 @@
1
+ import { Dayjs } from 'dayjs';
1
2
  import * as React from 'react';
2
- declare function PanelBody(props: any): React.JSX.Element;
3
+ import type { PickerType } from '../interface';
4
+ export interface PanelBodyProps {
5
+ prefixCls?: string;
6
+ picker?: PickerType;
7
+ rowCount: number;
8
+ colCount: number;
9
+ baseDate?: Dayjs | number;
10
+ onSelect?: (date: Dayjs) => void;
11
+ handleMouseChange?: (date: Dayjs | '') => void;
12
+ headerCells?: React.ReactNode;
13
+ getCellNode?: (currentDate: Dayjs) => React.ReactNode;
14
+ getCellDate: (baseDate: Dayjs, offset: number) => Dayjs;
15
+ getCellText: (currentDate: Dayjs) => number | string;
16
+ getCellTitle?: (currentDate: Dayjs) => string;
17
+ getCellClassName?: (currentDate: Dayjs) => string;
18
+ prefixColumn?: (currentDate: Dayjs) => React.ReactNode;
19
+ getRowClassName?: (currentDate: Dayjs) => string;
20
+ cellRender?: (date: Dayjs, panel: PickerType) => React.ReactNode;
21
+ }
22
+ declare function PanelBody(props: PanelBodyProps): React.JSX.Element;
3
23
  export default PanelBody;
@@ -84,8 +84,8 @@ function PanelBody(props) {
84
84
  className: (0, import_clsx.default)(
85
85
  cellPrefixCls,
86
86
  {
87
- [`${cellPrefixCls}-start`]: getCellText(currentDate) === 1 || picker === "year" && getCellText(currentDate) % 10 === 0,
88
- [`${cellPrefixCls}-end`]: getCellText(currentDate) === import_pickerUtils.default.getDate(currentDate.endOf("month")) || picker === "year" && getCellText(currentDate) % 10 === 9
87
+ [`${cellPrefixCls}-start`]: getCellText(currentDate) === 1 || picker === "year" && Number(getCellText(currentDate)) % 10 === 0,
88
+ [`${cellPrefixCls}-end`]: getCellText(currentDate) === import_pickerUtils.default.getDate(currentDate.endOf("month")) || picker === "year" && Number(getCellText(currentDate)) % 10 === 9
89
89
  },
90
90
  cls
91
91
  ),
@@ -105,7 +105,7 @@ function PanelBody(props) {
105
105
  handleMouseChange == null ? void 0 : handleMouseChange("");
106
106
  }
107
107
  },
108
- getCellNode ? getCellNode(currentDate) : /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-cell-inner` }, /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-cell-value` }, getCellText(currentDate)), cellRender ? /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-cell-content` }, cellRender(currentDate, { mode: picker })) : null)
108
+ getCellNode ? getCellNode(currentDate) : /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-cell-inner` }, /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-cell-value` }, getCellText(currentDate)), cellRender ? /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-cell-content` }, cellRender(currentDate, picker)) : null)
109
109
  )
110
110
  );
111
111
  }
@@ -1,3 +1,4 @@
1
1
  import React from 'react';
2
- declare function QuarterBody(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ declare function QuarterBody(props: PanelSharedProps): React.JSX.Element;
3
4
  export default QuarterBody;
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function QuarterHeader(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function QuarterHeader(props: PanelSharedProps): React.JSX.Element;
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
- export default function DecadePanel(props: any): React.JSX.Element;
2
+ import type { PanelSharedProps } from '../../interface';
3
+ export default function DecadePanel(props: PanelSharedProps): React.JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
- declare function RangePanel(props: any): React.JSX.Element;
2
+ import type { RangePanelProps } from './interface';
3
+ declare function RangePanel(props: RangePanelProps): React.JSX.Element;
3
4
  declare const _default: React.MemoExoticComponent<typeof RangePanel>;
4
5
  export default _default;
@@ -85,7 +85,7 @@ function RangePanel(props) {
85
85
  value: startValue,
86
86
  pickerView: startViewDate,
87
87
  onChange,
88
- onPanelChange: (viewDate) => onPanelChange(viewDate, "start"),
88
+ onPanelChange: (viewDate) => onPanelChange == null ? void 0 : onPanelChange(viewDate, "start"),
89
89
  onCellMouse,
90
90
  hoverRange,
91
91
  selectedRange,
@@ -102,7 +102,7 @@ function RangePanel(props) {
102
102
  value: endValue,
103
103
  pickerView: endViewDate,
104
104
  onChange,
105
- onPanelChange: (viewDate) => onPanelChange(viewDate, "end"),
105
+ onPanelChange: (viewDate) => onPanelChange == null ? void 0 : onPanelChange(viewDate, "end"),
106
106
  onCellMouse,
107
107
  hoverRange,
108
108
  selectedRange,
@@ -5,17 +5,17 @@ export type PickerType = 'date' | 'datetime' | 'month' | 'year' | 'decade' | 'qu
5
5
  export interface RangePanelProps {
6
6
  prefixCls?: string;
7
7
  panel?: 'start' | 'end';
8
- value?: Array<Dayjs | string | undefined>;
9
- viewDate?: string;
8
+ value: Array<Dayjs | undefined>;
9
+ pickerView: [Dayjs, Dayjs];
10
10
  picker?: PickerType;
11
11
  mode?: PickerMode;
12
12
  format?: string;
13
13
  saveFormat?: string;
14
14
  onChange?: (date: Dayjs, panel: string) => void;
15
- onPanelChange?: (dates: Dayjs[]) => void;
15
+ onPanelChange?: (date: Dayjs, type?: 'start' | 'end') => void;
16
16
  onCellMouse?: (date: Dayjs | string) => void;
17
- hoverRange?: Array<Dayjs | null>;
18
- selectedRange?: Array<Dayjs | null>;
17
+ hoverRange?: Array<Dayjs | null | undefined>;
18
+ selectedRange?: Array<Dayjs | null | undefined>;
19
19
  disabledDate?: (current: Dayjs, type: 'start' | 'end') => boolean;
20
20
  showNextIcon?: boolean;
21
21
  showSuperNextIcon?: boolean;