@elliemae/ds-controlled-form 2.0.0-next.8 → 2.0.0-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 (199) hide show
  1. package/cjs/controlled-checkbox/ControlledCheckbox.js +11 -4
  2. package/cjs/controlled-checkbox/config/useValidateProps.js +2 -2
  3. package/cjs/controlled-checkbox/propTypes.js +5 -4
  4. package/cjs/controlled-checkbox/styles.js +84 -48
  5. package/cjs/controlled-checkbox/utils/setMultipleRefs.js +4 -0
  6. package/cjs/controlled-checkbox/utils/styleHelpers.js +13 -7
  7. package/cjs/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
  8. package/cjs/controlled-date-range-picker/config/useControlledDateRangePicker.js +19 -3
  9. package/cjs/controlled-date-range-picker/config/useRangePickerLogic.js +20 -12
  10. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +7 -0
  11. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +29 -8
  12. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +7 -0
  13. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +7 -0
  14. package/cjs/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
  15. package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
  16. package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +154 -13
  17. package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +19 -16
  18. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +5 -6
  19. package/cjs/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
  20. package/cjs/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +35 -14
  21. package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +15 -11
  22. package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  23. package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +16 -12
  24. package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +15 -11
  25. package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +101 -33
  26. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
  27. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
  28. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
  29. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  30. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
  31. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -17
  32. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +10 -11
  33. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
  34. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +20 -10
  35. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +326 -117
  36. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +8 -43
  37. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +47 -21
  38. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +59 -58
  39. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +25 -13
  40. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
  41. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +10 -11
  42. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
  43. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +55 -25
  44. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +18 -7
  45. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +7 -0
  46. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +1 -0
  47. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +7 -0
  48. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -7
  49. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +201 -80
  50. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
  51. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -3
  52. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
  53. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +10 -11
  54. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
  55. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
  56. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +8 -5
  57. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +64 -141
  58. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +11 -7
  59. package/cjs/controlled-date-time-picker/parts/Styleds.js +70 -26
  60. package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +16 -12
  61. package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +15 -11
  62. package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +15 -11
  63. package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
  64. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +95 -173
  65. package/cjs/controlled-date-time-picker/propTypes.js +1 -0
  66. package/cjs/controlled-date-time-picker/utils/constants.js +16 -0
  67. package/cjs/controlled-date-time-picker/utils/dateHelpers.js +34 -16
  68. package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
  69. package/cjs/controlled-date-time-picker/utils/stringHelpers.js +23 -14
  70. package/cjs/controlled-date-time-picker/utils/timeHelpers.js +2 -1
  71. package/cjs/controlled-toggle/ControlledToggle.js +21 -15
  72. package/cjs/controlled-toggle/styles.js +138 -69
  73. package/cjs/controlled-toggle/utils/addTooltipOnReadOnly.js +2 -2
  74. package/cjs/controlled-toggle/utils/styleHelpers.js +15 -9
  75. package/esm/controlled-checkbox/ControlledCheckbox.js +11 -4
  76. package/esm/controlled-checkbox/config/useValidateProps.js +2 -2
  77. package/esm/controlled-checkbox/propTypes.js +5 -4
  78. package/esm/controlled-checkbox/styles.js +84 -48
  79. package/esm/controlled-checkbox/utils/setMultipleRefs.js +4 -0
  80. package/esm/controlled-checkbox/utils/styleHelpers.js +13 -7
  81. package/esm/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
  82. package/esm/controlled-date-range-picker/config/useControlledDateRangePicker.js +15 -3
  83. package/esm/controlled-date-range-picker/config/useRangePickerLogic.js +20 -12
  84. package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +7 -0
  85. package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +28 -8
  86. package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +7 -0
  87. package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +7 -0
  88. package/esm/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
  89. package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
  90. package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +156 -15
  91. package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +19 -16
  92. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +1 -1
  93. package/esm/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
  94. package/esm/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +34 -14
  95. package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +15 -11
  96. package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  97. package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +16 -12
  98. package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +15 -11
  99. package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +101 -33
  100. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
  101. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
  102. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
  103. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  104. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
  105. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +1 -4
  106. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +7 -7
  107. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
  108. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +20 -10
  109. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +321 -113
  110. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +8 -43
  111. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +48 -22
  112. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +60 -59
  113. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +26 -14
  114. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
  115. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +7 -7
  116. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
  117. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +53 -23
  118. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +18 -7
  119. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +7 -0
  120. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +1 -0
  121. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +7 -0
  122. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -3
  123. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +196 -76
  124. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
  125. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -3
  126. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
  127. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +7 -7
  128. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
  129. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
  130. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +8 -5
  131. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +65 -142
  132. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +12 -8
  133. package/esm/controlled-date-time-picker/parts/Styleds.js +68 -24
  134. package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +16 -12
  135. package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +15 -11
  136. package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +15 -11
  137. package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
  138. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +96 -170
  139. package/esm/controlled-date-time-picker/propTypes.js +1 -0
  140. package/esm/controlled-date-time-picker/utils/constants.js +10 -1
  141. package/esm/controlled-date-time-picker/utils/dateHelpers.js +34 -17
  142. package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
  143. package/esm/controlled-date-time-picker/utils/stringHelpers.js +23 -14
  144. package/esm/controlled-date-time-picker/utils/timeHelpers.js +2 -1
  145. package/esm/controlled-toggle/ControlledToggle.js +21 -15
  146. package/esm/controlled-toggle/styles.js +138 -69
  147. package/esm/controlled-toggle/utils/addTooltipOnReadOnly.js +1 -1
  148. package/esm/controlled-toggle/utils/styleHelpers.js +15 -9
  149. package/package.json +21 -12
  150. package/types/controlled-checkbox/ControlledCheckbox.d.ts +60 -9
  151. package/types/controlled-checkbox/config/useValidateProps.d.ts +1 -1
  152. package/types/controlled-checkbox/index.d.d.ts +1 -0
  153. package/types/controlled-checkbox/propTypes.d.ts +55 -8
  154. package/types/controlled-checkbox/styles.d.ts +4 -4
  155. package/types/controlled-checkbox/tests/DSControlledCheckbox.keyboard.test.d.ts +1 -0
  156. package/types/controlled-checkbox/tests/DSControlledCheckbox.test.d.ts +1 -0
  157. package/types/controlled-checkbox/tests/DSControllledCheckbox.events.test.d.ts +1 -0
  158. package/types/controlled-date-range-picker/ControlledDateRangePicker.d.ts +12 -2
  159. package/types/controlled-date-range-picker/ControlledDateRangePickerDatatestid.d.ts +1 -18
  160. package/types/controlled-date-range-picker/propTypes.d.ts +7 -1
  161. package/types/controlled-date-range-picker/tests/date-range-picker.auto-advance.test.d.ts +1 -0
  162. package/types/controlled-date-range-picker/tests/date-range-picker.classes.test.d.ts +1 -0
  163. package/types/controlled-date-range-picker/tests/date-range-picker.clear-button.test.d.ts +1 -0
  164. package/types/controlled-date-range-picker/tests/date-range-picker.keyboard-focus.test.d.ts +1 -0
  165. package/types/controlled-date-range-picker/tests/date-range-picker.manual-delete-values.test.d.ts +1 -0
  166. package/types/controlled-date-range-picker/tests/date-range-picker.types-dom.test.d.ts +1 -0
  167. package/types/controlled-date-time-picker/ControlledDateTimePicker.d.ts +81 -21
  168. package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +3 -0
  169. package/types/controlled-date-time-picker/parts/DateInputs/DDInput.d.ts +2 -1
  170. package/types/controlled-date-time-picker/parts/DateInputs/MMInput.d.ts +2 -1
  171. package/types/controlled-date-time-picker/parts/DateInputs/YYYYInput.d.ts +2 -1
  172. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +2 -1
  173. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +10 -70
  174. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +1 -3
  175. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +2 -17
  176. package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +3 -6
  177. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -0
  178. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +4 -24
  179. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +10 -70
  180. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
  181. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +3 -12
  182. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +1 -10
  183. package/types/controlled-date-time-picker/parts/Styleds.d.ts +10 -30
  184. package/types/controlled-date-time-picker/parts/TimeInputs/HHInput.d.ts +2 -1
  185. package/types/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +2 -1
  186. package/types/controlled-date-time-picker/parts/TimeInputs/MinutesInput.d.ts +2 -1
  187. package/types/controlled-date-time-picker/propTypes.d.ts +76 -20
  188. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.data-entry-typing.test.d.ts +1 -0
  189. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.fill-with-now.test.d.ts +1 -0
  190. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.regressive-backspace.test.d.ts +1 -0
  191. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.shortcut-clear.test.d.ts +1 -0
  192. package/types/controlled-date-time-picker/utils/constants.d.ts +9 -0
  193. package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +1 -0
  194. package/types/controlled-toggle/ControlledToggle.d.ts +78 -13
  195. package/types/controlled-toggle/propTypes.d.ts +73 -12
  196. package/types/controlled-toggle/styles.d.ts +7 -7
  197. package/cjs/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -53
  198. package/esm/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -45
  199. package/types/controlled-date-time-picker/parts/TimeInputs/SSInput.d.ts +0 -13
@@ -1,10 +1,17 @@
1
1
  import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { useState, useMemo, useCallback, useLayoutEffect } from 'react';
2
+ import 'core-js/modules/esnext.async-iterator.find.js';
3
+ import 'core-js/modules/esnext.iterator.constructor.js';
4
+ import 'core-js/modules/esnext.iterator.find.js';
5
+ import { useContext, useState, useMemo, useCallback, useLayoutEffect } from 'react';
6
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
3
7
  import { compareTwoDatesDayEquality } from '../../../utils/dateHelpers.js';
4
8
  import { useGetStartingFocusedDay } from '../../../utils/hooks/useGetStartingFocusedDay.js';
5
9
 
6
10
  // eslint-disable-next-line max-params
7
- const loopWhileWaiting = (cb, shortcircuit = () => false, timePerTry = 100, maxTries = 5) => {
11
+ const loopWhileWaiting = function (cb) {
12
+ let shortcircuit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => false;
13
+ let timePerTry = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;
14
+ let maxTries = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;
8
15
  let ab = maxTries;
9
16
  const inter = setInterval(() => {
10
17
  cb();
@@ -13,30 +20,43 @@ const loopWhileWaiting = (cb, shortcircuit = () => false, timePerTry = 100, maxT
13
20
  }, timePerTry);
14
21
  };
15
22
 
16
- const useFocusLogic = ({
17
- daysArray,
18
- calendarDaysWrapperRef,
19
- showCalendar
20
- }) => {
23
+ const useFocusLogic = _ref => {
24
+ let {
25
+ daysArray,
26
+ showCalendar
27
+ } = _ref;
28
+ const {
29
+ calendarDaysWrapperRef
30
+ } = useContext(ControlledDateTimePickerContext);
21
31
  const {
22
32
  startFocusedDate
23
33
  } = useGetStartingFocusedDay();
24
- const [metadayToFocus, setMetadayToFocus] = useState(daysArray.find(({
25
- day: currDay
26
- }) => compareTwoDatesDayEquality(currDay, startFocusedDate))); // this is required because we have to focus based on the inputs values too,
34
+ const [metadayToFocus, setMetadayToFocus] = useState(daysArray.find(_ref2 => {
35
+ let {
36
+ day: currDay
37
+ } = _ref2;
38
+ return compareTwoDatesDayEquality(currDay, startFocusedDate);
39
+ })); // this is required because we have to focus based on the inputs values too,
27
40
  // useGetStartingFocusedDay does this already,
28
41
  // this "useMemo" is here just to trigger it functionally by changing the metadayToFocus state
29
42
  // which is required for arrow key navigation in the calendar
30
43
 
31
44
  const focusedDay = useMemo(() => {
32
- const newFocusedDay = metadayToFocus ? daysArray.find(({
33
- day: currDay
34
- }) => compareTwoDatesDayEquality(currDay, metadayToFocus.day)) : daysArray.find(({
35
- day: currDay
36
- }) => compareTwoDatesDayEquality(currDay, startFocusedDate));
45
+ const newFocusedDay = metadayToFocus ? daysArray.find(_ref3 => {
46
+ let {
47
+ day: currDay
48
+ } = _ref3;
49
+ return compareTwoDatesDayEquality(currDay, metadayToFocus.day);
50
+ }) : daysArray.find(_ref4 => {
51
+ let {
52
+ day: currDay
53
+ } = _ref4;
54
+ return compareTwoDatesDayEquality(currDay, startFocusedDate);
55
+ });
37
56
  return newFocusedDay;
38
57
  }, [daysArray, startFocusedDate, metadayToFocus]);
39
- const tryToFocusCurrentlyDataIsFocusedDay = useCallback((wrapperDOM = (calendarDaysWrapperRef === null || calendarDaysWrapperRef === void 0 ? void 0 : calendarDaysWrapperRef.current) || document) => {
58
+ const tryToFocusCurrentlyDataIsFocusedDay = useCallback(function () {
59
+ let wrapperDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (calendarDaysWrapperRef === null || calendarDaysWrapperRef === void 0 ? void 0 : calendarDaysWrapperRef.current) || document;
40
60
  let shortcircuit = false;
41
61
  loopWhileWaiting(() => {
42
62
  const domElem = wrapperDOM === null || wrapperDOM === void 0 ? void 0 : wrapperDOM.querySelector('[data-isfocused="true"]');
@@ -54,16 +74,22 @@ const useFocusLogic = ({
54
74
  }, [calendarDaysWrapperRef, focusedDay, showCalendar, tryToFocusCurrentlyDataIsFocusedDay]);
55
75
  const handleFocusMetaDay = useCallback(metaDayToFocus => {
56
76
  // if focusedDay is inside current daysArray we set Focused day
57
- const newFocusedMetaDay = daysArray.find(({
58
- day: currDay
59
- }) => compareTwoDatesDayEquality(currDay, metaDayToFocus.day));
77
+ const newFocusedMetaDay = daysArray.find(_ref5 => {
78
+ let {
79
+ day: currDay
80
+ } = _ref5;
81
+ return compareTwoDatesDayEquality(currDay, metaDayToFocus.day);
82
+ });
60
83
  if (focusedDay !== newFocusedMetaDay) setMetadayToFocus(newFocusedMetaDay);
61
84
  }, [daysArray, focusedDay]);
62
85
  const handleFocusMetaDayByDay = useCallback(dayDate => {
63
86
  // if focusedDay is inside current daysArray we set Focused day
64
- const newFocusedMetaDay = daysArray.find(({
65
- day: currDay
66
- }) => compareTwoDatesDayEquality(currDay, dayDate));
87
+ const newFocusedMetaDay = daysArray.find(_ref6 => {
88
+ let {
89
+ day: currDay
90
+ } = _ref6;
91
+ return compareTwoDatesDayEquality(currDay, dayDate);
92
+ });
67
93
  if (focusedDay !== newFocusedMetaDay) setMetadayToFocus(newFocusedMetaDay);
68
94
  }, [daysArray, focusedDay]);
69
95
  const resetFocusedDayToStartDate = useCallback(() => {
@@ -1,36 +1,50 @@
1
- import { useCallback, useMemo } from 'react';
1
+ import 'core-js/modules/esnext.async-iterator.find.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.find.js';
4
+ import { useContext, useCallback, useMemo } from 'react';
5
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
2
6
  import { sumValuesToDate } from '../../../utils/dateHelpers.js';
3
-
4
- /* eslint-disable complexity */
5
- const useKeyboardHandlers = ({
6
- focusedDay,
7
- daysArray,
8
- handlePrevMonth,
9
- handleNextMonth,
10
- prevYearBtnRef,
11
- prevMonthBtnRef,
12
- nextMonthBtnRef,
13
- nextYearBtnRef,
14
- currMeridiemBtnRef,
15
- currHourBtnRef,
16
- isWithTimeWheelToo,
17
- isControllerOnly,
18
- handleFocusMetaDay,
19
- handleFocusMetaDayByDay,
20
- tryToFocusCurrentlyDataIsFocusedDay,
21
- hideDate,
22
- hideTime,
23
- monthInputRef,
24
- hourInputRef,
25
- setLatestInteractionRegion
26
- }) => {
7
+ import { homeEndKeys, homeEndAllArrowKeys } from '../../../utils/constants.js';
8
+
9
+ const useKeyboardHandlers = _ref => {
10
+ let {
11
+ focusedDay,
12
+ daysArray,
13
+ handlePrevMonth,
14
+ handleNextMonth,
15
+ handleFocusMetaDay,
16
+ handleFocusMetaDayByDay,
17
+ tryToFocusCurrentlyDataIsFocusedDay
18
+ } = _ref;
19
+ const {
20
+ hideDate,
21
+ hideTime,
22
+ monthInputRef,
23
+ hourInputRef,
24
+ prevYearBtnRef,
25
+ prevMonthBtnRef,
26
+ nextMonthBtnRef,
27
+ nextYearBtnRef,
28
+ currMeridiemBtnRef,
29
+ isControllerOnly,
30
+ isWithTimeWheelToo,
31
+ setLatestInteractionRegion,
32
+ withAnyInputs,
33
+ isWithTimeInputs,
34
+ meridiemInputRef,
35
+ isWithDateInputs,
36
+ yearInputRef
37
+ } = useContext(ControlledDateTimePickerContext);
27
38
  const tryToFocusDayRegion = useCallback(() => {
28
39
  setLatestInteractionRegion('calendar-days');
29
40
 
30
41
  if (!focusedDay) {
31
- const newFocusDay = daysArray.find(({
32
- isCurrMonthDay
33
- }) => isCurrMonthDay);
42
+ const newFocusDay = daysArray.find(_ref2 => {
43
+ let {
44
+ isCurrMonthDay
45
+ } = _ref2;
46
+ return isCurrMonthDay;
47
+ });
34
48
  if (newFocusDay) setTimeout(() => {
35
49
  handleFocusMetaDay(newFocusDay);
36
50
  });
@@ -57,12 +71,16 @@ const useKeyboardHandlers = ({
57
71
  const {
58
72
  key
59
73
  } = e;
60
- const preventDefaultKeys = ['Home', 'End'];
61
- const stopPropagationKeys = ['Home', 'End'];
62
- if (preventDefaultKeys.includes(key)) e.preventDefault();
63
- if (stopPropagationKeys.includes(key)) e.stopPropagation();
74
+ if (homeEndKeys.includes(key)) e.preventDefault();
75
+ if (homeEndKeys.includes(key)) e.stopPropagation();
64
76
  if (key === 'Home') onHomeKeyDownTriggerIcon();
65
- }, [onHomeKeyDownTriggerIcon]);
77
+
78
+ if (key === 'Backspace' && withAnyInputs) {
79
+ var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
80
+
81
+ if (isWithTimeInputs) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);else if (isWithDateInputs) yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
82
+ }
83
+ }, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onHomeKeyDownTriggerIcon, withAnyInputs, yearInputRef]);
66
84
  const handleDayOnKeyDown = useCallback((e, metaDay) => {
67
85
  let newFocusedDayDate;
68
86
  const {
@@ -72,10 +90,8 @@ const useKeyboardHandlers = ({
72
90
  key,
73
91
  shiftKey
74
92
  } = e;
75
- const preventDefaultKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
76
- const stopPropagationKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
77
- if (preventDefaultKeys.includes(key)) e.preventDefault();
78
- if (stopPropagationKeys.includes(key)) e.stopPropagation();
93
+ if (homeEndAllArrowKeys.includes(key)) e.preventDefault();
94
+ if (homeEndAllArrowKeys.includes(key)) e.stopPropagation();
79
95
  if (key === 'ArrowUp') newFocusedDayDate = sumValuesToDate(day, {
80
96
  daysToSum: -7
81
97
  });
@@ -111,30 +127,15 @@ const useKeyboardHandlers = ({
111
127
  if (key === 'Home') onHomeKeyDownInsideCalendar();
112
128
  if (key === 'End') onEndKeyDownInsideCalendar(); // TAB CYCLE IMPLEMENTATION
113
129
 
114
- if (!isControllerOnly) if (key === 'Tab') {
115
- e.preventDefault(); // we only prevent default if it's not controller only
130
+ if (key === 'Tab' && !shiftKey && isControllerOnly === false && !isWithTimeWheelToo) {
131
+ var _prevMonthBtnRef$curr3, _prevMonthBtnRef$curr4;
116
132
 
117
- if (shiftKey) {
118
- var _nextYearBtnRef$curre, _nextYearBtnRef$curre2;
119
-
120
- nextYearBtnRef === null || nextYearBtnRef === void 0 ? void 0 : (_nextYearBtnRef$curre = nextYearBtnRef.current) === null || _nextYearBtnRef$curre === void 0 ? void 0 : (_nextYearBtnRef$curre2 = _nextYearBtnRef$curre.focus) === null || _nextYearBtnRef$curre2 === void 0 ? void 0 : _nextYearBtnRef$curre2.call(_nextYearBtnRef$curre);
121
- } else if (isWithTimeWheelToo) {
122
- var _currHourBtnRef$curre, _currHourBtnRef$curre2;
123
-
124
- currHourBtnRef === null || currHourBtnRef === void 0 ? void 0 : (_currHourBtnRef$curre = currHourBtnRef.current) === null || _currHourBtnRef$curre === void 0 ? void 0 : (_currHourBtnRef$curre2 = _currHourBtnRef$curre.focus) === null || _currHourBtnRef$curre2 === void 0 ? void 0 : _currHourBtnRef$curre2.call(_currHourBtnRef$curre);
125
- } else {
126
- var _prevMonthBtnRef$curr3, _prevMonthBtnRef$curr4;
127
-
128
- // Before it was like https://jira.elliemae.io/browse/PUI-6632
129
- // setShowCalendar(false);
130
- // onPickerClose();
131
- // we are implementing focus cycle now
132
- // if someone changes his mind, remove comments to the above and add comments below
133
- // setShowCalendar onPickerClose are recibed as part of the args of the hook already
134
- prevMonthBtnRef === null || prevMonthBtnRef === void 0 ? void 0 : (_prevMonthBtnRef$curr3 = prevMonthBtnRef.current) === null || _prevMonthBtnRef$curr3 === void 0 ? void 0 : (_prevMonthBtnRef$curr4 = _prevMonthBtnRef$curr3.focus) === null || _prevMonthBtnRef$curr4 === void 0 ? void 0 : _prevMonthBtnRef$curr4.call(_prevMonthBtnRef$curr3);
135
- }
133
+ // MUST prevent default since this is a custom focus switch
134
+ // NOT preventing the default event will cause unexpected result
135
+ e.preventDefault();
136
+ prevMonthBtnRef === null || prevMonthBtnRef === void 0 ? void 0 : (_prevMonthBtnRef$curr3 = prevMonthBtnRef.current) === null || _prevMonthBtnRef$curr3 === void 0 ? void 0 : (_prevMonthBtnRef$curr4 = _prevMonthBtnRef$curr3.focus) === null || _prevMonthBtnRef$curr4 === void 0 ? void 0 : _prevMonthBtnRef$curr4.call(_prevMonthBtnRef$curr3);
136
137
  }
137
- }, [currHourBtnRef, daysArray, handleFocusMetaDayByDay, handleNextMonth, handlePrevMonth, isControllerOnly, isWithTimeWheelToo, nextYearBtnRef, onEndKeyDownInsideCalendar, onHomeKeyDownInsideCalendar, prevMonthBtnRef, tryToFocusCurrentlyDataIsFocusedDay]);
138
+ }, [daysArray, handleFocusMetaDayByDay, handleNextMonth, handlePrevMonth, isControllerOnly, isWithTimeWheelToo, onEndKeyDownInsideCalendar, onHomeKeyDownInsideCalendar, prevMonthBtnRef, tryToFocusCurrentlyDataIsFocusedDay]);
138
139
  const handlePrevYearKeyDown = useCallback(e => {
139
140
  const {
140
141
  key,
@@ -1,18 +1,25 @@
1
1
  import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { useState, useCallback, useMemo } from 'react';
2
+ import { useContext, useState, useCallback, useMemo } from 'react';
3
3
  import { usePopper } from 'react-popper';
4
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
4
5
  import { useOnClickOutside } from '../../../utils/hooks/useOnClickOutside.js';
5
6
 
6
- const usePopperTriggerLogic = ({
7
- focusedDay,
8
- resetFocusedDayToStartDate,
9
- prevMonthBtnRef,
10
- pickerButtonRef,
11
- onPickerOpen,
12
- onPickerClose,
13
- showCalendar,
14
- setShowCalendar
15
- }) => {
7
+ const usePopperTriggerLogic = _ref => {
8
+ let {
9
+ focusedDay,
10
+ resetFocusedDayToStartDate,
11
+ showCalendar,
12
+ setShowCalendar,
13
+ tryToFocusCurrentlyDataIsFocusedDay
14
+ } = _ref;
15
+ const {
16
+ props: {
17
+ onPickerOpen,
18
+ onPickerClose
19
+ },
20
+ prevMonthBtnRef,
21
+ pickerButtonRef
22
+ } = useContext(ControlledDateTimePickerContext);
16
23
  const [referenceElement, setReferenceElement] = useState(null);
17
24
  const [popperElement, setPopperElement] = useState(null);
18
25
  const [arrowElement, setArrowElement] = useState(null);
@@ -23,7 +30,12 @@ const usePopperTriggerLogic = ({
23
30
  element: arrowElement
24
31
  }
25
32
  }]
26
- });
33
+ }); // onOpen we try to focus the day we should focus, if we should focus one
34
+
35
+ const handleOnPickerOpen = useCallback(() => {
36
+ onPickerOpen();
37
+ tryToFocusCurrentlyDataIsFocusedDay();
38
+ }, [onPickerOpen, tryToFocusCurrentlyDataIsFocusedDay]);
27
39
  const openCalendar = useCallback(() => {
28
40
  if (focusedDay) setTimeout(() => {
29
41
  var _focusedDay$dayBtnRef, _focusedDay$dayBtnRef2, _focusedDay$dayBtnRef3;
@@ -35,8 +47,8 @@ const usePopperTriggerLogic = ({
35
47
  return prevMonthBtnRef === null || prevMonthBtnRef === void 0 ? void 0 : (_prevMonthBtnRef$curr = prevMonthBtnRef.current) === null || _prevMonthBtnRef$curr === void 0 ? void 0 : (_prevMonthBtnRef$curr2 = _prevMonthBtnRef$curr.focus) === null || _prevMonthBtnRef$curr2 === void 0 ? void 0 : _prevMonthBtnRef$curr2.call(_prevMonthBtnRef$curr);
36
48
  }, 100);
37
49
  setShowCalendar(true);
38
- onPickerOpen();
39
- }, [focusedDay, onPickerOpen, prevMonthBtnRef, setShowCalendar]);
50
+ handleOnPickerOpen();
51
+ }, [focusedDay, handleOnPickerOpen, prevMonthBtnRef, setShowCalendar]);
40
52
  const closeCalendar = useCallback(() => {
41
53
  var _pickerButtonRef$curr, _pickerButtonRef$curr2;
42
54
 
@@ -13,7 +13,8 @@ const defaultCalendarWithTimeWheelContext = {
13
13
  handleToggleCalendarWithTimeWheel: noop,
14
14
  handleMenuWrapperKeyDown: noop,
15
15
  handlePickerIconKeyDown: noop,
16
- isControllerOnly: false
16
+ isControllerOnly: false,
17
+ disabled: false
17
18
  };
18
19
  /** Context for cross component communication */
19
20
 
@@ -1,12 +1,12 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext, useMemo } from 'react';
3
- import { DSIconColors } from '@elliemae/ds-icon';
4
3
  import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
5
- import DatePicker from '@elliemae/ds-icons/DatePicker';
4
+ import { DatePicker } from '@elliemae/ds-icons';
6
5
  import { CalendarWithTimeWheelContext } from './CalendarWithTimeWheelContext.js';
7
6
  import { StyledIconTriggerButton } from './Styleds.js';
8
7
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
9
8
 
9
+ var _DatePicker;
10
10
  // this is particularly useful due to how usePopper needs to check the references
11
11
  // since references are saved in a immutable way, we make sure to shortcircuit useless-re-renders
12
12
 
@@ -15,7 +15,8 @@ const CalendarWithTimeWheelIconTrigger = () => {
15
15
  handleSetTriggerRef,
16
16
  handleToggleCalendarWithTimeWheel,
17
17
  handlePickerIconKeyDown,
18
- ariaCurrentValueForInputs
18
+ ariaCurrentValueForInputs,
19
+ disabled
19
20
  } = useContext(CalendarWithTimeWheelContext);
20
21
  return useMemo(() => /*#__PURE__*/_jsx(StyledIconTriggerButton, {
21
22
  "aria-label": "date time picker context menu trigger, ".concat(ariaCurrentValueForInputs),
@@ -25,10 +26,9 @@ const CalendarWithTimeWheelIconTrigger = () => {
25
26
  innerRef: handleSetTriggerRef,
26
27
  onClick: handleToggleCalendarWithTimeWheel,
27
28
  onKeyDown: handlePickerIconKeyDown,
28
- "data-testid": ControlledDateTimePickerDatatestid.PICKER_ICONS.CALENDAR_TIMEWHEEL
29
- }, void 0, /*#__PURE__*/_jsx(DatePicker, {
30
- color: DSIconColors.PRIMARY
31
- })), [ariaCurrentValueForInputs, handlePickerIconKeyDown, handleSetTriggerRef, handleToggleCalendarWithTimeWheel]);
29
+ "data-testid": ControlledDateTimePickerDatatestid.PICKER_ICONS.CALENDAR_TIMEWHEEL,
30
+ disabled: disabled
31
+ }, void 0, _DatePicker || (_DatePicker = /*#__PURE__*/_jsx(DatePicker, {}))), [ariaCurrentValueForInputs, disabled, handlePickerIconKeyDown, handleSetTriggerRef, handleToggleCalendarWithTimeWheel]);
32
32
  };
33
33
 
34
34
  export { CalendarWithTimeWheelIconTrigger };
@@ -1,3 +1,8 @@
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';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
8
  import { useContext } from 'react';
@@ -4,35 +4,65 @@ import { CalendarContent } from '../Calendar/CalendarContent.js';
4
4
 
5
5
  const StyledIconTriggerButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
6
6
  componentId: "sc-h2xj8r-0"
7
- })(["color:", ";width:26px;height:26px;"], ({
8
- theme
9
- }) => theme.colors.brand['600']);
7
+ })(["color:", ";width:26px;height:26px;"], _ref => {
8
+ let {
9
+ theme
10
+ } = _ref;
11
+ return theme.colors.brand['600'];
12
+ });
10
13
  const StyledCalendarWithTimeWheelWrapper = /*#__PURE__*/styled.div.withConfig({
11
14
  componentId: "sc-h2xj8r-1"
12
- })(["background:", ";", " display:grid;grid-template-columns:260px 192px;grid-template-rows:1fr;column-gap:0;& > div:last-of-type{box-shadow:-1px 0 0 0 ", ";margin-left:1px;}"], ({
13
- theme
14
- }) => theme.colors.neutral['000'], ({
15
- isControllerOnly
16
- }) => isControllerOnly ? undefined : 'box-shadow: 0 6px 20px 0 rgb(0 0 0 / 24%), 0 8px 17px 0 rgb(0 0 0 / 19%);', ({
17
- theme
18
- }) => theme.colors.neutral[200]);
15
+ })(["background:", ";", " display:grid;grid-template-columns:260px 192px;grid-template-rows:1fr;column-gap:0;& > div:last-of-type{box-shadow:-1px 0 0 0 ", ";margin-left:1px;}"], _ref2 => {
16
+ let {
17
+ theme
18
+ } = _ref2;
19
+ return theme.colors.neutral['000'];
20
+ }, _ref3 => {
21
+ let {
22
+ isControllerOnly
23
+ } = _ref3;
24
+ return isControllerOnly ? undefined : 'box-shadow: 0 6px 20px 0 rgb(0 0 0 / 24%), 0 8px 17px 0 rgb(0 0 0 / 19%);';
25
+ }, _ref4 => {
26
+ let {
27
+ theme
28
+ } = _ref4;
29
+ return theme.colors.neutral[200];
30
+ });
19
31
  const StyledCalendar = /*#__PURE__*/styled(CalendarContent).withConfig({
20
32
  componentId: "sc-h2xj8r-2"
21
33
  })(["box-shadow:none;"]);
22
34
  const CalendarWithTimeWheelFooterMessage = /*#__PURE__*/styled.footer.withConfig({
23
35
  componentId: "sc-h2xj8r-3"
24
- })(["border-top:solid 1px ", ";margin:0 ", ";padding:", " 0;color:", ";font-style:italic;font-weight:", ";font-size:", ";text-align:right;grid-column:1/3;"], ({
25
- theme
26
- }) => theme.colors.neutral[300], ({
27
- theme
28
- }) => theme.space.xxs2, ({
29
- theme
30
- }) => theme.space.xxs2, ({
31
- theme
32
- }) => theme.colors.danger[900], ({
33
- theme
34
- }) => theme.fontWeights.thin, ({
35
- theme
36
- }) => theme.fontSizes.microText[200]);
36
+ })(["border-top:solid 1px ", ";margin:0 ", ";padding:", " 0;color:", ";font-style:italic;font-weight:", ";font-size:", ";text-align:right;grid-column:1/3;"], _ref5 => {
37
+ let {
38
+ theme
39
+ } = _ref5;
40
+ return theme.colors.neutral[300];
41
+ }, _ref6 => {
42
+ let {
43
+ theme
44
+ } = _ref6;
45
+ return theme.space.xxs2;
46
+ }, _ref7 => {
47
+ let {
48
+ theme
49
+ } = _ref7;
50
+ return theme.space.xxs2;
51
+ }, _ref8 => {
52
+ let {
53
+ theme
54
+ } = _ref8;
55
+ return theme.colors.danger[900];
56
+ }, _ref9 => {
57
+ let {
58
+ theme
59
+ } = _ref9;
60
+ return theme.fontWeights.thin;
61
+ }, _ref10 => {
62
+ let {
63
+ theme
64
+ } = _ref10;
65
+ return theme.fontSizes.microText[200];
66
+ });
37
67
 
38
68
  export { CalendarWithTimeWheelFooterMessage, StyledCalendar, StyledCalendarWithTimeWheelWrapper, StyledIconTriggerButton };
@@ -6,6 +6,7 @@ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePick
6
6
  import { useOnClickOutside } from '../../../utils/hooks/useOnClickOutside.js';
7
7
  import { CalendarContext } from '../Calendar/CalendarContext.js';
8
8
  import { TimeWheelContext } from '../TimeWheel/TimeWheelContext.js';
9
+ import { homeEndKeys } from '../../../utils/constants.js';
9
10
 
10
11
  const useConfigCalendarWithTimeWheelCTX = () => {
11
12
  const {
@@ -13,12 +14,17 @@ const useConfigCalendarWithTimeWheelCTX = () => {
13
14
  props: {
14
15
  type,
15
16
  onPickerOpen,
16
- onPickerClose
17
+ onPickerClose,
18
+ disabled
17
19
  },
18
20
  hideDate,
19
21
  hideTime,
20
22
  monthInputRef,
21
23
  hourInputRef,
24
+ withAnyInputs,
25
+ isWithTimeInputs,
26
+ meridiemInputRef,
27
+ yearInputRef,
22
28
  ariaCurrentValueForInputs
23
29
  } = useContext(ControlledDateTimePickerContext);
24
30
  const {
@@ -37,12 +43,16 @@ const useConfigCalendarWithTimeWheelCTX = () => {
37
43
  const {
38
44
  key
39
45
  } = e;
40
- const preventDefaultKeys = ['Home', 'End'];
41
- const stopPropagationKeys = ['Home', 'End'];
42
- if (preventDefaultKeys.includes(key)) e.preventDefault();
43
- if (stopPropagationKeys.includes(key)) e.stopPropagation();
46
+ if (homeEndKeys.includes(key)) e.preventDefault();
47
+ if (homeEndKeys.includes(key)) e.stopPropagation();
44
48
  if (key === 'Home') onHomeKeyDown();
45
- }, [onHomeKeyDown]);
49
+
50
+ if (key === 'Backspace' && withAnyInputs) {
51
+ var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
52
+
53
+ if (isWithTimeInputs) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);else yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
54
+ }
55
+ }, [isWithTimeInputs, meridiemInputRef, onHomeKeyDown, withAnyInputs, yearInputRef]);
46
56
  const [referenceElement, setReferenceElement] = useState(null);
47
57
  const [popperElement, setPopperElement] = useState(null);
48
58
  const [arrowElement, setArrowElement] = useState(null);
@@ -101,8 +111,9 @@ const useConfigCalendarWithTimeWheelCTX = () => {
101
111
  handleMenuWrapperKeyDown,
102
112
  handlePickerIconKeyDown,
103
113
  isControllerOnly,
114
+ disabled,
104
115
  ariaCurrentValueForInputs
105
- }), [showCalendarWithTimeWheel, usePopperHelpers, handleToggleCalendarWithTimeWheel, handleSetTriggerRef, handleMenuWrapperKeyDown, handlePickerIconKeyDown, isControllerOnly, ariaCurrentValueForInputs]);
116
+ }), [showCalendarWithTimeWheel, usePopperHelpers, handleToggleCalendarWithTimeWheel, handleSetTriggerRef, handleMenuWrapperKeyDown, handlePickerIconKeyDown, isControllerOnly, disabled, ariaCurrentValueForInputs]);
106
117
  };
107
118
 
108
119
  export { useConfigCalendarWithTimeWheelCTX };
@@ -1,5 +1,12 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
+ import 'core-js/modules/esnext.async-iterator.map.js';
4
+ import 'core-js/modules/esnext.iterator.map.js';
5
+ import 'core-js/modules/esnext.async-iterator.filter.js';
6
+ import 'core-js/modules/esnext.iterator.constructor.js';
7
+ import 'core-js/modules/esnext.iterator.filter.js';
8
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
9
+ import 'core-js/modules/esnext.iterator.for-each.js';
3
10
  import { useContext } from 'react';
4
11
  import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
5
12
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
@@ -63,6 +63,7 @@ const MeridiemList = () => {
63
63
  }, void 0, /*#__PURE__*/_jsx(StyledTimeBtn, {
64
64
  isCurrentListItem: isPmCurrent,
65
65
  "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM'],
66
+ selected: meridiem === 'PM',
66
67
  "aria-label": "PM ".concat(isPmCurrent ? 'selected' : ''),
67
68
  "aria-disabled": isDisabledPm,
68
69
  isDisabled: isDisabledPm,
@@ -1,5 +1,12 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
+ import 'core-js/modules/esnext.async-iterator.map.js';
4
+ import 'core-js/modules/esnext.iterator.map.js';
5
+ import 'core-js/modules/esnext.async-iterator.filter.js';
6
+ import 'core-js/modules/esnext.iterator.constructor.js';
7
+ import 'core-js/modules/esnext.iterator.filter.js';
8
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
9
+ import 'core-js/modules/esnext.iterator.for-each.js';
3
10
  import { useContext } from 'react';
4
11
  import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
5
12
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
@@ -1,9 +1,15 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
+ import 'core-js/modules/esnext.async-iterator.map.js';
4
+ import 'core-js/modules/esnext.iterator.map.js';
5
+ import 'core-js/modules/esnext.async-iterator.filter.js';
6
+ import 'core-js/modules/esnext.iterator.constructor.js';
7
+ import 'core-js/modules/esnext.iterator.filter.js';
8
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
9
+ import 'core-js/modules/esnext.iterator.for-each.js';
3
10
  import { useContext } from 'react';
4
- import DSButton, { BUTTON_VARIANT } from '@elliemae/ds-basic/Button';
5
- import ChevronSmallUp from '@elliemae/ds-icons/ChevronSmallUp';
6
- import ChevronSmallDown from '@elliemae/ds-icons/ChevronSmallDown';
11
+ import DSButton, { BUTTON_VARIANT } from '@elliemae/ds-button';
12
+ import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
7
13
  import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
8
14
  import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn } from './Styleds.js';
9
15
  import { TimeWheelContext } from './TimeWheelContext.js';