@elliemae/ds-controlled-form 2.4.0 → 2.4.1-rc.11

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 (368) hide show
  1. package/cjs/autocomplete/Autocomplete.js +4 -5
  2. package/cjs/autocomplete/AutocompleteCTX.js +3 -14
  3. package/cjs/autocomplete/AutocompleteDataTestids.js +1 -7
  4. package/cjs/autocomplete/config/useAutocomplete.js +23 -10
  5. package/cjs/autocomplete/parts/container/Container.js +36 -20
  6. package/cjs/autocomplete/parts/container/styled.js +1 -5
  7. package/cjs/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  8. package/cjs/autocomplete/parts/menu-list/MenuList.js +17 -50
  9. package/cjs/autocomplete/parts/menu-list/styled.js +9 -10
  10. package/cjs/autocomplete/parts/menu-list/useItemRenderer.js +38 -44
  11. package/cjs/autocomplete/react-desc-prop-types.js +4 -8
  12. package/cjs/autocomplete/utils/listHelper.js +8 -16
  13. package/cjs/checkbox/ControlledCheckbox.js +2 -1
  14. package/cjs/checkbox/react-desc-prop-types.js +2 -0
  15. package/cjs/combobox/ComboBox.js +1 -0
  16. package/cjs/combobox/config/useComboBox.js +8 -2
  17. package/cjs/combobox/config/useCorrectOptions.js +14 -42
  18. package/cjs/combobox/index.js +1 -0
  19. package/cjs/combobox/parts/A11yFocusedOption.js +3 -3
  20. package/cjs/combobox/parts/controls/Controls.js +4 -2
  21. package/cjs/combobox/parts/controls-input/ControlsInput.js +2 -0
  22. package/cjs/combobox/parts/controls-input/styled.js +1 -1
  23. package/cjs/combobox/parts/controls-input/useControlsInput.js +6 -6
  24. package/cjs/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  25. package/cjs/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  26. package/cjs/combobox/parts/dropdown-indicator/DropdownIndicator.js +6 -4
  27. package/cjs/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  28. package/cjs/combobox/parts/menu-list/MenuList.js +13 -7
  29. package/cjs/combobox/parts/menu-list/styled.js +16 -5
  30. package/cjs/combobox/parts/menu-list/useItemRenderer.js +8 -8
  31. package/cjs/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  32. package/cjs/combobox/react-desc-prop-types.js +2 -1
  33. package/cjs/combobox/utils/listHelper.js +40 -11
  34. package/cjs/date-time-picker/ControlledDateTimePickerCTX.js +1 -114
  35. package/cjs/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  36. package/cjs/date-time-picker/config/useChangeHandlers.js +264 -0
  37. package/cjs/date-time-picker/config/useControlledDateTimePicker.js +37 -420
  38. package/cjs/date-time-picker/config/useGetDestructuredValues.js +25 -68
  39. package/cjs/date-time-picker/config/useGetFlags.js +173 -0
  40. package/cjs/date-time-picker/config/useGetPropsBasedOnType.js +101 -0
  41. package/cjs/date-time-picker/config/useGetPropsWithDefault.js +2 -3
  42. package/cjs/date-time-picker/config/useGetReferences.js +86 -0
  43. package/cjs/date-time-picker/config/useGlobalKeyHandlers.js +106 -0
  44. package/cjs/date-time-picker/config/useRelevantValueFromProps.js +39 -0
  45. package/cjs/date-time-picker/config/useValidateProps.js +47 -42
  46. package/cjs/date-time-picker/parts/ClearButton/ClearButton.js +20 -8
  47. package/cjs/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  48. package/cjs/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  49. package/cjs/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  50. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  51. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -49
  52. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  53. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  54. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +8 -4
  55. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  56. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  57. package/cjs/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  58. package/cjs/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +24 -122
  59. package/cjs/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +32 -4
  60. package/cjs/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  61. package/cjs/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  62. package/cjs/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  63. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +7 -3
  64. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  65. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +0 -1
  66. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  67. package/cjs/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  68. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +60 -33
  69. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  70. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  71. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  72. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -65
  73. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  74. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  75. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +18 -116
  76. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +52 -94
  77. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  78. package/cjs/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  79. package/cjs/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  80. package/cjs/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  81. package/cjs/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  82. package/cjs/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  83. package/cjs/date-time-picker/propTypes.js +56 -23
  84. package/cjs/{autocomplete/index.d.js → date-time-picker/sharedTypes.js} +0 -0
  85. package/cjs/date-time-picker/utils/dateHelpers.js +56 -56
  86. package/cjs/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  87. package/cjs/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +50 -47
  88. package/cjs/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  89. package/cjs/date-time-picker/utils/stringHelpers.js +8 -14
  90. package/cjs/date-time-picker/utils/typeGuards.js +14 -0
  91. package/cjs/index.js +20 -3
  92. package/cjs/large-text-input/DSControlledLargeTextInput.js +83 -0
  93. package/cjs/large-text-input/exported-related/data-test-ids.js +11 -0
  94. package/cjs/large-text-input/exported-related/index.js +12 -0
  95. package/cjs/large-text-input/exported-related/theming.js +13 -0
  96. package/cjs/large-text-input/index.js +15 -0
  97. package/cjs/large-text-input/react-desc-prop-types.js +45 -0
  98. package/cjs/large-text-input/styles.js +40 -0
  99. package/cjs/mask-hook/hooks/index.js +11 -3
  100. package/cjs/mask-hook/hooks/useNumberMask.js +7 -0
  101. package/cjs/mask-hook/hooks/usePhoneMask.js +7 -0
  102. package/cjs/mask-hook/hooks/useRegExpMask.js +122 -0
  103. package/cjs/mask-hook/hooks/useSSNMask.js +7 -0
  104. package/cjs/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +12 -5
  105. package/cjs/mask-hook/index.js +11 -3
  106. package/cjs/mask-hook/react-desc-prop-types.js +9 -0
  107. package/cjs/mask-hook/utils/addSpecialCharacters.js +3 -4
  108. package/cjs/mask-hook/utils/flatStringArray.js +18 -0
  109. package/cjs/mask-hook/utils/index.js +2 -0
  110. package/esm/autocomplete/Autocomplete.js +2 -3
  111. package/esm/autocomplete/AutocompleteCTX.js +3 -14
  112. package/esm/autocomplete/AutocompleteDataTestids.js +1 -7
  113. package/esm/autocomplete/config/useAutocomplete.js +27 -14
  114. package/esm/autocomplete/parts/container/Container.js +38 -23
  115. package/esm/autocomplete/parts/container/styled.js +2 -5
  116. package/esm/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  117. package/esm/autocomplete/parts/menu-list/MenuList.js +19 -52
  118. package/esm/autocomplete/parts/menu-list/styled.js +9 -10
  119. package/esm/autocomplete/parts/menu-list/useItemRenderer.js +39 -45
  120. package/esm/autocomplete/react-desc-prop-types.js +5 -8
  121. package/esm/autocomplete/utils/listHelper.js +8 -16
  122. package/esm/checkbox/ControlledCheckbox.js +2 -1
  123. package/esm/checkbox/react-desc-prop-types.js +2 -0
  124. package/esm/combobox/ComboBox.js +1 -1
  125. package/esm/combobox/config/useComboBox.js +8 -2
  126. package/esm/combobox/config/useCorrectOptions.js +15 -43
  127. package/esm/combobox/index.js +1 -1
  128. package/esm/combobox/parts/A11yFocusedOption.js +3 -3
  129. package/esm/combobox/parts/controls/Controls.js +4 -2
  130. package/esm/combobox/parts/controls-input/ControlsInput.js +2 -0
  131. package/esm/combobox/parts/controls-input/styled.js +1 -1
  132. package/esm/combobox/parts/controls-input/useControlsInput.js +6 -6
  133. package/esm/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  134. package/esm/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  135. package/esm/combobox/parts/dropdown-indicator/DropdownIndicator.js +2 -2
  136. package/esm/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  137. package/esm/combobox/parts/menu-list/MenuList.js +13 -7
  138. package/esm/combobox/parts/menu-list/styled.js +16 -5
  139. package/esm/combobox/parts/menu-list/useItemRenderer.js +8 -8
  140. package/esm/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  141. package/esm/combobox/react-desc-prop-types.js +2 -1
  142. package/esm/combobox/utils/listHelper.js +38 -12
  143. package/esm/date-time-picker/ControlledDateTimePickerCTX.js +3 -115
  144. package/esm/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  145. package/esm/date-time-picker/config/useChangeHandlers.js +256 -0
  146. package/esm/date-time-picker/config/useControlledDateTimePicker.js +38 -421
  147. package/esm/date-time-picker/config/useGetDestructuredValues.js +21 -68
  148. package/esm/date-time-picker/config/useGetFlags.js +165 -0
  149. package/esm/date-time-picker/config/useGetPropsBasedOnType.js +97 -0
  150. package/esm/date-time-picker/config/useGetPropsWithDefault.js +1 -2
  151. package/esm/date-time-picker/config/useGetReferences.js +82 -0
  152. package/esm/date-time-picker/config/useGlobalKeyHandlers.js +98 -0
  153. package/esm/date-time-picker/config/useRelevantValueFromProps.js +35 -0
  154. package/esm/date-time-picker/config/useValidateProps.js +47 -42
  155. package/esm/date-time-picker/parts/ClearButton/ClearButton.js +20 -9
  156. package/esm/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  157. package/esm/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  158. package/esm/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  159. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  160. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +2 -50
  161. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  162. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  163. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +9 -5
  164. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  165. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  166. package/esm/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  167. package/esm/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +23 -125
  168. package/esm/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +33 -5
  169. package/esm/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  170. package/esm/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  171. package/esm/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  172. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +9 -5
  173. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  174. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -2
  175. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  176. package/esm/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  177. package/esm/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +59 -33
  178. package/esm/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  179. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  180. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  181. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -66
  182. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  183. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  184. package/esm/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +15 -117
  185. package/esm/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +54 -96
  186. package/esm/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  187. package/esm/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  188. package/esm/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  189. package/esm/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  190. package/esm/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  191. package/esm/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  192. package/esm/date-time-picker/propTypes.js +49 -17
  193. package/esm/{autocomplete/index.d.js → date-time-picker/sharedTypes.js} +0 -0
  194. package/esm/date-time-picker/utils/dateHelpers.js +57 -57
  195. package/esm/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  196. package/esm/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +46 -47
  197. package/esm/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  198. package/esm/date-time-picker/utils/stringHelpers.js +8 -14
  199. package/esm/date-time-picker/utils/typeGuards.js +8 -0
  200. package/esm/index.js +9 -5
  201. package/esm/large-text-input/DSControlledLargeTextInput.js +72 -0
  202. package/esm/large-text-input/exported-related/data-test-ids.js +7 -0
  203. package/esm/large-text-input/exported-related/index.js +2 -0
  204. package/esm/large-text-input/exported-related/theming.js +8 -0
  205. package/esm/large-text-input/index.js +3 -0
  206. package/esm/large-text-input/react-desc-prop-types.js +36 -0
  207. package/esm/large-text-input/styles.js +30 -0
  208. package/esm/mask-hook/hooks/index.js +5 -4
  209. package/esm/mask-hook/hooks/useNumberMask.js +7 -1
  210. package/esm/mask-hook/hooks/usePhoneMask.js +7 -1
  211. package/esm/mask-hook/hooks/useRegExpMask.js +116 -0
  212. package/esm/mask-hook/hooks/useSSNMask.js +7 -1
  213. package/esm/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +11 -5
  214. package/esm/mask-hook/index.js +5 -4
  215. package/esm/mask-hook/react-desc-prop-types.js +8 -1
  216. package/esm/mask-hook/utils/addSpecialCharacters.js +3 -4
  217. package/esm/mask-hook/utils/flatStringArray.js +14 -0
  218. package/esm/mask-hook/utils/index.js +1 -0
  219. package/package.json +92 -88
  220. package/types/autocomplete/Autocomplete.d.ts +4 -61
  221. package/types/autocomplete/AutocompleteCTX.d.ts +4 -3
  222. package/types/autocomplete/AutocompleteDataTestids.d.ts +1 -7
  223. package/types/autocomplete/config/useAutocomplete.d.ts +3 -2
  224. package/types/autocomplete/parts/container/Container.d.ts +1 -2
  225. package/types/autocomplete/parts/container/styled.d.ts +0 -1
  226. package/types/autocomplete/parts/{controls → container}/useKeyboardNavigation.d.ts +0 -0
  227. package/types/autocomplete/parts/menu-list/MenuList.d.ts +1 -2
  228. package/types/autocomplete/parts/menu-list/styled.d.ts +1 -4
  229. package/types/autocomplete/parts/menu-list/useItemRenderer.d.ts +2 -3
  230. package/types/autocomplete/react-desc-prop-types.d.ts +8 -18
  231. package/types/autocomplete/sharedTypes.d.ts +1 -3
  232. package/types/autocomplete/tests/general.test.d.ts +1 -0
  233. package/types/autocomplete/tests/utils.d.ts +5 -0
  234. package/types/autocomplete/utils/listHelper.d.ts +2 -2
  235. package/types/checkbox/ControlledCheckbox.d.ts +1 -1
  236. package/types/checkbox/react-desc-prop-types.d.ts +367 -1
  237. package/types/combobox/ComboBox.d.ts +2 -2
  238. package/types/combobox/parts/dropdown-indicator/DropdownIndicator.d.ts +1 -0
  239. package/types/combobox/react-desc-prop-types.d.ts +381 -3
  240. package/types/combobox/utils/listHelper.d.ts +4 -1
  241. package/types/date-time-picker/ControlledDateTimePicker.d.ts +25 -80
  242. package/types/date-time-picker/ControlledDateTimePickerCTX.d.ts +1 -2
  243. package/types/date-time-picker/ControlledDateTimePickerDatatestid.d.ts +46 -46
  244. package/types/date-time-picker/ControlledDateTimePickerTypes.d.ts +15 -15
  245. package/types/date-time-picker/config/useChangeHandlers.d.ts +25 -0
  246. package/types/date-time-picker/config/useControlledDateTimePicker.d.ts +18 -2
  247. package/types/date-time-picker/config/useGetDestructuredValues.d.ts +30 -4
  248. package/types/date-time-picker/config/useGetFlags.d.ts +27 -0
  249. package/types/date-time-picker/config/useGetPropsBasedOnType.d.ts +28 -0
  250. package/types/date-time-picker/config/useGetPropsWithDefault.d.ts +2 -2
  251. package/types/date-time-picker/config/useGetReferences.d.ts +39 -0
  252. package/types/date-time-picker/config/useGlobalKeyHandlers.d.ts +16 -0
  253. package/types/date-time-picker/config/useRelevantValueFromProps.d.ts +10 -0
  254. package/types/date-time-picker/config/useValidateProps.d.ts +2 -2
  255. package/types/date-time-picker/parts/ClearButton/useClearButton.d.ts +6 -6
  256. package/types/date-time-picker/parts/DateInputs/DDInput.d.ts +6 -6
  257. package/types/date-time-picker/parts/DateInputs/MMInput.d.ts +6 -6
  258. package/types/date-time-picker/parts/DateInputs/YYYYInput.d.ts +6 -6
  259. package/types/date-time-picker/parts/DateInputs/useDateInputs.d.ts +2 -2
  260. package/types/date-time-picker/parts/Pickers/Calendar/Calendar.d.ts +4 -2
  261. package/types/date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +3 -63
  262. package/types/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +4 -4
  263. package/types/date-time-picker/parts/Pickers/Calendar/CalendarFooter.d.ts +2 -2
  264. package/types/date-time-picker/parts/Pickers/Calendar/Day.d.ts +2 -2
  265. package/types/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.d.ts +15 -2
  266. package/types/date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +12 -5
  267. package/types/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +17 -11
  268. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -16
  269. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.d.ts +2 -2
  270. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.d.ts +15 -1
  271. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.d.ts +4 -2
  272. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +3 -62
  273. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelFooter.d.ts +2 -2
  274. package/types/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.d.ts +4 -1
  275. package/types/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.d.ts +16 -5
  276. package/types/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +18 -3
  277. package/types/date-time-picker/parts/TimeInputs/HHInput.d.ts +6 -6
  278. package/types/date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +6 -6
  279. package/types/date-time-picker/parts/TimeInputs/MinutesInput.d.ts +6 -6
  280. package/types/date-time-picker/parts/TimeInputs/useTimeInputs.d.ts +22 -2
  281. package/types/date-time-picker/parts/config.d.ts +3 -3
  282. package/types/date-time-picker/sharedTypes.d.ts +94 -0
  283. package/types/date-time-picker/utils/constants.d.ts +33 -33
  284. package/types/date-time-picker/utils/dateHelpers.d.ts +15 -14
  285. package/types/date-time-picker/utils/dateTimeHelpers.d.ts +3 -3
  286. package/types/date-time-picker/utils/hooks/useGetDayFromDateString.d.ts +1 -1
  287. package/types/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.d.ts +2 -2
  288. package/types/date-time-picker/utils/hooks/useGetStartingFocusedDay.d.ts +6 -6
  289. package/types/date-time-picker/utils/hooks/useOnClickOutside.d.ts +1 -1
  290. package/types/date-time-picker/utils/timeHelpers.d.ts +2 -2
  291. package/types/date-time-picker/utils/typeGuards.d.ts +4 -0
  292. package/types/index.d.ts +1 -0
  293. package/types/large-text-input/DSControlledLargeTextInput.d.ts +5 -0
  294. package/types/large-text-input/exported-related/data-test-ids.d.ts +5 -0
  295. package/types/large-text-input/exported-related/index.d.ts +2 -0
  296. package/types/large-text-input/exported-related/theming.d.ts +6 -0
  297. package/types/large-text-input/index.d.ts +2 -0
  298. package/types/large-text-input/react-desc-prop-types.d.ts +447 -0
  299. package/types/large-text-input/styles.d.ts +3 -0
  300. package/types/large-text-input/tests/DSControlledLargeTextInput.test.d.ts +1 -0
  301. package/types/mask-hook/hooks/index.d.ts +2 -1
  302. package/types/mask-hook/hooks/useNumberMask.d.ts +2 -1
  303. package/types/mask-hook/hooks/usePhoneMask.d.ts +2 -1
  304. package/types/mask-hook/hooks/useRegExpMask.d.ts +4 -0
  305. package/types/mask-hook/hooks/useSSNMask.d.ts +2 -1
  306. package/types/mask-hook/hooks/useZipCodeMask.d.ts +4 -0
  307. package/types/mask-hook/react-desc-prop-types.d.ts +6 -1
  308. package/types/mask-hook/tests/useRegExpMask.test.d.ts +1 -0
  309. package/types/mask-hook/utils/flatStringArray.d.ts +1 -0
  310. package/types/mask-hook/utils/index.d.ts +1 -0
  311. package/types/text-input/DSInputText.d.ts +1 -1
  312. package/types/text-input/config/useInputText.d.ts +110 -110
  313. package/cjs/autocomplete/config/constants.js +0 -14
  314. package/cjs/autocomplete/config/useGetPropsWithDefault.js +0 -11
  315. package/cjs/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -33
  316. package/cjs/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -28
  317. package/cjs/autocomplete/parts/a11y-messages/index.js +0 -11
  318. package/cjs/autocomplete/parts/a11y-messages/styled.js +0 -15
  319. package/cjs/autocomplete/parts/controls/Controls.js +0 -63
  320. package/cjs/autocomplete/parts/controls/index.js +0 -9
  321. package/cjs/autocomplete/parts/controls/styled.js +0 -44
  322. package/cjs/autocomplete/parts/controls/useControlsInput.js +0 -44
  323. package/cjs/autocomplete/parts/controls/useMaskedOnChange.js +0 -28
  324. package/cjs/autocomplete/parts/menu-list/useMenuList.js +0 -69
  325. package/cjs/autocomplete/propTypes.js +0 -25
  326. package/cjs/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -97
  327. package/cjs/autocomplete/utils/hooks/useOnElementResize.js +0 -37
  328. package/cjs/text-input/exported-related/name.js +0 -7
  329. package/cjs/text-input/exported-related/slots.js +0 -11
  330. package/esm/autocomplete/config/constants.js +0 -10
  331. package/esm/autocomplete/config/useGetPropsWithDefault.js +0 -7
  332. package/esm/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -25
  333. package/esm/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -20
  334. package/esm/autocomplete/parts/a11y-messages/index.js +0 -2
  335. package/esm/autocomplete/parts/a11y-messages/styled.js +0 -7
  336. package/esm/autocomplete/parts/controls/Controls.js +0 -55
  337. package/esm/autocomplete/parts/controls/index.js +0 -1
  338. package/esm/autocomplete/parts/controls/styled.js +0 -32
  339. package/esm/autocomplete/parts/controls/useControlsInput.js +0 -40
  340. package/esm/autocomplete/parts/controls/useMaskedOnChange.js +0 -24
  341. package/esm/autocomplete/parts/menu-list/useMenuList.js +0 -65
  342. package/esm/autocomplete/propTypes.js +0 -21
  343. package/esm/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -93
  344. package/esm/autocomplete/utils/hooks/useOnElementResize.js +0 -33
  345. package/esm/text-input/exported-related/name.js +0 -3
  346. package/esm/text-input/exported-related/slots.js +0 -7
  347. package/types/autocomplete/config/constants.d.ts +0 -8
  348. package/types/autocomplete/config/useGetPropsWithDefault.d.ts +0 -2
  349. package/types/autocomplete/parts/a11y-messages/MultiAllyMessages.d.ts +0 -3
  350. package/types/autocomplete/parts/a11y-messages/SingleAllyMessages.d.ts +0 -3
  351. package/types/autocomplete/parts/a11y-messages/index.d.ts +0 -2
  352. package/types/autocomplete/parts/a11y-messages/styled.d.ts +0 -1
  353. package/types/autocomplete/parts/controls/Controls.d.ts +0 -3
  354. package/types/autocomplete/parts/controls/index.d.ts +0 -1
  355. package/types/autocomplete/parts/controls/styled.d.ts +0 -8
  356. package/types/autocomplete/parts/controls/useControlsInput.d.ts +0 -9
  357. package/types/autocomplete/parts/controls/useMaskedOnChange.d.ts +0 -2
  358. package/types/autocomplete/parts/menu-list/useMenuList.d.ts +0 -2
  359. package/types/autocomplete/propTypes.d.ts +0 -51
  360. package/types/autocomplete/utils/hooks/useKeyboardNavigation.d.ts +0 -4
  361. package/types/autocomplete/utils/hooks/useOnElementResize.d.ts +0 -3
  362. package/types/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.d.ts +0 -2
  363. package/types/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +0 -12
  364. package/types/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +0 -2
  365. package/types/date-time-picker/propTypes.d.ts +0 -81
  366. package/types/mask-hook/hooks/useZipCode.d.ts +0 -3
  367. package/types/text-input/exported-related/name.d.ts +0 -1
  368. package/types/text-input/exported-related/slots.d.ts +0 -5
@@ -10,6 +10,7 @@ import 'core-js/modules/esnext.iterator.for-each.js';
10
10
  import { useContext } from 'react';
11
11
  import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
12
12
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
13
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
13
14
  import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
14
15
  import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn, StyledTimeBtn } from './Styleds.js';
15
16
  import { TimeWheelContext } from './TimeWheelContext.js';
@@ -22,22 +23,24 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
22
23
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
24
  const MinutesList = () => {
24
25
  const {
26
+ currHourNum,
25
27
  currMinuteNum,
26
- hours,
27
- minutes,
28
- meridiem,
28
+ currMeridiem,
29
29
  visibleMinutes,
30
30
  handlePrevMinute,
31
31
  handleNextMinute,
32
32
  handleTimeWheelBtnChangeMinutes,
33
33
  handlePrevMinuteBtnOnKeyDown,
34
34
  handleCurrMinutesOnKeyDown,
35
- handleNextMinuteBtnOnKeyDown,
35
+ handleNextMinuteBtnOnKeyDown
36
+ } = useContext(TimeWheelContext);
37
+ const {
36
38
  prevMinutesBtnRef,
37
39
  currMinutesBtnRef,
38
40
  nextMinutesBtnRef,
39
- getIsDisabledTime
40
- } = useContext(TimeWheelContext);
41
+ getIsDisabledTime,
42
+ minutes
43
+ } = useContext(ControlledDateTimePickerContext);
41
44
  return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
42
45
  "aria-label": "subtract one minute",
43
46
  buttonType: "raw",
@@ -48,9 +51,9 @@ const MinutesList = () => {
48
51
  tabIndex: -1,
49
52
  "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE
50
53
  }, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleMinutes.map(minutesString => {
51
- const key = "timewheel-minutes-".concat(minutesString);
54
+ const key = "timewheel-minutes-".concat(minutesString || '');
52
55
  if (!minutesString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
53
- const currMinutesTimeString = "".concat(hours || '01', ":").concat(minutesString, " ").concat(meridiem || 'AM');
56
+ const currMinutesTimeString = "".concat(currHourNum, ":").concat(minutesString, " ").concat(currMeridiem);
54
57
  const isEmptyCurrValueCurrentListItem = !minutes && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum;
55
58
  const isCurrentListItem = isEmptyCurrValueCurrentListItem || minutes === minutesString;
56
59
  const isDisabled = getIsDisabledTime(currMinutesTimeString);
@@ -59,23 +62,25 @@ const MinutesList = () => {
59
62
  onKeyDown: isCurrentListItem ? handleCurrMinutesOnKeyDown : undefined,
60
63
  innerRef: isCurrentListItem ? currMinutesBtnRef : undefined
61
64
  };
65
+ const styledProps = {
66
+ isCurrentListItem,
67
+ isDisabled
68
+ };
62
69
  return /*#__PURE__*/_jsx(StyledWheelListItem, {
63
70
  isCurrentListItem: isCurrentListItem,
64
71
  selected: convertToPositiveNumberIfPossible(minutesString) === currMinuteNum
65
- }, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({
66
- isCurrentListItem: isCurrentListItem,
72
+ }, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread(_objectSpread({}, styledProps), {}, {
67
73
  "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_MINUTE' : 'MINUTE'],
68
74
  selected: minutes.length === 2 && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum,
69
75
  "aria-label": "".concat(minutesString, " minutes"),
70
76
  "aria-disabled": isDisabled,
71
- isDisabled: isDisabled,
72
77
  buttonType: "raw",
73
78
  size: "m",
74
79
  onClick: e => handleTimeWheelBtnChangeMinutes(minutesString, e),
75
80
  tabIndex: tabIndex,
76
81
  role: "spinbutton",
77
- "aria-valuemax": "59",
78
- "aria-valuemin": "0",
82
+ "aria-valuemax": 59,
83
+ "aria-valuemin": 0,
79
84
  "aria-valuenow": currMinuteNum,
80
85
  "aria-valuetext": "".concat(minutesString, " minutes")
81
86
  }, btnProps), {}, {
@@ -4,10 +4,10 @@ import { TimeWheelIconTrigger } from './TimeWheelIconTrigger.js';
4
4
  import { TimeWheelWrapper } from './TimeWheelWrapper.js';
5
5
  import { TimeWheelContext } from './TimeWheelContext.js';
6
6
  import { useConfigTimePickerCTX } from './useConfigTimePickerCTX.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
9
 
9
- var _TimeWheelIconTrigger, _TimeWheelWrapper;
10
-
10
+ var _TimeWheelIconTrigger, _TimeWheelWrapper, _WrappedTimeWheelCont;
11
11
  const WrappedTimeWheelContext = _ref => {
12
12
  let {
13
13
  children
@@ -18,19 +18,14 @@ const WrappedTimeWheelContext = _ref => {
18
18
  }, void 0, children);
19
19
  };
20
20
 
21
- const WrapWithTimeWheelContext = Component => {
22
- var _WrappedTimeWheelCont;
23
-
24
- return () => _WrappedTimeWheelCont || (_WrappedTimeWheelCont = /*#__PURE__*/_jsx(WrappedTimeWheelContext, {}, void 0, /*#__PURE__*/_jsx(Component, {})));
25
- }; // we use the HoC to be able to use the useContext and be sure it's correctly initialized
26
- // the HoC is Reused in CalendarWithTimeWheel
27
-
28
- const TimeWheel = WrapWithTimeWheelContext(() => {
21
+ const TimeWheelContent = () => {
29
22
  const {
30
23
  showTimePicker,
31
- isControllerOnly,
32
24
  handleMenuWrapperKeyDown
33
25
  } = useContext(TimeWheelContext);
26
+ const {
27
+ isControllerOnly
28
+ } = useContext(ControlledDateTimePickerContext);
34
29
  return /*#__PURE__*/jsxs(Fragment, {
35
30
  children: [isControllerOnly ? null : _TimeWheelIconTrigger || (_TimeWheelIconTrigger = /*#__PURE__*/_jsx(TimeWheelIconTrigger, {})), isControllerOnly || showTimePicker ? /*#__PURE__*/jsx(Fragment, {
36
31
  children: /*#__PURE__*/_jsx("div", {
@@ -38,6 +33,9 @@ const TimeWheel = WrapWithTimeWheelContext(() => {
38
33
  }, void 0, _TimeWheelWrapper || (_TimeWheelWrapper = /*#__PURE__*/_jsx(TimeWheelWrapper, {})))
39
34
  }) : null]
40
35
  });
41
- });
36
+ }; // we wrap in context in a separate statement so we can use the useContext and be sure it's correctly initialized
37
+
38
+
39
+ const TimeWheel = () => _WrappedTimeWheelCont || (_WrappedTimeWheelCont = /*#__PURE__*/_jsx(WrappedTimeWheelContext, {}, void 0, /*#__PURE__*/_jsx(TimeWheelContent, {})));
42
40
 
43
- export { TimeWheel, WrapWithTimeWheelContext };
41
+ export { TimeWheel, WrappedTimeWheelContext };
@@ -1,6 +1,7 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import React, { useContext } from 'react';
3
3
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
4
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
4
5
  import { StyledTimePickerContainer, StyledTimePickerHead, StyledTimePickerWheelsLegend, StyledTimePickerWheelWrapper } from './Styleds.js';
5
6
  import { HoursList } from './HoursList.js';
6
7
  import { MinutesList } from './MinutesList.js';
@@ -16,9 +17,11 @@ const TimeWheelContent = /*#__PURE__*/React.memo(_ref => {
16
17
  const {
17
18
  hours,
18
19
  minutes,
19
- meridiem,
20
- isControllerOnly
20
+ meridiem
21
21
  } = useContext(TimeWheelContext);
22
+ const {
23
+ isControllerOnly
24
+ } = useContext(ControlledDateTimePickerContext);
22
25
  return /*#__PURE__*/_jsx(StyledTimePickerContainer, {
23
26
  showShadow: showShadow,
24
27
  isControllerOnly: isControllerOnly,
@@ -1,71 +1,7 @@
1
- import { createRef, createContext } from 'react';
1
+ import { createContext } from 'react';
2
2
 
3
3
  /* eslint-disable @typescript-eslint/indent */
4
-
5
- // eslint-disable-next-line @typescript-eslint/no-empty-function
6
- const noop = () => {};
7
-
8
- const defaultTimePickerContext = {
9
- ariaCurrentValueForInputs: '',
10
- tempTimeString: '',
11
- showTimePicker: false,
12
- setShowTimePicker: noop,
13
- setPopperElement: noop,
14
- setArrowElement: noop,
15
- usePopperHelpers: null,
16
- handleToggleTimePicker: noop,
17
- handleSetTriggerRef: noop,
18
- handleMenuWrapperKeyDown: noop,
19
- currHourNum: 1,
20
- hours: '01',
21
- visibleHours: [''],
22
- handlePrevHour: noop,
23
- handleNextHour: noop,
24
- handleTimeWheelBtnChangeHours: noop,
25
- currMinuteNum: 1,
26
- minutes: '00',
27
- visibleMinutes: [''],
28
- handlePrevMinute: noop,
29
- handleNextMinute: noop,
30
- handleTimeWheelBtnChangeMinutes: noop,
31
- // currSecondNum: 1,
32
- // seconds: '00',
33
- // visibleSeconds: [''],
34
- // handlePrevSecond: noop,
35
- // handleNextSecond: noop,
36
- // handleTimeWheelBtnChangeSeconds: noop,
37
- meridiem: 'AM',
38
- handleTimeWheelBtnChangeMeridiem: noop,
39
- isControllerOnly: false,
40
- autoFocusHourTimeWheel: false,
41
- handlePrevHourBtnOnKeyDown: noop,
42
- handleCurrHourOnKeyDown: noop,
43
- handleNextHourBtnOnKeyDown: noop,
44
- handlePrevMinuteBtnOnKeyDown: noop,
45
- handleCurrMinutesOnKeyDown: noop,
46
- handleNextMinuteBtnOnKeyDown: noop,
47
- // handlePrevSecondBtnOnKeyDown: noop,
48
- // handleCurrSecondsOnKeyDown: noop,
49
- // handleNextSecondBtnOnKeyDown: noop,
50
- handlePrevMeridiemBtnOnKeyDown: noop,
51
- handleCurrMeridiemOnKeyDown: noop,
52
- handleNextMeridiemBtnOnKeyDown: noop,
53
- handlePickerIconKeyDown: noop,
54
- prevHourBtnRef: /*#__PURE__*/createRef(),
55
- currHourBtnRef: /*#__PURE__*/createRef(),
56
- nextHourBtnRef: /*#__PURE__*/createRef(),
57
- prevMinutesBtnRef: /*#__PURE__*/createRef(),
58
- currMinutesBtnRef: /*#__PURE__*/createRef(),
59
- nextMinutesBtnRef: /*#__PURE__*/createRef(),
60
- // prevSecondsBtnRef: createRef<HTMLButtonElement>(),
61
- // currSecondsBtnRef: createRef<HTMLButtonElement>(),
62
- // nextSecondsBtnRef: createRef<HTMLButtonElement>(),
63
- prevMeridiemBtnRef: /*#__PURE__*/createRef(),
64
- currMeridiemBtnRef: /*#__PURE__*/createRef(),
65
- nextMeridiemBtnRef: /*#__PURE__*/createRef(),
66
- getIsDisabledTime: () => false,
67
- disabled: false
68
- };
4
+ const defaultTimePickerContext = {};
69
5
  /** Context for cross component communication */
70
6
 
71
7
  const TimeWheelContext = /*#__PURE__*/createContext(defaultTimePickerContext);
@@ -4,6 +4,7 @@ import { DSButtonV2, BUTTON_SIZES } from '@elliemae/ds-button';
4
4
  import { RecentDocuments } from '@elliemae/ds-icons';
5
5
  import { TimeWheelContext } from './TimeWheelContext.js';
6
6
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
 
8
9
  var _RecentDocuments;
9
10
  // this is particularly useful due to how usePopper needs to check the references
@@ -13,10 +14,14 @@ const TimeWheelIconTrigger = () => {
13
14
  const {
14
15
  handleSetTriggerRef,
15
16
  handleToggleTimePicker,
16
- handlePickerIconKeyDown,
17
- ariaCurrentValueForInputs,
18
- disabled
17
+ handlePickerIconKeyDown
19
18
  } = useContext(TimeWheelContext);
19
+ const {
20
+ props: {
21
+ disabled
22
+ },
23
+ ariaCurrentValueForInputs
24
+ } = useContext(ControlledDateTimePickerContext);
20
25
  return useMemo(() => /*#__PURE__*/_jsx(DSButtonV2, {
21
26
  "aria-label": "time picker context menu trigger, ".concat(ariaCurrentValueForInputs),
22
27
  buttonType: "icon",
@@ -7,6 +7,7 @@ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
8
8
  import { useContext } from 'react';
9
9
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
10
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
10
11
  import { TimeWheelContent } from './TimeWheelContent.js';
11
12
  import { TimeWheelContext } from './TimeWheelContext.js';
12
13
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -23,9 +24,11 @@ const TimeWheelWrapper = () => {
23
24
  usePopperHelpers: {
24
25
  styles,
25
26
  attributes
26
- },
27
- isControllerOnly
27
+ }
28
28
  } = useContext(TimeWheelContext);
29
+ const {
30
+ isControllerOnly
31
+ } = useContext(ControlledDateTimePickerContext);
29
32
  if (isControllerOnly) return _TimeWheelContent || (_TimeWheelContent = /*#__PURE__*/_jsx(TimeWheelContent, {
30
33
  showShadow: true
31
34
  }));
@@ -1,126 +1,24 @@
1
- import { useContext, useMemo } from 'react';
2
- import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import { useMemo } from 'react';
3
8
  import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
4
9
  import { useCurrentDisplayedWheelsLogic } from './useCurrentDisplayedWheelsLogic.js';
5
10
  import { useKeyboardHandlers } from './useKeyboardHandlers.js';
6
11
 
7
- /* eslint-disable max-statements */
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
15
  const useConfigTimePickerCTX = () => {
9
- const {
10
- props: {
11
- minutesInterval,
12
- getIsDisabledTime,
13
- disabled
14
- },
15
- tempTimeString,
16
- prevHourBtnRef,
17
- currHourBtnRef,
18
- nextHourBtnRef,
19
- prevMinutesBtnRef,
20
- currMinutesBtnRef,
21
- nextMinutesBtnRef,
22
- prevMeridiemBtnRef,
23
- currMeridiemBtnRef,
24
- nextMeridiemBtnRef,
25
- isControllerOnly,
26
- autoFocusHourTimeWheel,
27
- ariaCurrentValueForInputs
28
- } = useContext(ControlledDateTimePickerContext);
29
- const {
30
- currHourNum,
31
- hours,
32
- visibleHours,
33
- handlePrevHour,
34
- handleNextHour,
35
- handleTimeWheelBtnChangeHours,
36
- currMinuteNum,
37
- minutes,
38
- visibleMinutes,
39
- handlePrevMinute,
40
- handleNextMinute,
41
- handleTimeWheelBtnChangeMinutes,
42
- meridiem,
43
- handleTimeWheelBtnChangeMeridiem
44
- } = useCurrentDisplayedWheelsLogic({
45
- minutesInterval
46
- });
47
- const {
48
- showTimePicker,
49
- setShowTimePicker,
50
- setPopperElement,
51
- setArrowElement,
52
- usePopperHelpers,
53
- handleToggleTimePicker,
54
- handleSetTriggerRef,
55
- handleMenuWrapperKeyDown
56
- } = usePopperTriggerLogic();
57
- const {
58
- handlePrevHourBtnOnKeyDown,
59
- handleCurrHourOnKeyDown,
60
- handleNextHourBtnOnKeyDown,
61
- handlePrevMinuteBtnOnKeyDown,
62
- handleCurrMinutesOnKeyDown,
63
- handleNextMinuteBtnOnKeyDown,
64
- handlePrevMeridiemBtnOnKeyDown,
65
- handleCurrMeridiemOnKeyDown,
66
- handleNextMeridiemBtnOnKeyDown,
67
- handlePickerIconKeyDown
68
- } = useKeyboardHandlers({
69
- handlePrevHour,
70
- handleNextHour,
71
- handlePrevMinute,
72
- handleNextMinute,
73
- handleTimeWheelBtnChangeMeridiem
16
+ const currentDisplayedTimeWheelLogic = useCurrentDisplayedWheelsLogic();
17
+ const popperLogic = usePopperTriggerLogic();
18
+ const keyboardHandlers = useKeyboardHandlers({
19
+ currentDisplayedTimeWheelLogic
74
20
  });
75
- return useMemo(() => ({
76
- tempTimeString,
77
- isControllerOnly,
78
- autoFocusHourTimeWheel,
79
- showTimePicker,
80
- setShowTimePicker,
81
- setPopperElement,
82
- setArrowElement,
83
- usePopperHelpers,
84
- handleToggleTimePicker,
85
- handleSetTriggerRef,
86
- handleMenuWrapperKeyDown,
87
- currHourNum,
88
- hours,
89
- visibleHours,
90
- handlePrevHour,
91
- handleNextHour,
92
- handleTimeWheelBtnChangeHours,
93
- currMinuteNum,
94
- minutes,
95
- visibleMinutes,
96
- handlePrevMinute,
97
- handleNextMinute,
98
- handleTimeWheelBtnChangeMinutes,
99
- meridiem,
100
- handleTimeWheelBtnChangeMeridiem,
101
- handlePrevHourBtnOnKeyDown,
102
- handleCurrHourOnKeyDown,
103
- handleNextHourBtnOnKeyDown,
104
- handlePrevMinuteBtnOnKeyDown,
105
- handleCurrMinutesOnKeyDown,
106
- handleNextMinuteBtnOnKeyDown,
107
- handlePrevMeridiemBtnOnKeyDown,
108
- handleCurrMeridiemOnKeyDown,
109
- handleNextMeridiemBtnOnKeyDown,
110
- handlePickerIconKeyDown,
111
- prevHourBtnRef,
112
- currHourBtnRef,
113
- nextHourBtnRef,
114
- prevMinutesBtnRef,
115
- currMinutesBtnRef,
116
- nextMinutesBtnRef,
117
- prevMeridiemBtnRef,
118
- currMeridiemBtnRef,
119
- nextMeridiemBtnRef,
120
- getIsDisabledTime,
121
- ariaCurrentValueForInputs,
122
- disabled
123
- }), [tempTimeString, isControllerOnly, autoFocusHourTimeWheel, showTimePicker, setShowTimePicker, setPopperElement, setArrowElement, usePopperHelpers, handleToggleTimePicker, handleSetTriggerRef, handleMenuWrapperKeyDown, currHourNum, hours, visibleHours, handlePrevHour, handleNextHour, handleTimeWheelBtnChangeHours, currMinuteNum, minutes, visibleMinutes, handlePrevMinute, handleNextMinute, handleTimeWheelBtnChangeMinutes, meridiem, handleTimeWheelBtnChangeMeridiem, handlePrevHourBtnOnKeyDown, handleCurrHourOnKeyDown, handleNextHourBtnOnKeyDown, handlePrevMinuteBtnOnKeyDown, handleCurrMinutesOnKeyDown, handleNextMinuteBtnOnKeyDown, handlePrevMeridiemBtnOnKeyDown, handleCurrMeridiemOnKeyDown, handleNextMeridiemBtnOnKeyDown, handlePickerIconKeyDown, prevHourBtnRef, currHourBtnRef, nextHourBtnRef, prevMinutesBtnRef, currMinutesBtnRef, nextMinutesBtnRef, prevMeridiemBtnRef, currMeridiemBtnRef, nextMeridiemBtnRef, getIsDisabledTime, ariaCurrentValueForInputs, disabled]);
21
+ return useMemo(() => _objectSpread(_objectSpread(_objectSpread({}, currentDisplayedTimeWheelLogic), popperLogic), keyboardHandlers), [currentDisplayedTimeWheelLogic, popperLogic, keyboardHandlers]);
124
22
  };
125
23
 
126
24
  export { useConfigTimePickerCTX };
@@ -1,9 +1,10 @@
1
1
  import 'core-js/modules/esnext.async-iterator.map.js';
2
2
  import 'core-js/modules/esnext.iterator.map.js';
3
- import { useMemo, useCallback } from 'react';
3
+ import { useContext, useMemo, useCallback } from 'react';
4
4
  import { useTimeInputs } from '../../TimeInputs/useTimeInputs.js';
5
5
  import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
6
- import { prependStringWithPlaceHolders } from '../../../utils/stringHelpers.js';
6
+ import { deconstructValuesFromTimeString, prependStringWithPlaceHolders } from '../../../utils/stringHelpers.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
 
8
9
  const totalHoursList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
9
10
  const hoursInterval = 1; // using this just to unify the logic between how hours and minutes are handled
@@ -16,78 +17,75 @@ const getTotalMinuteListWithStep = function () {
16
17
  return new Array(length).fill('_').map((_v, i) => prependStringWithPlaceHolders("".concat(i * step), 2));
17
18
  };
18
19
 
19
- const useCurrentDisplayedWheelsLogic = _ref => {
20
- let {
21
- minutesInterval
22
- } = _ref;
20
+ const useCurrentDisplayedWheelsLogic = () => {
23
21
  const {
22
+ minutesInterval,
23
+ onTimeWheelOpenStartingTime,
24
24
  hours,
25
25
  minutes,
26
- // seconds,
27
- meridiem = 'AM',
26
+ meridiem
27
+ } = useContext(ControlledDateTimePickerContext);
28
+ const {
28
29
  handleChangeHours,
29
30
  handleChangeMinutes,
30
- // handleChangeSeconds,
31
31
  handleChangeMeridiem
32
32
  } = useTimeInputs();
33
+ const {
34
+ startingHours,
35
+ startingMinutes,
36
+ startingMeridiem
37
+ } = useMemo(() => {
38
+ const startingVals = deconstructValuesFromTimeString(onTimeWheelOpenStartingTime);
39
+ return {
40
+ startingHours: startingVals.hours,
41
+ startingMinutes: startingVals.minutes,
42
+ startingMeridiem: startingVals.meridiem
43
+ };
44
+ }, [onTimeWheelOpenStartingTime]);
33
45
  const currHourNum = useMemo(() => {
34
46
  const hoursAsNum = convertToPositiveNumberIfPossible(hours);
35
- if (hoursAsNum === -1) return 1;
36
- return hoursAsNum;
37
- }, [hours]);
47
+
48
+ if (hours && hoursAsNum !== -1) {
49
+ return hoursAsNum;
50
+ }
51
+
52
+ const startingHoursAsNum = convertToPositiveNumberIfPossible(startingHours);
53
+ if (startingHoursAsNum === -1) return 1;
54
+ return startingHoursAsNum;
55
+ }, [hours, startingHours]);
38
56
  const currMinuteNum = useMemo(() => {
39
57
  const minutesAsNum = convertToPositiveNumberIfPossible(minutes);
40
- if (minutesAsNum === -1) return 0;
41
- return minutesAsNum;
42
- }, [minutes]);
58
+
59
+ if (minutes && minutesAsNum !== -1) {
60
+ return minutesAsNum;
61
+ }
62
+
63
+ const startingMinutesAsNum = convertToPositiveNumberIfPossible(startingMinutes);
64
+ if (startingMinutesAsNum === -1) return 0;
65
+ return startingMinutesAsNum;
66
+ }, [minutes, startingMinutes]);
67
+ const currMeridiem = useMemo(() => {
68
+ if (meridiem !== '') return meridiem;
69
+ if (startingMeridiem !== '') return startingMeridiem;
70
+ return 'AM';
71
+ }, [meridiem, startingMeridiem]);
43
72
  const totalMinutesList = useMemo(() => getTotalMinuteListWithStep(minutesInterval), [minutesInterval]);
44
73
  const currMinuteIndex = useMemo(() => Math.floor(currMinuteNum / minutesInterval), [currMinuteNum, minutesInterval]);
45
- const currHoursIndex = useMemo(() => Math.floor(currHourNum / hoursInterval) - hoursStartPositionOffset, [currHourNum]); // const currSecondNum = useMemo(() => {
46
- // const secondsAsNum = convertToPositiveNumberIfPossible(seconds);
47
- // if (secondsAsNum === -1) return 0;
48
- // return secondsAsNum;
49
- // }, [seconds]);
50
-
74
+ const currHoursIndex = useMemo(() => Math.floor(currHourNum / hoursInterval) - hoursStartPositionOffset, [currHourNum]);
51
75
  const visibleHours = useMemo(() => {
52
- const newHours = []; // if (currHoursIndex >= 2) newHours.push(totalHoursList[currHoursIndex - 2]);
53
- // else newHours.push(null);
54
-
76
+ const newHours = [];
55
77
  if (currHoursIndex >= 1) newHours.push(totalHoursList[currHoursIndex - 1]);else newHours.push(null);
56
78
  newHours.push(totalHoursList[currHoursIndex]);
57
- if (currHoursIndex <= 11) newHours.push(totalHoursList[currHoursIndex + 1]);else newHours.push(null); // if (currHoursIndex <= 10) newHours.push(totalHoursList[currHoursIndex + 2]);
58
- // else newHours.push(null);
59
-
79
+ if (currHoursIndex <= 11) newHours.push(totalHoursList[currHoursIndex + 1]);else newHours.push(null);
60
80
  return newHours;
61
81
  }, [currHoursIndex]);
62
82
  const visibleMinutes = useMemo(() => {
63
- const newMinutes = []; // if (currMinuteIndex >= 2)
64
- // newMinutes.push(totalMinutesList[currMinuteIndex - 2]);
65
- // else newMinutes.push(null);
66
-
83
+ const newMinutes = [];
67
84
  if (currMinuteIndex >= 1) newMinutes.push(totalMinutesList[currMinuteIndex - 1]);else newMinutes.push(null);
68
85
  newMinutes.push(totalMinutesList[currMinuteIndex]);
69
- if (currMinuteIndex < totalMinutesList.length) newMinutes.push(totalMinutesList[currMinuteIndex + 1]);else newMinutes.push(null); // if (currMinuteIndex < totalMinutesList.length -1)
70
- // newMinutes.push(totalMinutesList[currMinuteIndex + 2]);
71
- // else newMinutes.push(null);
72
-
86
+ if (currMinuteIndex < totalMinutesList.length) newMinutes.push(totalMinutesList[currMinuteIndex + 1]);else newMinutes.push(null);
73
87
  return newMinutes;
74
- }, [currMinuteIndex, totalMinutesList]); // const visibleSeconds = useMemo(() => {
75
- // const newSeconds = [];
76
- // if (currSecondNum >= 3)
77
- // newSeconds.push(totalMinutesList[currSecondNum - 3]);
78
- // else newSeconds.push(null);
79
- // if (currSecondNum >= 2)
80
- // newSeconds.push(totalMinutesList[currSecondNum - 2]);
81
- // else newSeconds.push(null);
82
- // newSeconds.push(totalMinutesList[currSecondNum - 1]);
83
- // if (currSecondNum <= 59) newSeconds.push(totalMinutesList[currSecondNum]);
84
- // else newSeconds.push(null);
85
- // if (currSecondNum <= 58)
86
- // newSeconds.push(totalMinutesList[currSecondNum + 1]);
87
- // else newSeconds.push(null);
88
- // return newSeconds;
89
- // }, [currSecondNum]);
90
-
88
+ }, [currMinuteIndex, totalMinutesList]);
91
89
  const handleTimeWheelBtnChangeHours = useCallback((newHours, e) => {
92
90
  handleChangeHours(newHours, e);
93
91
  }, [handleChangeHours]);
@@ -113,64 +111,24 @@ const useCurrentDisplayedWheelsLogic = _ref => {
113
111
  }, [handleChangeCurrMinute, minutesInterval]);
114
112
  const handleNextMinute = useCallback(e => {
115
113
  handleChangeCurrMinute(minutesInterval, e);
116
- }, [handleChangeCurrMinute, minutesInterval]); // const handleTimeWheelBtnChangeSeconds = useCallback(
117
- // (newSeconds, e) => {
118
- // handleChangeSeconds(newSeconds, e);
119
- // },
120
- // [handleChangeSeconds],
121
- // );
122
- // const handleChangeCurrSecond = useCallback(
123
- // (offset, e) => {
124
- // const newS = currSecondNum + offset;
125
- // if (newS >= 0 && newS <= 59)
126
- // handleChangeSeconds(prependStringWithPlaceHolders(`${newS}`, 2), e);
127
- // },
128
- // [currSecondNum, handleChangeSeconds],
129
- // );
130
- // const handlePrevSecond = useCallback(
131
- // (e) => {
132
- // handleChangeCurrSecond(-1, e);
133
- // },
134
- // [handleChangeCurrSecond],
135
- // );
136
- // const handleNextSecond = useCallback(
137
- // (e) => {
138
- // handleChangeCurrSecond(1, e);
139
- // },
140
- // [handleChangeCurrSecond],
141
- // );
142
-
114
+ }, [handleChangeCurrMinute, minutesInterval]);
143
115
  const handleTimeWheelBtnChangeMeridiem = useCallback((newMeridiem, e) => {
144
116
  handleChangeMeridiem(newMeridiem, e);
145
117
  }, [handleChangeMeridiem]);
146
118
  return useMemo(() => ({
147
119
  currHourNum,
148
- hours,
149
120
  visibleHours,
150
121
  handlePrevHour,
151
122
  handleNextHour,
152
123
  handleTimeWheelBtnChangeHours,
153
124
  currMinuteNum,
154
- minutes,
155
125
  visibleMinutes,
156
126
  handlePrevMinute,
157
127
  handleNextMinute,
158
128
  handleTimeWheelBtnChangeMinutes,
159
- // currSecondNum,
160
- // seconds,
161
- // visibleSeconds,
162
- // handlePrevSecond,
163
- // handleNextSecond,
164
- // handleTimeWheelBtnChangeSeconds,
165
- meridiem,
166
- handleTimeWheelBtnChangeMeridiem
167
- }), [currHourNum, currMinuteNum, // currSecondNum,
168
- handleNextHour, handleNextMinute, // handleNextSecond,
169
- handlePrevHour, handlePrevMinute, // handlePrevSecond,
170
- handleTimeWheelBtnChangeHours, handleTimeWheelBtnChangeMeridiem, handleTimeWheelBtnChangeMinutes, // handleTimeWheelBtnChangeSeconds,
171
- hours, meridiem, minutes, // seconds,
172
- visibleHours, visibleMinutes // visibleSeconds,
173
- ]);
129
+ handleTimeWheelBtnChangeMeridiem,
130
+ currMeridiem
131
+ }), [currHourNum, currMinuteNum, currMeridiem, handleNextHour, handleNextMinute, handlePrevHour, handlePrevMinute, handleTimeWheelBtnChangeHours, handleTimeWheelBtnChangeMeridiem, handleTimeWheelBtnChangeMinutes, visibleHours, visibleMinutes]);
174
132
  };
175
133
 
176
134
  export { useCurrentDisplayedWheelsLogic };
@@ -5,12 +5,15 @@ import { homeEndKeys, homeEndAllArrowKeys } from '../../../utils/constants.js';
5
5
  /* eslint-disable @typescript-eslint/indent */
6
6
  const useKeyboardHandlers = _ref => {
7
7
  let {
8
+ currentDisplayedTimeWheelLogic
9
+ } = _ref;
10
+ const {
8
11
  handlePrevHour,
9
12
  handleNextHour,
10
13
  handlePrevMinute,
11
14
  handleNextMinute,
12
15
  handleTimeWheelBtnChangeMeridiem
13
- } = _ref;
16
+ } = currentDisplayedTimeWheelLogic;
14
17
  const {
15
18
  withAnyInputs,
16
19
  isWithTimeInputs,
@@ -47,7 +47,7 @@ const usePopperTriggerLogic = () => {
47
47
  useOnClickOutside(popperElement, e => {
48
48
  var _pickerButtonRef$curr, _pickerButtonRef$curr2;
49
49
 
50
- if (!(pickerButtonRef !== null && pickerButtonRef !== void 0 && (_pickerButtonRef$curr = pickerButtonRef.current) !== null && _pickerButtonRef$curr !== void 0 && (_pickerButtonRef$curr2 = _pickerButtonRef$curr.contains) !== null && _pickerButtonRef$curr2 !== void 0 && _pickerButtonRef$curr2.call(_pickerButtonRef$curr, e === null || e === void 0 ? void 0 : e.target))) closeTimePicker();
50
+ if (e.target instanceof Element && !(pickerButtonRef !== null && pickerButtonRef !== void 0 && (_pickerButtonRef$curr = pickerButtonRef.current) !== null && _pickerButtonRef$curr !== void 0 && (_pickerButtonRef$curr2 = _pickerButtonRef$curr.contains) !== null && _pickerButtonRef$curr2 !== void 0 && _pickerButtonRef$curr2.call(_pickerButtonRef$curr, e === null || e === void 0 ? void 0 : e.target))) closeTimePicker();
51
51
  });
52
52
  const handleSetTriggerRef = useCallback(newRef => {
53
53
  pickerButtonRef.current = newRef;
@@ -25,9 +25,7 @@ const HHInput = /*#__PURE__*/React.memo(_ref => {
25
25
  autoFocusHourInput
26
26
  } = _ref;
27
27
  const validateOnChange = useCallback(e => {
28
- var _e$target;
29
-
30
- if (isInvalidHour(e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value)) {
28
+ if (isInvalidHour(e.target.value)) {
31
29
  e.preventDefault();
32
30
  return;
33
31
  }