@elliemae/ds-controlled-form 2.4.1-rc.0 → 2.4.1-rc.12

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