@elliemae/ds-controlled-form 2.0.0-next.9 → 2.0.0-rc.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/cjs/controlled-checkbox/ControlledCheckbox.js +11 -4
  2. package/cjs/controlled-checkbox/config/useValidateProps.js +2 -2
  3. package/cjs/controlled-checkbox/propTypes.js +5 -4
  4. package/cjs/controlled-checkbox/styles.js +84 -48
  5. package/cjs/controlled-checkbox/utils/setMultipleRefs.js +4 -0
  6. package/cjs/controlled-checkbox/utils/styleHelpers.js +13 -7
  7. package/cjs/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
  8. package/cjs/controlled-date-range-picker/config/useControlledDateRangePicker.js +19 -3
  9. package/cjs/controlled-date-range-picker/config/useRangePickerLogic.js +20 -12
  10. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +7 -0
  11. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +29 -8
  12. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +7 -0
  13. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +7 -0
  14. package/cjs/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
  15. package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
  16. package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +154 -13
  17. package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +19 -16
  18. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +5 -6
  19. package/cjs/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
  20. package/cjs/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +35 -14
  21. package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +15 -11
  22. package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  23. package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +16 -12
  24. package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +15 -11
  25. package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +101 -33
  26. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
  27. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
  28. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
  29. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  30. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
  31. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -17
  32. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +10 -11
  33. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
  34. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +20 -10
  35. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +326 -117
  36. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +8 -43
  37. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +47 -21
  38. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +59 -58
  39. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +25 -13
  40. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
  41. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +10 -11
  42. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
  43. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +55 -25
  44. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +18 -7
  45. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +7 -0
  46. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +1 -0
  47. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +7 -0
  48. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -7
  49. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +201 -80
  50. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
  51. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -3
  52. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
  53. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +10 -11
  54. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
  55. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
  56. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +8 -5
  57. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +64 -141
  58. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +11 -7
  59. package/cjs/controlled-date-time-picker/parts/Styleds.js +70 -26
  60. package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +16 -12
  61. package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +15 -11
  62. package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +15 -11
  63. package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
  64. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +95 -173
  65. package/cjs/controlled-date-time-picker/propTypes.js +1 -0
  66. package/cjs/controlled-date-time-picker/utils/constants.js +16 -0
  67. package/cjs/controlled-date-time-picker/utils/dateHelpers.js +34 -16
  68. package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
  69. package/cjs/controlled-date-time-picker/utils/stringHelpers.js +23 -14
  70. package/cjs/controlled-date-time-picker/utils/timeHelpers.js +2 -1
  71. package/cjs/controlled-toggle/ControlledToggle.js +21 -15
  72. package/cjs/controlled-toggle/styles.js +138 -69
  73. package/cjs/controlled-toggle/utils/addTooltipOnReadOnly.js +2 -2
  74. package/cjs/controlled-toggle/utils/styleHelpers.js +15 -9
  75. package/esm/controlled-checkbox/ControlledCheckbox.js +11 -4
  76. package/esm/controlled-checkbox/config/useValidateProps.js +2 -2
  77. package/esm/controlled-checkbox/propTypes.js +5 -4
  78. package/esm/controlled-checkbox/styles.js +84 -48
  79. package/esm/controlled-checkbox/utils/setMultipleRefs.js +4 -0
  80. package/esm/controlled-checkbox/utils/styleHelpers.js +13 -7
  81. package/esm/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
  82. package/esm/controlled-date-range-picker/config/useControlledDateRangePicker.js +15 -3
  83. package/esm/controlled-date-range-picker/config/useRangePickerLogic.js +20 -12
  84. package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +7 -0
  85. package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +28 -8
  86. package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +7 -0
  87. package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +7 -0
  88. package/esm/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
  89. package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
  90. package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +156 -15
  91. package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +19 -16
  92. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +1 -1
  93. package/esm/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
  94. package/esm/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +34 -14
  95. package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +15 -11
  96. package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  97. package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +16 -12
  98. package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +15 -11
  99. package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +101 -33
  100. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
  101. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
  102. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
  103. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  104. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
  105. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +1 -4
  106. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +7 -7
  107. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
  108. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +20 -10
  109. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +321 -113
  110. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +8 -43
  111. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +48 -22
  112. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +60 -59
  113. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +26 -14
  114. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
  115. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +7 -7
  116. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
  117. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +53 -23
  118. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +18 -7
  119. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +7 -0
  120. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +1 -0
  121. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +7 -0
  122. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -3
  123. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +196 -76
  124. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
  125. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -3
  126. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
  127. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +7 -7
  128. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
  129. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
  130. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +8 -5
  131. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +65 -142
  132. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +12 -8
  133. package/esm/controlled-date-time-picker/parts/Styleds.js +68 -24
  134. package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +16 -12
  135. package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +15 -11
  136. package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +15 -11
  137. package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
  138. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +96 -170
  139. package/esm/controlled-date-time-picker/propTypes.js +1 -0
  140. package/esm/controlled-date-time-picker/utils/constants.js +10 -1
  141. package/esm/controlled-date-time-picker/utils/dateHelpers.js +34 -17
  142. package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
  143. package/esm/controlled-date-time-picker/utils/stringHelpers.js +23 -14
  144. package/esm/controlled-date-time-picker/utils/timeHelpers.js +2 -1
  145. package/esm/controlled-toggle/ControlledToggle.js +21 -15
  146. package/esm/controlled-toggle/styles.js +138 -69
  147. package/esm/controlled-toggle/utils/addTooltipOnReadOnly.js +1 -1
  148. package/esm/controlled-toggle/utils/styleHelpers.js +15 -9
  149. package/package.json +21 -12
  150. package/types/controlled-checkbox/ControlledCheckbox.d.ts +60 -9
  151. package/types/controlled-checkbox/config/useValidateProps.d.ts +1 -1
  152. package/types/controlled-checkbox/index.d.d.ts +1 -0
  153. package/types/controlled-checkbox/propTypes.d.ts +55 -8
  154. package/types/controlled-checkbox/styles.d.ts +4 -4
  155. package/types/controlled-checkbox/tests/DSControlledCheckbox.keyboard.test.d.ts +1 -0
  156. package/types/controlled-checkbox/tests/DSControlledCheckbox.test.d.ts +1 -0
  157. package/types/controlled-checkbox/tests/DSControllledCheckbox.events.test.d.ts +1 -0
  158. package/types/controlled-date-range-picker/ControlledDateRangePicker.d.ts +12 -2
  159. package/types/controlled-date-range-picker/ControlledDateRangePickerDatatestid.d.ts +1 -18
  160. package/types/controlled-date-range-picker/propTypes.d.ts +7 -1
  161. package/types/controlled-date-range-picker/tests/date-range-picker.auto-advance.test.d.ts +1 -0
  162. package/types/controlled-date-range-picker/tests/date-range-picker.classes.test.d.ts +1 -0
  163. package/types/controlled-date-range-picker/tests/date-range-picker.clear-button.test.d.ts +1 -0
  164. package/types/controlled-date-range-picker/tests/date-range-picker.keyboard-focus.test.d.ts +1 -0
  165. package/types/controlled-date-range-picker/tests/date-range-picker.manual-delete-values.test.d.ts +1 -0
  166. package/types/controlled-date-range-picker/tests/date-range-picker.types-dom.test.d.ts +1 -0
  167. package/types/controlled-date-time-picker/ControlledDateTimePicker.d.ts +81 -21
  168. package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +3 -0
  169. package/types/controlled-date-time-picker/parts/DateInputs/DDInput.d.ts +2 -1
  170. package/types/controlled-date-time-picker/parts/DateInputs/MMInput.d.ts +2 -1
  171. package/types/controlled-date-time-picker/parts/DateInputs/YYYYInput.d.ts +2 -1
  172. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +2 -1
  173. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +10 -70
  174. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +1 -3
  175. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +2 -17
  176. package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +3 -6
  177. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -0
  178. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +4 -24
  179. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +10 -70
  180. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
  181. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +3 -12
  182. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +1 -10
  183. package/types/controlled-date-time-picker/parts/Styleds.d.ts +10 -30
  184. package/types/controlled-date-time-picker/parts/TimeInputs/HHInput.d.ts +2 -1
  185. package/types/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +2 -1
  186. package/types/controlled-date-time-picker/parts/TimeInputs/MinutesInput.d.ts +2 -1
  187. package/types/controlled-date-time-picker/propTypes.d.ts +76 -20
  188. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.data-entry-typing.test.d.ts +1 -0
  189. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.fill-with-now.test.d.ts +1 -0
  190. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.regressive-backspace.test.d.ts +1 -0
  191. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.shortcut-clear.test.d.ts +1 -0
  192. package/types/controlled-date-time-picker/utils/constants.d.ts +9 -0
  193. package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +1 -0
  194. package/types/controlled-toggle/ControlledToggle.d.ts +78 -13
  195. package/types/controlled-toggle/propTypes.d.ts +73 -12
  196. package/types/controlled-toggle/styles.d.ts +7 -7
  197. package/cjs/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -53
  198. package/esm/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -45
  199. package/types/controlled-date-time-picker/parts/TimeInputs/SSInput.d.ts +0 -13
@@ -2,29 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
5
  var React = require('react');
7
6
  var ControlledDateTimePickerCTX = require('../../ControlledDateTimePickerCTX.js');
7
+ var constants = require('../../utils/constants.js');
8
8
  var stringHelpers = require('../../utils/stringHelpers.js');
9
- var timeHelpers = require('../../utils/timeHelpers.js');
10
9
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
14
-
15
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
-
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10
+ /* eslint-disable complexity */
18
11
  const useTimeInputs = () => {
19
12
  const {
20
13
  props: {
21
- onHourChange: appOnHourChange,
22
- onMinuteChange: appOnMinuteChange,
23
- // onSecondsChange: appOnSecondsChange,
24
- onMeridiemChange: appOnMeridiemChange,
25
- getIsDisabledTime,
26
- minutesInterval
14
+ minutesInterval,
15
+ disabled
27
16
  },
17
+ lastSegmentRef,
28
18
  hours,
29
19
  minutes,
30
20
  meridiem,
@@ -32,15 +22,18 @@ const useTimeInputs = () => {
32
22
  withAnyRightController,
33
23
  withAnyPicker,
34
24
  withClearBtn,
25
+ isWithDateInputs,
35
26
  hourInputRef,
36
27
  minutesInputRef,
37
- // secondsInputRef,
38
28
  meridiemInputRef,
29
+ yearInputRef,
39
30
  clearButtonRef,
40
31
  pickerButtonRef,
41
32
  monthInputRef,
42
33
  autoFocusHourInput,
43
- handleChangeComposedTimeString,
34
+ handleChangeHours,
35
+ handleChangeMinutes,
36
+ handleChangeMeridiem,
44
37
  setLatestInteractionRegion
45
38
  } = React.useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
46
39
  const setLatestInteractionRegionTimeInputs = React.useCallback(() => {
@@ -56,23 +49,6 @@ const useTimeInputs = () => {
56
49
 
57
50
  if (withAnyPicker) pickerButtonRef === null || pickerButtonRef === void 0 ? void 0 : (_pickerButtonRef$curr = pickerButtonRef.current) === null || _pickerButtonRef$curr === void 0 ? void 0 : (_pickerButtonRef$curr2 = _pickerButtonRef$curr.focus) === null || _pickerButtonRef$curr2 === void 0 ? void 0 : _pickerButtonRef$curr2.call(_pickerButtonRef$curr);else if (withClearBtn) clearButtonRef === null || clearButtonRef === void 0 ? void 0 : (_clearButtonRef$curre = clearButtonRef.current) === null || _clearButtonRef$curre === void 0 ? void 0 : (_clearButtonRef$curre2 = _clearButtonRef$curre.focus) === null || _clearButtonRef$curre2 === void 0 ? void 0 : _clearButtonRef$curre2.call(_clearButtonRef$curre);else meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);
58
51
  }, [withAnyPicker, pickerButtonRef, withClearBtn, clearButtonRef, meridiemInputRef]);
59
- const handleChangeHours = React.useCallback((newHours, e, metaInfo = {
60
- isAutomaticFillTrigger: false
61
- }) => {
62
- const newTimeString = stringHelpers.getFormattedTimeString({
63
- hours: newHours,
64
- minutes,
65
- // seconds,
66
- meridiem
67
- });
68
-
69
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
70
- newTimeString
71
- });
72
-
73
- appOnHourChange(newHours, e, finalMetaInfo);
74
- handleChangeComposedTimeString(newTimeString, finalMetaInfo);
75
- }, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
76
52
  const onHoursFocus = React.useCallback(() => {
77
53
  setLatestInteractionRegionTimeInputs();
78
54
  }, [setLatestInteractionRegionTimeInputs]);
@@ -87,25 +63,46 @@ const useTimeInputs = () => {
87
63
  if (newHours.length === 2) minutesInputRef === null || minutesInputRef === void 0 ? void 0 : (_minutesInputRef$curr = minutesInputRef.current) === null || _minutesInputRef$curr === void 0 ? void 0 : (_minutesInputRef$curr2 = _minutesInputRef$curr.focus) === null || _minutesInputRef$curr2 === void 0 ? void 0 : _minutesInputRef$curr2.call(_minutesInputRef$curr);
88
64
  }, [minutesInputRef, handleChangeHours]);
89
65
  const onHoursKeyDown = React.useCallback(e => {
66
+ var _lastSegmentRef$curre, _lastSegmentRef$curre2;
67
+
90
68
  const {
91
- key
69
+ key,
70
+ ctrlKey,
71
+ metaKey
92
72
  } = e;
93
- const preventDefaultKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
94
- const stopPropagationKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
95
- if (preventDefaultKeys.includes(key)) e.preventDefault();
96
- if (stopPropagationKeys.includes(key)) e.stopPropagation();
73
+ const hoursStringConvertedToInteger = Number.parseInt(hours, 10);
74
+ if (constants.homeEndArrowUpDownSemiKeys.includes(key)) e.preventDefault();
75
+ if (constants.homeEndArrowUpDownSemiKeys.includes(key)) e.stopPropagation();
97
76
  if (key === 'Home') onHomeKeyDown();
98
77
  if (key === 'End') onEndKeyDown();
99
78
 
100
79
  if (key === 'ArrowUp' || key === 'ArrowDown') {
101
- const hoursStringConvertedToInteger = Number.parseInt(hours, 10);
102
80
  const hoursInteger = Number.isNaN(hoursStringConvertedToInteger) ? 0 : hoursStringConvertedToInteger;
103
81
  let newHours;
104
82
  if (key === 'ArrowUp') newHours = hoursInteger + 1 <= 12 ? hoursInteger + 1 : hoursInteger;else newHours = hoursInteger - 1 > 1 ? hoursInteger - 1 : 1;
105
83
  newHours = stringHelpers.prependStringWithPlaceHolders("".concat(newHours), 2);
106
84
  handleChangeHours(newHours, e);
107
85
  }
108
- }, [onHomeKeyDown, onEndKeyDown, handleChangeHours, hours]);
86
+
87
+ if (!Number.isNaN(hoursStringConvertedToInteger) && key === ':') {
88
+ var _minutesInputRef$curr3, _minutesInputRef$curr4;
89
+
90
+ const newHours = stringHelpers.prependStringWithPlaceHolders("".concat(hoursStringConvertedToInteger), 2);
91
+ handleChangeHours(newHours, e); // auto-advance functionality:
92
+
93
+ if (newHours.length === 2) minutesInputRef === null || minutesInputRef === void 0 ? void 0 : (_minutesInputRef$curr3 = minutesInputRef.current) === null || _minutesInputRef$curr3 === void 0 ? void 0 : (_minutesInputRef$curr4 = _minutesInputRef$curr3.focus) === null || _minutesInputRef$curr4 === void 0 ? void 0 : _minutesInputRef$curr4.call(_minutesInputRef$curr3);
94
+ } // regressive backspace functionality
95
+
96
+
97
+ if (key === 'Backspace' && hours.length === 0 && isWithDateInputs) {
98
+ var _yearInputRef$current, _yearInputRef$current2;
99
+
100
+ yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
101
+ } // focus last fragment on fill with now
102
+
103
+
104
+ if ((ctrlKey || metaKey) && key === ';') lastSegmentRef === null || lastSegmentRef === void 0 ? void 0 : (_lastSegmentRef$curre = lastSegmentRef.current) === null || _lastSegmentRef$curre === void 0 ? void 0 : (_lastSegmentRef$curre2 = _lastSegmentRef$curre.focus) === null || _lastSegmentRef$curre2 === void 0 ? void 0 : _lastSegmentRef$curre2.call(_lastSegmentRef$curre);
105
+ }, [hours, onHomeKeyDown, onEndKeyDown, isWithDateInputs, lastSegmentRef, handleChangeHours, minutesInputRef, yearInputRef]);
109
106
  const onHoursBlur = React.useCallback(e => {
110
107
  var _e$target2;
111
108
 
@@ -116,23 +113,6 @@ const useTimeInputs = () => {
116
113
  isAutomaticFillTrigger: true
117
114
  });
118
115
  }, [handleChangeHours]);
119
- const handleChangeMinutes = React.useCallback((newMinutes, e, metaInfo = {
120
- isAutomaticFillTrigger: false
121
- }) => {
122
- const newTimeString = stringHelpers.getFormattedTimeString({
123
- hours,
124
- minutes: newMinutes,
125
- // seconds,
126
- meridiem
127
- });
128
-
129
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
130
- newTimeString
131
- });
132
-
133
- appOnMinuteChange(newMinutes, e, finalMetaInfo);
134
- handleChangeComposedTimeString(newTimeString, finalMetaInfo);
135
- }, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
136
116
  const onMinutesFocus = React.useCallback(() => {
137
117
  setLatestInteractionRegionTimeInputs();
138
118
  }, [setLatestInteractionRegionTimeInputs]);
@@ -148,25 +128,47 @@ const useTimeInputs = () => {
148
128
  if (newMinutes.length === 2) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur3 = meridiemInputRef.current) === null || _meridiemInputRef$cur3 === void 0 ? void 0 : (_meridiemInputRef$cur4 = _meridiemInputRef$cur3.focus) === null || _meridiemInputRef$cur4 === void 0 ? void 0 : _meridiemInputRef$cur4.call(_meridiemInputRef$cur3);
149
129
  }, [meridiemInputRef, handleChangeMinutes]);
150
130
  const onMinutesKeyDown = React.useCallback(e => {
131
+ var _lastSegmentRef$curre3, _lastSegmentRef$curre4;
132
+
151
133
  const {
152
- key
134
+ key,
135
+ ctrlKey,
136
+ metaKey
153
137
  } = e;
154
- const preventDefaultKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
155
- const stopPropagationKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
156
- if (preventDefaultKeys.includes(key)) e.preventDefault();
157
- if (stopPropagationKeys.includes(key)) e.stopPropagation();
138
+ const minutesStringConvertedToInteger = Number.parseInt(minutes, 10);
139
+ if (constants.homeEndArrowUpDownSpaceKeys.includes(key)) e.preventDefault();
140
+ if (constants.homeEndArrowUpDownSpaceKeys.includes(key)) e.stopPropagation();
158
141
  if (key === 'Home') onHomeKeyDown();
159
142
  if (key === 'End') onEndKeyDown();
160
143
 
161
144
  if (key === 'ArrowUp' || key === 'ArrowDown') {
162
- const minutesStringConvertedToInteger = Number.parseInt(minutes, 10);
163
145
  const minutesInteger = Number.isNaN(minutesStringConvertedToInteger) ? 0 : minutesStringConvertedToInteger;
164
146
  let newMinutes;
165
147
  if (key === 'ArrowUp') newMinutes = minutesInteger + minutesInterval <= 59 ? minutesInteger + minutesInterval : minutesInteger;else newMinutes = minutesInteger - minutesInterval > 0 ? minutesInteger - minutesInterval : 0;
166
148
  newMinutes = stringHelpers.prependStringWithPlaceHolders("".concat(newMinutes), 2);
167
149
  handleChangeMinutes(newMinutes, e);
168
150
  }
169
- }, [onHomeKeyDown, onEndKeyDown, minutes, minutesInterval, handleChangeMinutes]);
151
+
152
+ if (!Number.isNaN(minutesStringConvertedToInteger) && key === ' ') {
153
+ var _meridiemInputRef$cur5, _meridiemInputRef$cur6;
154
+
155
+ const newMinutes = stringHelpers.prependStringWithPlaceHolders("".concat(minutesStringConvertedToInteger), 2);
156
+ handleChangeMinutes(newMinutes, e); // auto-advance functionality:
157
+ // if (newMinutes.length === 2) secondsInputRef?.current?.focus?.();
158
+
159
+ if (newMinutes.length === 2) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur5 = meridiemInputRef.current) === null || _meridiemInputRef$cur5 === void 0 ? void 0 : (_meridiemInputRef$cur6 = _meridiemInputRef$cur5.focus) === null || _meridiemInputRef$cur6 === void 0 ? void 0 : _meridiemInputRef$cur6.call(_meridiemInputRef$cur5);
160
+ } // regressive backspace functionality
161
+
162
+
163
+ if (key === 'Backspace' && (minutes === null || minutes === void 0 ? void 0 : minutes.length) === 0) {
164
+ var _hourInputRef$current3, _hourInputRef$current4;
165
+
166
+ hourInputRef === null || hourInputRef === void 0 ? void 0 : (_hourInputRef$current3 = hourInputRef.current) === null || _hourInputRef$current3 === void 0 ? void 0 : (_hourInputRef$current4 = _hourInputRef$current3.focus) === null || _hourInputRef$current4 === void 0 ? void 0 : _hourInputRef$current4.call(_hourInputRef$current3);
167
+ } // focus last fragment on fill with now
168
+
169
+
170
+ if ((ctrlKey || metaKey) && key === ';') lastSegmentRef === null || lastSegmentRef === void 0 ? void 0 : (_lastSegmentRef$curre3 = lastSegmentRef.current) === null || _lastSegmentRef$curre3 === void 0 ? void 0 : (_lastSegmentRef$curre4 = _lastSegmentRef$curre3.focus) === null || _lastSegmentRef$curre4 === void 0 ? void 0 : _lastSegmentRef$curre4.call(_lastSegmentRef$curre3);
171
+ }, [minutes, onHomeKeyDown, onEndKeyDown, lastSegmentRef, minutesInterval, handleChangeMinutes, meridiemInputRef, hourInputRef]);
170
172
  const onMinutesBlur = React.useCallback(e => {
171
173
  var _e$target4;
172
174
 
@@ -174,119 +176,50 @@ const useTimeInputs = () => {
174
176
  if (newMinutes.length > 0 && newMinutes.length < 2) handleChangeMinutes(stringHelpers.prependStringWithPlaceHolders(newMinutes, 2), e, {
175
177
  isAutomaticFillTrigger: true
176
178
  });
177
- }, [handleChangeMinutes]); // const handleChangeSeconds: handleOnChangeFuncT = useCallback(
178
- // (newSeconds, e, metaInfo = { isAutomaticFillTrigger: false }) => {
179
- // const newTimeString = getFormattedTimeString({
180
- // hours,
181
- // minutes,
182
- // seconds: newSeconds,
183
- // meridiem,
184
- // });
185
- // appOnSecondsChange(newSeconds, e, metaInfo);
186
- // handleChangeComposedTimeString(newTimeString, metaInfo);
187
- // },
188
- // [
189
- // hours,
190
- // minutes,
191
- // meridiem,
192
- // appOnSecondsChange,
193
- // handleChangeComposedTimeString,
194
- // ],
195
- // );
196
- // const onSecondsFocus: onFocusFuncT = useCallback(
197
- // (e) => {
198
- // setLatestInteractionRegionTimeInputs();
199
- // },
200
- // [setLatestInteractionRegionTimeInputs],
201
- // );
202
- // const onSecondsChange: onChangeFuncT = useCallback(
203
- // (e) => {
204
- // let newSeconds = e?.target?.value;
205
- // // converts seconds 7~9 to 07~09
206
- // if (Number.parseInt(newSeconds, 10) > 6)
207
- // newSeconds = prependStringWithPlaceHolders(newSeconds, 2);
208
- // handleChangeSeconds(newSeconds, e);
209
- // // auto-advance functionality:
210
- // if (newSeconds.length === 2) meridiemInputRef?.current?.focus?.();
211
- // },
212
- // [meridiemInputRef, handleChangeSeconds],
213
- // );
214
- // const onSecondsKeyDown: onKeyDownT = useCallback(
215
- // (e) => {
216
- // const { key } = e;
217
- // const preventDefaultKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
218
- // if (preventDefaultKeys.includes(key)) e.preventDefault();
219
- // if (key === 'Home') onHomeKeyDown();
220
- // if (key === 'End') onEndKeyDown();
221
- // if (key === 'ArrowUp' || key === 'ArrowDown') {
222
- // const secondsStringConvertedToInteger = Number.parseInt(seconds, 10);
223
- // const secondsInteger = Number.isNaN(secondsStringConvertedToInteger) ? 0 : secondsStringConvertedToInteger;
224
- // let newSeconds;
225
- // if (key === 'ArrowUp') newSeconds = secondsInteger + 1 <= 59 ? secondsInteger + 1 : secondsInteger;
226
- // else newSeconds = secondsInteger - 1 > 0 ? secondsInteger - 1 : 1;
227
- // newSeconds = prependStringWithPlaceHolders(`${newSeconds}`, 2);
228
- // handleChangeSeconds(newSeconds, e);
229
- // }
230
- // },
231
- // [onHomeKeyDown, onEndKeyDown,handleChangeSeconds,newSeconds],
232
- // );
233
- // const onSecondsBlur: onBlurFuncT = useCallback(
234
- // (e) => {
235
- // const newSeconds = e?.target?.value;
236
- // if (newSeconds.length > 0 && newSeconds.length < 2)
237
- // handleChangeSeconds(prependStringWithPlaceHolders(newSeconds, 2), e, {
238
- // isAutomaticFillTrigger: true,
239
- // });
240
- // },
241
- // [handleChangeSeconds],
242
- // );
243
-
244
- const handleChangeMeridiem = React.useCallback((newMeridiem, e, metaInfo = {
245
- isAutomaticFillTrigger: false
246
- }) => {
247
- const newTimeString = stringHelpers.getFormattedTimeString({
248
- hours,
249
- minutes,
250
- // seconds,
251
- meridiem: newMeridiem
252
- });
253
-
254
- const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
255
- newTimeString
256
- });
257
-
258
- appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
259
- handleChangeComposedTimeString(newTimeString, finalMetaInfo);
260
- }, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
179
+ }, [handleChangeMinutes]);
261
180
  const onMeridiemFocus = React.useCallback(() => {
262
181
  setLatestInteractionRegionTimeInputs();
263
182
  }, [setLatestInteractionRegionTimeInputs]);
264
183
  const onMeridiemChange = React.useCallback(e => {
265
184
  var _e$target5, _e$target5$value, _e$target5$value$toUp;
266
185
 
267
- let newMeridiem = e === null || e === void 0 ? void 0 : (_e$target5 = e.target) === null || _e$target5 === void 0 ? void 0 : (_e$target5$value = _e$target5.value) === null || _e$target5$value === void 0 ? void 0 : (_e$target5$value$toUp = _e$target5$value.toUpperCase) === null || _e$target5$value$toUp === void 0 ? void 0 : _e$target5$value$toUp.call(_e$target5$value);
268
- if (newMeridiem.length === 1) newMeridiem = "".concat(newMeridiem, "M");
186
+ let newMeridiem = e === null || e === void 0 ? void 0 : (_e$target5 = e.target) === null || _e$target5 === void 0 ? void 0 : (_e$target5$value = _e$target5.value) === null || _e$target5$value === void 0 ? void 0 : (_e$target5$value$toUp = _e$target5$value.toUpperCase) === null || _e$target5$value$toUp === void 0 ? void 0 : _e$target5$value$toUp.call(_e$target5$value); // if new value is length 1,
187
+ // if previous value was empty, auto-complete
188
+ // if previous value was not empty, set to empty (regressive backspace)
189
+
190
+ if (newMeridiem.length === 1) if (meridiem === '') newMeridiem = "".concat(newMeridiem, "M");else newMeridiem = '';
269
191
  handleChangeMeridiem(newMeridiem, e); // auto-advance functionality:
270
192
 
271
193
  if (newMeridiem.length === 2 && withAnyRightController) {
272
194
  var _clearButtonRef$curre3, _clearButtonRef$curre4, _pickerButtonRef$curr3, _pickerButtonRef$curr4;
273
195
 
274
- if (withClearBtn) (_clearButtonRef$curre3 = clearButtonRef.current) === null || _clearButtonRef$curre3 === void 0 ? void 0 : (_clearButtonRef$curre4 = _clearButtonRef$curre3.focus) === null || _clearButtonRef$curre4 === void 0 ? void 0 : _clearButtonRef$curre4.call(_clearButtonRef$curre3);else if (withAnyPicker) pickerButtonRef === null || pickerButtonRef === void 0 ? void 0 : (_pickerButtonRef$curr3 = pickerButtonRef.current) === null || _pickerButtonRef$curr3 === void 0 ? void 0 : (_pickerButtonRef$curr4 = _pickerButtonRef$curr3.focus) === null || _pickerButtonRef$curr4 === void 0 ? void 0 : _pickerButtonRef$curr4.call(_pickerButtonRef$curr3); // pending approval from Seda, check which one should be focused first...
196
+ if (withClearBtn) (_clearButtonRef$curre3 = clearButtonRef.current) === null || _clearButtonRef$curre3 === void 0 ? void 0 : (_clearButtonRef$curre4 = _clearButtonRef$curre3.focus) === null || _clearButtonRef$curre4 === void 0 ? void 0 : _clearButtonRef$curre4.call(_clearButtonRef$curre3);else if (withAnyPicker) pickerButtonRef === null || pickerButtonRef === void 0 ? void 0 : (_pickerButtonRef$curr3 = pickerButtonRef.current) === null || _pickerButtonRef$curr3 === void 0 ? void 0 : (_pickerButtonRef$curr4 = _pickerButtonRef$curr3.focus) === null || _pickerButtonRef$curr4 === void 0 ? void 0 : _pickerButtonRef$curr4.call(_pickerButtonRef$curr3);
275
197
  }
276
- }, [handleChangeMeridiem, withAnyRightController, withAnyPicker, pickerButtonRef, withClearBtn, clearButtonRef]);
198
+ }, [meridiem, handleChangeMeridiem, withAnyRightController, withClearBtn, clearButtonRef, withAnyPicker, pickerButtonRef]);
277
199
  const onMeridiemKeyDown = React.useCallback(e => {
200
+ var _lastSegmentRef$curre5, _lastSegmentRef$curre6;
201
+
278
202
  const {
279
- key
203
+ key,
204
+ ctrlKey,
205
+ metaKey
280
206
  } = e;
281
- const preventDefaultKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
282
- const stopPropagationKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
283
- if (preventDefaultKeys.includes(key)) e.preventDefault();
284
- if (stopPropagationKeys.includes(key)) e.stopPropagation();
207
+ if (constants.homeEndArrowUpDownKeys.includes(key)) e.preventDefault();
208
+ if (constants.homeEndArrowUpDownKeys.includes(key)) e.stopPropagation();
285
209
  if (key === 'Home') onHomeKeyDown();
286
210
  if (key === 'End') onEndKeyDown();
287
211
  if (key === 'ArrowUp' && meridiem !== 'AM') handleChangeMeridiem('AM', e);
288
- if (key === 'ArrowDown' && meridiem !== 'PM') handleChangeMeridiem('PM', e);
289
- }, [onHomeKeyDown, onEndKeyDown, handleChangeMeridiem, meridiem]);
212
+ if (key === 'ArrowDown' && meridiem !== 'PM') handleChangeMeridiem('PM', e); // regressive backspace functionality
213
+
214
+ if (key === 'Backspace') {
215
+ var _minutesInputRef$curr5, _minutesInputRef$curr6;
216
+
217
+ if ((meridiem === null || meridiem === void 0 ? void 0 : meridiem.length) === 2) handleChangeMeridiem('', e);else minutesInputRef === null || minutesInputRef === void 0 ? void 0 : (_minutesInputRef$curr5 = minutesInputRef.current) === null || _minutesInputRef$curr5 === void 0 ? void 0 : (_minutesInputRef$curr6 = _minutesInputRef$curr5.focus) === null || _minutesInputRef$curr6 === void 0 ? void 0 : _minutesInputRef$curr6.call(_minutesInputRef$curr5);
218
+ } // focus last fragment on fill with now
219
+
220
+
221
+ if ((ctrlKey || metaKey) && key === ';') lastSegmentRef === null || lastSegmentRef === void 0 ? void 0 : (_lastSegmentRef$curre5 = lastSegmentRef.current) === null || _lastSegmentRef$curre5 === void 0 ? void 0 : (_lastSegmentRef$curre6 = _lastSegmentRef$curre5.focus) === null || _lastSegmentRef$curre6 === void 0 ? void 0 : _lastSegmentRef$curre6.call(_lastSegmentRef$curre5);
222
+ }, [onHomeKeyDown, onEndKeyDown, meridiem, handleChangeMeridiem, lastSegmentRef, minutesInputRef]);
290
223
  const onMeridiemBlur = React.useCallback(e => {
291
224
  var _e$target6, _e$target6$value, _e$target6$value$toUp;
292
225
 
@@ -298,36 +231,25 @@ const useTimeInputs = () => {
298
231
  return React.useMemo(() => ({
299
232
  hours,
300
233
  minutes,
301
- // seconds,
302
234
  meridiem,
303
235
  autoFocusHourInput,
236
+ disabled,
304
237
  handleChangeHours,
305
238
  onHoursFocus,
306
239
  onHoursChange,
307
240
  handleChangeMinutes,
308
241
  onMinutesFocus,
309
242
  onMinutesChange,
310
- // handleChangeSeconds,
311
- // onSecondsFocus,
312
- // onSecondsChange,
313
243
  handleChangeMeridiem,
314
244
  onMeridiemFocus,
315
245
  onMeridiemChange,
316
246
  onHoursBlur,
317
247
  onMinutesBlur,
318
- // onSecondsBlur,
319
248
  onMeridiemBlur,
320
249
  onHoursKeyDown,
321
250
  onMinutesKeyDown,
322
- // onSecondsKeyDown,
323
251
  onMeridiemKeyDown
324
- }), [hours, minutes, // seconds,
325
- meridiem, autoFocusHourInput, handleChangeHours, onHoursFocus, onHoursChange, handleChangeMinutes, onMinutesFocus, onMinutesChange, // handleChangeSeconds,
326
- // onSecondsFocus,
327
- // onSecondsChange,
328
- handleChangeMeridiem, onMeridiemFocus, onMeridiemChange, onHoursBlur, onMinutesBlur, // onSecondsBlur,
329
- onMeridiemBlur, onHoursKeyDown, onMinutesKeyDown, // onSecondsKeyDown,
330
- onMeridiemKeyDown]);
252
+ }), [hours, minutes, meridiem, autoFocusHourInput, disabled, handleChangeHours, onHoursFocus, onHoursChange, handleChangeMinutes, onMinutesFocus, onMinutesChange, handleChangeMeridiem, onMeridiemFocus, onMeridiemChange, onHoursBlur, onMinutesBlur, onMeridiemBlur, onHoursKeyDown, onMinutesKeyDown, onMeridiemKeyDown]);
331
253
  };
332
254
 
333
255
  exports.useTimeInputs = useTimeInputs;
@@ -6,6 +6,7 @@ var reactDesc = require('react-desc');
6
6
 
7
7
  const propTypes = {
8
8
  type: reactDesc.PropTypes.oneOf(['full-date-time', 'date-time-inputs', 'date-time-picker', 'date-time-picker-controller-only', 'full-date', 'date-inputs', 'date-picker', 'date-picker-controller-only', 'full-time', 'time-inputs', 'time-picker', 'time-picker-controller-only']).description('Type of time form control to use').defaultValue('full-date-time'),
9
+ disabled: reactDesc.PropTypes.bool.description('wheter or not the input is disabled').defaultValue('false'),
9
10
  isClearable: reactDesc.PropTypes.bool.description('with or without clearable button').defaultValue('false'),
10
11
  dateTime: reactDesc.PropTypes.string.description('when using date-time types, this is the value of the controller'),
11
12
  date: reactDesc.PropTypes.string.description('when using date types, this is the value of the controller'),
@@ -37,7 +37,23 @@ const announcableCardinalDays = {
37
37
  30: 'thirtieth',
38
38
  31: 'thirty first'
39
39
  };
40
+ const homeEndAllArrowKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];
41
+ const homeEndKeys = ['Home', 'End'];
42
+ const homeEndArrowUpDownDashSlashesKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\'];
43
+ const homeEndArrowUpDownSpaceKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown', ' '];
44
+ const homeEndArrowUpDownSemiKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown', ':'];
45
+ const homeEndArrowUpDownKeys = ['Home', 'End', 'ArrowUp', 'ArrowDown'];
46
+ const defaultMetaInfo = {
47
+ isAutomaticFillTrigger: false
48
+ };
40
49
 
41
50
  exports.announcableCardinalDays = announcableCardinalDays;
51
+ exports.defaultMetaInfo = defaultMetaInfo;
52
+ exports.homeEndAllArrowKeys = homeEndAllArrowKeys;
53
+ exports.homeEndArrowUpDownDashSlashesKeys = homeEndArrowUpDownDashSlashesKeys;
54
+ exports.homeEndArrowUpDownKeys = homeEndArrowUpDownKeys;
55
+ exports.homeEndArrowUpDownSemiKeys = homeEndArrowUpDownSemiKeys;
56
+ exports.homeEndArrowUpDownSpaceKeys = homeEndArrowUpDownSpaceKeys;
57
+ exports.homeEndKeys = homeEndKeys;
42
58
  exports.monthNames = monthNames;
43
59
  exports.weekDays = weekDays;
@@ -2,6 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.js');
5
7
  require('core-js/modules/web.dom-collections.iterator.js');
6
8
  var React = require('react');
7
9
  var constants = require('./constants.js');
@@ -26,9 +28,9 @@ const isValidDayForTheMonthDateString = dateString => {
26
28
  const monthDateMonth = monthInt - 1;
27
29
  return ((_getDayFromDateString = getDayFromDateString(dateString)) === null || _getDayFromDateString === void 0 ? void 0 : (_getDayFromDateString2 = _getDayFromDateString.getMonth) === null || _getDayFromDateString2 === void 0 ? void 0 : _getDayFromDateString2.call(_getDayFromDateString)) === monthDateMonth;
28
30
  };
29
- const getValidationDateStringMetaInfo = (dateString, // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
- getIsOutOfRangeDay = day => false, // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
- getIsDisabledDay = day => false) => {
31
+ const getValidationDateStringMetaInfo = function (dateString) {
32
+ let getIsOutOfRangeDay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : day => false;
33
+ let getIsDisabledDay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : day => false;
32
34
  const metaInfo = {};
33
35
 
34
36
  if (!stringHelpers.isIncompleteString(dateString)) {
@@ -63,15 +65,17 @@ const dateAddMonths = (date, value) => {
63
65
  };
64
66
  const dateAddYear = (date, value) => dateAddMonths(date, value * 12);
65
67
  // sumFromDateValues supports negative values to "subtract"
66
- const sumFromDateValues = ({
67
- month,
68
- year,
69
- day = 1
70
- }, {
71
- monthsToSum = 0,
72
- yearsToSum = 0,
73
- daysToSum = 0
74
- }) => {
68
+ const sumFromDateValues = (_ref, _ref2) => {
69
+ let {
70
+ month,
71
+ year,
72
+ day = 1
73
+ } = _ref;
74
+ let {
75
+ monthsToSum = 0,
76
+ yearsToSum = 0,
77
+ daysToSum = 0
78
+ } = _ref2;
75
79
  let newDate = new Date(year, month, day);
76
80
  if (yearsToSum) newDate = dateAddYear(newDate, yearsToSum);
77
81
  if (monthsToSum) newDate = dateAddMonths(newDate, monthsToSum);
@@ -91,22 +95,26 @@ const sumValuesToDate = (day, sumValues) => {
91
95
  } = sumFromDateValues(dateAsVals, sumValues);
92
96
  return new Date(year, month, newD);
93
97
  };
94
- const subtractYears = (date, howManyMore = 1) => {
98
+ const subtractYears = function (date) {
99
+ let howManyMore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
95
100
  const newDate = new Date(date.getTime());
96
101
  newDate.setFullYear(date.getFullYear() - howManyMore);
97
102
  return newDate;
98
103
  };
99
- const subtractMonths = (date, howManyMore = 1) => {
104
+ const subtractMonths = function (date) {
105
+ let howManyMore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
100
106
  const newDate = new Date(date.getTime());
101
107
  newDate.setMonth(date.getMonth() - howManyMore);
102
108
  return newDate;
103
109
  };
104
- const sumMonths = (date, howManyMore = 1) => {
110
+ const sumMonths = function (date) {
111
+ let howManyMore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
105
112
  const newDate = new Date(date.getTime());
106
113
  newDate.setMonth(date.getMonth() + howManyMore);
107
114
  return newDate;
108
115
  };
109
- const sumYears = (date, howManyMore = 1) => {
116
+ const sumYears = function (date) {
117
+ let howManyMore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
110
118
  const newDate = new Date(date.getTime());
111
119
  newDate.setFullYear(date.getFullYear() + howManyMore);
112
120
  return newDate;
@@ -194,6 +202,15 @@ const getDateStringFromDay = day => {
194
202
  const yearFromDay = stringHelpers.prependStringWithPlaceHolders("".concat(day.getFullYear()), 4);
195
203
  return "".concat(monthFromDay, "/").concat(dayFromDay, "/").concat(yearFromDay);
196
204
  };
205
+ const getTimeStringFromDay = day => {
206
+ const hoursNum = day.getHours();
207
+ const meridiem = hoursNum > 12 ? 'PM' : 'AM';
208
+ const twelveHourFormat = hoursNum > 12 ? hoursNum - 12 : hoursNum;
209
+ const minutesNum = day.getMinutes();
210
+ const hoursFromDay = stringHelpers.prependStringWithPlaceHolders("".concat(twelveHourFormat), 2);
211
+ const minutesFromDay = stringHelpers.prependStringWithPlaceHolders("".concat(minutesNum), 2);
212
+ return "".concat(hoursFromDay, ":").concat(minutesFromDay, " ").concat(meridiem);
213
+ };
197
214
  const getDayFromDateString = dateString => {
198
215
  const {
199
216
  month,
@@ -241,6 +258,7 @@ exports.getHowManyDaysInMonth = getHowManyDaysInMonth;
241
258
  exports.getLastDayOfMonth = getLastDayOfMonth;
242
259
  exports.getLastXDaysFromPreviousMonth = getLastXDaysFromPreviousMonth;
243
260
  exports.getMonthNameByMonthNumber = getMonthNameByMonthNumber;
261
+ exports.getTimeStringFromDay = getTimeStringFromDay;
244
262
  exports.getValidationDateStringMetaInfo = getValidationDateStringMetaInfo;
245
263
  exports.isLeapYear = isLeapYear;
246
264
  exports.isSameDateMoment = isSameDateMoment;
@@ -2,6 +2,11 @@
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');
5
10
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
11
  var dateHelpers = require('./dateHelpers.js');
7
12
  var timeHelpers = require('./timeHelpers.js');
@@ -2,6 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.js');
5
7
  require('core-js/modules/web.dom-collections.iterator.js');
6
8
  require('core-js/modules/es.string.replace.js');
7
9
  var constants = require('./constants.js');
@@ -9,21 +11,24 @@ var numberHelpers = require('./numberHelpers.js');
9
11
 
10
12
  /* eslint-disable max-lines */
11
13
 
12
- const prependStringWithPlaceHolders = (val, finalLength, placeholder = '0') => {
14
+ const prependStringWithPlaceHolders = function (val, finalLength) {
15
+ let placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
13
16
  if (val.length === finalLength) return val;
14
17
  const stringAsAnArray = val.split('').reverse();
15
18
  return new Array(finalLength).fill(placeholder).map((_c, i) => stringAsAnArray[i] ? stringAsAnArray[i] : placeholder).reverse().join('');
16
19
  };
17
- const fillStringWithPlaceHolders = (val, finalLength, placeholder = '_') => {
20
+ const fillStringWithPlaceHolders = function (val, finalLength) {
21
+ let placeholder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '_';
18
22
  if (val.length === finalLength) return val;
19
23
  const stringAsAnArray = val.split('');
20
24
  return new Array(finalLength).fill(placeholder).map((_c, i) => stringAsAnArray[i] ? stringAsAnArray[i] : placeholder).join('');
21
25
  };
22
- const getFormattedDateString = ({
23
- month,
24
- day,
25
- year
26
- }) => {
26
+ const getFormattedDateString = _ref => {
27
+ let {
28
+ month,
29
+ day,
30
+ year
31
+ } = _ref;
27
32
  const finalMonth = fillStringWithPlaceHolders(month, 2);
28
33
  const finalDay = fillStringWithPlaceHolders(day, 2);
29
34
  const finalYear = fillStringWithPlaceHolders(year, 4);
@@ -67,12 +72,13 @@ const isValidDateString = testString => {
67
72
  if (Number.parseInt(month, 10) > 12 || Number.parseInt(day, 10) > 31 || Number.parseInt(year, 10) > 9999) return false;
68
73
  return true;
69
74
  };
70
- const getFormattedTimeString = ({
71
- hours,
72
- minutes,
73
- // seconds,
74
- meridiem
75
- }) => {
75
+ const getFormattedTimeString = _ref2 => {
76
+ let {
77
+ hours,
78
+ minutes,
79
+ // seconds,
80
+ meridiem
81
+ } = _ref2;
76
82
  const finalHour = fillStringWithPlaceHolders(hours, 2);
77
83
  const finalMinutes = fillStringWithPlaceHolders(minutes, 2); // const finalSeconds = fillStringWithPlaceHolders(seconds, 2); // <-- seconds format
78
84
 
@@ -118,7 +124,10 @@ const isValidTimeString = testString => {
118
124
  if (Number.parseInt(hours, 10) > 12 || Number.parseInt(minutes, 10) > 60) return false;
119
125
  return true;
120
126
  };
121
- const isIncompleteString = (testString, placeholder = '_') => testString === '' || testString.includes(placeholder);
127
+ const isIncompleteString = function (testString) {
128
+ let placeholder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_';
129
+ return testString === '' || testString.includes(placeholder);
130
+ };
122
131
  const isEmptyDateStringMask = testString => testString === '__/__/____';
123
132
  const isEmptyTimeStringMask = testString => testString === '__:__ __';
124
133
  const isEmptyDateTimeStringMask = testString => testString === '__/__/____ __:__ __';
@@ -4,7 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var stringHelpers = require('./stringHelpers.js');
6
6
 
7
- const getValidationTimeStringMetaInfo = (timeString, getIsDisabledTime = timeS => false) => {
7
+ const getValidationTimeStringMetaInfo = function (timeString) {
8
+ let getIsDisabledTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : timeS => false;
8
9
  const metaInfo = {};
9
10
 
10
11
  if (!stringHelpers.isIncompleteString(timeString)) {