@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
@@ -6,6 +6,8 @@ import 'core-js/modules/esnext.iterator.some.js';
6
6
  import 'core-js/modules/esnext.async-iterator.find.js';
7
7
  import 'core-js/modules/esnext.iterator.find.js';
8
8
  import 'core-js/modules/web.dom-collections.iterator.js';
9
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
10
+ import 'core-js/modules/esnext.iterator.for-each.js';
9
11
  import { MENU_OPTION_TYPES } from '../constants.js';
10
12
 
11
13
  const getSelectableOptions = options => options.filter(option => option.type === MENU_OPTION_TYPES.OPTION && !option.disabled);
@@ -30,15 +32,17 @@ const findInCircularList = function (list, from, criteria) {
30
32
 
31
33
  return from; // return same item
32
34
  };
35
+ const getLastValueSelected = selectedValues => {
36
+ if (Array.isArray(selectedValues)) {
37
+ return selectedValues[selectedValues.length - 1];
38
+ }
39
+
40
+ return selectedValues;
41
+ };
33
42
  const getFirstOption = (options, selectedValues, inputValue) => {
34
43
  if (!inputValue) {
35
- if (Array.isArray(selectedValues) && selectedValues.length > 0) {
36
- return selectedValues[selectedValues.length - 1].dsId;
37
- }
38
-
39
- if (selectedValues !== null && selectedValues !== void 0 && selectedValues.dsId) {
40
- return selectedValues.dsId;
41
- }
44
+ const lastValue = getLastValueSelected(selectedValues);
45
+ if (lastValue) return lastValue.dsId;
42
46
  }
43
47
 
44
48
  for (let i = 0; i < options.length; i += 1) if (!['section', 'separator'].includes(options[i].type) && !options[i].disabled) {
@@ -64,12 +68,34 @@ const getSuggestedValueOnChange = (selectedOption, selectedValues) => {
64
68
 
65
69
  return selectedOption;
66
70
  };
67
- const getLastValueSelected = selectedValues => {
68
- if (Array.isArray(selectedValues)) {
69
- return selectedValues[selectedValues.length - 1];
71
+ const filterOptions = (inputValue, options) => options.filter(option => option.type === MENU_OPTION_TYPES.OPTION && option.label.toLowerCase().includes(inputValue.toLowerCase()));
72
+ const selectedValuesWithSections = (optionsToParse, multiSelectedValue) => {
73
+ var _items2;
74
+
75
+ const items = [];
76
+ if (optionsToParse) optionsToParse.forEach(option => {
77
+ // const isSelectedValue = multiSelectedValue.find((item) => item?.dsId === option.dsId);
78
+ if (option.type === MENU_OPTION_TYPES.OPTION && isSelected(multiSelectedValue, option)) {
79
+ items.push(option);
80
+ }
81
+
82
+ if (option.type === MENU_OPTION_TYPES.SECTION) {
83
+ var _items;
84
+
85
+ if (((_items = items[items.length - 1]) === null || _items === void 0 ? void 0 : _items.type) === MENU_OPTION_TYPES.SECTION) {
86
+ items[items.length - 1] = option;
87
+ } else {
88
+ items.push(option);
89
+ }
90
+ }
91
+ });
92
+
93
+ if (((_items2 = items[items.length - 1]) === null || _items2 === void 0 ? void 0 : _items2.type) === MENU_OPTION_TYPES.SECTION) {
94
+ items.pop();
70
95
  }
71
96
 
72
- return selectedValues;
97
+ return items;
73
98
  };
99
+ const getFilteredOptionsSelected = (filteredOption, selectedValues) => filteredOption.filter(option => option.type === MENU_OPTION_TYPES.OPTION && isSelected(selectedValues, option));
74
100
 
75
- export { findInCircularList, getFirstOption, getLastValueSelected, getOptions, getSelectableOptions, getSuggestedValueOnChange, isSelected, isSelectedValueEmpty, isSelectedValueMultiple };
101
+ export { filterOptions, findInCircularList, getFilteredOptionsSelected, getFirstOption, getLastValueSelected, getOptions, getSelectableOptions, getSuggestedValueOnChange, isSelected, isSelectedValueEmpty, isSelectedValueMultiple, selectedValuesWithSections };
@@ -1,120 +1,8 @@
1
- import { createContext, createRef } from 'react';
2
- import { CONTROLLED_DATE_TIME_PICKER_TYPES } from './ControlledDateTimePickerTypes.js';
1
+ import { createContext } from 'react';
3
2
 
4
- // eslint-disable-next-line @typescript-eslint/no-empty-function
5
- const noop = () => {};
6
-
7
- const defaultReturnFalse = () => false; // const mockedStringStateSetter: React.Dispatch<React.SetStateAction<string>> = noop;
8
-
9
-
10
- const mockedSetLatestInteractionRegion = noop;
11
- const defaultProps = {
12
- // changing default type requires changing default booleans (hideDate, withAnyInputs, etc...) in the context too
13
- type: CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL,
14
- dateTime: '',
15
- date: '',
16
- time: '',
17
- onDateChange: noop,
18
- onMonthChange: noop,
19
- onDayChange: noop,
20
- onYearChange: noop,
21
- onTimeChange: noop,
22
- onHourChange: noop,
23
- onMinuteChange: noop,
24
- // onSecondsChange: noop,
25
- onMeridiemChange: noop,
26
- onDateTimeChange: noop,
27
- onPickerOpen: noop,
28
- onPickerClose: noop,
29
- getIsDisabledDay: defaultReturnFalse,
30
- getIsOutOfRangeDay: defaultReturnFalse,
31
- getIsStartRangeDay: defaultReturnFalse,
32
- getIsDayInRange: defaultReturnFalse,
33
- getIsEndRangeDay: defaultReturnFalse,
34
- getIsDisabledTime: defaultReturnFalse,
35
- emptyPickerStartingMonth: undefined,
36
- onCalendarOpenFocusedDay: undefined,
37
- minutesInterval: 1,
38
- isClearable: false,
39
- disabled: false,
40
- hasError: false,
41
- autoFocus: false,
42
- preventCloseOnSelection: false,
43
- pickerFooterMsg: undefined
44
- };
45
- const defaultContext = {
46
- props: defaultProps,
47
- monthInputRef: /*#__PURE__*/createRef(),
48
- dayInputRef: /*#__PURE__*/createRef(),
49
- yearInputRef: /*#__PURE__*/createRef(),
50
- hourInputRef: /*#__PURE__*/createRef(),
51
- minutesInputRef: /*#__PURE__*/createRef(),
52
- // secondsInputRef: createRef<HTMLInputElement>(),
53
- meridiemInputRef: /*#__PURE__*/createRef(),
54
- clearButtonRef: /*#__PURE__*/createRef(),
55
- pickerButtonRef: /*#__PURE__*/createRef(),
56
- prevYearBtnRef: /*#__PURE__*/createRef(),
57
- prevMonthBtnRef: /*#__PURE__*/createRef(),
58
- nextMonthBtnRef: /*#__PURE__*/createRef(),
59
- nextYearBtnRef: /*#__PURE__*/createRef(),
60
- calendarDaysWrapperRef: /*#__PURE__*/createRef(),
61
- prevHourBtnRef: /*#__PURE__*/createRef(),
62
- currHourBtnRef: /*#__PURE__*/createRef(),
63
- nextHourBtnRef: /*#__PURE__*/createRef(),
64
- prevMinutesBtnRef: /*#__PURE__*/createRef(),
65
- currMinutesBtnRef: /*#__PURE__*/createRef(),
66
- nextMinutesBtnRef: /*#__PURE__*/createRef(),
67
- prevMeridiemBtnRef: /*#__PURE__*/createRef(),
68
- currMeridiemBtnRef: /*#__PURE__*/createRef(),
69
- nextMeridiemBtnRef: /*#__PURE__*/createRef(),
70
- firstSegmentRef: /*#__PURE__*/createRef(),
71
- lastSegmentRef: /*#__PURE__*/createRef(),
72
- ariaCurrentValueForInputs: '',
73
- dateStringFromProps: '',
74
- tempDateString: '__/__/____',
75
- // setDateString: mockedStringStateSetter,
76
- tempTimeString: '__:__:__ __',
77
- // setTimeString: mockedStringStateSetter,
78
- handleChangeComposedDateTimeString: noop,
79
- handleChangeComposedDateString: noop,
80
- handleChangeComposedTimeString: noop,
81
- handleChangeMonth: noop,
82
- handleChangeDay: noop,
83
- handleChangeYear: noop,
84
- handleChangeHours: noop,
85
- handleChangeMinutes: noop,
86
- handleChangeMeridiem: noop,
87
- handleClearAll: noop,
88
- hideDate: false,
89
- hideTime: false,
90
- hideDateTimePicker: false,
91
- hideDatePicker: true,
92
- hideTimePicker: true,
93
- withAnyInputs: true,
94
- withAnyPicker: true,
95
- withClearBtn: false,
96
- withAnyRightController: true,
97
- isDateSelector: false,
98
- isTimeSelector: false,
99
- isDateTimeSelector: true,
100
- isControllerOnly: false,
101
- isWithTimeWheelToo: true,
102
- isWithCalendarToo: true,
103
- isWithDateInputs: true,
104
- isWithDateInputsOnly: false,
105
- isWithTimeInputs: true,
106
- isWithTimeInputsOnly: false,
107
- autoFocusMonthInput: false,
108
- autoFocusHourInput: false,
109
- autoFocusPrevMonthArrow: false,
110
- autoFocusHourTimeWheel: false,
111
- shouldPreserveClearableSpace: false,
112
- latestInteractionRegion: '',
113
- setLatestInteractionRegion: mockedSetLatestInteractionRegion,
114
- onGlobalKeyDown: noop
115
- };
3
+ const defaultContext = {};
116
4
  /** Context for cross component communication */
117
5
 
118
6
  const ControlledDateTimePickerContext = /*#__PURE__*/createContext(defaultContext);
119
7
 
120
- export { ControlledDateTimePickerContext, ControlledDateTimePickerContext as default, defaultProps };
8
+ export { ControlledDateTimePickerContext, ControlledDateTimePickerContext as default };
@@ -20,9 +20,7 @@ const ControlledDateTimePickerDatatestid = {
20
20
  DAY: 'ds-controlled-date-time-picker-calendar-day',
21
21
  FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',
22
22
  START_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-start-range-day',
23
- // <-nuevo
24
23
  IN_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-in-range-day',
25
- // <-nuevo
26
24
  END_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-end-range-day',
27
25
  SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',
28
26
  SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',
@@ -0,0 +1,256 @@
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 { useCallback, useMemo } from 'react';
8
+ import { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';
9
+ import { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';
10
+ import { getFormattedDateString, getFormattedTimeString, isEmptyDateStringMask, isEmptyTimeStringMask, isEmptyDateTimeStringMask } from '../utils/stringHelpers.js';
11
+ import { defaultMetaInfo } from '../utils/constants.js';
12
+
13
+ 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; }
14
+
15
+ 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; }
16
+ const useChangeHandlers = _ref => {
17
+ let {
18
+ relevantValues,
19
+ destructuredValues,
20
+ propsBasedOnType,
21
+ DOMRefs
22
+ } = _ref;
23
+ const {
24
+ tempDateString,
25
+ setTempDateString,
26
+ tempTimeString,
27
+ setTimeString
28
+ } = relevantValues;
29
+ const {
30
+ getIsDisabledDay,
31
+ getIsOutOfRangeDay,
32
+ appOnDateChange,
33
+ appOnMonthChange,
34
+ appOnDayChange,
35
+ appOnYearChange,
36
+ getIsDisabledTime,
37
+ appOnTimeChange,
38
+ appOnHourChange,
39
+ appOnMinuteChange,
40
+ appOnMeridiemChange,
41
+ appOnDateTimeChange,
42
+ isDateTime,
43
+ isDate,
44
+ isTime
45
+ } = propsBasedOnType;
46
+ const {
47
+ month,
48
+ day,
49
+ year,
50
+ hours,
51
+ minutes,
52
+ meridiem
53
+ } = destructuredValues;
54
+ const {
55
+ firstSegmentRef
56
+ } = DOMRefs;
57
+ const getDateMetaInfo = useCallback(function () {
58
+ let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
59
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
60
+ const finalDateString = newDateString || tempDateString;
61
+
62
+ const finalMetaInfo = _objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
63
+
64
+ return finalMetaInfo;
65
+ }, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
66
+ const getTimeMetaInfo = useCallback(function () {
67
+ let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
68
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
69
+ const finalTimeString = newTimeString || tempTimeString;
70
+
71
+ const finalMetaInfo = _objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
72
+
73
+ return finalMetaInfo;
74
+ }, [tempTimeString, getIsDisabledTime]);
75
+ const handleChangeComposedDateTimeString = useCallback((newDateString, newTimeString, metaInfo) => {
76
+ const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;
77
+ const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;
78
+ appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
79
+
80
+ setTempDateString(newDateString);
81
+ appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
82
+
83
+ setTimeString(newTimeString);
84
+ const newDateTimeString = "".concat(newDateString, " ").concat(newTimeString);
85
+
86
+ const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
87
+ newDateString,
88
+ newTimeString,
89
+ newDateTimeString
90
+ });
91
+
92
+ const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
93
+ appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
94
+ }, [appOnDateChange, setTempDateString, appOnTimeChange, setTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
95
+ const handleChangeComposedDateString = useCallback((newDateString, metaInfo) => {
96
+ // if we receive an "empty" mask, we comunicate empty string to the app
97
+ const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;
98
+ appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
99
+
100
+ setTempDateString(newDateString);
101
+ const newDateTimeString = "".concat(newDateString, " ").concat(tempTimeString);
102
+
103
+ const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(tempTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
104
+ newDateString,
105
+ newTimeString: tempTimeString,
106
+ newDateTimeString
107
+ });
108
+
109
+ const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
110
+ appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
111
+ }, [appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
112
+ const handleChangeComposedTimeString = useCallback((newTimeString, metaInfo) => {
113
+ const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;
114
+ appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
115
+
116
+ setTimeString(newTimeString);
117
+ const newDateTimeString = "".concat(tempDateString, " ").concat(newTimeString);
118
+
119
+ const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(tempDateString, metaInfo)), {}, {
120
+ newDateTimeString,
121
+ newDateString: tempDateString,
122
+ newTimeString
123
+ });
124
+
125
+ const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
126
+ appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
127
+ }, [appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
128
+ const handleChangeMonth = useCallback(function (newMonth, e) {
129
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
130
+ const newDateString = getFormattedDateString({
131
+ month: newMonth,
132
+ day,
133
+ year
134
+ });
135
+
136
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
137
+ newDateString
138
+ });
139
+
140
+ appOnMonthChange(newMonth, e, finalMetaInfo);
141
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
142
+ }, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
143
+ const handleChangeDay = useCallback(function (newDay, e) {
144
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
145
+ const newDateString = getFormattedDateString({
146
+ month,
147
+ day: newDay,
148
+ year
149
+ });
150
+
151
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
152
+ newDateString
153
+ });
154
+
155
+ appOnDayChange(newDay, e, finalMetaInfo);
156
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
157
+ }, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
158
+ const handleChangeYear = useCallback(function (newYear, e) {
159
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
160
+ const newDateString = getFormattedDateString({
161
+ month,
162
+ day,
163
+ year: newYear
164
+ });
165
+
166
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
167
+ newDateString
168
+ });
169
+
170
+ appOnYearChange(newYear, e, finalMetaInfo);
171
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
172
+ }, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
173
+ const handleChangeHours = useCallback(function (newHours, e) {
174
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
175
+ const newTimeString = getFormattedTimeString({
176
+ hours: newHours,
177
+ minutes,
178
+ // seconds,
179
+ meridiem
180
+ });
181
+
182
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
183
+ newTimeString
184
+ });
185
+
186
+ appOnHourChange(newHours, e, finalMetaInfo);
187
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
188
+ }, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
189
+ const handleChangeMinutes = useCallback(function (newMinutes, e) {
190
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
191
+ const newTimeString = getFormattedTimeString({
192
+ hours,
193
+ minutes: newMinutes,
194
+ meridiem
195
+ });
196
+
197
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
198
+ newTimeString
199
+ });
200
+
201
+ appOnMinuteChange(newMinutes, e, finalMetaInfo);
202
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
203
+ }, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
204
+ const handleChangeMeridiem = useCallback(function (newMeridiem, e) {
205
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
206
+ const newTimeString = getFormattedTimeString({
207
+ hours,
208
+ minutes,
209
+ meridiem: newMeridiem
210
+ });
211
+
212
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
213
+ newTimeString
214
+ });
215
+
216
+ appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
217
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
218
+ }, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
219
+ const handleClearAll = useCallback(e => {
220
+ const metaInfo = {
221
+ isAutomaticFillTrigger: false,
222
+ isClearButtonAction: true,
223
+ newDateString: '',
224
+ newTimeString: '',
225
+ newDateTimeString: ''
226
+ };
227
+ appOnMonthChange('', e, metaInfo);
228
+ appOnDayChange('', e, metaInfo);
229
+ appOnYearChange('', e, metaInfo);
230
+ appOnHourChange('', e, metaInfo);
231
+ appOnMinuteChange('', e, metaInfo);
232
+ appOnMeridiemChange('', e, metaInfo);
233
+ if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
234
+ if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);
235
+ if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);
236
+ setTimeout(() => {
237
+ var _firstSegmentRef$curr;
238
+
239
+ (_firstSegmentRef$curr = firstSegmentRef.current) === null || _firstSegmentRef$curr === void 0 ? void 0 : _firstSegmentRef$curr.focus();
240
+ });
241
+ }, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, firstSegmentRef, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDate, isDateTime, isTime]);
242
+ return useMemo(() => ({
243
+ handleChangeComposedDateTimeString,
244
+ handleChangeComposedDateString,
245
+ handleChangeComposedTimeString,
246
+ handleChangeMonth,
247
+ handleChangeDay,
248
+ handleChangeYear,
249
+ handleChangeHours,
250
+ handleChangeMinutes,
251
+ handleChangeMeridiem,
252
+ handleClearAll
253
+ }), [handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, handleChangeDay, handleChangeHours, handleChangeMeridiem, handleChangeMinutes, handleChangeMonth, handleChangeYear, handleClearAll]);
254
+ };
255
+
256
+ export { useChangeHandlers };