@elliemae/ds-form-date-time-picker 3.4.3-rc.0 → 3.4.4-next.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 (322) hide show
  1. package/dist/cjs/ControlledDateTimePicker.js +9 -5
  2. package/dist/cjs/ControlledDateTimePicker.js.map +1 -1
  3. package/dist/cjs/ControlledDateTimePickerCTX.js +4 -1
  4. package/dist/cjs/ControlledDateTimePickerCTX.js.map +1 -1
  5. package/dist/cjs/ControlledDateTimePickerDatatestid.js +4 -1
  6. package/dist/cjs/ControlledDateTimePickerDatatestid.js.map +1 -1
  7. package/dist/cjs/ControlledDateTimePickerTypes.js +4 -1
  8. package/dist/cjs/ControlledDateTimePickerTypes.js.map +1 -1
  9. package/dist/cjs/config/useChangeHandlers.js +261 -219
  10. package/dist/cjs/config/useChangeHandlers.js.map +1 -1
  11. package/dist/cjs/config/useControlledDateTimePicker.js +34 -28
  12. package/dist/cjs/config/useControlledDateTimePicker.js.map +2 -2
  13. package/dist/cjs/config/useFocusTracker.js +130 -124
  14. package/dist/cjs/config/useFocusTracker.js.map +1 -1
  15. package/dist/cjs/config/useGetDestructuredValues.js +50 -38
  16. package/dist/cjs/config/useGetDestructuredValues.js.map +1 -1
  17. package/dist/cjs/config/useGetFlags.js +16 -5
  18. package/dist/cjs/config/useGetFlags.js.map +2 -2
  19. package/dist/cjs/config/useGetPropsBasedOnType.js +60 -54
  20. package/dist/cjs/config/useGetPropsBasedOnType.js.map +1 -1
  21. package/dist/cjs/config/useGetPropsWithDefault.js +4 -1
  22. package/dist/cjs/config/useGetPropsWithDefault.js.map +1 -1
  23. package/dist/cjs/config/useGetReferences.js +35 -29
  24. package/dist/cjs/config/useGetReferences.js.map +1 -1
  25. package/dist/cjs/config/useGlobalKeyHandlers.js +63 -51
  26. package/dist/cjs/config/useGlobalKeyHandlers.js.map +1 -1
  27. package/dist/cjs/config/useRelevantValueFromProps.js +15 -9
  28. package/dist/cjs/config/useRelevantValueFromProps.js.map +1 -1
  29. package/dist/cjs/config/useValidateProps.js +33 -14
  30. package/dist/cjs/config/useValidateProps.js.map +1 -1
  31. package/dist/cjs/exported-related/theming.js +4 -1
  32. package/dist/cjs/exported-related/theming.js.map +1 -1
  33. package/dist/cjs/index.js +4 -1
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/parts/ClearButton/ClearButton.js +12 -7
  36. package/dist/cjs/parts/ClearButton/ClearButton.js.map +1 -1
  37. package/dist/cjs/parts/ClearButton/useClearButton.js +45 -33
  38. package/dist/cjs/parts/ClearButton/useClearButton.js.map +1 -1
  39. package/dist/cjs/parts/ControlledDateTimePickerContent.js +31 -16
  40. package/dist/cjs/parts/ControlledDateTimePickerContent.js.map +1 -1
  41. package/dist/cjs/parts/DateInputs/DDInput.js +42 -33
  42. package/dist/cjs/parts/DateInputs/DDInput.js.map +2 -2
  43. package/dist/cjs/parts/DateInputs/DateInputs.js +63 -42
  44. package/dist/cjs/parts/DateInputs/DateInputs.js.map +2 -2
  45. package/dist/cjs/parts/DateInputs/MMInput.js +56 -35
  46. package/dist/cjs/parts/DateInputs/MMInput.js.map +3 -3
  47. package/dist/cjs/parts/DateInputs/YYYYInput.js +42 -33
  48. package/dist/cjs/parts/DateInputs/YYYYInput.js.map +2 -2
  49. package/dist/cjs/parts/DateInputs/useDateInputs.js +296 -254
  50. package/dist/cjs/parts/DateInputs/useDateInputs.js.map +2 -2
  51. package/dist/cjs/parts/Pickers/Calendar/Calendar.js +24 -9
  52. package/dist/cjs/parts/Pickers/Calendar/Calendar.js.map +1 -1
  53. package/dist/cjs/parts/Pickers/Calendar/CalendarBody.js +14 -4
  54. package/dist/cjs/parts/Pickers/Calendar/CalendarBody.js.map +2 -2
  55. package/dist/cjs/parts/Pickers/Calendar/CalendarContent.js +18 -7
  56. package/dist/cjs/parts/Pickers/Calendar/CalendarContent.js.map +1 -1
  57. package/dist/cjs/parts/Pickers/Calendar/CalendarContext.js +4 -1
  58. package/dist/cjs/parts/Pickers/Calendar/CalendarContext.js.map +1 -1
  59. package/dist/cjs/parts/Pickers/Calendar/CalendarDaysList.js +35 -27
  60. package/dist/cjs/parts/Pickers/Calendar/CalendarDaysList.js.map +2 -2
  61. package/dist/cjs/parts/Pickers/Calendar/CalendarFooter.js +10 -5
  62. package/dist/cjs/parts/Pickers/Calendar/CalendarFooter.js.map +1 -1
  63. package/dist/cjs/parts/Pickers/Calendar/CalendarHead.js +112 -83
  64. package/dist/cjs/parts/Pickers/Calendar/CalendarHead.js.map +1 -1
  65. package/dist/cjs/parts/Pickers/Calendar/CalendarIconTrigger.js +21 -13
  66. package/dist/cjs/parts/Pickers/Calendar/CalendarIconTrigger.js.map +1 -1
  67. package/dist/cjs/parts/Pickers/Calendar/CalendarMonthDays.js +7 -3
  68. package/dist/cjs/parts/Pickers/Calendar/CalendarMonthDays.js.map +1 -1
  69. package/dist/cjs/parts/Pickers/Calendar/CalendarWeekDays.js +55 -34
  70. package/dist/cjs/parts/Pickers/Calendar/CalendarWeekDays.js.map +2 -2
  71. package/dist/cjs/parts/Pickers/Calendar/CalendarWrapper.js +11 -6
  72. package/dist/cjs/parts/Pickers/Calendar/CalendarWrapper.js.map +1 -1
  73. package/dist/cjs/parts/Pickers/Calendar/Day.js +73 -58
  74. package/dist/cjs/parts/Pickers/Calendar/Day.js.map +1 -1
  75. package/dist/cjs/parts/Pickers/Calendar/Styleds.js +4 -1
  76. package/dist/cjs/parts/Pickers/Calendar/Styleds.js.map +1 -1
  77. package/dist/cjs/parts/Pickers/Calendar/useConfigCalendarCTX.js +29 -23
  78. package/dist/cjs/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
  79. package/dist/cjs/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +38 -26
  80. package/dist/cjs/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js.map +1 -1
  81. package/dist/cjs/parts/Pickers/Calendar/useFocusLogic.js +34 -18
  82. package/dist/cjs/parts/Pickers/Calendar/useFocusLogic.js.map +1 -1
  83. package/dist/cjs/parts/Pickers/Calendar/useKeyboardHandlers.js +190 -166
  84. package/dist/cjs/parts/Pickers/Calendar/useKeyboardHandlers.js.map +1 -1
  85. package/dist/cjs/parts/Pickers/Calendar/usePopperTriggerLogic.js +33 -21
  86. package/dist/cjs/parts/Pickers/Calendar/usePopperTriggerLogic.js.map +1 -1
  87. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +22 -8
  88. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js.map +1 -1
  89. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +14 -5
  90. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js.map +1 -1
  91. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +7 -2
  92. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js.map +1 -1
  93. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.js +10 -5
  94. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.js.map +1 -1
  95. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +27 -19
  96. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js.map +1 -1
  97. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +11 -6
  98. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js.map +1 -1
  99. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/Styleds.js +4 -1
  100. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/Styleds.js.map +1 -1
  101. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +67 -52
  102. package/dist/cjs/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js.map +1 -1
  103. package/dist/cjs/parts/Pickers/PickersIcons.js +13 -4
  104. package/dist/cjs/parts/Pickers/PickersIcons.js.map +2 -2
  105. package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js +90 -72
  106. package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js.map +1 -1
  107. package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js +102 -76
  108. package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js.map +1 -1
  109. package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js +87 -69
  110. package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js.map +1 -1
  111. package/dist/cjs/parts/Pickers/TimeWheel/Styleds.js +4 -1
  112. package/dist/cjs/parts/Pickers/TimeWheel/Styleds.js.map +1 -1
  113. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheel.js +24 -9
  114. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheel.js.map +1 -1
  115. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelContent.js +35 -6
  116. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelContent.js.map +2 -2
  117. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelContext.js +4 -1
  118. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelContext.js.map +1 -1
  119. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelFooter.js +10 -5
  120. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelFooter.js.map +1 -1
  121. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +21 -13
  122. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js.map +1 -1
  123. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelWrapper.js +11 -6
  124. package/dist/cjs/parts/Pickers/TimeWheel/TimeWheelWrapper.js.map +1 -1
  125. package/dist/cjs/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +12 -6
  126. package/dist/cjs/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
  127. package/dist/cjs/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +99 -61
  128. package/dist/cjs/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js.map +1 -1
  129. package/dist/cjs/parts/Pickers/TimeWheel/useKeyboardHandlers.js +163 -145
  130. package/dist/cjs/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +1 -1
  131. package/dist/cjs/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +42 -30
  132. package/dist/cjs/parts/Pickers/TimeWheel/usePopperTriggerLogic.js.map +1 -1
  133. package/dist/cjs/parts/Styleds.js +4 -1
  134. package/dist/cjs/parts/Styleds.js.map +1 -1
  135. package/dist/cjs/parts/TimeInputs/HHInput.js +44 -35
  136. package/dist/cjs/parts/TimeInputs/HHInput.js.map +2 -2
  137. package/dist/cjs/parts/TimeInputs/MeridiemInput.js +42 -33
  138. package/dist/cjs/parts/TimeInputs/MeridiemInput.js.map +2 -2
  139. package/dist/cjs/parts/TimeInputs/MinutesInput.js +42 -33
  140. package/dist/cjs/parts/TimeInputs/MinutesInput.js.map +2 -2
  141. package/dist/cjs/parts/TimeInputs/TimeInputs.js +60 -40
  142. package/dist/cjs/parts/TimeInputs/TimeInputs.js.map +1 -1
  143. package/dist/cjs/parts/TimeInputs/useTimeInputs.js +234 -201
  144. package/dist/cjs/parts/TimeInputs/useTimeInputs.js.map +1 -1
  145. package/dist/cjs/parts/config.js +4 -1
  146. package/dist/cjs/parts/config.js.map +1 -1
  147. package/dist/cjs/propTypes.js +19 -6
  148. package/dist/cjs/propTypes.js.map +2 -2
  149. package/dist/cjs/sharedTypes.js +4 -1
  150. package/dist/cjs/sharedTypes.js.map +2 -2
  151. package/dist/cjs/utils/constants.js +4 -1
  152. package/dist/cjs/utils/constants.js.map +1 -1
  153. package/dist/cjs/utils/dateHelpers.js +15 -10
  154. package/dist/cjs/utils/dateHelpers.js.map +1 -1
  155. package/dist/cjs/utils/dateTimeHelpers.js +4 -1
  156. package/dist/cjs/utils/dateTimeHelpers.js.map +1 -1
  157. package/dist/cjs/utils/hooks/useGetDayFromDateString.js +4 -1
  158. package/dist/cjs/utils/hooks/useGetDayFromDateString.js.map +1 -1
  159. package/dist/cjs/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +4 -1
  160. package/dist/cjs/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js.map +1 -1
  161. package/dist/cjs/utils/hooks/useGetStartingFocusedDay.js +9 -2
  162. package/dist/cjs/utils/hooks/useGetStartingFocusedDay.js.map +1 -1
  163. package/dist/cjs/utils/hooks/useOnClickOutside.js +4 -1
  164. package/dist/cjs/utils/hooks/useOnClickOutside.js.map +1 -1
  165. package/dist/cjs/utils/numberHelpers.js +4 -1
  166. package/dist/cjs/utils/numberHelpers.js.map +1 -1
  167. package/dist/cjs/utils/stringHelpers.js +4 -1
  168. package/dist/cjs/utils/stringHelpers.js.map +1 -1
  169. package/dist/cjs/utils/timeHelpers.js +4 -1
  170. package/dist/cjs/utils/timeHelpers.js.map +1 -1
  171. package/dist/cjs/utils/typeGuards.js +4 -1
  172. package/dist/cjs/utils/typeGuards.js.map +1 -1
  173. package/dist/esm/ControlledDateTimePicker.js +5 -4
  174. package/dist/esm/ControlledDateTimePicker.js.map +1 -1
  175. package/dist/esm/ControlledDateTimePickerCTX.js.map +1 -1
  176. package/dist/esm/ControlledDateTimePickerDatatestid.js.map +1 -1
  177. package/dist/esm/ControlledDateTimePickerTypes.js.map +1 -1
  178. package/dist/esm/config/useChangeHandlers.js +257 -218
  179. package/dist/esm/config/useChangeHandlers.js.map +1 -1
  180. package/dist/esm/config/useControlledDateTimePicker.js +30 -27
  181. package/dist/esm/config/useControlledDateTimePicker.js.map +2 -2
  182. package/dist/esm/config/useFocusTracker.js +126 -123
  183. package/dist/esm/config/useFocusTracker.js.map +1 -1
  184. package/dist/esm/config/useGetDestructuredValues.js +46 -37
  185. package/dist/esm/config/useGetDestructuredValues.js.map +1 -1
  186. package/dist/esm/config/useGetFlags.js +12 -4
  187. package/dist/esm/config/useGetFlags.js.map +2 -2
  188. package/dist/esm/config/useGetPropsBasedOnType.js +56 -53
  189. package/dist/esm/config/useGetPropsBasedOnType.js.map +1 -1
  190. package/dist/esm/config/useGetPropsWithDefault.js.map +1 -1
  191. package/dist/esm/config/useGetReferences.js +31 -28
  192. package/dist/esm/config/useGetReferences.js.map +1 -1
  193. package/dist/esm/config/useGlobalKeyHandlers.js +59 -50
  194. package/dist/esm/config/useGlobalKeyHandlers.js.map +1 -1
  195. package/dist/esm/config/useRelevantValueFromProps.js +11 -8
  196. package/dist/esm/config/useRelevantValueFromProps.js.map +1 -1
  197. package/dist/esm/config/useValidateProps.js +29 -13
  198. package/dist/esm/config/useValidateProps.js.map +1 -1
  199. package/dist/esm/exported-related/theming.js.map +1 -1
  200. package/dist/esm/index.js.map +1 -1
  201. package/dist/esm/parts/ClearButton/ClearButton.js +8 -6
  202. package/dist/esm/parts/ClearButton/ClearButton.js.map +1 -1
  203. package/dist/esm/parts/ClearButton/useClearButton.js +41 -32
  204. package/dist/esm/parts/ClearButton/useClearButton.js.map +1 -1
  205. package/dist/esm/parts/ControlledDateTimePickerContent.js +27 -15
  206. package/dist/esm/parts/ControlledDateTimePickerContent.js.map +1 -1
  207. package/dist/esm/parts/DateInputs/DDInput.js +38 -32
  208. package/dist/esm/parts/DateInputs/DDInput.js.map +2 -2
  209. package/dist/esm/parts/DateInputs/DateInputs.js +59 -41
  210. package/dist/esm/parts/DateInputs/DateInputs.js.map +2 -2
  211. package/dist/esm/parts/DateInputs/MMInput.js +53 -35
  212. package/dist/esm/parts/DateInputs/MMInput.js.map +3 -3
  213. package/dist/esm/parts/DateInputs/YYYYInput.js +38 -32
  214. package/dist/esm/parts/DateInputs/YYYYInput.js.map +2 -2
  215. package/dist/esm/parts/DateInputs/useDateInputs.js +292 -253
  216. package/dist/esm/parts/DateInputs/useDateInputs.js.map +2 -2
  217. package/dist/esm/parts/Pickers/Calendar/Calendar.js +20 -8
  218. package/dist/esm/parts/Pickers/Calendar/Calendar.js.map +1 -1
  219. package/dist/esm/parts/Pickers/Calendar/CalendarBody.js +10 -3
  220. package/dist/esm/parts/Pickers/Calendar/CalendarBody.js.map +2 -2
  221. package/dist/esm/parts/Pickers/Calendar/CalendarContent.js +14 -6
  222. package/dist/esm/parts/Pickers/Calendar/CalendarContent.js.map +1 -1
  223. package/dist/esm/parts/Pickers/Calendar/CalendarContext.js.map +1 -1
  224. package/dist/esm/parts/Pickers/Calendar/CalendarDaysList.js +31 -26
  225. package/dist/esm/parts/Pickers/Calendar/CalendarDaysList.js.map +2 -2
  226. package/dist/esm/parts/Pickers/Calendar/CalendarFooter.js +6 -4
  227. package/dist/esm/parts/Pickers/Calendar/CalendarFooter.js.map +1 -1
  228. package/dist/esm/parts/Pickers/Calendar/CalendarHead.js +108 -82
  229. package/dist/esm/parts/Pickers/Calendar/CalendarHead.js.map +1 -1
  230. package/dist/esm/parts/Pickers/Calendar/CalendarIconTrigger.js +17 -12
  231. package/dist/esm/parts/Pickers/Calendar/CalendarIconTrigger.js.map +1 -1
  232. package/dist/esm/parts/Pickers/Calendar/CalendarMonthDays.js +3 -2
  233. package/dist/esm/parts/Pickers/Calendar/CalendarMonthDays.js.map +1 -1
  234. package/dist/esm/parts/Pickers/Calendar/CalendarWeekDays.js +51 -33
  235. package/dist/esm/parts/Pickers/Calendar/CalendarWeekDays.js.map +2 -2
  236. package/dist/esm/parts/Pickers/Calendar/CalendarWrapper.js +7 -5
  237. package/dist/esm/parts/Pickers/Calendar/CalendarWrapper.js.map +1 -1
  238. package/dist/esm/parts/Pickers/Calendar/Day.js +69 -57
  239. package/dist/esm/parts/Pickers/Calendar/Day.js.map +1 -1
  240. package/dist/esm/parts/Pickers/Calendar/Styleds.js.map +1 -1
  241. package/dist/esm/parts/Pickers/Calendar/useConfigCalendarCTX.js +25 -22
  242. package/dist/esm/parts/Pickers/Calendar/useConfigCalendarCTX.js.map +1 -1
  243. package/dist/esm/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +34 -25
  244. package/dist/esm/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js.map +1 -1
  245. package/dist/esm/parts/Pickers/Calendar/useFocusLogic.js +30 -17
  246. package/dist/esm/parts/Pickers/Calendar/useFocusLogic.js.map +1 -1
  247. package/dist/esm/parts/Pickers/Calendar/useKeyboardHandlers.js +186 -165
  248. package/dist/esm/parts/Pickers/Calendar/useKeyboardHandlers.js.map +1 -1
  249. package/dist/esm/parts/Pickers/Calendar/usePopperTriggerLogic.js +29 -20
  250. package/dist/esm/parts/Pickers/Calendar/usePopperTriggerLogic.js.map +1 -1
  251. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +18 -7
  252. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js.map +1 -1
  253. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +10 -4
  254. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js.map +1 -1
  255. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +3 -1
  256. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js.map +1 -1
  257. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.js +6 -4
  258. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.js.map +1 -1
  259. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +23 -18
  260. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js.map +1 -1
  261. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +7 -5
  262. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js.map +1 -1
  263. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/Styleds.js.map +1 -1
  264. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +63 -51
  265. package/dist/esm/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js.map +1 -1
  266. package/dist/esm/parts/Pickers/PickersIcons.js +9 -3
  267. package/dist/esm/parts/Pickers/PickersIcons.js.map +2 -2
  268. package/dist/esm/parts/Pickers/TimeWheel/HoursList.js +86 -71
  269. package/dist/esm/parts/Pickers/TimeWheel/HoursList.js.map +1 -1
  270. package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js +98 -75
  271. package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js.map +1 -1
  272. package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js +83 -68
  273. package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js.map +1 -1
  274. package/dist/esm/parts/Pickers/TimeWheel/Styleds.js.map +1 -1
  275. package/dist/esm/parts/Pickers/TimeWheel/TimeWheel.js +20 -8
  276. package/dist/esm/parts/Pickers/TimeWheel/TimeWheel.js.map +1 -1
  277. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContent.js +31 -5
  278. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContent.js.map +2 -2
  279. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelContext.js.map +1 -1
  280. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelFooter.js +6 -4
  281. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelFooter.js.map +1 -1
  282. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +17 -12
  283. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js.map +1 -1
  284. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelWrapper.js +7 -5
  285. package/dist/esm/parts/Pickers/TimeWheel/TimeWheelWrapper.js.map +1 -1
  286. package/dist/esm/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +8 -5
  287. package/dist/esm/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js.map +1 -1
  288. package/dist/esm/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +95 -60
  289. package/dist/esm/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js.map +1 -1
  290. package/dist/esm/parts/Pickers/TimeWheel/useKeyboardHandlers.js +159 -144
  291. package/dist/esm/parts/Pickers/TimeWheel/useKeyboardHandlers.js.map +1 -1
  292. package/dist/esm/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +38 -29
  293. package/dist/esm/parts/Pickers/TimeWheel/usePopperTriggerLogic.js.map +1 -1
  294. package/dist/esm/parts/Styleds.js.map +1 -1
  295. package/dist/esm/parts/TimeInputs/HHInput.js +40 -34
  296. package/dist/esm/parts/TimeInputs/HHInput.js.map +2 -2
  297. package/dist/esm/parts/TimeInputs/MeridiemInput.js +38 -32
  298. package/dist/esm/parts/TimeInputs/MeridiemInput.js.map +2 -2
  299. package/dist/esm/parts/TimeInputs/MinutesInput.js +38 -32
  300. package/dist/esm/parts/TimeInputs/MinutesInput.js.map +2 -2
  301. package/dist/esm/parts/TimeInputs/TimeInputs.js +56 -39
  302. package/dist/esm/parts/TimeInputs/TimeInputs.js.map +1 -1
  303. package/dist/esm/parts/TimeInputs/useTimeInputs.js +230 -200
  304. package/dist/esm/parts/TimeInputs/useTimeInputs.js.map +1 -1
  305. package/dist/esm/parts/config.js.map +1 -1
  306. package/dist/esm/propTypes.js +15 -5
  307. package/dist/esm/propTypes.js.map +2 -2
  308. package/dist/esm/sharedTypes.js.map +1 -1
  309. package/dist/esm/utils/constants.js.map +1 -1
  310. package/dist/esm/utils/dateHelpers.js +11 -9
  311. package/dist/esm/utils/dateHelpers.js.map +1 -1
  312. package/dist/esm/utils/dateTimeHelpers.js.map +1 -1
  313. package/dist/esm/utils/hooks/useGetDayFromDateString.js.map +1 -1
  314. package/dist/esm/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js.map +1 -1
  315. package/dist/esm/utils/hooks/useGetStartingFocusedDay.js +5 -1
  316. package/dist/esm/utils/hooks/useGetStartingFocusedDay.js.map +1 -1
  317. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  318. package/dist/esm/utils/numberHelpers.js.map +1 -1
  319. package/dist/esm/utils/stringHelpers.js.map +1 -1
  320. package/dist/esm/utils/timeHelpers.js.map +1 -1
  321. package/dist/esm/utils/typeGuards.js.map +1 -1
  322. package/package.json +8 -8
@@ -25,6 +25,7 @@ const useDateInputs = () => {
25
25
  withAnyPicker,
26
26
  withAnyRightController,
27
27
  autoFocusMonthInput,
28
+ innerRefMonthInput,
28
29
  trackFocusResetter,
29
30
  trackFocusFirstSegment,
30
31
  trackFocusLastSegment,
@@ -41,280 +42,318 @@ const useDateInputs = () => {
41
42
  const onEndKeyDown = useCallback(() => {
42
43
  trackFocusLastSegment();
43
44
  }, [trackFocusLastSegment]);
44
- const handleChangeMonth = useCallback((newMonth, e, metaInfo = defaultMetaInfo) => {
45
- const newDateString = getFormattedDateString({
46
- month: newMonth,
47
- day,
48
- year
49
- });
50
- const finalMetaInfo = {
51
- ...metaInfo,
52
- ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
53
- newDateString
54
- };
55
- appOnMonthChange(newMonth, e, finalMetaInfo);
56
- handleChangeComposedDateString(newDateString, finalMetaInfo);
57
- }, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
45
+ const handleChangeMonth = useCallback(
46
+ (newMonth, e, metaInfo = defaultMetaInfo) => {
47
+ const newDateString = getFormattedDateString({
48
+ month: newMonth,
49
+ day,
50
+ year
51
+ });
52
+ const finalMetaInfo = {
53
+ ...metaInfo,
54
+ ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
55
+ newDateString
56
+ };
57
+ appOnMonthChange(newMonth, e, finalMetaInfo);
58
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
59
+ },
60
+ [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]
61
+ );
58
62
  const onMonthFocus = useCallback(() => {
59
63
  trackFocusMonthInput();
60
64
  }, [trackFocusMonthInput]);
61
- const onMonthChange = useCallback((e) => {
62
- let newMonth = e?.target?.value;
63
- if (Number.parseInt(newMonth, 10) > 1)
64
- newMonth = prependStringWithPlaceHolders(newMonth, 2);
65
- handleChangeMonth(newMonth, e);
66
- if (newMonth.length === 2)
67
- trackFocusDayInput();
68
- }, [handleChangeMonth, trackFocusDayInput]);
69
- const onMonthKeyDown = useCallback((e) => {
70
- const { key, ctrlKey, metaKey } = e;
71
- const monthStringConvertedToInteger = Number.parseInt(month, 10);
72
- if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
73
- e.preventDefault();
74
- if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
75
- e.stopPropagation();
76
- if (key === "Home")
77
- onHomeKeyDown();
78
- if (key === "End")
79
- onEndKeyDown();
80
- if (key === "ArrowUp" || key === "ArrowDown") {
81
- const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;
82
- let newMonth;
83
- if (key === "ArrowUp")
84
- newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;
85
- else
86
- newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;
87
- newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);
88
- handleChangeMonth(newMonth, e);
89
- }
90
- if (!Number.isNaN(monthStringConvertedToInteger) && (key === "-" || key === "/" || key === "\\")) {
91
- const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);
65
+ const onMonthChange = useCallback(
66
+ (e) => {
67
+ let newMonth = e?.target?.value;
68
+ if (Number.parseInt(newMonth, 10) > 1)
69
+ newMonth = prependStringWithPlaceHolders(newMonth, 2);
92
70
  handleChangeMonth(newMonth, e);
93
71
  if (newMonth.length === 2)
94
72
  trackFocusDayInput();
95
- }
96
- if ((ctrlKey || metaKey) && key === ";")
97
- trackFocusLastSegment();
98
- }, [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth]);
99
- const onMonthBlur = useCallback((e) => {
100
- const newMonth = e?.target?.value;
101
- if (newMonth === "0")
102
- handleChangeMonth("01", e, { isAutomaticFillTrigger: true });
103
- else if (newMonth.length > 0 && newMonth.length < 2)
104
- handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {
105
- isAutomaticFillTrigger: true
73
+ },
74
+ [handleChangeMonth, trackFocusDayInput]
75
+ );
76
+ const onMonthKeyDown = useCallback(
77
+ (e) => {
78
+ const { key, ctrlKey, metaKey } = e;
79
+ const monthStringConvertedToInteger = Number.parseInt(month, 10);
80
+ if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
81
+ e.preventDefault();
82
+ if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
83
+ e.stopPropagation();
84
+ if (key === "Home")
85
+ onHomeKeyDown();
86
+ if (key === "End")
87
+ onEndKeyDown();
88
+ if (key === "ArrowUp" || key === "ArrowDown") {
89
+ const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;
90
+ let newMonth;
91
+ if (key === "ArrowUp")
92
+ newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;
93
+ else
94
+ newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;
95
+ newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);
96
+ handleChangeMonth(newMonth, e);
97
+ }
98
+ if (!Number.isNaN(monthStringConvertedToInteger) && (key === "-" || key === "/" || key === "\\")) {
99
+ const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);
100
+ handleChangeMonth(newMonth, e);
101
+ if (newMonth.length === 2)
102
+ trackFocusDayInput();
103
+ }
104
+ if ((ctrlKey || metaKey) && key === ";")
105
+ trackFocusLastSegment();
106
+ },
107
+ [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth]
108
+ );
109
+ const onMonthBlur = useCallback(
110
+ (e) => {
111
+ const newMonth = e?.target?.value;
112
+ if (newMonth === "0")
113
+ handleChangeMonth("01", e, { isAutomaticFillTrigger: true });
114
+ else if (newMonth.length > 0 && newMonth.length < 2)
115
+ handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {
116
+ isAutomaticFillTrigger: true
117
+ });
118
+ },
119
+ [handleChangeMonth]
120
+ );
121
+ const handleChangeDay = useCallback(
122
+ (newDay, e, metaInfo = defaultMetaInfo) => {
123
+ const newDateString = getFormattedDateString({
124
+ month,
125
+ day: newDay,
126
+ year
106
127
  });
107
- }, [handleChangeMonth]);
108
- const handleChangeDay = useCallback((newDay, e, metaInfo = defaultMetaInfo) => {
109
- const newDateString = getFormattedDateString({
110
- month,
111
- day: newDay,
112
- year
113
- });
114
- const finalMetaInfo = {
115
- ...metaInfo,
116
- ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
117
- newDateString
118
- };
119
- appOnDayChange(newDay, e, finalMetaInfo);
120
- handleChangeComposedDateString(newDateString, finalMetaInfo);
121
- }, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
128
+ const finalMetaInfo = {
129
+ ...metaInfo,
130
+ ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
131
+ newDateString
132
+ };
133
+ appOnDayChange(newDay, e, finalMetaInfo);
134
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
135
+ },
136
+ [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]
137
+ );
122
138
  const onDayFocus = useCallback(() => {
123
139
  trackFocusDayInput();
124
140
  }, [trackFocusDayInput]);
125
- const onDayChange = useCallback((e) => {
126
- let newDay = e?.target?.value;
127
- if (Number.parseInt(newDay, 10) > 3)
128
- newDay = prependStringWithPlaceHolders(newDay, 2);
129
- handleChangeDay(newDay, e);
130
- if (newDay.length === 2)
131
- trackFocusYearInput();
132
- }, [handleChangeDay, trackFocusYearInput]);
133
- const onDayKeyDown = useCallback((e) => {
134
- const { key, ctrlKey, metaKey } = e;
135
- const dayStringConvertedToInteger = Number.parseInt(day, 10);
136
- if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
137
- e.preventDefault();
138
- if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
139
- e.stopPropagation();
140
- if (key === "Home")
141
- onHomeKeyDown();
142
- if (key === "End")
143
- onEndKeyDown();
144
- if (key === "ArrowUp" || key === "ArrowDown") {
145
- const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;
146
- let newDay;
147
- if (key === "ArrowUp")
148
- newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;
149
- else
150
- newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;
151
- newDay = prependStringWithPlaceHolders(`${newDay}`, 2);
152
- handleChangeDay(newDay, e);
153
- }
154
- if (!Number.isNaN(dayStringConvertedToInteger) && (key === "-" || key === "/" || key === "\\")) {
155
- const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);
141
+ const onDayChange = useCallback(
142
+ (e) => {
143
+ let newDay = e?.target?.value;
144
+ if (Number.parseInt(newDay, 10) > 3)
145
+ newDay = prependStringWithPlaceHolders(newDay, 2);
156
146
  handleChangeDay(newDay, e);
157
147
  if (newDay.length === 2)
158
148
  trackFocusYearInput();
159
- }
160
- if (key === "Backspace" && day?.length === 0) {
161
- trackFocusMonthInput();
162
- }
163
- if ((ctrlKey || metaKey) && key === ";")
164
- trackFocusLastSegment();
165
- }, [
166
- day,
167
- onHomeKeyDown,
168
- onEndKeyDown,
169
- trackFocusLastSegment,
170
- handleChangeDay,
171
- trackFocusYearInput,
172
- trackFocusMonthInput
173
- ]);
174
- const onDayBlur = useCallback((e) => {
175
- const newDay = e?.target?.value;
176
- if (newDay === "0")
177
- handleChangeDay("01", e, { isAutomaticFillTrigger: true });
178
- else if (newDay.length > 0 && newDay.length < 2)
179
- handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {
180
- isAutomaticFillTrigger: true
181
- });
182
- }, [handleChangeDay]);
183
- const handleChangeYear = useCallback((newYear, e, metaInfo = defaultMetaInfo) => {
184
- const newDateString = getFormattedDateString({
185
- month,
149
+ },
150
+ [handleChangeDay, trackFocusYearInput]
151
+ );
152
+ const onDayKeyDown = useCallback(
153
+ (e) => {
154
+ const { key, ctrlKey, metaKey } = e;
155
+ const dayStringConvertedToInteger = Number.parseInt(day, 10);
156
+ if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
157
+ e.preventDefault();
158
+ if (["Home", "End", "ArrowUp", "ArrowDown", "-", "/", "\\"].includes(key))
159
+ e.stopPropagation();
160
+ if (key === "Home")
161
+ onHomeKeyDown();
162
+ if (key === "End")
163
+ onEndKeyDown();
164
+ if (key === "ArrowUp" || key === "ArrowDown") {
165
+ const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;
166
+ let newDay;
167
+ if (key === "ArrowUp")
168
+ newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;
169
+ else
170
+ newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;
171
+ newDay = prependStringWithPlaceHolders(`${newDay}`, 2);
172
+ handleChangeDay(newDay, e);
173
+ }
174
+ if (!Number.isNaN(dayStringConvertedToInteger) && (key === "-" || key === "/" || key === "\\")) {
175
+ const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);
176
+ handleChangeDay(newDay, e);
177
+ if (newDay.length === 2)
178
+ trackFocusYearInput();
179
+ }
180
+ if (key === "Backspace" && day?.length === 0) {
181
+ trackFocusMonthInput();
182
+ }
183
+ if ((ctrlKey || metaKey) && key === ";")
184
+ trackFocusLastSegment();
185
+ },
186
+ [
186
187
  day,
187
- year: newYear
188
- });
189
- const finalMetaInfo = {
190
- ...metaInfo,
191
- ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
192
- newDateString
193
- };
194
- appOnYearChange(newYear, e, finalMetaInfo);
195
- handleChangeComposedDateString(newDateString, finalMetaInfo);
196
- }, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
188
+ onHomeKeyDown,
189
+ onEndKeyDown,
190
+ trackFocusLastSegment,
191
+ handleChangeDay,
192
+ trackFocusYearInput,
193
+ trackFocusMonthInput
194
+ ]
195
+ );
196
+ const onDayBlur = useCallback(
197
+ (e) => {
198
+ const newDay = e?.target?.value;
199
+ if (newDay === "0")
200
+ handleChangeDay("01", e, { isAutomaticFillTrigger: true });
201
+ else if (newDay.length > 0 && newDay.length < 2)
202
+ handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {
203
+ isAutomaticFillTrigger: true
204
+ });
205
+ },
206
+ [handleChangeDay]
207
+ );
208
+ const handleChangeYear = useCallback(
209
+ (newYear, e, metaInfo = defaultMetaInfo) => {
210
+ const newDateString = getFormattedDateString({
211
+ month,
212
+ day,
213
+ year: newYear
214
+ });
215
+ const finalMetaInfo = {
216
+ ...metaInfo,
217
+ ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),
218
+ newDateString
219
+ };
220
+ appOnYearChange(newYear, e, finalMetaInfo);
221
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
222
+ },
223
+ [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]
224
+ );
197
225
  const onYearFocus = useCallback(() => {
198
226
  trackFocusYearInput();
199
227
  }, [trackFocusYearInput]);
200
- const onYearChange = useCallback((e) => {
201
- const newYear = e?.target?.value;
202
- handleChangeYear(newYear, e);
203
- if (newYear.length === 4) {
228
+ const onYearChange = useCallback(
229
+ (e) => {
230
+ const newYear = e?.target?.value;
231
+ handleChangeYear(newYear, e);
232
+ if (newYear.length === 4) {
233
+ if (!hideTime)
234
+ trackFocusHourInput();
235
+ else if (withAnyRightController) {
236
+ if (withClearBtn)
237
+ trackFocusClearBtn();
238
+ else if (withAnyPicker)
239
+ trackFocusPicker();
240
+ }
241
+ }
242
+ },
243
+ [
244
+ handleChangeYear,
245
+ hideTime,
246
+ trackFocusHourInput,
247
+ withAnyRightController,
248
+ withClearBtn,
249
+ trackFocusClearBtn,
250
+ withAnyPicker,
251
+ trackFocusPicker
252
+ ]
253
+ );
254
+ const onYearKeyDown = useCallback(
255
+ (e) => {
256
+ const { key, ctrlKey, metaKey } = e;
257
+ const yearStringConvertedToInteger = Number.parseInt(year, 10);
258
+ const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;
259
+ let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, "0") : "";
260
+ if (key === "ArrowUp" || key === "ArrowDown") {
261
+ let newYearInteger;
262
+ if (key === "ArrowUp")
263
+ newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;
264
+ else
265
+ newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;
266
+ newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);
267
+ }
268
+ const isAutomaticFillTrigger = newYear !== year && ["Tab", " "].includes(key);
269
+ const metainfo = { isAutomaticFillTrigger };
270
+ if (key === "ArrowUp" || key === "ArrowDown" || isAutomaticFillTrigger) {
271
+ handleChangeYear(newYear, e, metainfo);
272
+ }
273
+ let trackNextFocus = trackFocusResetter;
204
274
  if (!hideTime)
205
- trackFocusHourInput();
206
- else if (withAnyRightController) {
207
- if (withClearBtn)
208
- trackFocusClearBtn();
209
- else if (withAnyPicker)
210
- trackFocusPicker();
275
+ trackNextFocus = trackFocusHourInput;
276
+ else if (withClearBtn)
277
+ trackNextFocus = trackFocusClearBtn;
278
+ else if (withAnyPicker)
279
+ trackNextFocus = trackFocusPicker;
280
+ if (["Home", "End", "ArrowUp", "ArrowDown", " "].includes(key))
281
+ e.preventDefault();
282
+ if (["Home", "End", "ArrowUp", "ArrowDown", " "].includes(key))
283
+ e.stopPropagation();
284
+ if (key === "Home")
285
+ onHomeKeyDown();
286
+ if (key === "End")
287
+ onEndKeyDown();
288
+ if (key === " ") {
289
+ trackNextFocus();
211
290
  }
212
- }
213
- }, [
214
- handleChangeYear,
215
- hideTime,
216
- trackFocusHourInput,
217
- withAnyRightController,
218
- withClearBtn,
219
- trackFocusClearBtn,
220
- withAnyPicker,
221
- trackFocusPicker
222
- ]);
223
- const onYearKeyDown = useCallback((e) => {
224
- const { key, ctrlKey, metaKey } = e;
225
- const yearStringConvertedToInteger = Number.parseInt(year, 10);
226
- const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;
227
- let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, "0") : "";
228
- if (key === "ArrowUp" || key === "ArrowDown") {
229
- let newYearInteger;
230
- if (key === "ArrowUp")
231
- newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;
232
- else
233
- newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;
234
- newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);
235
- }
236
- const isAutomaticFillTrigger = newYear !== year && ["Tab", " "].includes(key);
237
- const metainfo = { isAutomaticFillTrigger };
238
- if (key === "ArrowUp" || key === "ArrowDown" || isAutomaticFillTrigger) {
239
- handleChangeYear(newYear, e, metainfo);
240
- }
241
- let trackNextFocus = trackFocusResetter;
242
- if (!hideTime)
243
- trackNextFocus = trackFocusHourInput;
244
- else if (withClearBtn)
245
- trackNextFocus = trackFocusClearBtn;
246
- else if (withAnyPicker)
247
- trackNextFocus = trackFocusPicker;
248
- if (["Home", "End", "ArrowUp", "ArrowDown", " "].includes(key))
249
- e.preventDefault();
250
- if (["Home", "End", "ArrowUp", "ArrowDown", " "].includes(key))
251
- e.stopPropagation();
252
- if (key === "Home")
253
- onHomeKeyDown();
254
- if (key === "End")
255
- onEndKeyDown();
256
- if (key === " ") {
257
- trackNextFocus();
258
- }
259
- if (key === "Backspace" && year?.length === 0) {
260
- trackFocusDayInput();
261
- }
262
- if ((ctrlKey || metaKey) && key === ";")
263
- trackFocusLastSegment();
264
- }, [
265
- year,
266
- trackFocusResetter,
267
- hideTime,
268
- trackFocusHourInput,
269
- withClearBtn,
270
- trackFocusClearBtn,
271
- withAnyPicker,
272
- trackFocusPicker,
273
- onHomeKeyDown,
274
- onEndKeyDown,
275
- trackFocusLastSegment,
276
- trackFocusDayInput,
277
- handleChangeYear
278
- ]);
291
+ if (key === "Backspace" && year?.length === 0) {
292
+ trackFocusDayInput();
293
+ }
294
+ if ((ctrlKey || metaKey) && key === ";")
295
+ trackFocusLastSegment();
296
+ },
297
+ [
298
+ year,
299
+ trackFocusResetter,
300
+ hideTime,
301
+ trackFocusHourInput,
302
+ withClearBtn,
303
+ trackFocusClearBtn,
304
+ withAnyPicker,
305
+ trackFocusPicker,
306
+ onHomeKeyDown,
307
+ onEndKeyDown,
308
+ trackFocusLastSegment,
309
+ trackFocusDayInput,
310
+ handleChangeYear
311
+ ]
312
+ );
279
313
  const onYearBlur = useCallback(() => {
280
314
  }, []);
281
- return useMemo(() => ({
282
- month,
283
- day,
284
- year,
285
- autoFocusMonthInput,
286
- disabled,
287
- onMonthFocus,
288
- onMonthChange,
289
- onDayFocus,
290
- onDayChange,
291
- onYearFocus,
292
- onYearChange,
293
- onMonthBlur,
294
- onDayBlur,
295
- onYearBlur,
296
- onMonthKeyDown,
297
- onDayKeyDown,
298
- onYearKeyDown
299
- }), [
300
- month,
301
- day,
302
- year,
303
- autoFocusMonthInput,
304
- disabled,
305
- onMonthFocus,
306
- onMonthChange,
307
- onDayFocus,
308
- onDayChange,
309
- onYearFocus,
310
- onYearChange,
311
- onMonthBlur,
312
- onDayBlur,
313
- onYearBlur,
314
- onMonthKeyDown,
315
- onDayKeyDown,
316
- onYearKeyDown
317
- ]);
315
+ return useMemo(
316
+ () => ({
317
+ month,
318
+ day,
319
+ year,
320
+ autoFocusMonthInput,
321
+ innerRefMonthInput,
322
+ disabled,
323
+ onMonthFocus,
324
+ onMonthChange,
325
+ onDayFocus,
326
+ onDayChange,
327
+ onYearFocus,
328
+ onYearChange,
329
+ onMonthBlur,
330
+ onDayBlur,
331
+ onYearBlur,
332
+ onMonthKeyDown,
333
+ onDayKeyDown,
334
+ onYearKeyDown
335
+ }),
336
+ [
337
+ month,
338
+ day,
339
+ year,
340
+ autoFocusMonthInput,
341
+ innerRefMonthInput,
342
+ disabled,
343
+ onMonthFocus,
344
+ onMonthChange,
345
+ onDayFocus,
346
+ onDayChange,
347
+ onYearFocus,
348
+ onYearChange,
349
+ onMonthBlur,
350
+ onDayBlur,
351
+ onYearBlur,
352
+ onMonthKeyDown,
353
+ onDayKeyDown,
354
+ onYearKeyDown
355
+ ]
356
+ );
318
357
  };
319
358
  export {
320
359
  useDateInputs