@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
@@ -12,13 +12,14 @@ require('core-js/modules/esnext.iterator.for-each.js');
12
12
  var React = require('react');
13
13
  var dsPropsHelpers = require('@elliemae/ds-props-helpers');
14
14
  var useGetPropsWithDefault = require('./useGetPropsWithDefault.js');
15
+ var useGetFlags = require('./useGetFlags.js');
16
+ var useGetReferences = require('./useGetReferences.js');
17
+ var useRelevantValueFromProps = require('./useRelevantValueFromProps.js');
18
+ var useGetPropsBasedOnType = require('./useGetPropsBasedOnType.js');
15
19
  var useGetDestructuredValues = require('./useGetDestructuredValues.js');
16
- var ControlledDateTimePickerTypes = require('../ControlledDateTimePickerTypes.js');
20
+ var useChangeHandlers = require('./useChangeHandlers.js');
21
+ var useGlobalKeyHandlers = require('./useGlobalKeyHandlers.js');
17
22
  var useValidateProps = require('./useValidateProps.js');
18
- var dateHelpers = require('../utils/dateHelpers.js');
19
- var timeHelpers = require('../utils/timeHelpers.js');
20
- var stringHelpers = require('../utils/stringHelpers.js');
21
- var constants = require('../utils/constants.js');
22
23
 
23
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
25
 
@@ -30,430 +31,46 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
30
31
  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__default["default"](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; }
31
32
  const useControlledDateTimePicker = props => {
32
33
  // if we detect wrong props configuration we throw meaningful errors
33
- useValidateProps.useValidateProps(props); // refs are used for "auto-advance" feature
34
-
35
- const monthInputRef = React.useRef();
36
- const dayInputRef = React.useRef();
37
- const yearInputRef = React.useRef();
38
- const hourInputRef = React.useRef();
39
- const minutesInputRef = React.useRef();
40
- const meridiemInputRef = React.useRef();
41
- const clearButtonRef = React.useRef();
42
- const pickerButtonRef = React.useRef();
43
- const prevYearBtnRef = React.useRef();
44
- const prevMonthBtnRef = React.useRef();
45
- const nextMonthBtnRef = React.useRef();
46
- const nextYearBtnRef = React.useRef();
47
- const calendarDaysWrapperRef = React.useRef();
48
- const prevHourBtnRef = React.useRef();
49
- const currHourBtnRef = React.useRef();
50
- const nextHourBtnRef = React.useRef();
51
- const prevMinutesBtnRef = React.useRef();
52
- const currMinutesBtnRef = React.useRef();
53
- const nextMinutesBtnRef = React.useRef();
54
- const prevMeridiemBtnRef = React.useRef();
55
- const currMeridiemBtnRef = React.useRef();
56
- const nextMeridiemBtnRef = React.useRef();
34
+ useValidateProps.useValidateProps(props);
57
35
  const propsWithDefaults = useGetPropsWithDefault.useGetDatePickerWithDefaultsProps(props);
58
- const dataAttrs = dsPropsHelpers.getDataProps(props);
59
- const {
60
- type,
61
- getIsDisabledDay,
62
- getIsOutOfRangeDay,
63
- getIsDisabledTime,
64
- isClearable,
65
- autoFocus,
66
- onDateChange: appOnDateChange,
67
- onDateTimeChange: appOnDateTimeChange,
68
- onTimeChange: appOnTimeChange,
69
- onMonthChange: appOnMonthChange,
70
- onDayChange: appOnDayChange,
71
- onYearChange: appOnYearChange,
72
- onHourChange: appOnHourChange,
73
- onMinuteChange: appOnMinuteChange,
74
- onMeridiemChange: appOnMeridiemChange,
75
- date: appDate,
76
- time: appTime,
77
- dateTime: appDateTime
78
- } = propsWithDefaults;
79
- const dateStringFromProps = React.useMemo(() => propsWithDefaults.dateTime && propsWithDefaults.dateTime !== '' ? stringHelpers.dateTimeToDate(propsWithDefaults.dateTime) : propsWithDefaults.date && propsWithDefaults.date !== '' ? propsWithDefaults.date : '__/__/____', [propsWithDefaults.date, propsWithDefaults.dateTime]); // don't use tempDateString to trigger useEffect for onDateChange
80
- // that is an anti-pattern and leads to a lot of issue
81
- // if you don't believe me, check date-time-picker v1 which is doing it
82
-
83
- const [tempDateString, setTempDateString] = React.useState(dateStringFromProps);
84
- const timeStringFromProps = React.useMemo(() => propsWithDefaults.dateTime && propsWithDefaults.dateTime !== '' ? stringHelpers.dateTimeToTime(propsWithDefaults.dateTime) : propsWithDefaults.time && propsWithDefaults.time !== '' ? propsWithDefaults.time : '__:__ __', [propsWithDefaults.time, propsWithDefaults.dateTime]); // don't use tempTimeString to trigger useEffect for onTimeChange
85
- // that is an anti-pattern and leads to a lot of issue
86
- // if you don't believe me, check date-time-picker v1 which is doing it
87
-
88
- const [tempTimeString, setTimeString] = React.useState(timeStringFromProps);
89
- const hideDate = type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS;
90
- const hideTime = type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;
91
- const hideDateTimePicker = type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
92
- const hideDatePicker = type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;
93
- const hideTimePicker = type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER && type !== ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;
94
- const isDateSelector = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;
95
- const isTimeSelector = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;
96
- const isDateTimeSelector = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
97
- const isControllerOnly = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;
98
- const isWithTimeWheelToo = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
99
- const isWithCalendarToo = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
100
- const withAnyInputs = !hideDate || !hideTime;
101
- const withAnyPicker = !hideDateTimePicker || !hideTimePicker || !hideDatePicker;
102
- const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' || // date is not "empty-ish"
103
- timeStringFromProps !== '__:__ __' && timeStringFromProps !== ''); // or time is not "empty-ish"
104
-
105
- const isWithDateInputs = withAnyInputs && (isDateTimeSelector || isDateSelector);
106
- const isWithDateInputsOnly = withAnyInputs && isDateSelector;
107
- const isWithTimeInputs = withAnyInputs && (isDateTimeSelector || isTimeSelector);
108
- const isWithTimeInputsOnly = withAnyInputs && isTimeSelector;
109
- const autoFocusMonthInput = isWithDateInputs && autoFocus;
110
- const autoFocusHourInput = isWithTimeInputsOnly && autoFocus;
111
- const autoFocusPrevMonthArrow = isControllerOnly && autoFocus;
112
- const autoFocusHourTimeWheel = isControllerOnly && isTimeSelector && autoFocus;
113
- const shouldPreserveClearableSpace = isClearable && withAnyInputs;
114
- const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
36
+ const flags = useGetFlags.useGetFlags(propsWithDefaults);
37
+ const DOMRefs = useGetReferences.useGetReferences(flags); // refs are used for "auto-advance" feature
38
+
39
+ const relevantValues = useRelevantValueFromProps.useRelevantValueFromProps(propsWithDefaults);
40
+ const propsBasedOnType = useGetPropsBasedOnType.useGetPropsBasedOnType(propsWithDefaults);
41
+ const destructuredValues = useGetDestructuredValues.useGetDestructuredValues(_objectSpread(_objectSpread({}, propsBasedOnType), flags));
42
+ const changeHandlers = useChangeHandlers.useChangeHandlers({
43
+ relevantValues,
44
+ destructuredValues,
45
+ propsBasedOnType,
46
+ DOMRefs
47
+ });
48
+ const globalKeyHandlers = useGlobalKeyHandlers.useGlobalKeyHandlers({
49
+ changeHandlers,
50
+ propsBasedOnType,
51
+ DOMRefs,
52
+ flags
53
+ }); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
54
+
55
+ const dataAttrs = dsPropsHelpers.getDataProps(propsWithDefaults);
115
56
  const [latestInteractionRegion, setLatestInteractionRegion] = React.useState('');
116
- let firstSegmentRef = React.useRef();
117
- if (isWithDateInputs) firstSegmentRef = monthInputRef;else if (isWithTimeInputs) firstSegmentRef = hourInputRef;else if (withAnyPicker) firstSegmentRef = pickerButtonRef;
118
- let lastSegmentRef = React.useRef();
119
- if (withAnyPicker) lastSegmentRef = pickerButtonRef;else if (withClearBtn) lastSegmentRef = clearButtonRef;else if (isWithTimeInputs) lastSegmentRef = meridiemInputRef;else if (isWithDateInputs) lastSegmentRef = yearInputRef;
120
57
  const {
121
- month,
122
- day,
123
- year,
124
- monthNum,
125
- dayNum,
126
- yearNum,
127
- announcedMonth,
128
- announcedDay,
129
- announcedYear,
130
58
  announcedDateValues,
131
- hours,
132
- minutes,
133
- meridiem,
134
- hoursNum,
135
- minutesNum,
136
- announcedHours,
137
- announcedMinutes,
138
- announcedMeridiem,
139
59
  announcedTimeValues
140
- } = useGetDestructuredValues.useGetDestructuredValues({
141
- date: appDate,
142
- time: appTime,
143
- dateTime: appDateTime,
144
- isDateTimeSelector
145
- });
146
- const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
147
- const getDateMetaInfo = React.useCallback(function () {
148
- let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
149
- let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
150
- const finalDateString = newDateString || tempDateString;
151
- return _objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
152
- }, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
153
- const getTimeMetaInfo = React.useCallback(function () {
154
- let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
155
- let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
156
- const finalTimeString = newTimeString || tempTimeString;
157
- return _objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
158
- }, [tempTimeString, getIsDisabledTime]);
159
- const handleChangeComposedDateTimeString = React.useCallback((newDateString, newTimeString, metaInfo) => {
160
- const appDateString = stringHelpers.isEmptyDateStringMask(newDateString) ? '' : newDateString;
161
- const appTimeString = stringHelpers.isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;
162
- appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
163
-
164
- setTempDateString(newDateString);
165
- appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
166
-
167
- setTimeString(newTimeString);
168
- const newDateTimeString = "".concat(newDateString, " ").concat(newTimeString);
169
-
170
- const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
171
- newDateString,
172
- newTimeString,
173
- newDateTimeString
174
- });
175
-
176
- const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
177
- appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
178
- }, [appOnDateChange, appOnTimeChange, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
179
- const handleChangeComposedDateString = React.useCallback((newDateString, metaInfo) => {
180
- // if we receive an "empty" mask, we comunicate empty string to the app
181
- const appDateString = stringHelpers.isEmptyDateStringMask(newDateString) ? '' : newDateString;
182
- appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
183
-
184
- setTempDateString(newDateString);
185
- const newDateTimeString = "".concat(newDateString, " ").concat(tempTimeString);
186
-
187
- const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(tempTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
188
- newDateString,
189
- newTimeString: tempTimeString,
190
- newDateTimeString
191
- });
192
-
193
- const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
194
- appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
195
- }, [appOnDateChange, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
196
- const handleChangeComposedTimeString = React.useCallback((newTimeString, metaInfo) => {
197
- const appTimeString = stringHelpers.isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;
198
- appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
199
-
200
- setTimeString(newTimeString);
201
- const newDateTimeString = "".concat(tempDateString, " ").concat(newTimeString);
202
-
203
- const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(tempDateString, metaInfo)), {}, {
204
- newDateTimeString,
205
- newDateString: tempDateString,
206
- newTimeString
207
- });
208
-
209
- const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
210
- appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
211
- }, [appOnTimeChange, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
212
- const handleChangeMonth = React.useCallback(function (newMonth, e) {
213
- let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
214
- const newDateString = stringHelpers.getFormattedDateString({
215
- month: newMonth,
216
- day,
217
- year
218
- });
219
-
220
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
221
- newDateString
222
- });
223
-
224
- appOnMonthChange(newMonth, e, finalMetaInfo);
225
- handleChangeComposedDateString(newDateString, finalMetaInfo);
226
- }, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
227
- const handleChangeDay = React.useCallback(function (newDay, e) {
228
- let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
229
- const newDateString = stringHelpers.getFormattedDateString({
230
- month,
231
- day: newDay,
232
- year
233
- });
234
-
235
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
236
- newDateString
237
- });
238
-
239
- appOnDayChange(newDay, e, finalMetaInfo);
240
- handleChangeComposedDateString(newDateString, finalMetaInfo);
241
- }, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
242
- const handleChangeYear = React.useCallback(function (newYear, e) {
243
- let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
244
- const newDateString = stringHelpers.getFormattedDateString({
245
- month,
246
- day,
247
- year: newYear
248
- });
249
-
250
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
251
- newDateString
252
- });
253
-
254
- appOnYearChange(newYear, e, finalMetaInfo);
255
- handleChangeComposedDateString(newDateString, finalMetaInfo);
256
- }, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
257
- const handleChangeHours = React.useCallback(function (newHours, e) {
258
- let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
259
- const newTimeString = stringHelpers.getFormattedTimeString({
260
- hours: newHours,
261
- minutes,
262
- // seconds,
263
- meridiem
264
- });
265
-
266
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
267
- newTimeString
268
- });
269
-
270
- appOnHourChange(newHours, e, finalMetaInfo);
271
- handleChangeComposedTimeString(newTimeString, finalMetaInfo);
272
- }, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
273
- const handleChangeMinutes = React.useCallback(function (newMinutes, e) {
274
- let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
275
- const newTimeString = stringHelpers.getFormattedTimeString({
276
- hours,
277
- minutes: newMinutes,
278
- // seconds,
279
- meridiem
280
- });
281
-
282
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
283
- newTimeString
284
- });
285
-
286
- appOnMinuteChange(newMinutes, e, finalMetaInfo);
287
- handleChangeComposedTimeString(newTimeString, finalMetaInfo);
288
- }, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
289
- const handleChangeMeridiem = React.useCallback(function (newMeridiem, e) {
290
- let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
291
- const newTimeString = stringHelpers.getFormattedTimeString({
292
- hours,
293
- minutes,
294
- // seconds,
295
- meridiem: newMeridiem
296
- });
297
-
298
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
299
- newTimeString
300
- });
301
-
302
- appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
303
- handleChangeComposedTimeString(newTimeString, finalMetaInfo);
304
- }, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
305
- const handleClearAll = React.useCallback(e => {
306
- const metaInfo = {
307
- isAutomaticFillTrigger: false,
308
- isClearButtonAction: true,
309
- newDateString: '',
310
- newTimeString: '',
311
- newDateTimeString: ''
312
- };
313
-
314
- const datePartsChangesMetainfo = _objectSpread({}, metaInfo);
315
-
316
- const timePartsChangesMetainfo = _objectSpread({}, metaInfo);
317
-
318
- if (isDateSelector || isDateTimeSelector) {
319
- delete datePartsChangesMetainfo.newDateTimeString;
320
- delete datePartsChangesMetainfo.newTimeString;
321
- appOnMonthChange('', e, datePartsChangesMetainfo);
322
- appOnDayChange('', e, datePartsChangesMetainfo);
323
- appOnYearChange('', e, datePartsChangesMetainfo);
324
- }
325
-
326
- if (isTimeSelector || isDateTimeSelector) {
327
- delete timePartsChangesMetainfo.newDateTimeString;
328
- delete timePartsChangesMetainfo.newDateString;
329
- appOnHourChange('', e, timePartsChangesMetainfo);
330
- appOnMinuteChange('', e, timePartsChangesMetainfo);
331
- appOnMeridiemChange('', e, timePartsChangesMetainfo);
332
- }
333
-
334
- if (isDateTimeSelector) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
335
- if (isDateSelector) handleChangeComposedDateString('__/__/____', datePartsChangesMetainfo);
336
- if (isTimeSelector) handleChangeComposedTimeString('__:__ __', timePartsChangesMetainfo);
337
- }, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDateSelector, isDateTimeSelector, isTimeSelector]);
338
- const onFillWithCurrentDateKeys = React.useCallback(function () {
339
- let metaInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
340
- isAutomaticFillTrigger: true
341
- };
342
- const now = new Date();
343
- const nowDateString = dateHelpers.getDateStringFromDay(now);
344
- const nowTimeString = dateHelpers.getTimeStringFromDay(now);
345
-
346
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay)), timeHelpers.getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime)), {}, {
347
- newDateString: nowDateString
348
- });
349
-
350
- handleChangeComposedDateTimeString(nowDateString, nowTimeString, finalMetaInfo);
351
- }, [getIsDisabledDay, getIsDisabledTime, getIsOutOfRangeDay, handleChangeComposedDateTimeString]);
352
- const onGlobalKeyDown = React.useCallback(e => {
353
- const {
354
- key,
355
- ctrlKey,
356
- metaKey
357
- } = e;
358
-
359
- if ((ctrlKey || metaKey) && key === ';') {
360
- onFillWithCurrentDateKeys();
361
- }
362
-
363
- if ((ctrlKey || metaKey) && (key === 'Delete' || key === 'Backspace')) handleClearAll(e);
364
- }, [handleClearAll, onFillWithCurrentDateKeys]);
365
- const ctx = React__default["default"].useMemo(() => ({
366
- props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
367
- dataAttrs
368
- }),
369
- monthInputRef,
370
- dayInputRef,
371
- yearInputRef,
372
- hourInputRef,
373
- minutesInputRef,
374
- meridiemInputRef,
375
- clearButtonRef,
376
- pickerButtonRef,
377
- prevYearBtnRef,
378
- prevMonthBtnRef,
379
- nextMonthBtnRef,
380
- nextYearBtnRef,
381
- calendarDaysWrapperRef,
382
- prevHourBtnRef,
383
- currHourBtnRef,
384
- nextHourBtnRef,
385
- prevMinutesBtnRef,
386
- currMinutesBtnRef,
387
- nextMinutesBtnRef,
388
- prevMeridiemBtnRef,
389
- currMeridiemBtnRef,
390
- nextMeridiemBtnRef,
391
- dateStringFromProps,
392
- firstSegmentRef,
393
- lastSegmentRef,
394
- tempDateString,
395
- setTempDateString,
396
- tempTimeString,
397
- setTimeString,
398
- handleChangeComposedDateTimeString,
399
- handleChangeComposedDateString,
400
- handleChangeComposedTimeString,
401
- handleChangeMonth,
402
- handleChangeDay,
403
- handleChangeYear,
404
- handleChangeHours,
405
- handleChangeMinutes,
406
- handleChangeMeridiem,
407
- handleClearAll,
408
- hideDate,
409
- hideTime,
410
- hideDateTimePicker,
411
- hideDatePicker,
412
- hideTimePicker,
413
- isDateSelector,
414
- isTimeSelector,
415
- isDateTimeSelector,
416
- isControllerOnly,
417
- isWithTimeWheelToo,
418
- isWithCalendarToo,
60
+ } = destructuredValues;
61
+ const {
419
62
  isWithDateInputs,
420
- isWithDateInputsOnly,
421
- isWithTimeInputs,
422
- isWithTimeInputsOnly,
423
- autoFocusMonthInput,
424
- autoFocusHourInput,
425
- autoFocusPrevMonthArrow,
426
- autoFocusHourTimeWheel,
63
+ isDateTimeSelector,
64
+ isWithTimeInputs
65
+ } = flags;
66
+ const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
67
+ const ctx = React__default["default"].useMemo(() => _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
68
+ props: propsWithDefaults,
427
69
  latestInteractionRegion,
428
70
  setLatestInteractionRegion,
429
- withAnyInputs,
430
- withAnyPicker,
431
- withClearBtn,
432
- withAnyRightController,
433
- shouldPreserveClearableSpace,
434
- month,
435
- day,
436
- year,
437
- monthNum,
438
- dayNum,
439
- yearNum,
440
- announcedMonth,
441
- announcedDay,
442
- announcedYear,
443
- announcedDateValues,
444
- hours,
445
- minutes,
446
- meridiem,
447
- hoursNum,
448
- minutesNum,
449
- announcedHours,
450
- announcedMinutes,
451
- announcedMeridiem,
452
- announcedTimeValues,
453
71
  ariaCurrentValueForInputs,
454
- onGlobalKeyDown
455
- }), [dataAttrs, propsWithDefaults, dateStringFromProps, tempDateString, tempTimeString, handleChangeComposedDateTimeString, handleChangeComposedDateString, handleChangeComposedTimeString, handleChangeMonth, handleChangeDay, handleChangeYear, handleChangeHours, handleChangeMinutes, handleChangeMeridiem, handleClearAll, hideDate, hideTime, hideDateTimePicker, hideDatePicker, hideTimePicker, isDateSelector, isTimeSelector, isDateTimeSelector, isControllerOnly, isWithTimeWheelToo, isWithCalendarToo, isWithDateInputs, isWithDateInputsOnly, isWithTimeInputs, isWithTimeInputsOnly, autoFocusMonthInput, autoFocusHourInput, autoFocusPrevMonthArrow, autoFocusHourTimeWheel, latestInteractionRegion, withAnyInputs, withAnyPicker, withClearBtn, withAnyRightController, shouldPreserveClearableSpace, month, day, year, monthNum, dayNum, yearNum, announcedMonth, announcedDay, announcedYear, announcedDateValues, hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues, ariaCurrentValueForInputs, onGlobalKeyDown] // refs are mutable so we don't need to listen to them
456
- );
72
+ dataAttrs
73
+ }, flags), DOMRefs), relevantValues), propsBasedOnType), destructuredValues), changeHandlers), globalKeyHandlers), [propsWithDefaults, latestInteractionRegion, ariaCurrentValueForInputs, dataAttrs, flags, DOMRefs, relevantValues, propsBasedOnType, destructuredValues, changeHandlers, globalKeyHandlers]);
457
74
  return ctx;
458
75
  };
459
76
 
@@ -2,23 +2,35 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
11
  var React = require('react');
6
12
  var stringHelpers = require('../utils/stringHelpers.js');
7
13
  var numberHelpers = require('../utils/numberHelpers.js');
8
14
  var constants = require('../utils/constants.js');
9
15
 
10
- /* eslint-disable max-lines */
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
19
+
20
+ 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; }
21
+
22
+ 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__default["default"](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; }
11
23
  // this is because it's fully controlled
12
24
  // our source of truth is either the date props or dateTime props
13
25
  // based on wheter it's a dateTime picker
14
26
  // or a date picker (it's date picker when hideTime is true)
15
27
  const useGetDestructuredDateValues = _ref => {
16
28
  let {
17
- date,
18
- dateTime,
29
+ appDate,
30
+ appDateTime,
19
31
  isDateTimeSelector
20
32
  } = _ref;
21
- const dateStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToDate(dateTime) : date;
33
+ const dateStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToDate(appDateTime) : appDate;
22
34
  const deconstructedValues = stringHelpers.deconstructValuesFromDateString(dateStringFromProps);
23
35
  const {
24
36
  month,
@@ -44,18 +56,18 @@ const useGetDestructuredDateValues = _ref => {
44
56
  announcedYear,
45
57
  announcedDateValues
46
58
  }), [announcedDay, announcedMonth, announcedYear, announcedDateValues, day, dayNum, month, monthNum, year, yearNum]);
47
- }; // this is because it's fully controlled
59
+ };
60
+ // this is because it's fully controlled
48
61
  // our source of truth is either the time props or dateTime props
49
62
  // based on wheter it's a dateTime picker
50
63
  // or a time picker (it's time picker when hideDate is true)
51
-
52
64
  const useGetDestructuredTimeValues = _ref2 => {
53
65
  let {
54
- time,
55
- dateTime,
66
+ appTime,
67
+ appDateTime,
56
68
  isDateTimeSelector
57
69
  } = _ref2;
58
- const timeStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToTime(dateTime) : time;
70
+ const timeStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToTime(appDateTime) : appTime;
59
71
  const deconstructedValues = stringHelpers.deconstructTimeValues(timeStringFromProps);
60
72
  const {
61
73
  hours,
@@ -83,65 +95,10 @@ const useGetDestructuredTimeValues = _ref2 => {
83
95
  announcedTimeValues
84
96
  }), [hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
85
97
  };
86
- const useGetDestructuredValues = _ref3 => {
87
- let {
88
- date,
89
- time,
90
- dateTime,
91
- isDateTimeSelector
92
- } = _ref3;
93
- const {
94
- month,
95
- day,
96
- year,
97
- monthNum,
98
- dayNum,
99
- yearNum,
100
- announcedMonth,
101
- announcedDay,
102
- announcedYear,
103
- announcedDateValues
104
- } = useGetDestructuredDateValues({
105
- date,
106
- dateTime,
107
- isDateTimeSelector
108
- });
109
- const {
110
- hours,
111
- minutes,
112
- meridiem,
113
- hoursNum,
114
- minutesNum,
115
- announcedHours,
116
- announcedMinutes,
117
- announcedMeridiem,
118
- announcedTimeValues
119
- } = useGetDestructuredTimeValues({
120
- time,
121
- dateTime,
122
- isDateTimeSelector
123
- });
124
- return React.useMemo(() => ({
125
- month,
126
- day,
127
- year,
128
- monthNum,
129
- dayNum,
130
- yearNum,
131
- announcedMonth,
132
- announcedDay,
133
- announcedYear,
134
- announcedDateValues,
135
- hours,
136
- minutes,
137
- meridiem,
138
- hoursNum,
139
- minutesNum,
140
- announcedHours,
141
- announcedMinutes,
142
- announcedMeridiem,
143
- announcedTimeValues
144
- }), [month, day, year, monthNum, dayNum, yearNum, announcedMonth, announcedDay, announcedYear, announcedDateValues, hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
98
+ const useGetDestructuredValues = config => {
99
+ const dateValues = useGetDestructuredDateValues(config);
100
+ const timeValues = useGetDestructuredTimeValues(config);
101
+ return React.useMemo(() => _objectSpread(_objectSpread({}, dateValues), timeValues), [dateValues, timeValues]);
145
102
  };
146
103
 
147
104
  exports.useGetDestructuredDateValues = useGetDestructuredDateValues;