@elliemae/ds-controlled-form 2.4.1-rc.6 → 2.4.1

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 (170) hide show
  1. package/cjs/date-time-picker/ControlledDateTimePickerCTX.js +1 -114
  2. package/cjs/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  3. package/cjs/date-time-picker/config/useChangeHandlers.js +264 -0
  4. package/cjs/date-time-picker/config/useControlledDateTimePicker.js +37 -420
  5. package/cjs/date-time-picker/config/useGetDestructuredValues.js +25 -68
  6. package/cjs/date-time-picker/config/useGetFlags.js +173 -0
  7. package/cjs/date-time-picker/config/useGetPropsBasedOnType.js +101 -0
  8. package/cjs/date-time-picker/config/useGetPropsWithDefault.js +2 -3
  9. package/cjs/date-time-picker/config/useGetReferences.js +86 -0
  10. package/cjs/date-time-picker/config/useGlobalKeyHandlers.js +106 -0
  11. package/cjs/date-time-picker/config/useRelevantValueFromProps.js +39 -0
  12. package/cjs/date-time-picker/config/useValidateProps.js +47 -42
  13. package/cjs/date-time-picker/parts/ClearButton/ClearButton.js +20 -8
  14. package/cjs/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  15. package/cjs/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  16. package/cjs/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  17. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  18. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -49
  19. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  20. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  21. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +8 -4
  22. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  23. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  24. package/cjs/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  25. package/cjs/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +24 -122
  26. package/cjs/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +32 -4
  27. package/cjs/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  28. package/cjs/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  29. package/cjs/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  30. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +7 -3
  31. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  32. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +0 -1
  33. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  34. package/cjs/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  35. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +60 -33
  36. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  37. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  38. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  39. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -65
  40. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  41. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  42. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +18 -116
  43. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +52 -94
  44. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  45. package/cjs/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  46. package/cjs/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  47. package/cjs/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  48. package/cjs/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  49. package/cjs/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  50. package/cjs/date-time-picker/propTypes.js +56 -23
  51. package/cjs/date-time-picker/sharedTypes.js +2 -0
  52. package/cjs/date-time-picker/utils/dateHelpers.js +56 -56
  53. package/cjs/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  54. package/cjs/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +50 -47
  55. package/cjs/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  56. package/cjs/date-time-picker/utils/stringHelpers.js +8 -14
  57. package/cjs/date-time-picker/utils/typeGuards.js +14 -0
  58. package/esm/date-time-picker/ControlledDateTimePickerCTX.js +3 -115
  59. package/esm/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  60. package/esm/date-time-picker/config/useChangeHandlers.js +256 -0
  61. package/esm/date-time-picker/config/useControlledDateTimePicker.js +38 -421
  62. package/esm/date-time-picker/config/useGetDestructuredValues.js +21 -68
  63. package/esm/date-time-picker/config/useGetFlags.js +165 -0
  64. package/esm/date-time-picker/config/useGetPropsBasedOnType.js +97 -0
  65. package/esm/date-time-picker/config/useGetPropsWithDefault.js +1 -2
  66. package/esm/date-time-picker/config/useGetReferences.js +82 -0
  67. package/esm/date-time-picker/config/useGlobalKeyHandlers.js +98 -0
  68. package/esm/date-time-picker/config/useRelevantValueFromProps.js +35 -0
  69. package/esm/date-time-picker/config/useValidateProps.js +47 -42
  70. package/esm/date-time-picker/parts/ClearButton/ClearButton.js +20 -9
  71. package/esm/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  72. package/esm/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  73. package/esm/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  74. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  75. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +2 -50
  76. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  77. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  78. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +9 -5
  79. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  80. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  81. package/esm/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  82. package/esm/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +23 -125
  83. package/esm/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +33 -5
  84. package/esm/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  85. package/esm/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  86. package/esm/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  87. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +9 -5
  88. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  89. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -2
  90. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  91. package/esm/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  92. package/esm/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +59 -33
  93. package/esm/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  94. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  95. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  96. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -66
  97. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  98. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  99. package/esm/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +15 -117
  100. package/esm/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +54 -96
  101. package/esm/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  102. package/esm/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  103. package/esm/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  104. package/esm/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  105. package/esm/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  106. package/esm/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  107. package/esm/date-time-picker/propTypes.js +49 -17
  108. package/esm/date-time-picker/sharedTypes.js +1 -0
  109. package/esm/date-time-picker/utils/dateHelpers.js +57 -57
  110. package/esm/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  111. package/esm/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +46 -47
  112. package/esm/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  113. package/esm/date-time-picker/utils/stringHelpers.js +8 -14
  114. package/esm/date-time-picker/utils/typeGuards.js +8 -0
  115. package/package.json +47 -15
  116. package/types/date-time-picker/ControlledDateTimePicker.d.ts +25 -80
  117. package/types/date-time-picker/ControlledDateTimePickerCTX.d.ts +1 -2
  118. package/types/date-time-picker/ControlledDateTimePickerDatatestid.d.ts +46 -46
  119. package/types/date-time-picker/ControlledDateTimePickerTypes.d.ts +15 -15
  120. package/types/date-time-picker/config/useChangeHandlers.d.ts +25 -0
  121. package/types/date-time-picker/config/useControlledDateTimePicker.d.ts +18 -2
  122. package/types/date-time-picker/config/useGetDestructuredValues.d.ts +30 -4
  123. package/types/date-time-picker/config/useGetFlags.d.ts +27 -0
  124. package/types/date-time-picker/config/useGetPropsBasedOnType.d.ts +28 -0
  125. package/types/date-time-picker/config/useGetPropsWithDefault.d.ts +2 -2
  126. package/types/date-time-picker/config/useGetReferences.d.ts +39 -0
  127. package/types/date-time-picker/config/useGlobalKeyHandlers.d.ts +16 -0
  128. package/types/date-time-picker/config/useRelevantValueFromProps.d.ts +10 -0
  129. package/types/date-time-picker/config/useValidateProps.d.ts +2 -2
  130. package/types/date-time-picker/parts/ClearButton/useClearButton.d.ts +6 -6
  131. package/types/date-time-picker/parts/DateInputs/DDInput.d.ts +6 -6
  132. package/types/date-time-picker/parts/DateInputs/MMInput.d.ts +6 -6
  133. package/types/date-time-picker/parts/DateInputs/YYYYInput.d.ts +6 -6
  134. package/types/date-time-picker/parts/DateInputs/useDateInputs.d.ts +2 -2
  135. package/types/date-time-picker/parts/Pickers/Calendar/Calendar.d.ts +4 -2
  136. package/types/date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +3 -63
  137. package/types/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +4 -4
  138. package/types/date-time-picker/parts/Pickers/Calendar/CalendarFooter.d.ts +2 -2
  139. package/types/date-time-picker/parts/Pickers/Calendar/Day.d.ts +2 -2
  140. package/types/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.d.ts +15 -2
  141. package/types/date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +12 -5
  142. package/types/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +17 -11
  143. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -16
  144. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.d.ts +2 -2
  145. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.d.ts +15 -1
  146. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.d.ts +4 -2
  147. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +3 -62
  148. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelFooter.d.ts +2 -2
  149. package/types/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.d.ts +4 -1
  150. package/types/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.d.ts +16 -5
  151. package/types/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +18 -3
  152. package/types/date-time-picker/parts/TimeInputs/HHInput.d.ts +6 -6
  153. package/types/date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +6 -6
  154. package/types/date-time-picker/parts/TimeInputs/MinutesInput.d.ts +6 -6
  155. package/types/date-time-picker/parts/TimeInputs/useTimeInputs.d.ts +22 -2
  156. package/types/date-time-picker/parts/config.d.ts +3 -3
  157. package/types/date-time-picker/sharedTypes.d.ts +94 -0
  158. package/types/date-time-picker/utils/constants.d.ts +33 -33
  159. package/types/date-time-picker/utils/dateHelpers.d.ts +15 -14
  160. package/types/date-time-picker/utils/dateTimeHelpers.d.ts +3 -3
  161. package/types/date-time-picker/utils/hooks/useGetDayFromDateString.d.ts +1 -1
  162. package/types/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.d.ts +2 -2
  163. package/types/date-time-picker/utils/hooks/useGetStartingFocusedDay.d.ts +6 -6
  164. package/types/date-time-picker/utils/hooks/useOnClickOutside.d.ts +1 -1
  165. package/types/date-time-picker/utils/timeHelpers.d.ts +2 -2
  166. package/types/date-time-picker/utils/typeGuards.d.ts +4 -0
  167. package/types/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.d.ts +0 -2
  168. package/types/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +0 -12
  169. package/types/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +0 -2
  170. package/types/date-time-picker/propTypes.d.ts +0 -81
@@ -10,6 +10,7 @@ import 'core-js/modules/esnext.iterator.for-each.js';
10
10
  import { useContext } from 'react';
11
11
  import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
12
12
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
13
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
13
14
  import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
14
15
  import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn, StyledTimeBtn } from './Styleds.js';
15
16
  import { TimeWheelContext } from './TimeWheelContext.js';
@@ -22,22 +23,24 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
22
23
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
24
  const MinutesList = () => {
24
25
  const {
26
+ currHourNum,
25
27
  currMinuteNum,
26
- hours,
27
- minutes,
28
- meridiem,
28
+ currMeridiem,
29
29
  visibleMinutes,
30
30
  handlePrevMinute,
31
31
  handleNextMinute,
32
32
  handleTimeWheelBtnChangeMinutes,
33
33
  handlePrevMinuteBtnOnKeyDown,
34
34
  handleCurrMinutesOnKeyDown,
35
- handleNextMinuteBtnOnKeyDown,
35
+ handleNextMinuteBtnOnKeyDown
36
+ } = useContext(TimeWheelContext);
37
+ const {
36
38
  prevMinutesBtnRef,
37
39
  currMinutesBtnRef,
38
40
  nextMinutesBtnRef,
39
- getIsDisabledTime
40
- } = useContext(TimeWheelContext);
41
+ getIsDisabledTime,
42
+ minutes
43
+ } = useContext(ControlledDateTimePickerContext);
41
44
  return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
42
45
  "aria-label": "subtract one minute",
43
46
  buttonType: "raw",
@@ -48,9 +51,9 @@ const MinutesList = () => {
48
51
  tabIndex: -1,
49
52
  "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE
50
53
  }, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleMinutes.map(minutesString => {
51
- const key = "timewheel-minutes-".concat(minutesString);
54
+ const key = "timewheel-minutes-".concat(minutesString || '');
52
55
  if (!minutesString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
53
- const currMinutesTimeString = "".concat(hours || '01', ":").concat(minutesString, " ").concat(meridiem || 'AM');
56
+ const currMinutesTimeString = "".concat(currHourNum, ":").concat(minutesString, " ").concat(currMeridiem);
54
57
  const isEmptyCurrValueCurrentListItem = !minutes && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum;
55
58
  const isCurrentListItem = isEmptyCurrValueCurrentListItem || minutes === minutesString;
56
59
  const isDisabled = getIsDisabledTime(currMinutesTimeString);
@@ -59,23 +62,25 @@ const MinutesList = () => {
59
62
  onKeyDown: isCurrentListItem ? handleCurrMinutesOnKeyDown : undefined,
60
63
  innerRef: isCurrentListItem ? currMinutesBtnRef : undefined
61
64
  };
65
+ const styledProps = {
66
+ isCurrentListItem,
67
+ isDisabled
68
+ };
62
69
  return /*#__PURE__*/_jsx(StyledWheelListItem, {
63
70
  isCurrentListItem: isCurrentListItem,
64
71
  selected: convertToPositiveNumberIfPossible(minutesString) === currMinuteNum
65
- }, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({
66
- isCurrentListItem: isCurrentListItem,
72
+ }, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread(_objectSpread({}, styledProps), {}, {
67
73
  "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_MINUTE' : 'MINUTE'],
68
74
  selected: minutes.length === 2 && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum,
69
75
  "aria-label": "".concat(minutesString, " minutes"),
70
76
  "aria-disabled": isDisabled,
71
- isDisabled: isDisabled,
72
77
  buttonType: "raw",
73
78
  size: "m",
74
79
  onClick: e => handleTimeWheelBtnChangeMinutes(minutesString, e),
75
80
  tabIndex: tabIndex,
76
81
  role: "spinbutton",
77
- "aria-valuemax": "59",
78
- "aria-valuemin": "0",
82
+ "aria-valuemax": 59,
83
+ "aria-valuemin": 0,
79
84
  "aria-valuenow": currMinuteNum,
80
85
  "aria-valuetext": "".concat(minutesString, " minutes")
81
86
  }, btnProps), {}, {
@@ -4,10 +4,10 @@ import { TimeWheelIconTrigger } from './TimeWheelIconTrigger.js';
4
4
  import { TimeWheelWrapper } from './TimeWheelWrapper.js';
5
5
  import { TimeWheelContext } from './TimeWheelContext.js';
6
6
  import { useConfigTimePickerCTX } from './useConfigTimePickerCTX.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
9
 
9
- var _TimeWheelIconTrigger, _TimeWheelWrapper;
10
-
10
+ var _TimeWheelIconTrigger, _TimeWheelWrapper, _WrappedTimeWheelCont;
11
11
  const WrappedTimeWheelContext = _ref => {
12
12
  let {
13
13
  children
@@ -18,19 +18,14 @@ const WrappedTimeWheelContext = _ref => {
18
18
  }, void 0, children);
19
19
  };
20
20
 
21
- const WrapWithTimeWheelContext = Component => {
22
- var _WrappedTimeWheelCont;
23
-
24
- return () => _WrappedTimeWheelCont || (_WrappedTimeWheelCont = /*#__PURE__*/_jsx(WrappedTimeWheelContext, {}, void 0, /*#__PURE__*/_jsx(Component, {})));
25
- }; // we use the HoC to be able to use the useContext and be sure it's correctly initialized
26
- // the HoC is Reused in CalendarWithTimeWheel
27
-
28
- const TimeWheel = WrapWithTimeWheelContext(() => {
21
+ const TimeWheelContent = () => {
29
22
  const {
30
23
  showTimePicker,
31
- isControllerOnly,
32
24
  handleMenuWrapperKeyDown
33
25
  } = useContext(TimeWheelContext);
26
+ const {
27
+ isControllerOnly
28
+ } = useContext(ControlledDateTimePickerContext);
34
29
  return /*#__PURE__*/jsxs(Fragment, {
35
30
  children: [isControllerOnly ? null : _TimeWheelIconTrigger || (_TimeWheelIconTrigger = /*#__PURE__*/_jsx(TimeWheelIconTrigger, {})), isControllerOnly || showTimePicker ? /*#__PURE__*/jsx(Fragment, {
36
31
  children: /*#__PURE__*/_jsx("div", {
@@ -38,6 +33,9 @@ const TimeWheel = WrapWithTimeWheelContext(() => {
38
33
  }, void 0, _TimeWheelWrapper || (_TimeWheelWrapper = /*#__PURE__*/_jsx(TimeWheelWrapper, {})))
39
34
  }) : null]
40
35
  });
41
- });
36
+ }; // we wrap in context in a separate statement so we can use the useContext and be sure it's correctly initialized
37
+
38
+
39
+ const TimeWheel = () => _WrappedTimeWheelCont || (_WrappedTimeWheelCont = /*#__PURE__*/_jsx(WrappedTimeWheelContext, {}, void 0, /*#__PURE__*/_jsx(TimeWheelContent, {})));
42
40
 
43
- export { TimeWheel, WrapWithTimeWheelContext };
41
+ export { TimeWheel, WrappedTimeWheelContext };
@@ -1,6 +1,7 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import React, { useContext } from 'react';
3
3
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
4
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
4
5
  import { StyledTimePickerContainer, StyledTimePickerHead, StyledTimePickerWheelsLegend, StyledTimePickerWheelWrapper } from './Styleds.js';
5
6
  import { HoursList } from './HoursList.js';
6
7
  import { MinutesList } from './MinutesList.js';
@@ -16,9 +17,11 @@ const TimeWheelContent = /*#__PURE__*/React.memo(_ref => {
16
17
  const {
17
18
  hours,
18
19
  minutes,
19
- meridiem,
20
- isControllerOnly
20
+ meridiem
21
21
  } = useContext(TimeWheelContext);
22
+ const {
23
+ isControllerOnly
24
+ } = useContext(ControlledDateTimePickerContext);
22
25
  return /*#__PURE__*/_jsx(StyledTimePickerContainer, {
23
26
  showShadow: showShadow,
24
27
  isControllerOnly: isControllerOnly,
@@ -1,71 +1,7 @@
1
- import { createRef, createContext } from 'react';
1
+ import { createContext } from 'react';
2
2
 
3
3
  /* eslint-disable @typescript-eslint/indent */
4
-
5
- // eslint-disable-next-line @typescript-eslint/no-empty-function
6
- const noop = () => {};
7
-
8
- const defaultTimePickerContext = {
9
- ariaCurrentValueForInputs: '',
10
- tempTimeString: '',
11
- showTimePicker: false,
12
- setShowTimePicker: noop,
13
- setPopperElement: noop,
14
- setArrowElement: noop,
15
- usePopperHelpers: null,
16
- handleToggleTimePicker: noop,
17
- handleSetTriggerRef: noop,
18
- handleMenuWrapperKeyDown: noop,
19
- currHourNum: 1,
20
- hours: '01',
21
- visibleHours: [''],
22
- handlePrevHour: noop,
23
- handleNextHour: noop,
24
- handleTimeWheelBtnChangeHours: noop,
25
- currMinuteNum: 1,
26
- minutes: '00',
27
- visibleMinutes: [''],
28
- handlePrevMinute: noop,
29
- handleNextMinute: noop,
30
- handleTimeWheelBtnChangeMinutes: noop,
31
- // currSecondNum: 1,
32
- // seconds: '00',
33
- // visibleSeconds: [''],
34
- // handlePrevSecond: noop,
35
- // handleNextSecond: noop,
36
- // handleTimeWheelBtnChangeSeconds: noop,
37
- meridiem: 'AM',
38
- handleTimeWheelBtnChangeMeridiem: noop,
39
- isControllerOnly: false,
40
- autoFocusHourTimeWheel: false,
41
- handlePrevHourBtnOnKeyDown: noop,
42
- handleCurrHourOnKeyDown: noop,
43
- handleNextHourBtnOnKeyDown: noop,
44
- handlePrevMinuteBtnOnKeyDown: noop,
45
- handleCurrMinutesOnKeyDown: noop,
46
- handleNextMinuteBtnOnKeyDown: noop,
47
- // handlePrevSecondBtnOnKeyDown: noop,
48
- // handleCurrSecondsOnKeyDown: noop,
49
- // handleNextSecondBtnOnKeyDown: noop,
50
- handlePrevMeridiemBtnOnKeyDown: noop,
51
- handleCurrMeridiemOnKeyDown: noop,
52
- handleNextMeridiemBtnOnKeyDown: noop,
53
- handlePickerIconKeyDown: noop,
54
- prevHourBtnRef: /*#__PURE__*/createRef(),
55
- currHourBtnRef: /*#__PURE__*/createRef(),
56
- nextHourBtnRef: /*#__PURE__*/createRef(),
57
- prevMinutesBtnRef: /*#__PURE__*/createRef(),
58
- currMinutesBtnRef: /*#__PURE__*/createRef(),
59
- nextMinutesBtnRef: /*#__PURE__*/createRef(),
60
- // prevSecondsBtnRef: createRef<HTMLButtonElement>(),
61
- // currSecondsBtnRef: createRef<HTMLButtonElement>(),
62
- // nextSecondsBtnRef: createRef<HTMLButtonElement>(),
63
- prevMeridiemBtnRef: /*#__PURE__*/createRef(),
64
- currMeridiemBtnRef: /*#__PURE__*/createRef(),
65
- nextMeridiemBtnRef: /*#__PURE__*/createRef(),
66
- getIsDisabledTime: () => false,
67
- disabled: false
68
- };
4
+ const defaultTimePickerContext = {};
69
5
  /** Context for cross component communication */
70
6
 
71
7
  const TimeWheelContext = /*#__PURE__*/createContext(defaultTimePickerContext);
@@ -4,6 +4,7 @@ import { DSButtonV2, BUTTON_SIZES } from '@elliemae/ds-button';
4
4
  import { RecentDocuments } from '@elliemae/ds-icons';
5
5
  import { TimeWheelContext } from './TimeWheelContext.js';
6
6
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
 
8
9
  var _RecentDocuments;
9
10
  // this is particularly useful due to how usePopper needs to check the references
@@ -13,10 +14,14 @@ const TimeWheelIconTrigger = () => {
13
14
  const {
14
15
  handleSetTriggerRef,
15
16
  handleToggleTimePicker,
16
- handlePickerIconKeyDown,
17
- ariaCurrentValueForInputs,
18
- disabled
17
+ handlePickerIconKeyDown
19
18
  } = useContext(TimeWheelContext);
19
+ const {
20
+ props: {
21
+ disabled
22
+ },
23
+ ariaCurrentValueForInputs
24
+ } = useContext(ControlledDateTimePickerContext);
20
25
  return useMemo(() => /*#__PURE__*/_jsx(DSButtonV2, {
21
26
  "aria-label": "time picker context menu trigger, ".concat(ariaCurrentValueForInputs),
22
27
  buttonType: "icon",
@@ -7,6 +7,7 @@ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
8
8
  import { useContext } from 'react';
9
9
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
10
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
10
11
  import { TimeWheelContent } from './TimeWheelContent.js';
11
12
  import { TimeWheelContext } from './TimeWheelContext.js';
12
13
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -23,9 +24,11 @@ const TimeWheelWrapper = () => {
23
24
  usePopperHelpers: {
24
25
  styles,
25
26
  attributes
26
- },
27
- isControllerOnly
27
+ }
28
28
  } = useContext(TimeWheelContext);
29
+ const {
30
+ isControllerOnly
31
+ } = useContext(ControlledDateTimePickerContext);
29
32
  if (isControllerOnly) return _TimeWheelContent || (_TimeWheelContent = /*#__PURE__*/_jsx(TimeWheelContent, {
30
33
  showShadow: true
31
34
  }));
@@ -1,126 +1,24 @@
1
- import { useContext, useMemo } from 'react';
2
- import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
+ import { useMemo } from 'react';
3
8
  import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
4
9
  import { useCurrentDisplayedWheelsLogic } from './useCurrentDisplayedWheelsLogic.js';
5
10
  import { useKeyboardHandlers } from './useKeyboardHandlers.js';
6
11
 
7
- /* eslint-disable max-statements */
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
15
  const useConfigTimePickerCTX = () => {
9
- const {
10
- props: {
11
- minutesInterval,
12
- getIsDisabledTime,
13
- disabled
14
- },
15
- tempTimeString,
16
- prevHourBtnRef,
17
- currHourBtnRef,
18
- nextHourBtnRef,
19
- prevMinutesBtnRef,
20
- currMinutesBtnRef,
21
- nextMinutesBtnRef,
22
- prevMeridiemBtnRef,
23
- currMeridiemBtnRef,
24
- nextMeridiemBtnRef,
25
- isControllerOnly,
26
- autoFocusHourTimeWheel,
27
- ariaCurrentValueForInputs
28
- } = useContext(ControlledDateTimePickerContext);
29
- const {
30
- currHourNum,
31
- hours,
32
- visibleHours,
33
- handlePrevHour,
34
- handleNextHour,
35
- handleTimeWheelBtnChangeHours,
36
- currMinuteNum,
37
- minutes,
38
- visibleMinutes,
39
- handlePrevMinute,
40
- handleNextMinute,
41
- handleTimeWheelBtnChangeMinutes,
42
- meridiem,
43
- handleTimeWheelBtnChangeMeridiem
44
- } = useCurrentDisplayedWheelsLogic({
45
- minutesInterval
46
- });
47
- const {
48
- showTimePicker,
49
- setShowTimePicker,
50
- setPopperElement,
51
- setArrowElement,
52
- usePopperHelpers,
53
- handleToggleTimePicker,
54
- handleSetTriggerRef,
55
- handleMenuWrapperKeyDown
56
- } = usePopperTriggerLogic();
57
- const {
58
- handlePrevHourBtnOnKeyDown,
59
- handleCurrHourOnKeyDown,
60
- handleNextHourBtnOnKeyDown,
61
- handlePrevMinuteBtnOnKeyDown,
62
- handleCurrMinutesOnKeyDown,
63
- handleNextMinuteBtnOnKeyDown,
64
- handlePrevMeridiemBtnOnKeyDown,
65
- handleCurrMeridiemOnKeyDown,
66
- handleNextMeridiemBtnOnKeyDown,
67
- handlePickerIconKeyDown
68
- } = useKeyboardHandlers({
69
- handlePrevHour,
70
- handleNextHour,
71
- handlePrevMinute,
72
- handleNextMinute,
73
- handleTimeWheelBtnChangeMeridiem
16
+ const currentDisplayedTimeWheelLogic = useCurrentDisplayedWheelsLogic();
17
+ const popperLogic = usePopperTriggerLogic();
18
+ const keyboardHandlers = useKeyboardHandlers({
19
+ currentDisplayedTimeWheelLogic
74
20
  });
75
- return useMemo(() => ({
76
- tempTimeString,
77
- isControllerOnly,
78
- autoFocusHourTimeWheel,
79
- showTimePicker,
80
- setShowTimePicker,
81
- setPopperElement,
82
- setArrowElement,
83
- usePopperHelpers,
84
- handleToggleTimePicker,
85
- handleSetTriggerRef,
86
- handleMenuWrapperKeyDown,
87
- currHourNum,
88
- hours,
89
- visibleHours,
90
- handlePrevHour,
91
- handleNextHour,
92
- handleTimeWheelBtnChangeHours,
93
- currMinuteNum,
94
- minutes,
95
- visibleMinutes,
96
- handlePrevMinute,
97
- handleNextMinute,
98
- handleTimeWheelBtnChangeMinutes,
99
- meridiem,
100
- handleTimeWheelBtnChangeMeridiem,
101
- handlePrevHourBtnOnKeyDown,
102
- handleCurrHourOnKeyDown,
103
- handleNextHourBtnOnKeyDown,
104
- handlePrevMinuteBtnOnKeyDown,
105
- handleCurrMinutesOnKeyDown,
106
- handleNextMinuteBtnOnKeyDown,
107
- handlePrevMeridiemBtnOnKeyDown,
108
- handleCurrMeridiemOnKeyDown,
109
- handleNextMeridiemBtnOnKeyDown,
110
- handlePickerIconKeyDown,
111
- prevHourBtnRef,
112
- currHourBtnRef,
113
- nextHourBtnRef,
114
- prevMinutesBtnRef,
115
- currMinutesBtnRef,
116
- nextMinutesBtnRef,
117
- prevMeridiemBtnRef,
118
- currMeridiemBtnRef,
119
- nextMeridiemBtnRef,
120
- getIsDisabledTime,
121
- ariaCurrentValueForInputs,
122
- disabled
123
- }), [tempTimeString, isControllerOnly, autoFocusHourTimeWheel, showTimePicker, setShowTimePicker, setPopperElement, setArrowElement, usePopperHelpers, handleToggleTimePicker, handleSetTriggerRef, handleMenuWrapperKeyDown, currHourNum, hours, visibleHours, handlePrevHour, handleNextHour, handleTimeWheelBtnChangeHours, currMinuteNum, minutes, visibleMinutes, handlePrevMinute, handleNextMinute, handleTimeWheelBtnChangeMinutes, meridiem, handleTimeWheelBtnChangeMeridiem, handlePrevHourBtnOnKeyDown, handleCurrHourOnKeyDown, handleNextHourBtnOnKeyDown, handlePrevMinuteBtnOnKeyDown, handleCurrMinutesOnKeyDown, handleNextMinuteBtnOnKeyDown, handlePrevMeridiemBtnOnKeyDown, handleCurrMeridiemOnKeyDown, handleNextMeridiemBtnOnKeyDown, handlePickerIconKeyDown, prevHourBtnRef, currHourBtnRef, nextHourBtnRef, prevMinutesBtnRef, currMinutesBtnRef, nextMinutesBtnRef, prevMeridiemBtnRef, currMeridiemBtnRef, nextMeridiemBtnRef, getIsDisabledTime, ariaCurrentValueForInputs, disabled]);
21
+ return useMemo(() => _objectSpread(_objectSpread(_objectSpread({}, currentDisplayedTimeWheelLogic), popperLogic), keyboardHandlers), [currentDisplayedTimeWheelLogic, popperLogic, keyboardHandlers]);
124
22
  };
125
23
 
126
24
  export { useConfigTimePickerCTX };
@@ -1,9 +1,10 @@
1
1
  import 'core-js/modules/esnext.async-iterator.map.js';
2
2
  import 'core-js/modules/esnext.iterator.map.js';
3
- import { useMemo, useCallback } from 'react';
3
+ import { useContext, useMemo, useCallback } from 'react';
4
4
  import { useTimeInputs } from '../../TimeInputs/useTimeInputs.js';
5
5
  import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
6
- import { prependStringWithPlaceHolders } from '../../../utils/stringHelpers.js';
6
+ import { deconstructValuesFromTimeString, prependStringWithPlaceHolders } from '../../../utils/stringHelpers.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
 
8
9
  const totalHoursList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
9
10
  const hoursInterval = 1; // using this just to unify the logic between how hours and minutes are handled
@@ -16,78 +17,75 @@ const getTotalMinuteListWithStep = function () {
16
17
  return new Array(length).fill('_').map((_v, i) => prependStringWithPlaceHolders("".concat(i * step), 2));
17
18
  };
18
19
 
19
- const useCurrentDisplayedWheelsLogic = _ref => {
20
- let {
21
- minutesInterval
22
- } = _ref;
20
+ const useCurrentDisplayedWheelsLogic = () => {
23
21
  const {
22
+ minutesInterval,
23
+ onTimeWheelOpenStartingTime,
24
24
  hours,
25
25
  minutes,
26
- // seconds,
27
- meridiem = 'AM',
26
+ meridiem
27
+ } = useContext(ControlledDateTimePickerContext);
28
+ const {
28
29
  handleChangeHours,
29
30
  handleChangeMinutes,
30
- // handleChangeSeconds,
31
31
  handleChangeMeridiem
32
32
  } = useTimeInputs();
33
+ const {
34
+ startingHours,
35
+ startingMinutes,
36
+ startingMeridiem
37
+ } = useMemo(() => {
38
+ const startingVals = deconstructValuesFromTimeString(onTimeWheelOpenStartingTime);
39
+ return {
40
+ startingHours: startingVals.hours,
41
+ startingMinutes: startingVals.minutes,
42
+ startingMeridiem: startingVals.meridiem
43
+ };
44
+ }, [onTimeWheelOpenStartingTime]);
33
45
  const currHourNum = useMemo(() => {
34
46
  const hoursAsNum = convertToPositiveNumberIfPossible(hours);
35
- if (hoursAsNum === -1) return 1;
36
- return hoursAsNum;
37
- }, [hours]);
47
+
48
+ if (hours && hoursAsNum !== -1) {
49
+ return hoursAsNum;
50
+ }
51
+
52
+ const startingHoursAsNum = convertToPositiveNumberIfPossible(startingHours);
53
+ if (startingHoursAsNum === -1) return 1;
54
+ return startingHoursAsNum;
55
+ }, [hours, startingHours]);
38
56
  const currMinuteNum = useMemo(() => {
39
57
  const minutesAsNum = convertToPositiveNumberIfPossible(minutes);
40
- if (minutesAsNum === -1) return 0;
41
- return minutesAsNum;
42
- }, [minutes]);
58
+
59
+ if (minutes && minutesAsNum !== -1) {
60
+ return minutesAsNum;
61
+ }
62
+
63
+ const startingMinutesAsNum = convertToPositiveNumberIfPossible(startingMinutes);
64
+ if (startingMinutesAsNum === -1) return 0;
65
+ return startingMinutesAsNum;
66
+ }, [minutes, startingMinutes]);
67
+ const currMeridiem = useMemo(() => {
68
+ if (meridiem !== '') return meridiem;
69
+ if (startingMeridiem !== '') return startingMeridiem;
70
+ return 'AM';
71
+ }, [meridiem, startingMeridiem]);
43
72
  const totalMinutesList = useMemo(() => getTotalMinuteListWithStep(minutesInterval), [minutesInterval]);
44
73
  const currMinuteIndex = useMemo(() => Math.floor(currMinuteNum / minutesInterval), [currMinuteNum, minutesInterval]);
45
- const currHoursIndex = useMemo(() => Math.floor(currHourNum / hoursInterval) - hoursStartPositionOffset, [currHourNum]); // const currSecondNum = useMemo(() => {
46
- // const secondsAsNum = convertToPositiveNumberIfPossible(seconds);
47
- // if (secondsAsNum === -1) return 0;
48
- // return secondsAsNum;
49
- // }, [seconds]);
50
-
74
+ const currHoursIndex = useMemo(() => Math.floor(currHourNum / hoursInterval) - hoursStartPositionOffset, [currHourNum]);
51
75
  const visibleHours = useMemo(() => {
52
- const newHours = []; // if (currHoursIndex >= 2) newHours.push(totalHoursList[currHoursIndex - 2]);
53
- // else newHours.push(null);
54
-
76
+ const newHours = [];
55
77
  if (currHoursIndex >= 1) newHours.push(totalHoursList[currHoursIndex - 1]);else newHours.push(null);
56
78
  newHours.push(totalHoursList[currHoursIndex]);
57
- if (currHoursIndex <= 11) newHours.push(totalHoursList[currHoursIndex + 1]);else newHours.push(null); // if (currHoursIndex <= 10) newHours.push(totalHoursList[currHoursIndex + 2]);
58
- // else newHours.push(null);
59
-
79
+ if (currHoursIndex <= 11) newHours.push(totalHoursList[currHoursIndex + 1]);else newHours.push(null);
60
80
  return newHours;
61
81
  }, [currHoursIndex]);
62
82
  const visibleMinutes = useMemo(() => {
63
- const newMinutes = []; // if (currMinuteIndex >= 2)
64
- // newMinutes.push(totalMinutesList[currMinuteIndex - 2]);
65
- // else newMinutes.push(null);
66
-
83
+ const newMinutes = [];
67
84
  if (currMinuteIndex >= 1) newMinutes.push(totalMinutesList[currMinuteIndex - 1]);else newMinutes.push(null);
68
85
  newMinutes.push(totalMinutesList[currMinuteIndex]);
69
- if (currMinuteIndex < totalMinutesList.length) newMinutes.push(totalMinutesList[currMinuteIndex + 1]);else newMinutes.push(null); // if (currMinuteIndex < totalMinutesList.length -1)
70
- // newMinutes.push(totalMinutesList[currMinuteIndex + 2]);
71
- // else newMinutes.push(null);
72
-
86
+ if (currMinuteIndex < totalMinutesList.length) newMinutes.push(totalMinutesList[currMinuteIndex + 1]);else newMinutes.push(null);
73
87
  return newMinutes;
74
- }, [currMinuteIndex, totalMinutesList]); // const visibleSeconds = useMemo(() => {
75
- // const newSeconds = [];
76
- // if (currSecondNum >= 3)
77
- // newSeconds.push(totalMinutesList[currSecondNum - 3]);
78
- // else newSeconds.push(null);
79
- // if (currSecondNum >= 2)
80
- // newSeconds.push(totalMinutesList[currSecondNum - 2]);
81
- // else newSeconds.push(null);
82
- // newSeconds.push(totalMinutesList[currSecondNum - 1]);
83
- // if (currSecondNum <= 59) newSeconds.push(totalMinutesList[currSecondNum]);
84
- // else newSeconds.push(null);
85
- // if (currSecondNum <= 58)
86
- // newSeconds.push(totalMinutesList[currSecondNum + 1]);
87
- // else newSeconds.push(null);
88
- // return newSeconds;
89
- // }, [currSecondNum]);
90
-
88
+ }, [currMinuteIndex, totalMinutesList]);
91
89
  const handleTimeWheelBtnChangeHours = useCallback((newHours, e) => {
92
90
  handleChangeHours(newHours, e);
93
91
  }, [handleChangeHours]);
@@ -113,64 +111,24 @@ const useCurrentDisplayedWheelsLogic = _ref => {
113
111
  }, [handleChangeCurrMinute, minutesInterval]);
114
112
  const handleNextMinute = useCallback(e => {
115
113
  handleChangeCurrMinute(minutesInterval, e);
116
- }, [handleChangeCurrMinute, minutesInterval]); // const handleTimeWheelBtnChangeSeconds = useCallback(
117
- // (newSeconds, e) => {
118
- // handleChangeSeconds(newSeconds, e);
119
- // },
120
- // [handleChangeSeconds],
121
- // );
122
- // const handleChangeCurrSecond = useCallback(
123
- // (offset, e) => {
124
- // const newS = currSecondNum + offset;
125
- // if (newS >= 0 && newS <= 59)
126
- // handleChangeSeconds(prependStringWithPlaceHolders(`${newS}`, 2), e);
127
- // },
128
- // [currSecondNum, handleChangeSeconds],
129
- // );
130
- // const handlePrevSecond = useCallback(
131
- // (e) => {
132
- // handleChangeCurrSecond(-1, e);
133
- // },
134
- // [handleChangeCurrSecond],
135
- // );
136
- // const handleNextSecond = useCallback(
137
- // (e) => {
138
- // handleChangeCurrSecond(1, e);
139
- // },
140
- // [handleChangeCurrSecond],
141
- // );
142
-
114
+ }, [handleChangeCurrMinute, minutesInterval]);
143
115
  const handleTimeWheelBtnChangeMeridiem = useCallback((newMeridiem, e) => {
144
116
  handleChangeMeridiem(newMeridiem, e);
145
117
  }, [handleChangeMeridiem]);
146
118
  return useMemo(() => ({
147
119
  currHourNum,
148
- hours,
149
120
  visibleHours,
150
121
  handlePrevHour,
151
122
  handleNextHour,
152
123
  handleTimeWheelBtnChangeHours,
153
124
  currMinuteNum,
154
- minutes,
155
125
  visibleMinutes,
156
126
  handlePrevMinute,
157
127
  handleNextMinute,
158
128
  handleTimeWheelBtnChangeMinutes,
159
- // currSecondNum,
160
- // seconds,
161
- // visibleSeconds,
162
- // handlePrevSecond,
163
- // handleNextSecond,
164
- // handleTimeWheelBtnChangeSeconds,
165
- meridiem,
166
- handleTimeWheelBtnChangeMeridiem
167
- }), [currHourNum, currMinuteNum, // currSecondNum,
168
- handleNextHour, handleNextMinute, // handleNextSecond,
169
- handlePrevHour, handlePrevMinute, // handlePrevSecond,
170
- handleTimeWheelBtnChangeHours, handleTimeWheelBtnChangeMeridiem, handleTimeWheelBtnChangeMinutes, // handleTimeWheelBtnChangeSeconds,
171
- hours, meridiem, minutes, // seconds,
172
- visibleHours, visibleMinutes // visibleSeconds,
173
- ]);
129
+ handleTimeWheelBtnChangeMeridiem,
130
+ currMeridiem
131
+ }), [currHourNum, currMinuteNum, currMeridiem, handleNextHour, handleNextMinute, handlePrevHour, handlePrevMinute, handleTimeWheelBtnChangeHours, handleTimeWheelBtnChangeMeridiem, handleTimeWheelBtnChangeMinutes, visibleHours, visibleMinutes]);
174
132
  };
175
133
 
176
134
  export { useCurrentDisplayedWheelsLogic };
@@ -5,12 +5,15 @@ import { homeEndKeys, homeEndAllArrowKeys } from '../../../utils/constants.js';
5
5
  /* eslint-disable @typescript-eslint/indent */
6
6
  const useKeyboardHandlers = _ref => {
7
7
  let {
8
+ currentDisplayedTimeWheelLogic
9
+ } = _ref;
10
+ const {
8
11
  handlePrevHour,
9
12
  handleNextHour,
10
13
  handlePrevMinute,
11
14
  handleNextMinute,
12
15
  handleTimeWheelBtnChangeMeridiem
13
- } = _ref;
16
+ } = currentDisplayedTimeWheelLogic;
14
17
  const {
15
18
  withAnyInputs,
16
19
  isWithTimeInputs,
@@ -47,7 +47,7 @@ const usePopperTriggerLogic = () => {
47
47
  useOnClickOutside(popperElement, e => {
48
48
  var _pickerButtonRef$curr, _pickerButtonRef$curr2;
49
49
 
50
- if (!(pickerButtonRef !== null && pickerButtonRef !== void 0 && (_pickerButtonRef$curr = pickerButtonRef.current) !== null && _pickerButtonRef$curr !== void 0 && (_pickerButtonRef$curr2 = _pickerButtonRef$curr.contains) !== null && _pickerButtonRef$curr2 !== void 0 && _pickerButtonRef$curr2.call(_pickerButtonRef$curr, e === null || e === void 0 ? void 0 : e.target))) closeTimePicker();
50
+ if (e.target instanceof Element && !(pickerButtonRef !== null && pickerButtonRef !== void 0 && (_pickerButtonRef$curr = pickerButtonRef.current) !== null && _pickerButtonRef$curr !== void 0 && (_pickerButtonRef$curr2 = _pickerButtonRef$curr.contains) !== null && _pickerButtonRef$curr2 !== void 0 && _pickerButtonRef$curr2.call(_pickerButtonRef$curr, e === null || e === void 0 ? void 0 : e.target))) closeTimePicker();
51
51
  });
52
52
  const handleSetTriggerRef = useCallback(newRef => {
53
53
  pickerButtonRef.current = newRef;
@@ -25,9 +25,7 @@ const HHInput = /*#__PURE__*/React.memo(_ref => {
25
25
  autoFocusHourInput
26
26
  } = _ref;
27
27
  const validateOnChange = useCallback(e => {
28
- var _e$target;
29
-
30
- if (isInvalidHour(e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value)) {
28
+ if (isInvalidHour(e.target.value)) {
31
29
  e.preventDefault();
32
30
  return;
33
31
  }