@elliemae/ds-controlled-form 2.4.1-rc.5 → 2.4.1-rc.9

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