@rc-component/picker 1.0.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 (569) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +154 -0
  3. package/assets/index.css +407 -0
  4. package/assets/index.less +570 -0
  5. package/es/PickerInput/Popup/Footer.d.ts +19 -0
  6. package/es/PickerInput/Popup/Footer.js +78 -0
  7. package/es/PickerInput/Popup/PopupPanel.d.ts +10 -0
  8. package/es/PickerInput/Popup/PopupPanel.js +84 -0
  9. package/es/PickerInput/Popup/PresetPanel.d.ts +9 -0
  10. package/es/PickerInput/Popup/PresetPanel.js +31 -0
  11. package/es/PickerInput/Popup/index.d.ts +20 -0
  12. package/es/PickerInput/Popup/index.js +198 -0
  13. package/es/PickerInput/RangePicker.d.ts +54 -0
  14. package/es/PickerInput/RangePicker.js +641 -0
  15. package/es/PickerInput/Selector/Icon.d.ts +10 -0
  16. package/es/PickerInput/Selector/Icon.js +32 -0
  17. package/es/PickerInput/Selector/Input.d.ts +28 -0
  18. package/es/PickerInput/Selector/Input.js +377 -0
  19. package/es/PickerInput/Selector/MaskFormat.d.ts +22 -0
  20. package/es/PickerInput/Selector/MaskFormat.js +107 -0
  21. package/es/PickerInput/Selector/RangeSelector.d.ts +26 -0
  22. package/es/PickerInput/Selector/RangeSelector.js +218 -0
  23. package/es/PickerInput/Selector/SingleSelector/MultipleDates.d.ts +12 -0
  24. package/es/PickerInput/Selector/SingleSelector/MultipleDates.js +66 -0
  25. package/es/PickerInput/Selector/SingleSelector/index.d.ts +18 -0
  26. package/es/PickerInput/Selector/SingleSelector/index.js +187 -0
  27. package/es/PickerInput/Selector/hooks/useClearIcon.d.ts +8 -0
  28. package/es/PickerInput/Selector/hooks/useClearIcon.js +19 -0
  29. package/es/PickerInput/Selector/hooks/useInputProps.d.ts +16 -0
  30. package/es/PickerInput/Selector/hooks/useInputProps.js +178 -0
  31. package/es/PickerInput/Selector/hooks/useRootProps.d.ts +2 -0
  32. package/es/PickerInput/Selector/hooks/useRootProps.js +8 -0
  33. package/es/PickerInput/Selector/util.d.ts +1 -0
  34. package/es/PickerInput/Selector/util.js +12 -0
  35. package/es/PickerInput/SinglePicker.d.ts +51 -0
  36. package/es/PickerInput/SinglePicker.js +545 -0
  37. package/es/PickerInput/context.d.ts +13 -0
  38. package/es/PickerInput/context.js +3 -0
  39. package/es/PickerInput/hooks/useCellRender.d.ts +2 -0
  40. package/es/PickerInput/hooks/useCellRender.js +41 -0
  41. package/es/PickerInput/hooks/useDelayState.d.ts +5 -0
  42. package/es/PickerInput/hooks/useDelayState.js +48 -0
  43. package/es/PickerInput/hooks/useDisabledBoundary.d.ts +7 -0
  44. package/es/PickerInput/hooks/useDisabledBoundary.js +20 -0
  45. package/es/PickerInput/hooks/useFieldFormat.d.ts +2 -0
  46. package/es/PickerInput/hooks/useFieldFormat.js +18 -0
  47. package/es/PickerInput/hooks/useFieldsInvalidate.d.ts +5 -0
  48. package/es/PickerInput/hooks/useFieldsInvalidate.js +55 -0
  49. package/es/PickerInput/hooks/useFilledProps.d.ts +37 -0
  50. package/es/PickerInput/hooks/useFilledProps.js +155 -0
  51. package/es/PickerInput/hooks/useInputReadOnly.d.ts +2 -0
  52. package/es/PickerInput/hooks/useInputReadOnly.js +6 -0
  53. package/es/PickerInput/hooks/useInvalidate.d.ts +9 -0
  54. package/es/PickerInput/hooks/useInvalidate.js +61 -0
  55. package/es/PickerInput/hooks/useLockEffect.d.ts +5 -0
  56. package/es/PickerInput/hooks/useLockEffect.js +25 -0
  57. package/es/PickerInput/hooks/useOpen.d.ts +6 -0
  58. package/es/PickerInput/hooks/useOpen.js +33 -0
  59. package/es/PickerInput/hooks/usePickerRef.d.ts +7 -0
  60. package/es/PickerInput/hooks/usePickerRef.js +19 -0
  61. package/es/PickerInput/hooks/usePresets.d.ts +2 -0
  62. package/es/PickerInput/hooks/usePresets.js +28 -0
  63. package/es/PickerInput/hooks/useRangeActive.d.ts +19 -0
  64. package/es/PickerInput/hooks/useRangeActive.js +74 -0
  65. package/es/PickerInput/hooks/useRangeDisabledDate.d.ts +8 -0
  66. package/es/PickerInput/hooks/useRangeDisabledDate.js +53 -0
  67. package/es/PickerInput/hooks/useRangePickerValue.d.ts +5 -0
  68. package/es/PickerInput/hooks/useRangePickerValue.js +192 -0
  69. package/es/PickerInput/hooks/useRangeValue.d.ts +28 -0
  70. package/es/PickerInput/hooks/useRangeValue.js +297 -0
  71. package/es/PickerInput/hooks/useShowNow.d.ts +2 -0
  72. package/es/PickerInput/hooks/useShowNow.js +14 -0
  73. package/es/PickerPanel/DatePanel/index.d.ts +10 -0
  74. package/es/PickerPanel/DatePanel/index.js +190 -0
  75. package/es/PickerPanel/DateTimePanel/index.d.ts +3 -0
  76. package/es/PickerPanel/DateTimePanel/index.js +55 -0
  77. package/es/PickerPanel/DecadePanel/index.d.ts +3 -0
  78. package/es/PickerPanel/DecadePanel/index.js +113 -0
  79. package/es/PickerPanel/MonthPanel/index.d.ts +3 -0
  80. package/es/PickerPanel/MonthPanel/index.js +106 -0
  81. package/es/PickerPanel/PanelBody.d.ts +17 -0
  82. package/es/PickerPanel/PanelBody.js +153 -0
  83. package/es/PickerPanel/PanelHeader.d.ts +11 -0
  84. package/es/PickerPanel/PanelHeader.js +133 -0
  85. package/es/PickerPanel/QuarterPanel/index.d.ts +3 -0
  86. package/es/PickerPanel/QuarterPanel/index.js +92 -0
  87. package/es/PickerPanel/TimePanel/TimePanelBody/TimeColumn.d.ts +17 -0
  88. package/es/PickerPanel/TimePanel/TimePanelBody/TimeColumn.js +149 -0
  89. package/es/PickerPanel/TimePanel/TimePanelBody/index.d.ts +4 -0
  90. package/es/PickerPanel/TimePanel/TimePanelBody/index.js +283 -0
  91. package/es/PickerPanel/TimePanel/TimePanelBody/useScrollTo.d.ts +2 -0
  92. package/es/PickerPanel/TimePanel/TimePanelBody/useScrollTo.js +72 -0
  93. package/es/PickerPanel/TimePanel/TimePanelBody/util.d.ts +3 -0
  94. package/es/PickerPanel/TimePanel/TimePanelBody/util.js +43 -0
  95. package/es/PickerPanel/TimePanel/index.d.ts +4 -0
  96. package/es/PickerPanel/TimePanel/index.js +38 -0
  97. package/es/PickerPanel/WeekPanel/index.d.ts +3 -0
  98. package/es/PickerPanel/WeekPanel/index.js +55 -0
  99. package/es/PickerPanel/YearPanel/index.d.ts +3 -0
  100. package/es/PickerPanel/YearPanel/index.js +116 -0
  101. package/es/PickerPanel/context.d.ts +24 -0
  102. package/es/PickerPanel/context.js +67 -0
  103. package/es/PickerPanel/index.d.ts +60 -0
  104. package/es/PickerPanel/index.js +315 -0
  105. package/es/PickerTrigger/index.d.ts +19 -0
  106. package/es/PickerTrigger/index.js +86 -0
  107. package/es/PickerTrigger/util.d.ts +2 -0
  108. package/es/PickerTrigger/util.js +4 -0
  109. package/es/generate/dateFns.d.ts +3 -0
  110. package/es/generate/dateFns.js +163 -0
  111. package/es/generate/dayjs.d.ts +4 -0
  112. package/es/generate/dayjs.js +233 -0
  113. package/es/generate/index.d.ts +37 -0
  114. package/es/generate/index.js +1 -0
  115. package/es/generate/luxon.d.ts +4 -0
  116. package/es/generate/luxon.js +197 -0
  117. package/es/generate/moment.d.ts +4 -0
  118. package/es/generate/moment.js +152 -0
  119. package/es/hooks/useLocale.d.ts +6 -0
  120. package/es/hooks/useLocale.js +82 -0
  121. package/es/hooks/useSyncState.d.ts +6 -0
  122. package/es/hooks/useSyncState.js +27 -0
  123. package/es/hooks/useTimeConfig.d.ts +18 -0
  124. package/es/hooks/useTimeConfig.js +166 -0
  125. package/es/hooks/useTimeInfo.d.ts +12 -0
  126. package/es/hooks/useTimeInfo.js +164 -0
  127. package/es/hooks/useToggleDates.d.ts +8 -0
  128. package/es/hooks/useToggleDates.js +26 -0
  129. package/es/index.d.ts +35 -0
  130. package/es/index.js +34 -0
  131. package/es/interface.d.ts +365 -0
  132. package/es/interface.js +1 -0
  133. package/es/locale/am_ET.d.ts +3 -0
  134. package/es/locale/am_ET.js +31 -0
  135. package/es/locale/ar_EG.d.ts +3 -0
  136. package/es/locale/ar_EG.js +34 -0
  137. package/es/locale/az_AZ.d.ts +3 -0
  138. package/es/locale/az_AZ.js +35 -0
  139. package/es/locale/bg_BG.d.ts +3 -0
  140. package/es/locale/bg_BG.js +34 -0
  141. package/es/locale/bn_BD.d.ts +3 -0
  142. package/es/locale/bn_BD.js +35 -0
  143. package/es/locale/by_BY.d.ts +3 -0
  144. package/es/locale/by_BY.js +35 -0
  145. package/es/locale/ca_ES.d.ts +3 -0
  146. package/es/locale/ca_ES.js +34 -0
  147. package/es/locale/common.d.ts +2 -0
  148. package/es/locale/common.js +6 -0
  149. package/es/locale/cs_CZ.d.ts +3 -0
  150. package/es/locale/cs_CZ.js +34 -0
  151. package/es/locale/da_DK.d.ts +3 -0
  152. package/es/locale/da_DK.js +34 -0
  153. package/es/locale/de_DE.d.ts +3 -0
  154. package/es/locale/de_DE.js +34 -0
  155. package/es/locale/el_GR.d.ts +3 -0
  156. package/es/locale/el_GR.js +34 -0
  157. package/es/locale/en_GB.d.ts +3 -0
  158. package/es/locale/en_GB.js +34 -0
  159. package/es/locale/en_US.d.ts +3 -0
  160. package/es/locale/en_US.js +35 -0
  161. package/es/locale/es_ES.d.ts +3 -0
  162. package/es/locale/es_ES.js +34 -0
  163. package/es/locale/es_MX.d.ts +3 -0
  164. package/es/locale/es_MX.js +35 -0
  165. package/es/locale/et_EE.d.ts +3 -0
  166. package/es/locale/et_EE.js +34 -0
  167. package/es/locale/eu_ES.d.ts +3 -0
  168. package/es/locale/eu_ES.js +36 -0
  169. package/es/locale/fa_IR.d.ts +3 -0
  170. package/es/locale/fa_IR.js +34 -0
  171. package/es/locale/fi_FI.d.ts +3 -0
  172. package/es/locale/fi_FI.js +34 -0
  173. package/es/locale/fr_BE.d.ts +3 -0
  174. package/es/locale/fr_BE.js +34 -0
  175. package/es/locale/fr_CA.d.ts +3 -0
  176. package/es/locale/fr_CA.js +35 -0
  177. package/es/locale/fr_FR.d.ts +3 -0
  178. package/es/locale/fr_FR.js +35 -0
  179. package/es/locale/ga_IE.d.ts +3 -0
  180. package/es/locale/ga_IE.js +35 -0
  181. package/es/locale/gl_ES.d.ts +3 -0
  182. package/es/locale/gl_ES.js +34 -0
  183. package/es/locale/he_IL.d.ts +3 -0
  184. package/es/locale/he_IL.js +35 -0
  185. package/es/locale/hi_IN.d.ts +3 -0
  186. package/es/locale/hi_IN.js +35 -0
  187. package/es/locale/hr_HR.d.ts +3 -0
  188. package/es/locale/hr_HR.js +35 -0
  189. package/es/locale/hu_HU.d.ts +3 -0
  190. package/es/locale/hu_HU.js +58 -0
  191. package/es/locale/id_ID.d.ts +3 -0
  192. package/es/locale/id_ID.js +35 -0
  193. package/es/locale/is_IS.d.ts +3 -0
  194. package/es/locale/is_IS.js +34 -0
  195. package/es/locale/it_IT.d.ts +3 -0
  196. package/es/locale/it_IT.js +34 -0
  197. package/es/locale/ja_JP.d.ts +3 -0
  198. package/es/locale/ja_JP.js +37 -0
  199. package/es/locale/ka_GE.d.ts +3 -0
  200. package/es/locale/ka_GE.js +35 -0
  201. package/es/locale/kk_KZ.d.ts +3 -0
  202. package/es/locale/kk_KZ.js +34 -0
  203. package/es/locale/km_KH.d.ts +3 -0
  204. package/es/locale/km_KH.js +36 -0
  205. package/es/locale/kmr_IQ.d.ts +3 -0
  206. package/es/locale/kmr_IQ.js +34 -0
  207. package/es/locale/kn_IN.d.ts +3 -0
  208. package/es/locale/kn_IN.js +35 -0
  209. package/es/locale/ko_KR.d.ts +3 -0
  210. package/es/locale/ko_KR.js +36 -0
  211. package/es/locale/lt_LT.d.ts +3 -0
  212. package/es/locale/lt_LT.js +36 -0
  213. package/es/locale/lv_LV.d.ts +3 -0
  214. package/es/locale/lv_LV.js +34 -0
  215. package/es/locale/mk_MK.d.ts +3 -0
  216. package/es/locale/mk_MK.js +34 -0
  217. package/es/locale/ml_IN.d.ts +3 -0
  218. package/es/locale/ml_IN.js +35 -0
  219. package/es/locale/mn_MN.d.ts +3 -0
  220. package/es/locale/mn_MN.js +36 -0
  221. package/es/locale/ms_MY.d.ts +3 -0
  222. package/es/locale/ms_MY.js +36 -0
  223. package/es/locale/my_MM.d.ts +3 -0
  224. package/es/locale/my_MM.js +35 -0
  225. package/es/locale/nb_NO.d.ts +3 -0
  226. package/es/locale/nb_NO.js +36 -0
  227. package/es/locale/ne_NP.d.ts +3 -0
  228. package/es/locale/ne_NP.js +35 -0
  229. package/es/locale/nl_BE.d.ts +3 -0
  230. package/es/locale/nl_BE.js +34 -0
  231. package/es/locale/nl_NL.d.ts +3 -0
  232. package/es/locale/nl_NL.js +34 -0
  233. package/es/locale/pl_PL.d.ts +3 -0
  234. package/es/locale/pl_PL.js +34 -0
  235. package/es/locale/pt_BR.d.ts +3 -0
  236. package/es/locale/pt_BR.js +37 -0
  237. package/es/locale/pt_PT.d.ts +3 -0
  238. package/es/locale/pt_PT.js +36 -0
  239. package/es/locale/ro_RO.d.ts +3 -0
  240. package/es/locale/ro_RO.js +35 -0
  241. package/es/locale/ru_RU.d.ts +3 -0
  242. package/es/locale/ru_RU.js +34 -0
  243. package/es/locale/si_LK.d.ts +3 -0
  244. package/es/locale/si_LK.js +36 -0
  245. package/es/locale/sk_SK.d.ts +3 -0
  246. package/es/locale/sk_SK.js +34 -0
  247. package/es/locale/sl_SI.d.ts +3 -0
  248. package/es/locale/sl_SI.js +34 -0
  249. package/es/locale/sr_Cyrl_RS.d.ts +3 -0
  250. package/es/locale/sr_Cyrl_RS.js +34 -0
  251. package/es/locale/sr_RS.d.ts +3 -0
  252. package/es/locale/sr_RS.js +34 -0
  253. package/es/locale/sv_SE.d.ts +3 -0
  254. package/es/locale/sv_SE.js +34 -0
  255. package/es/locale/ta_IN.d.ts +3 -0
  256. package/es/locale/ta_IN.js +35 -0
  257. package/es/locale/th_TH.d.ts +3 -0
  258. package/es/locale/th_TH.js +34 -0
  259. package/es/locale/tk_TK.d.ts +3 -0
  260. package/es/locale/tk_TK.js +34 -0
  261. package/es/locale/tr_TR.d.ts +3 -0
  262. package/es/locale/tr_TR.js +36 -0
  263. package/es/locale/ug_CN.d.ts +3 -0
  264. package/es/locale/ug_CN.js +37 -0
  265. package/es/locale/uk_UA.d.ts +3 -0
  266. package/es/locale/uk_UA.js +34 -0
  267. package/es/locale/ur_PK.d.ts +3 -0
  268. package/es/locale/ur_PK.js +35 -0
  269. package/es/locale/uz_UZ.d.ts +3 -0
  270. package/es/locale/uz_UZ.js +35 -0
  271. package/es/locale/vi_VN.d.ts +3 -0
  272. package/es/locale/vi_VN.js +35 -0
  273. package/es/locale/zh_CN.d.ts +3 -0
  274. package/es/locale/zh_CN.js +36 -0
  275. package/es/locale/zh_TW.d.ts +3 -0
  276. package/es/locale/zh_TW.js +38 -0
  277. package/es/utils/dateUtil.d.ts +29 -0
  278. package/es/utils/dateUtil.js +140 -0
  279. package/es/utils/getClearIcon.d.ts +5 -0
  280. package/es/utils/getClearIcon.js +8 -0
  281. package/es/utils/miscUtil.d.ts +14 -0
  282. package/es/utils/miscUtil.js +70 -0
  283. package/es/utils/uiUtil.d.ts +1 -0
  284. package/es/utils/uiUtil.js +7 -0
  285. package/es/utils/warnUtil.d.ts +5 -0
  286. package/es/utils/warnUtil.js +10 -0
  287. package/lib/PickerInput/Popup/Footer.d.ts +19 -0
  288. package/lib/PickerInput/Popup/Footer.js +88 -0
  289. package/lib/PickerInput/Popup/PopupPanel.d.ts +10 -0
  290. package/lib/PickerInput/Popup/PopupPanel.js +93 -0
  291. package/lib/PickerInput/Popup/PresetPanel.d.ts +9 -0
  292. package/lib/PickerInput/Popup/PresetPanel.js +40 -0
  293. package/lib/PickerInput/Popup/index.d.ts +20 -0
  294. package/lib/PickerInput/Popup/index.js +207 -0
  295. package/lib/PickerInput/RangePicker.d.ts +54 -0
  296. package/lib/PickerInput/RangePicker.js +650 -0
  297. package/lib/PickerInput/Selector/Icon.d.ts +10 -0
  298. package/lib/PickerInput/Selector/Icon.js +43 -0
  299. package/lib/PickerInput/Selector/Input.d.ts +28 -0
  300. package/lib/PickerInput/Selector/Input.js +385 -0
  301. package/lib/PickerInput/Selector/MaskFormat.d.ts +22 -0
  302. package/lib/PickerInput/Selector/MaskFormat.js +112 -0
  303. package/lib/PickerInput/Selector/RangeSelector.d.ts +26 -0
  304. package/lib/PickerInput/Selector/RangeSelector.js +227 -0
  305. package/lib/PickerInput/Selector/SingleSelector/MultipleDates.d.ts +12 -0
  306. package/lib/PickerInput/Selector/SingleSelector/MultipleDates.js +76 -0
  307. package/lib/PickerInput/Selector/SingleSelector/index.d.ts +18 -0
  308. package/lib/PickerInput/Selector/SingleSelector/index.js +196 -0
  309. package/lib/PickerInput/Selector/hooks/useClearIcon.d.ts +8 -0
  310. package/lib/PickerInput/Selector/hooks/useClearIcon.js +27 -0
  311. package/lib/PickerInput/Selector/hooks/useInputProps.d.ts +16 -0
  312. package/lib/PickerInput/Selector/hooks/useInputProps.js +187 -0
  313. package/lib/PickerInput/Selector/hooks/useRootProps.d.ts +2 -0
  314. package/lib/PickerInput/Selector/hooks/useRootProps.js +17 -0
  315. package/lib/PickerInput/Selector/util.d.ts +1 -0
  316. package/lib/PickerInput/Selector/util.js +18 -0
  317. package/lib/PickerInput/SinglePicker.d.ts +51 -0
  318. package/lib/PickerInput/SinglePicker.js +553 -0
  319. package/lib/PickerInput/context.d.ts +13 -0
  320. package/lib/PickerInput/context.js +12 -0
  321. package/lib/PickerInput/hooks/useCellRender.d.ts +2 -0
  322. package/lib/PickerInput/hooks/useCellRender.js +49 -0
  323. package/lib/PickerInput/hooks/useDelayState.d.ts +5 -0
  324. package/lib/PickerInput/hooks/useDelayState.js +54 -0
  325. package/lib/PickerInput/hooks/useDisabledBoundary.d.ts +7 -0
  326. package/lib/PickerInput/hooks/useDisabledBoundary.js +26 -0
  327. package/lib/PickerInput/hooks/useFieldFormat.d.ts +2 -0
  328. package/lib/PickerInput/hooks/useFieldFormat.js +26 -0
  329. package/lib/PickerInput/hooks/useFieldsInvalidate.d.ts +5 -0
  330. package/lib/PickerInput/hooks/useFieldsInvalidate.js +64 -0
  331. package/lib/PickerInput/hooks/useFilledProps.d.ts +37 -0
  332. package/lib/PickerInput/hooks/useFilledProps.js +164 -0
  333. package/lib/PickerInput/hooks/useInputReadOnly.d.ts +2 -0
  334. package/lib/PickerInput/hooks/useInputReadOnly.js +12 -0
  335. package/lib/PickerInput/hooks/useInvalidate.d.ts +9 -0
  336. package/lib/PickerInput/hooks/useInvalidate.js +67 -0
  337. package/lib/PickerInput/hooks/useLockEffect.d.ts +5 -0
  338. package/lib/PickerInput/hooks/useLockEffect.js +34 -0
  339. package/lib/PickerInput/hooks/useOpen.d.ts +6 -0
  340. package/lib/PickerInput/hooks/useOpen.js +39 -0
  341. package/lib/PickerInput/hooks/usePickerRef.d.ts +7 -0
  342. package/lib/PickerInput/hooks/usePickerRef.js +28 -0
  343. package/lib/PickerInput/hooks/usePresets.d.ts +2 -0
  344. package/lib/PickerInput/hooks/usePresets.js +38 -0
  345. package/lib/PickerInput/hooks/useRangeActive.d.ts +19 -0
  346. package/lib/PickerInput/hooks/useRangeActive.js +84 -0
  347. package/lib/PickerInput/hooks/useRangeDisabledDate.d.ts +8 -0
  348. package/lib/PickerInput/hooks/useRangeDisabledDate.js +58 -0
  349. package/lib/PickerInput/hooks/useRangePickerValue.d.ts +5 -0
  350. package/lib/PickerInput/hooks/useRangePickerValue.js +203 -0
  351. package/lib/PickerInput/hooks/useRangeValue.d.ts +28 -0
  352. package/lib/PickerInput/hooks/useRangeValue.js +308 -0
  353. package/lib/PickerInput/hooks/useShowNow.d.ts +2 -0
  354. package/lib/PickerInput/hooks/useShowNow.js +20 -0
  355. package/lib/PickerPanel/DatePanel/index.d.ts +10 -0
  356. package/lib/PickerPanel/DatePanel/index.js +199 -0
  357. package/lib/PickerPanel/DateTimePanel/index.d.ts +3 -0
  358. package/lib/PickerPanel/DateTimePanel/index.js +65 -0
  359. package/lib/PickerPanel/DecadePanel/index.d.ts +3 -0
  360. package/lib/PickerPanel/DecadePanel/index.js +122 -0
  361. package/lib/PickerPanel/MonthPanel/index.d.ts +3 -0
  362. package/lib/PickerPanel/MonthPanel/index.js +115 -0
  363. package/lib/PickerPanel/PanelBody.d.ts +17 -0
  364. package/lib/PickerPanel/PanelBody.js +162 -0
  365. package/lib/PickerPanel/PanelHeader.d.ts +11 -0
  366. package/lib/PickerPanel/PanelHeader.js +143 -0
  367. package/lib/PickerPanel/QuarterPanel/index.d.ts +3 -0
  368. package/lib/PickerPanel/QuarterPanel/index.js +101 -0
  369. package/lib/PickerPanel/TimePanel/TimePanelBody/TimeColumn.d.ts +17 -0
  370. package/lib/PickerPanel/TimePanel/TimePanelBody/TimeColumn.js +158 -0
  371. package/lib/PickerPanel/TimePanel/TimePanelBody/index.d.ts +4 -0
  372. package/lib/PickerPanel/TimePanel/TimePanelBody/index.js +293 -0
  373. package/lib/PickerPanel/TimePanel/TimePanelBody/useScrollTo.d.ts +2 -0
  374. package/lib/PickerPanel/TimePanel/TimePanelBody/useScrollTo.js +82 -0
  375. package/lib/PickerPanel/TimePanel/TimePanelBody/util.d.ts +3 -0
  376. package/lib/PickerPanel/TimePanel/TimePanelBody/util.js +49 -0
  377. package/lib/PickerPanel/TimePanel/index.d.ts +4 -0
  378. package/lib/PickerPanel/TimePanel/index.js +48 -0
  379. package/lib/PickerPanel/WeekPanel/index.d.ts +3 -0
  380. package/lib/PickerPanel/WeekPanel/index.js +64 -0
  381. package/lib/PickerPanel/YearPanel/index.d.ts +3 -0
  382. package/lib/PickerPanel/YearPanel/index.js +125 -0
  383. package/lib/PickerPanel/context.d.ts +24 -0
  384. package/lib/PickerPanel/context.js +78 -0
  385. package/lib/PickerPanel/index.d.ts +60 -0
  386. package/lib/PickerPanel/index.js +324 -0
  387. package/lib/PickerTrigger/index.d.ts +19 -0
  388. package/lib/PickerTrigger/index.js +95 -0
  389. package/lib/PickerTrigger/util.d.ts +2 -0
  390. package/lib/PickerTrigger/util.js +10 -0
  391. package/lib/generate/dateFns.d.ts +3 -0
  392. package/lib/generate/dateFns.js +172 -0
  393. package/lib/generate/dayjs.d.ts +4 -0
  394. package/lib/generate/dayjs.js +240 -0
  395. package/lib/generate/index.d.ts +37 -0
  396. package/lib/generate/index.js +5 -0
  397. package/lib/generate/luxon.d.ts +4 -0
  398. package/lib/generate/luxon.js +203 -0
  399. package/lib/generate/moment.d.ts +4 -0
  400. package/lib/generate/moment.js +159 -0
  401. package/lib/hooks/useLocale.d.ts +6 -0
  402. package/lib/hooks/useLocale.js +90 -0
  403. package/lib/hooks/useSyncState.d.ts +6 -0
  404. package/lib/hooks/useSyncState.js +35 -0
  405. package/lib/hooks/useTimeConfig.d.ts +18 -0
  406. package/lib/hooks/useTimeConfig.js +173 -0
  407. package/lib/hooks/useTimeInfo.d.ts +12 -0
  408. package/lib/hooks/useTimeInfo.js +172 -0
  409. package/lib/hooks/useToggleDates.d.ts +8 -0
  410. package/lib/hooks/useToggleDates.js +32 -0
  411. package/lib/index.d.ts +35 -0
  412. package/lib/index.js +57 -0
  413. package/lib/interface.d.ts +365 -0
  414. package/lib/interface.js +5 -0
  415. package/lib/locale/am_ET.d.ts +3 -0
  416. package/lib/locale/am_ET.js +37 -0
  417. package/lib/locale/ar_EG.d.ts +3 -0
  418. package/lib/locale/ar_EG.js +40 -0
  419. package/lib/locale/az_AZ.d.ts +3 -0
  420. package/lib/locale/az_AZ.js +41 -0
  421. package/lib/locale/bg_BG.d.ts +3 -0
  422. package/lib/locale/bg_BG.js +40 -0
  423. package/lib/locale/bn_BD.d.ts +3 -0
  424. package/lib/locale/bn_BD.js +41 -0
  425. package/lib/locale/by_BY.d.ts +3 -0
  426. package/lib/locale/by_BY.js +41 -0
  427. package/lib/locale/ca_ES.d.ts +3 -0
  428. package/lib/locale/ca_ES.js +40 -0
  429. package/lib/locale/common.d.ts +2 -0
  430. package/lib/locale/common.js +12 -0
  431. package/lib/locale/cs_CZ.d.ts +3 -0
  432. package/lib/locale/cs_CZ.js +40 -0
  433. package/lib/locale/da_DK.d.ts +3 -0
  434. package/lib/locale/da_DK.js +40 -0
  435. package/lib/locale/de_DE.d.ts +3 -0
  436. package/lib/locale/de_DE.js +40 -0
  437. package/lib/locale/el_GR.d.ts +3 -0
  438. package/lib/locale/el_GR.js +40 -0
  439. package/lib/locale/en_GB.d.ts +3 -0
  440. package/lib/locale/en_GB.js +40 -0
  441. package/lib/locale/en_US.d.ts +3 -0
  442. package/lib/locale/en_US.js +41 -0
  443. package/lib/locale/es_ES.d.ts +3 -0
  444. package/lib/locale/es_ES.js +40 -0
  445. package/lib/locale/es_MX.d.ts +3 -0
  446. package/lib/locale/es_MX.js +41 -0
  447. package/lib/locale/et_EE.d.ts +3 -0
  448. package/lib/locale/et_EE.js +40 -0
  449. package/lib/locale/eu_ES.d.ts +3 -0
  450. package/lib/locale/eu_ES.js +42 -0
  451. package/lib/locale/fa_IR.d.ts +3 -0
  452. package/lib/locale/fa_IR.js +40 -0
  453. package/lib/locale/fi_FI.d.ts +3 -0
  454. package/lib/locale/fi_FI.js +40 -0
  455. package/lib/locale/fr_BE.d.ts +3 -0
  456. package/lib/locale/fr_BE.js +40 -0
  457. package/lib/locale/fr_CA.d.ts +3 -0
  458. package/lib/locale/fr_CA.js +41 -0
  459. package/lib/locale/fr_FR.d.ts +3 -0
  460. package/lib/locale/fr_FR.js +41 -0
  461. package/lib/locale/ga_IE.d.ts +3 -0
  462. package/lib/locale/ga_IE.js +41 -0
  463. package/lib/locale/gl_ES.d.ts +3 -0
  464. package/lib/locale/gl_ES.js +40 -0
  465. package/lib/locale/he_IL.d.ts +3 -0
  466. package/lib/locale/he_IL.js +41 -0
  467. package/lib/locale/hi_IN.d.ts +3 -0
  468. package/lib/locale/hi_IN.js +41 -0
  469. package/lib/locale/hr_HR.d.ts +3 -0
  470. package/lib/locale/hr_HR.js +41 -0
  471. package/lib/locale/hu_HU.d.ts +3 -0
  472. package/lib/locale/hu_HU.js +64 -0
  473. package/lib/locale/id_ID.d.ts +3 -0
  474. package/lib/locale/id_ID.js +41 -0
  475. package/lib/locale/is_IS.d.ts +3 -0
  476. package/lib/locale/is_IS.js +40 -0
  477. package/lib/locale/it_IT.d.ts +3 -0
  478. package/lib/locale/it_IT.js +40 -0
  479. package/lib/locale/ja_JP.d.ts +3 -0
  480. package/lib/locale/ja_JP.js +43 -0
  481. package/lib/locale/ka_GE.d.ts +3 -0
  482. package/lib/locale/ka_GE.js +41 -0
  483. package/lib/locale/kk_KZ.d.ts +3 -0
  484. package/lib/locale/kk_KZ.js +40 -0
  485. package/lib/locale/km_KH.d.ts +3 -0
  486. package/lib/locale/km_KH.js +42 -0
  487. package/lib/locale/kmr_IQ.d.ts +3 -0
  488. package/lib/locale/kmr_IQ.js +40 -0
  489. package/lib/locale/kn_IN.d.ts +3 -0
  490. package/lib/locale/kn_IN.js +41 -0
  491. package/lib/locale/ko_KR.d.ts +3 -0
  492. package/lib/locale/ko_KR.js +42 -0
  493. package/lib/locale/lt_LT.d.ts +3 -0
  494. package/lib/locale/lt_LT.js +42 -0
  495. package/lib/locale/lv_LV.d.ts +3 -0
  496. package/lib/locale/lv_LV.js +40 -0
  497. package/lib/locale/mk_MK.d.ts +3 -0
  498. package/lib/locale/mk_MK.js +40 -0
  499. package/lib/locale/ml_IN.d.ts +3 -0
  500. package/lib/locale/ml_IN.js +41 -0
  501. package/lib/locale/mn_MN.d.ts +3 -0
  502. package/lib/locale/mn_MN.js +42 -0
  503. package/lib/locale/ms_MY.d.ts +3 -0
  504. package/lib/locale/ms_MY.js +42 -0
  505. package/lib/locale/my_MM.d.ts +3 -0
  506. package/lib/locale/my_MM.js +41 -0
  507. package/lib/locale/nb_NO.d.ts +3 -0
  508. package/lib/locale/nb_NO.js +42 -0
  509. package/lib/locale/ne_NP.d.ts +3 -0
  510. package/lib/locale/ne_NP.js +41 -0
  511. package/lib/locale/nl_BE.d.ts +3 -0
  512. package/lib/locale/nl_BE.js +40 -0
  513. package/lib/locale/nl_NL.d.ts +3 -0
  514. package/lib/locale/nl_NL.js +40 -0
  515. package/lib/locale/pl_PL.d.ts +3 -0
  516. package/lib/locale/pl_PL.js +40 -0
  517. package/lib/locale/pt_BR.d.ts +3 -0
  518. package/lib/locale/pt_BR.js +43 -0
  519. package/lib/locale/pt_PT.d.ts +3 -0
  520. package/lib/locale/pt_PT.js +42 -0
  521. package/lib/locale/ro_RO.d.ts +3 -0
  522. package/lib/locale/ro_RO.js +41 -0
  523. package/lib/locale/ru_RU.d.ts +3 -0
  524. package/lib/locale/ru_RU.js +40 -0
  525. package/lib/locale/si_LK.d.ts +3 -0
  526. package/lib/locale/si_LK.js +42 -0
  527. package/lib/locale/sk_SK.d.ts +3 -0
  528. package/lib/locale/sk_SK.js +40 -0
  529. package/lib/locale/sl_SI.d.ts +3 -0
  530. package/lib/locale/sl_SI.js +40 -0
  531. package/lib/locale/sr_Cyrl_RS.d.ts +3 -0
  532. package/lib/locale/sr_Cyrl_RS.js +40 -0
  533. package/lib/locale/sr_RS.d.ts +3 -0
  534. package/lib/locale/sr_RS.js +40 -0
  535. package/lib/locale/sv_SE.d.ts +3 -0
  536. package/lib/locale/sv_SE.js +40 -0
  537. package/lib/locale/ta_IN.d.ts +3 -0
  538. package/lib/locale/ta_IN.js +41 -0
  539. package/lib/locale/th_TH.d.ts +3 -0
  540. package/lib/locale/th_TH.js +40 -0
  541. package/lib/locale/tk_TK.d.ts +3 -0
  542. package/lib/locale/tk_TK.js +40 -0
  543. package/lib/locale/tr_TR.d.ts +3 -0
  544. package/lib/locale/tr_TR.js +42 -0
  545. package/lib/locale/ug_CN.d.ts +3 -0
  546. package/lib/locale/ug_CN.js +43 -0
  547. package/lib/locale/uk_UA.d.ts +3 -0
  548. package/lib/locale/uk_UA.js +40 -0
  549. package/lib/locale/ur_PK.d.ts +3 -0
  550. package/lib/locale/ur_PK.js +41 -0
  551. package/lib/locale/uz_UZ.d.ts +3 -0
  552. package/lib/locale/uz_UZ.js +41 -0
  553. package/lib/locale/vi_VN.d.ts +3 -0
  554. package/lib/locale/vi_VN.js +41 -0
  555. package/lib/locale/zh_CN.d.ts +3 -0
  556. package/lib/locale/zh_CN.js +42 -0
  557. package/lib/locale/zh_TW.d.ts +3 -0
  558. package/lib/locale/zh_TW.js +44 -0
  559. package/lib/utils/dateUtil.d.ts +29 -0
  560. package/lib/utils/dateUtil.js +161 -0
  561. package/lib/utils/getClearIcon.d.ts +5 -0
  562. package/lib/utils/getClearIcon.js +15 -0
  563. package/lib/utils/miscUtil.d.ts +14 -0
  564. package/lib/utils/miscUtil.js +81 -0
  565. package/lib/utils/uiUtil.d.ts +1 -0
  566. package/lib/utils/uiUtil.js +13 -0
  567. package/lib/utils/warnUtil.d.ts +5 -0
  568. package/lib/utils/warnUtil.js +17 -0
  569. package/package.json +107 -0
@@ -0,0 +1,53 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import { isSame } from "../../utils/dateUtil";
14
+ import { getFromDate } from "../../utils/miscUtil";
15
+
16
+ /**
17
+ * RangePicker need additional logic to handle the `disabled` case. e.g.
18
+ * [disabled, enabled] should end date not before start date
19
+ */
20
+ export default function useRangeDisabledDate(values, disabled, activeIndexList, generateConfig, locale, disabledDate) {
21
+ var activeIndex = activeIndexList[activeIndexList.length - 1];
22
+ var rangeDisabledDate = function rangeDisabledDate(date, info) {
23
+ var _values = _slicedToArray(values, 2),
24
+ start = _values[0],
25
+ end = _values[1];
26
+ var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {
27
+ from: getFromDate(values, activeIndexList)
28
+ });
29
+
30
+ // ============================ Disabled ============================
31
+ // Should not select days before the start date
32
+ if (activeIndex === 1 && disabled[0] && start &&
33
+ // Same date isOK
34
+ !isSame(generateConfig, locale, start, date, mergedInfo.type) &&
35
+ // Before start date
36
+ generateConfig.isAfter(start, date)) {
37
+ return true;
38
+ }
39
+
40
+ // Should not select days after the end date
41
+ if (activeIndex === 0 && disabled[1] && end &&
42
+ // Same date isOK
43
+ !isSame(generateConfig, locale, end, date, mergedInfo.type) &&
44
+ // After end date
45
+ generateConfig.isAfter(date, end)) {
46
+ return true;
47
+ }
48
+
49
+ // ============================= Origin =============================
50
+ return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, mergedInfo);
51
+ };
52
+ return rangeDisabledDate;
53
+ }
@@ -0,0 +1,5 @@
1
+ import type { GenerateConfig } from '../../generate';
2
+ import type { InternalMode, Locale, PanelMode } from '../../interface';
3
+ import type { RangePickerProps } from '../RangePicker';
4
+ export declare function offsetPanelDate<DateType = any>(generateConfig: GenerateConfig<DateType>, picker: InternalMode, date: DateType, offset: number): DateType;
5
+ export default function useRangePickerValue<DateType extends object, ValueType extends DateType[]>(generateConfig: GenerateConfig<DateType>, locale: Locale, calendarValue: ValueType, modes: PanelMode[], open: boolean, activeIndex: number, pickerMode: InternalMode, multiplePanel: boolean, defaultPickerValue?: ValueType, pickerValue?: ValueType, timeDefaultValue?: ValueType, onPickerValueChange?: RangePickerProps<DateType>['onPickerValueChange'], minDate?: DateType, maxDate?: DateType): [currentIndexPickerValue: DateType, setCurrentIndexPickerValue: (value: DateType) => void];
@@ -0,0 +1,192 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useMergedState } from '@rc-component/util';
8
+ import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
9
+ import * as React from 'react';
10
+ import { fillTime, isSame } from "../../utils/dateUtil";
11
+ export function offsetPanelDate(generateConfig, picker, date, offset) {
12
+ switch (picker) {
13
+ case 'date':
14
+ case 'week':
15
+ return generateConfig.addMonth(date, offset);
16
+ case 'month':
17
+ case 'quarter':
18
+ return generateConfig.addYear(date, offset);
19
+ case 'year':
20
+ return generateConfig.addYear(date, offset * 10);
21
+ case 'decade':
22
+ return generateConfig.addYear(date, offset * 100);
23
+ default:
24
+ return date;
25
+ }
26
+ }
27
+ var EMPTY_LIST = [];
28
+ export default function useRangePickerValue(generateConfig, locale, calendarValue, modes, open, activeIndex, pickerMode, multiplePanel) {
29
+ var defaultPickerValue = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : EMPTY_LIST;
30
+ var pickerValue = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : EMPTY_LIST;
31
+ var timeDefaultValue = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : EMPTY_LIST;
32
+ var onPickerValueChange = arguments.length > 11 ? arguments[11] : undefined;
33
+ var minDate = arguments.length > 12 ? arguments[12] : undefined;
34
+ var maxDate = arguments.length > 13 ? arguments[13] : undefined;
35
+ var isTimePicker = pickerMode === 'time';
36
+
37
+ // ======================== Active ========================
38
+ // `activeIndex` must be valid to avoid getting empty `pickerValue`
39
+ var mergedActiveIndex = activeIndex || 0;
40
+
41
+ // ===================== Picker Value =====================
42
+ var getDefaultPickerValue = function getDefaultPickerValue(index) {
43
+ var now = generateConfig.getNow();
44
+ if (isTimePicker) {
45
+ now = fillTime(generateConfig, now);
46
+ }
47
+ return defaultPickerValue[index] || calendarValue[index] || now;
48
+ };
49
+
50
+ // Align `pickerValue` with `showTime.defaultValue`
51
+ var _pickerValue = _slicedToArray(pickerValue, 2),
52
+ startPickerValue = _pickerValue[0],
53
+ endPickerValue = _pickerValue[1];
54
+
55
+ // PickerValue state
56
+ var _useMergedState = useMergedState(function () {
57
+ return getDefaultPickerValue(0);
58
+ }, {
59
+ value: startPickerValue
60
+ }),
61
+ _useMergedState2 = _slicedToArray(_useMergedState, 2),
62
+ mergedStartPickerValue = _useMergedState2[0],
63
+ setStartPickerValue = _useMergedState2[1];
64
+ var _useMergedState3 = useMergedState(function () {
65
+ return getDefaultPickerValue(1);
66
+ }, {
67
+ value: endPickerValue
68
+ }),
69
+ _useMergedState4 = _slicedToArray(_useMergedState3, 2),
70
+ mergedEndPickerValue = _useMergedState4[0],
71
+ setEndPickerValue = _useMergedState4[1];
72
+
73
+ // Current PickerValue
74
+ var currentPickerValue = React.useMemo(function () {
75
+ var current = [mergedStartPickerValue, mergedEndPickerValue][mergedActiveIndex];
76
+
77
+ // Merge the `showTime.defaultValue` into `pickerValue`
78
+ return isTimePicker ? current : fillTime(generateConfig, current, timeDefaultValue[mergedActiveIndex]);
79
+ }, [isTimePicker, mergedStartPickerValue, mergedEndPickerValue, mergedActiveIndex, generateConfig, timeDefaultValue]);
80
+ var setCurrentPickerValue = function setCurrentPickerValue(nextPickerValue) {
81
+ var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'panel';
82
+ var updater = [setStartPickerValue, setEndPickerValue][mergedActiveIndex];
83
+ updater(nextPickerValue);
84
+ var clone = [mergedStartPickerValue, mergedEndPickerValue];
85
+ clone[mergedActiveIndex] = nextPickerValue;
86
+ if (onPickerValueChange && (!isSame(generateConfig, locale, mergedStartPickerValue, clone[0], pickerMode) || !isSame(generateConfig, locale, mergedEndPickerValue, clone[1], pickerMode))) {
87
+ onPickerValueChange(clone, {
88
+ source: source,
89
+ range: mergedActiveIndex === 1 ? 'end' : 'start',
90
+ mode: modes
91
+ });
92
+ }
93
+ };
94
+
95
+ // ======================== Effect ========================
96
+ /**
97
+ * EndDate pickerValue is little different. It should be:
98
+ * - If date picker (without time), endDate is not same year & month as startDate
99
+ * - pickerValue minus one month
100
+ * - Else pass directly
101
+ */
102
+ var getEndDatePickerValue = function getEndDatePickerValue(startDate, endDate) {
103
+ if (multiplePanel) {
104
+ // Basic offset
105
+ var SAME_CHECKER = {
106
+ date: 'month',
107
+ week: 'month',
108
+ month: 'year',
109
+ quarter: 'year'
110
+ };
111
+ var mode = SAME_CHECKER[pickerMode];
112
+ if (mode && !isSame(generateConfig, locale, startDate, endDate, mode)) {
113
+ return offsetPanelDate(generateConfig, pickerMode, endDate, -1);
114
+ }
115
+
116
+ // Year offset
117
+ if (pickerMode === 'year' && startDate) {
118
+ var srcYear = Math.floor(generateConfig.getYear(startDate) / 10);
119
+ var tgtYear = Math.floor(generateConfig.getYear(endDate) / 10);
120
+ if (srcYear !== tgtYear) {
121
+ return offsetPanelDate(generateConfig, pickerMode, endDate, -1);
122
+ }
123
+ }
124
+ }
125
+ return endDate;
126
+ };
127
+
128
+ // >>> When switch field, reset the picker value as prev field picker value
129
+ var prevActiveIndexRef = React.useRef(null);
130
+ useLayoutEffect(function () {
131
+ if (open) {
132
+ if (!defaultPickerValue[mergedActiveIndex]) {
133
+ var nextPickerValue = isTimePicker ? null : generateConfig.getNow();
134
+
135
+ /**
136
+ * 1. If has prevActiveIndex, use it to avoid panel jump
137
+ * 2. If current field has value
138
+ * - If `activeIndex` is 1 and `calendarValue[0]` is not same panel as `calendarValue[1]`,
139
+ * offset `calendarValue[1]` and set it
140
+ * - Else use `calendarValue[activeIndex]`
141
+ * 3. If current field has no value but another field has value, use another field value
142
+ * 4. Else use now (not any `calendarValue` can ref)
143
+ */
144
+
145
+ if (prevActiveIndexRef.current !== null && prevActiveIndexRef.current !== mergedActiveIndex) {
146
+ // If from another field, not jump picker value
147
+ nextPickerValue = [mergedStartPickerValue, mergedEndPickerValue][mergedActiveIndex ^ 1];
148
+ } else if (calendarValue[mergedActiveIndex]) {
149
+ // Current field has value
150
+ nextPickerValue = mergedActiveIndex === 0 ? calendarValue[0] : getEndDatePickerValue(calendarValue[0], calendarValue[1]);
151
+ } else if (calendarValue[mergedActiveIndex ^ 1]) {
152
+ // Current field has no value but another field has value
153
+ nextPickerValue = calendarValue[mergedActiveIndex ^ 1];
154
+ }
155
+
156
+ // Only sync when has value, this will sync in the `min-max` logic
157
+ if (nextPickerValue) {
158
+ // nextPickerValue < minDate
159
+ if (minDate && generateConfig.isAfter(minDate, nextPickerValue)) {
160
+ nextPickerValue = minDate;
161
+ }
162
+
163
+ // maxDate < nextPickerValue
164
+ var offsetPickerValue = multiplePanel ? offsetPanelDate(generateConfig, pickerMode, nextPickerValue, 1) : nextPickerValue;
165
+ if (maxDate && generateConfig.isAfter(offsetPickerValue, maxDate)) {
166
+ nextPickerValue = multiplePanel ? offsetPanelDate(generateConfig, pickerMode, maxDate, -1) : maxDate;
167
+ }
168
+ setCurrentPickerValue(nextPickerValue, 'reset');
169
+ }
170
+ }
171
+ }
172
+ }, [open, mergedActiveIndex, calendarValue[mergedActiveIndex]]);
173
+
174
+ // >>> Reset prevActiveIndex when panel closed
175
+ React.useEffect(function () {
176
+ if (open) {
177
+ prevActiveIndexRef.current = mergedActiveIndex;
178
+ } else {
179
+ prevActiveIndexRef.current = null;
180
+ }
181
+ }, [open, mergedActiveIndex]);
182
+
183
+ // >>> defaultPickerValue: Resync to `defaultPickerValue` for each panel focused
184
+ useLayoutEffect(function () {
185
+ if (open && defaultPickerValue) {
186
+ if (defaultPickerValue[mergedActiveIndex]) {
187
+ setCurrentPickerValue(defaultPickerValue[mergedActiveIndex], 'reset');
188
+ }
189
+ }
190
+ }, [open, mergedActiveIndex]);
191
+ return [currentPickerValue, setCurrentPickerValue];
192
+ }
@@ -0,0 +1,28 @@
1
+ import type { GenerateConfig } from '../../generate';
2
+ import type { BaseInfo, FormatType, Locale, ReplaceListType } from '../../interface';
3
+ import type { RangePickerProps } from '../RangePicker';
4
+ import type { ReplacedPickerProps } from '../SinglePicker';
5
+ type TriggerCalendarChange<ValueType extends object[]> = (calendarValues: ValueType) => void;
6
+ /**
7
+ * Control the internal `value` align with prop `value` and provide a temp `calendarValue` for ui.
8
+ * `calendarValue` will be reset when blur & focus & open.
9
+ */
10
+ export declare function useInnerValue<ValueType extends DateType[], DateType extends object = any>(generateConfig: GenerateConfig<DateType>, locale: Locale, formatList: FormatType[],
11
+ /** Used for RangePicker. `true` means [DateType, DateType] or will be DateType[] */
12
+ rangeValue: boolean,
13
+ /**
14
+ * Trigger order when trigger calendar value change.
15
+ * This should only used in SinglePicker with `multiple` mode.
16
+ * So when `rangeValue` is `true`, order will be ignored.
17
+ */
18
+ order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType), ignoreDestroy?: boolean) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
19
+ export default function useRangeValue<ValueType extends DateType[], DateType extends object = any>(info: Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'allowEmpty' | 'order' | 'picker'> & ReplacedPickerProps<DateType>, mergedValue: ValueType, setInnerValue: (nextValue: ValueType) => void, getCalendarValue: () => ValueType, triggerCalendarChange: TriggerCalendarChange<ValueType>, disabled: ReplaceListType<Required<ValueType>, boolean>, formatList: FormatType[], focused: boolean, open: boolean, isInvalidateDate: (date: DateType, info?: {
20
+ from?: DateType;
21
+ activeIndex: number;
22
+ }) => boolean): [
23
+ /** Trigger `onChange` by check `disabledDate` */
24
+ flushSubmit: (index: number, needTriggerChange: boolean) => void,
25
+ /** Trigger `onChange` directly without check `disabledDate` */
26
+ triggerSubmitChange: (value: ValueType) => boolean
27
+ ];
28
+ export {};
@@ -0,0 +1,297 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ import { useEvent, useMergedState } from '@rc-component/util';
12
+ import * as React from 'react';
13
+ import useSyncState from "../../hooks/useSyncState";
14
+ import { formatValue, isSame, isSameTimestamp } from "../../utils/dateUtil";
15
+ import { fillIndex } from "../../utils/miscUtil";
16
+ import useLockEffect from "./useLockEffect";
17
+ var EMPTY_VALUE = [];
18
+
19
+ // Submit Logic:
20
+ // * ✅ Value:
21
+ // * merged value using controlled value, if not, use stateValue
22
+ // * When merged value change, [1] resync calendar value and submit value
23
+ // * ✅ Calender Value:
24
+ // * 💻 When user typing is validate, change the calendar value
25
+ // * 🌅 When user click on the panel, change the calendar value
26
+ // * Submit Value:
27
+ // * 💻 When user blur the input, flush calendar value to submit value
28
+ // * 🌅 When user click on the panel is no needConfirm, flush calendar value to submit value
29
+ // * 🌅 When user click on the panel is needConfirm and click OK, flush calendar value to submit value
30
+ // * Blur logic & close logic:
31
+ // * ✅ For value, always try flush submit
32
+ // * ✅ If `needConfirm`, reset as [1]
33
+ // * Else (`!needConfirm`)
34
+ // * If has another index field, active another index
35
+ // * ✅ Flush submit:
36
+ // * If all the start & end field is confirmed or all blur or panel closed
37
+ // * Update `needSubmit` mark to true
38
+ // * trigger onChange by `needSubmit` and update stateValue
39
+
40
+ function useUtil(generateConfig, locale, formatList) {
41
+ var getDateTexts = function getDateTexts(dates) {
42
+ return dates.map(function (date) {
43
+ return formatValue(date, {
44
+ generateConfig: generateConfig,
45
+ locale: locale,
46
+ format: formatList[0]
47
+ });
48
+ });
49
+ };
50
+ var isSameDates = function isSameDates(source, target) {
51
+ var maxLen = Math.max(source.length, target.length);
52
+ var diffIndex = -1;
53
+ for (var i = 0; i < maxLen; i += 1) {
54
+ var prev = source[i] || null;
55
+ var next = target[i] || null;
56
+ if (prev !== next && !isSameTimestamp(generateConfig, prev, next)) {
57
+ diffIndex = i;
58
+ break;
59
+ }
60
+ }
61
+ return [diffIndex < 0, diffIndex !== 0];
62
+ };
63
+ return [getDateTexts, isSameDates];
64
+ }
65
+ function orderDates(dates, generateConfig) {
66
+ return _toConsumableArray(dates).sort(function (a, b) {
67
+ return generateConfig.isAfter(a, b) ? 1 : -1;
68
+ });
69
+ }
70
+
71
+ /**
72
+ * Used for internal value management.
73
+ * It should always use `mergedValue` in render logic
74
+ */
75
+ function useCalendarValue(mergedValue) {
76
+ var _useSyncState = useSyncState(mergedValue),
77
+ _useSyncState2 = _slicedToArray(_useSyncState, 2),
78
+ calendarValue = _useSyncState2[0],
79
+ setCalendarValue = _useSyncState2[1];
80
+
81
+ /** Sync calendarValue & submitValue back with value */
82
+ var syncWithValue = useEvent(function () {
83
+ setCalendarValue(mergedValue);
84
+ });
85
+ React.useEffect(function () {
86
+ syncWithValue();
87
+ }, [mergedValue]);
88
+ return [calendarValue, setCalendarValue];
89
+ }
90
+
91
+ /**
92
+ * Control the internal `value` align with prop `value` and provide a temp `calendarValue` for ui.
93
+ * `calendarValue` will be reset when blur & focus & open.
94
+ */
95
+ export function useInnerValue(generateConfig, locale, formatList, /** Used for RangePicker. `true` means [DateType, DateType] or will be DateType[] */
96
+ rangeValue,
97
+ /**
98
+ * Trigger order when trigger calendar value change.
99
+ * This should only used in SinglePicker with `multiple` mode.
100
+ * So when `rangeValue` is `true`, order will be ignored.
101
+ */
102
+ order, defaultValue, value, onCalendarChange, onOk) {
103
+ // This is the root value which will sync with controlled or uncontrolled value
104
+ var _useMergedState = useMergedState(defaultValue, {
105
+ value: value
106
+ }),
107
+ _useMergedState2 = _slicedToArray(_useMergedState, 2),
108
+ innerValue = _useMergedState2[0],
109
+ setInnerValue = _useMergedState2[1];
110
+ var mergedValue = innerValue || EMPTY_VALUE;
111
+
112
+ // ========================= Inner Values =========================
113
+ var _useCalendarValue = useCalendarValue(mergedValue),
114
+ _useCalendarValue2 = _slicedToArray(_useCalendarValue, 2),
115
+ calendarValue = _useCalendarValue2[0],
116
+ setCalendarValue = _useCalendarValue2[1];
117
+
118
+ // ============================ Change ============================
119
+ var _useUtil = useUtil(generateConfig, locale, formatList),
120
+ _useUtil2 = _slicedToArray(_useUtil, 2),
121
+ getDateTexts = _useUtil2[0],
122
+ isSameDates = _useUtil2[1];
123
+ var triggerCalendarChange = useEvent(function (nextCalendarValues) {
124
+ var clone = _toConsumableArray(nextCalendarValues);
125
+ if (rangeValue) {
126
+ for (var i = 0; i < 2; i += 1) {
127
+ clone[i] = clone[i] || null;
128
+ }
129
+ } else if (order) {
130
+ clone = orderDates(clone.filter(function (date) {
131
+ return date;
132
+ }), generateConfig);
133
+ }
134
+
135
+ // Update merged value
136
+ var _isSameDates = isSameDates(calendarValue(), clone),
137
+ _isSameDates2 = _slicedToArray(_isSameDates, 2),
138
+ isSameMergedDates = _isSameDates2[0],
139
+ isSameStart = _isSameDates2[1];
140
+ if (!isSameMergedDates) {
141
+ setCalendarValue(clone);
142
+
143
+ // Trigger calendar change event
144
+ if (onCalendarChange) {
145
+ var cellTexts = getDateTexts(clone);
146
+ onCalendarChange(clone, cellTexts, {
147
+ range: isSameStart ? 'end' : 'start'
148
+ });
149
+ }
150
+ }
151
+ });
152
+ var triggerOk = function triggerOk() {
153
+ if (onOk) {
154
+ onOk(calendarValue());
155
+ }
156
+ };
157
+ return [mergedValue, setInnerValue, calendarValue, triggerCalendarChange, triggerOk];
158
+ }
159
+ export default function useRangeValue(info, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, open, isInvalidateDate) {
160
+ var generateConfig = info.generateConfig,
161
+ locale = info.locale,
162
+ picker = info.picker,
163
+ onChange = info.onChange,
164
+ allowEmpty = info.allowEmpty,
165
+ order = info.order;
166
+ var orderOnChange = disabled.some(function (d) {
167
+ return d;
168
+ }) ? false : order;
169
+
170
+ // ============================= Util =============================
171
+ var _useUtil3 = useUtil(generateConfig, locale, formatList),
172
+ _useUtil4 = _slicedToArray(_useUtil3, 2),
173
+ getDateTexts = _useUtil4[0],
174
+ isSameDates = _useUtil4[1];
175
+
176
+ // ============================ Values ============================
177
+ // Used for trigger `onChange` event.
178
+ // Record current value which is wait for submit.
179
+ var _useSyncState3 = useSyncState(mergedValue),
180
+ _useSyncState4 = _slicedToArray(_useSyncState3, 2),
181
+ submitValue = _useSyncState4[0],
182
+ setSubmitValue = _useSyncState4[1];
183
+
184
+ /** Sync calendarValue & submitValue back with value */
185
+ var syncWithValue = useEvent(function () {
186
+ setSubmitValue(mergedValue);
187
+ });
188
+ React.useEffect(function () {
189
+ syncWithValue();
190
+ }, [mergedValue]);
191
+
192
+ // ============================ Submit ============================
193
+ var triggerSubmit = useEvent(function (nextValue) {
194
+ var isNullValue = nextValue === null;
195
+ var clone = _toConsumableArray(nextValue || submitValue());
196
+
197
+ // Fill null value
198
+ if (isNullValue) {
199
+ var maxLen = Math.max(disabled.length, clone.length);
200
+ for (var i = 0; i < maxLen; i += 1) {
201
+ if (!disabled[i]) {
202
+ clone[i] = null;
203
+ }
204
+ }
205
+ }
206
+
207
+ // Only when exist value to sort
208
+ if (orderOnChange && clone[0] && clone[1]) {
209
+ clone = orderDates(clone, generateConfig);
210
+ }
211
+
212
+ // Sync `calendarValue`
213
+ triggerCalendarChange(clone);
214
+
215
+ // ========= Validate check =========
216
+ var _clone = clone,
217
+ _clone2 = _slicedToArray(_clone, 2),
218
+ start = _clone2[0],
219
+ end = _clone2[1];
220
+
221
+ // >>> Empty
222
+ var startEmpty = !start;
223
+ var endEmpty = !end;
224
+ var validateEmptyDateRange = allowEmpty ?
225
+ // Validate empty start
226
+ (!startEmpty || allowEmpty[0]) && (
227
+ // Validate empty end
228
+ !endEmpty || allowEmpty[1]) : true;
229
+
230
+ // >>> Order
231
+ var validateOrder = !order || startEmpty || endEmpty || isSame(generateConfig, locale, start, end, picker) || generateConfig.isAfter(end, start);
232
+
233
+ // >>> Invalid
234
+ var validateDates =
235
+ // Validate start
236
+ (disabled[0] || !start || !isInvalidateDate(start, {
237
+ activeIndex: 0
238
+ })) && (
239
+ // Validate end
240
+ disabled[1] || !end || !isInvalidateDate(end, {
241
+ from: start,
242
+ activeIndex: 1
243
+ }));
244
+ // >>> Result
245
+ var allPassed =
246
+ // Null value is from clear button
247
+ isNullValue ||
248
+ // Normal check
249
+ validateEmptyDateRange && validateOrder && validateDates;
250
+ if (allPassed) {
251
+ // Sync value with submit value
252
+ setInnerValue(clone);
253
+ var _isSameDates3 = isSameDates(clone, mergedValue),
254
+ _isSameDates4 = _slicedToArray(_isSameDates3, 1),
255
+ isSameMergedDates = _isSameDates4[0];
256
+
257
+ // Trigger `onChange` if needed
258
+ if (onChange && !isSameMergedDates) {
259
+ onChange(
260
+ // Return null directly if all date are empty
261
+ isNullValue && clone.every(function (val) {
262
+ return !val;
263
+ }) ? null : clone, getDateTexts(clone));
264
+ }
265
+ }
266
+ return allPassed;
267
+ });
268
+
269
+ // ========================= Flush Submit =========================
270
+ var flushSubmit = useEvent(function (index, needTriggerChange) {
271
+ var nextSubmitValue = fillIndex(submitValue(), index, getCalendarValue()[index]);
272
+ setSubmitValue(nextSubmitValue);
273
+ if (needTriggerChange) {
274
+ triggerSubmit();
275
+ }
276
+ });
277
+
278
+ // ============================ Effect ============================
279
+ // All finished action trigger after 2 frames
280
+ var interactiveFinished = !focused && !open;
281
+ useLockEffect(!interactiveFinished, function () {
282
+ if (interactiveFinished) {
283
+ // Always try to trigger submit first
284
+ triggerSubmit();
285
+
286
+ // Trigger calendar change since this is a effect reset
287
+ // https://github.com/ant-design/ant-design/issues/22351
288
+ triggerCalendarChange(mergedValue);
289
+
290
+ // Sync with value anyway
291
+ syncWithValue();
292
+ }
293
+ }, 2);
294
+
295
+ // ============================ Return ============================
296
+ return [flushSubmit, triggerSubmit];
297
+ }
@@ -0,0 +1,2 @@
1
+ import type { InternalMode, PanelMode } from '../../interface';
2
+ export default function useShowNow(picker: InternalMode, mode: PanelMode, showNow?: boolean, showToday?: boolean, rangePicker?: boolean): boolean;
@@ -0,0 +1,14 @@
1
+ export default function useShowNow(picker, mode, showNow, showToday, rangePicker) {
2
+ if (mode !== 'date' && mode !== 'time') {
3
+ return false;
4
+ }
5
+ if (showNow !== undefined) {
6
+ return showNow;
7
+ }
8
+
9
+ // Compatible with old version `showToday`
10
+ if (showToday !== undefined) {
11
+ return showToday;
12
+ }
13
+ return !rangePicker && (picker === 'date' || picker === 'time');
14
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import type { PanelMode, SharedPanelProps } from '../../interface';
3
+ export interface DatePanelProps<DateType extends object> extends SharedPanelProps<DateType> {
4
+ panelName?: PanelMode;
5
+ rowClassName?: (date: DateType) => string;
6
+ /** Used for `WeekPanel` */
7
+ mode?: PanelMode;
8
+ cellSelection?: boolean;
9
+ }
10
+ export default function DatePanel<DateType extends object = any>(props: DatePanelProps<DateType>): React.JSX.Element;