@elliemae/ds-controlled-form 2.0.0-alpha.11 → 2.0.0-alpha.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 +3 -1
  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 +3 -1
  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 +84 -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 +16 -67
  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 +6 -23
  179. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +16 -67
  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 +12 -29
  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 +79 -20
  188. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.data-entry-typing.test.d.ts +1 -0
  189. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.fill-with-now.test.d.ts +1 -0
  190. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.regressive-backspace.test.d.ts +1 -0
  191. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.shortcut-clear.test.d.ts +1 -0
  192. package/types/controlled-date-time-picker/utils/constants.d.ts +9 -0
  193. package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +1 -0
  194. package/types/controlled-toggle/ControlledToggle.d.ts +78 -13
  195. package/types/controlled-toggle/propTypes.d.ts +73 -12
  196. package/types/controlled-toggle/styles.d.ts +7 -7
  197. package/cjs/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -53
  198. package/esm/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -45
  199. package/types/controlled-date-time-picker/parts/TimeInputs/SSInput.d.ts +0 -13
@@ -1,13 +1,23 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
7
  import { useMemo } from 'react';
2
8
  import { uid } from 'uid';
9
+ import { getDataProps } from '@elliemae/ds-props-helpers';
3
10
  import { useGetDateRangePickerWithDefaultsProps } from './useGetPropsWithDefault.js';
4
11
  import { useRangePickerLogic } from './useRangePickerLogic.js';
5
12
  import { CONTROLLED_DATE_RANGE_PICKER_TYPES } from '../ControlledDateRangePickerTypes.js';
6
13
 
7
- /* eslint-disable max-lines */
14
+ 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; }
15
+
16
+ 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(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; }
8
17
  const useControlledDateRangePicker = props => {
9
18
  const instanceUID = useMemo(() => uid(6), []);
10
19
  const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);
20
+ const dataAttrs = getDataProps(props);
11
21
  const {
12
22
  type
13
23
  } = propsWithDefaults;
@@ -16,13 +26,15 @@ const useControlledDateRangePicker = props => {
16
26
  const isControllerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.CONTROLLER_ONLY;
17
27
  const rangePickerLogic = useRangePickerLogic(propsWithDefaults);
18
28
  const ctx = useMemo(() => ({
19
- props: propsWithDefaults,
29
+ props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
30
+ dataAttrs
31
+ }),
20
32
  instanceUID,
21
33
  rangePickerLogic,
22
34
  withInputs,
23
35
  withIcon,
24
36
  isControllerOnly
25
- }), [instanceUID, isControllerOnly, propsWithDefaults, rangePickerLogic, withIcon, withInputs]);
37
+ }), [instanceUID, isControllerOnly, dataAttrs, propsWithDefaults, rangePickerLogic, withIcon, withInputs]);
26
38
  return ctx;
27
39
  };
28
40
 
@@ -1,25 +1,33 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import 'core-js/modules/web.dom-collections.iterator.js';
3
8
  import { useState, useEffect, useCallback, useMemo } from 'react';
4
9
  import '../../controlled-date-time-picker/ControlledDateTimePicker.js';
10
+ import 'core-js/modules/esnext.async-iterator.map.js';
11
+ import 'core-js/modules/esnext.iterator.map.js';
5
12
  import 'core-js/modules/es.string.replace.js';
6
13
  import { getDayFromDateString } from '../../controlled-date-time-picker/utils/dateHelpers.js';
7
14
 
8
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; }
9
16
 
10
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(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; }
11
- const useRangePickerLogic = ({
12
- fromDate,
13
- onFromDateChange,
14
- onMonthFromChange,
15
- onDayFromChange,
16
- onYearFromChange,
17
- toDate,
18
- onMonthToChange,
19
- onDayToChange,
20
- onYearToChange,
21
- onToDateChange
22
- }) => {
18
+ const useRangePickerLogic = _ref => {
19
+ let {
20
+ fromDate,
21
+ onFromDateChange,
22
+ onMonthFromChange,
23
+ onDayFromChange,
24
+ onYearFromChange,
25
+ toDate,
26
+ onMonthToChange,
27
+ onDayToChange,
28
+ onYearToChange,
29
+ onToDateChange
30
+ } = _ref;
23
31
  // the implementation is based on controlled-date-time-picker that is not meant to "understand"
24
32
  // the "from" - "to" logic on click, we are "overloading" the "from" - "to" logic here
25
33
  // we track wheter we are going to set the "from" OR "to" controlled date based on this toggle
@@ -2,8 +2,15 @@ import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext } from 'react';
3
3
  import { DSControlledDateTimePicker } from '../../controlled-date-time-picker/ControlledDateTimePicker.js';
4
4
  import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../controlled-date-time-picker/ControlledDateTimePickerTypes.js';
5
+ import 'core-js/modules/esnext.async-iterator.map.js';
6
+ import 'core-js/modules/esnext.iterator.map.js';
5
7
  import 'core-js/modules/web.dom-collections.iterator.js';
6
8
  import 'core-js/modules/es.string.replace.js';
9
+ import 'core-js/modules/esnext.async-iterator.filter.js';
10
+ import 'core-js/modules/esnext.iterator.constructor.js';
11
+ import 'core-js/modules/esnext.iterator.filter.js';
12
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
13
+ import 'core-js/modules/esnext.iterator.for-each.js';
7
14
  import '@babel/runtime/helpers/esm/defineProperty';
8
15
  import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';
9
16
 
@@ -1,3 +1,9 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
8
  import { useContext } from 'react';
3
9
  import styled from 'styled-components';
@@ -5,25 +11,39 @@ import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCT
5
11
  import { ControlledDateRangeFromDate } from './ControlledDateRangeFromDate.js';
6
12
  import { ControlledDateRangeToDate } from './ControlledDateRangeToDate.js';
7
13
  import { ControlledDateRangeCalendar } from './ControlledDateRangeCalendar.js';
14
+ import { ControlledDateRangePickerDatatestid } from '../ControlledDateRangePickerDatatestid.js';
8
15
  import { jsxs, Fragment } from 'react/jsx-runtime';
9
16
 
10
17
  var _ControlledDateRangeF, _ControlledDateRangeT, _ControlledDateRangeC;
18
+
19
+ 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; }
20
+
21
+ 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(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; }
11
22
  const StyledWrapper = /*#__PURE__*/styled.div.withConfig({
12
23
  componentId: "sc-e4pfvj-0"
13
- })(["display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto;", " grid-auto-flow:row;grid-template-areas:'. .';justify-content:center;align-items:center;"], ({
14
- isControllerOnly
15
- }) => isControllerOnly ? undefined : 'gap: 0px 8px;');
24
+ })(["display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto;", " grid-auto-flow:row;grid-template-areas:'. .';justify-content:center;align-items:center;"], _ref => {
25
+ let {
26
+ isControllerOnly
27
+ } = _ref;
28
+ return isControllerOnly ? undefined : 'gap: 0px 8px;';
29
+ });
16
30
  const ControlledDateRangeContent = () => {
17
31
  const {
32
+ props: {
33
+ dataAttrs
34
+ },
18
35
  withIcon,
19
36
  withInputs,
20
37
  isControllerOnly
21
38
  } = useContext(ControlledDateRangePickerContext);
22
- return /*#__PURE__*/_jsx(StyledWrapper, {
23
- isControllerOnly: isControllerOnly
24
- }, void 0, withInputs ? /*#__PURE__*/jsxs(Fragment, {
25
- children: [_ControlledDateRangeF || (_ControlledDateRangeF = /*#__PURE__*/_jsx(ControlledDateRangeFromDate, {})), _ControlledDateRangeT || (_ControlledDateRangeT = /*#__PURE__*/_jsx(ControlledDateRangeToDate, {}))]
26
- }) : null, withIcon || isControllerOnly ? _ControlledDateRangeC || (_ControlledDateRangeC = /*#__PURE__*/_jsx(ControlledDateRangeCalendar, {})) : null);
39
+ return /*#__PURE__*/jsxs(StyledWrapper, _objectSpread(_objectSpread({
40
+ isControllerOnly: isControllerOnly,
41
+ "data-testid": ControlledDateRangePickerDatatestid.WRAPPER
42
+ }, dataAttrs), {}, {
43
+ children: [withInputs ? /*#__PURE__*/jsxs(Fragment, {
44
+ children: [_ControlledDateRangeF || (_ControlledDateRangeF = /*#__PURE__*/_jsx(ControlledDateRangeFromDate, {})), _ControlledDateRangeT || (_ControlledDateRangeT = /*#__PURE__*/_jsx(ControlledDateRangeToDate, {}))]
45
+ }) : null, withIcon || isControllerOnly ? _ControlledDateRangeC || (_ControlledDateRangeC = /*#__PURE__*/_jsx(ControlledDateRangeCalendar, {})) : null]
46
+ }));
27
47
  };
28
48
 
29
49
  export { ControlledDateRangeContent };
@@ -3,8 +3,15 @@ import { useContext } from 'react';
3
3
  import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';
4
4
  import { DSControlledDateTimePicker } from '../../controlled-date-time-picker/ControlledDateTimePicker.js';
5
5
  import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../controlled-date-time-picker/ControlledDateTimePickerTypes.js';
6
+ import 'core-js/modules/esnext.async-iterator.map.js';
7
+ import 'core-js/modules/esnext.iterator.map.js';
6
8
  import 'core-js/modules/web.dom-collections.iterator.js';
7
9
  import 'core-js/modules/es.string.replace.js';
10
+ import 'core-js/modules/esnext.async-iterator.filter.js';
11
+ import 'core-js/modules/esnext.iterator.constructor.js';
12
+ import 'core-js/modules/esnext.iterator.filter.js';
13
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
14
+ import 'core-js/modules/esnext.iterator.for-each.js';
8
15
  import '@babel/runtime/helpers/esm/defineProperty';
9
16
 
10
17
  const ControlledDateRangeFromDate = () => {
@@ -3,8 +3,15 @@ import { useContext } from 'react';
3
3
  import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';
4
4
  import { DSControlledDateTimePicker } from '../../controlled-date-time-picker/ControlledDateTimePicker.js';
5
5
  import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../controlled-date-time-picker/ControlledDateTimePickerTypes.js';
6
+ import 'core-js/modules/esnext.async-iterator.map.js';
7
+ import 'core-js/modules/esnext.iterator.map.js';
6
8
  import 'core-js/modules/web.dom-collections.iterator.js';
7
9
  import 'core-js/modules/es.string.replace.js';
10
+ import 'core-js/modules/esnext.async-iterator.filter.js';
11
+ import 'core-js/modules/esnext.iterator.constructor.js';
12
+ import 'core-js/modules/esnext.iterator.filter.js';
13
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
14
+ import 'core-js/modules/esnext.iterator.for-each.js';
8
15
  import '@babel/runtime/helpers/esm/defineProperty';
9
16
 
10
17
  const ControlledDateRangeToDate = () => {
@@ -36,6 +36,7 @@ const defaultProps = {
36
36
  onCalendarOpenFocusedDay: undefined,
37
37
  minutesInterval: 1,
38
38
  isClearable: false,
39
+ disabled: false,
39
40
  hasError: false,
40
41
  autoFocus: false,
41
42
  preventCloseOnSelection: false,
@@ -66,6 +67,9 @@ const defaultContext = {
66
67
  prevMeridiemBtnRef: /*#__PURE__*/createRef(),
67
68
  currMeridiemBtnRef: /*#__PURE__*/createRef(),
68
69
  nextMeridiemBtnRef: /*#__PURE__*/createRef(),
70
+ firstSegmentRef: /*#__PURE__*/createRef(),
71
+ lastSegmentRef: /*#__PURE__*/createRef(),
72
+ ariaCurrentValueForInputs: '',
69
73
  dateStringFromProps: '',
70
74
  tempDateString: '__/__/____',
71
75
  // setDateString: mockedStringStateSetter,
@@ -74,6 +78,12 @@ const defaultContext = {
74
78
  handleChangeComposedDateTimeString: noop,
75
79
  handleChangeComposedDateString: noop,
76
80
  handleChangeComposedTimeString: noop,
81
+ handleChangeMonth: noop,
82
+ handleChangeDay: noop,
83
+ handleChangeYear: noop,
84
+ handleChangeHours: noop,
85
+ handleChangeMinutes: noop,
86
+ handleChangeMeridiem: noop,
77
87
  handleClearAll: noop,
78
88
  hideDate: false,
79
89
  hideTime: false,
@@ -100,7 +110,8 @@ const defaultContext = {
100
110
  autoFocusHourTimeWheel: false,
101
111
  shouldPreserveClearableSpace: false,
102
112
  latestInteractionRegion: '',
103
- setLatestInteractionRegion: mockedSetLatestInteractionRegion
113
+ setLatestInteractionRegion: mockedSetLatestInteractionRegion,
114
+ onGlobalKeyDown: noop
104
115
  };
105
116
  /** Context for cross component communication */
106
117
 
@@ -19,6 +19,11 @@ const ControlledDateTimePickerDatatestid = {
19
19
  PREV_MONTH: 'ds-controlled-date-time-picker-calendar-prev-month',
20
20
  DAY: 'ds-controlled-date-time-picker-calendar-day',
21
21
  FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',
22
+ START_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-start-range-day',
23
+ // <-nuevo
24
+ IN_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-in-range-day',
25
+ // <-nuevo
26
+ END_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-end-range-day',
22
27
  SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',
23
28
  SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',
24
29
  NEXT_MONTH: 'ds-controlled-date-time-picker-calendar-next-month',
@@ -1,13 +1,20 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import 'core-js/modules/web.dom-collections.iterator.js';
3
8
  import React, { useRef, useMemo, useState, useCallback } from 'react';
9
+ import { getDataProps } from '@elliemae/ds-props-helpers';
4
10
  import { useGetDatePickerWithDefaultsProps } from './useGetPropsWithDefault.js';
5
11
  import { useGetDestructuredValues } from './useGetDestructuredValues.js';
6
12
  import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes.js';
7
13
  import { useValidateProps } from './useValidateProps.js';
8
- import { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';
14
+ import { getValidationDateStringMetaInfo, getDateStringFromDay, getTimeStringFromDay } from '../utils/dateHelpers.js';
9
15
  import { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';
10
- import { dateTimeToDate, dateTimeToTime, isEmptyDateStringMask, isEmptyTimeStringMask, isEmptyDateTimeStringMask } from '../utils/stringHelpers.js';
16
+ import { dateTimeToDate, dateTimeToTime, getFormattedDateString, getFormattedTimeString, isEmptyDateStringMask, isEmptyTimeStringMask, isEmptyDateTimeStringMask } from '../utils/stringHelpers.js';
17
+ import { defaultMetaInfo } from '../utils/constants.js';
11
18
 
12
19
  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; }
13
20
 
@@ -20,8 +27,7 @@ const useControlledDateTimePicker = props => {
20
27
  const dayInputRef = useRef();
21
28
  const yearInputRef = useRef();
22
29
  const hourInputRef = useRef();
23
- const minutesInputRef = useRef(); // const secondsInputRef = useRef<HTMLInputElement>();
24
-
30
+ const minutesInputRef = useRef();
25
31
  const meridiemInputRef = useRef();
26
32
  const clearButtonRef = useRef();
27
33
  const pickerButtonRef = useRef();
@@ -35,14 +41,12 @@ const useControlledDateTimePicker = props => {
35
41
  const nextHourBtnRef = useRef();
36
42
  const prevMinutesBtnRef = useRef();
37
43
  const currMinutesBtnRef = useRef();
38
- const nextMinutesBtnRef = useRef(); // const prevSecondsBtnRef = useRef<HTMLButtonElement>();
39
- // const currSecondsBtnRef = useRef<HTMLButtonElement>();
40
- // const nextSecondsBtnRef = useRef<HTMLButtonElement>();
41
-
44
+ const nextMinutesBtnRef = useRef();
42
45
  const prevMeridiemBtnRef = useRef();
43
46
  const currMeridiemBtnRef = useRef();
44
47
  const nextMeridiemBtnRef = useRef();
45
48
  const propsWithDefaults = useGetDatePickerWithDefaultsProps(props);
49
+ const dataAttrs = getDataProps(props);
46
50
  const {
47
51
  type,
48
52
  getIsDisabledDay,
@@ -100,6 +104,10 @@ const useControlledDateTimePicker = props => {
100
104
  const shouldPreserveClearableSpace = isClearable && withAnyInputs;
101
105
  const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
102
106
  const [latestInteractionRegion, setLatestInteractionRegion] = useState('');
107
+ let firstSegmentRef = useRef();
108
+ if (isWithDateInputs) firstSegmentRef = monthInputRef;else if (isWithTimeInputs) firstSegmentRef = hourInputRef;else if (withAnyPicker) firstSegmentRef = pickerButtonRef;
109
+ let lastSegmentRef = useRef();
110
+ if (withAnyPicker) lastSegmentRef = pickerButtonRef;else if (withClearBtn) lastSegmentRef = clearButtonRef;else if (isWithTimeInputs) lastSegmentRef = meridiemInputRef;else if (isWithDateInputs) lastSegmentRef = yearInputRef;
103
111
  const {
104
112
  month,
105
113
  day,
@@ -127,11 +135,15 @@ const useControlledDateTimePicker = props => {
127
135
  isDateTimeSelector
128
136
  });
129
137
  const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
130
- const getDateMetaInfo = useCallback((newDateString = null, metaInfo = {}) => {
138
+ const getDateMetaInfo = useCallback(function () {
139
+ let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
140
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
131
141
  const finalDateString = newDateString || tempDateString;
132
142
  return _objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
133
143
  }, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
134
- const getTimeMetaInfo = useCallback((newTimeString = null, metaInfo = {}) => {
144
+ const getTimeMetaInfo = useCallback(function () {
145
+ let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
146
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
135
147
  const finalTimeString = newTimeString || tempTimeString;
136
148
  return _objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
137
149
  }, [tempTimeString, getIsDisabledTime]);
@@ -188,6 +200,99 @@ const useControlledDateTimePicker = props => {
188
200
  const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
189
201
  appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
190
202
  }, [appOnTimeChange, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
203
+ const handleChangeMonth = useCallback(function (newMonth, e) {
204
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
205
+ const newDateString = getFormattedDateString({
206
+ month: newMonth,
207
+ day,
208
+ year
209
+ });
210
+
211
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
212
+ newDateString
213
+ });
214
+
215
+ appOnMonthChange(newMonth, e, finalMetaInfo);
216
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
217
+ }, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
218
+ const handleChangeDay = useCallback(function (newDay, e) {
219
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
220
+ const newDateString = getFormattedDateString({
221
+ month,
222
+ day: newDay,
223
+ year
224
+ });
225
+
226
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
227
+ newDateString
228
+ });
229
+
230
+ appOnDayChange(newDay, e, finalMetaInfo);
231
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
232
+ }, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
233
+ const handleChangeYear = useCallback(function (newYear, e) {
234
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
235
+ const newDateString = getFormattedDateString({
236
+ month,
237
+ day,
238
+ year: newYear
239
+ });
240
+
241
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
242
+ newDateString
243
+ });
244
+
245
+ appOnYearChange(newYear, e, finalMetaInfo);
246
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
247
+ }, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
248
+ const handleChangeHours = useCallback(function (newHours, e) {
249
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
250
+ const newTimeString = getFormattedTimeString({
251
+ hours: newHours,
252
+ minutes,
253
+ // seconds,
254
+ meridiem
255
+ });
256
+
257
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
258
+ newTimeString
259
+ });
260
+
261
+ appOnHourChange(newHours, e, finalMetaInfo);
262
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
263
+ }, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
264
+ const handleChangeMinutes = useCallback(function (newMinutes, e) {
265
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
266
+ const newTimeString = getFormattedTimeString({
267
+ hours,
268
+ minutes: newMinutes,
269
+ // seconds,
270
+ meridiem
271
+ });
272
+
273
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
274
+ newTimeString
275
+ });
276
+
277
+ appOnMinuteChange(newMinutes, e, finalMetaInfo);
278
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
279
+ }, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
280
+ const handleChangeMeridiem = useCallback(function (newMeridiem, e) {
281
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
282
+ const newTimeString = getFormattedTimeString({
283
+ hours,
284
+ minutes,
285
+ // seconds,
286
+ meridiem: newMeridiem
287
+ });
288
+
289
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
290
+ newTimeString
291
+ });
292
+
293
+ appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
294
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
295
+ }, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
191
296
  const handleClearAll = useCallback(e => {
192
297
  const metaInfo = {
193
298
  isAutomaticFillTrigger: false,
@@ -220,16 +325,43 @@ const useControlledDateTimePicker = props => {
220
325
  if (isDateTimeSelector) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
221
326
  if (isDateSelector) handleChangeComposedDateString('__/__/____', datePartsChangesMetainfo);
222
327
  if (isTimeSelector) handleChangeComposedTimeString('__:__ __', timePartsChangesMetainfo);
223
- setLatestInteractionRegion('clear-btn');
224
328
  }, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDateSelector, isDateTimeSelector, isTimeSelector]);
329
+ const onFillWithCurrentDateKeys = useCallback(function () {
330
+ let metaInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
331
+ isAutomaticFillTrigger: true
332
+ };
333
+ const now = new Date();
334
+ const nowDateString = getDateStringFromDay(now);
335
+ const nowTimeString = getTimeStringFromDay(now);
336
+
337
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay)), getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime)), {}, {
338
+ newDateString: nowDateString
339
+ });
340
+
341
+ handleChangeComposedDateTimeString(nowDateString, nowTimeString, finalMetaInfo);
342
+ }, [getIsDisabledDay, getIsDisabledTime, getIsOutOfRangeDay, handleChangeComposedDateTimeString]);
343
+ const onGlobalKeyDown = useCallback(e => {
344
+ const {
345
+ key,
346
+ ctrlKey,
347
+ metaKey
348
+ } = e;
349
+
350
+ if ((ctrlKey || metaKey) && key === ';') {
351
+ onFillWithCurrentDateKeys();
352
+ }
353
+
354
+ if ((ctrlKey || metaKey) && (key === 'Delete' || key === 'Backspace')) handleClearAll(e);
355
+ }, [handleClearAll, onFillWithCurrentDateKeys]);
225
356
  const ctx = React.useMemo(() => ({
226
- props: propsWithDefaults,
357
+ props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
358
+ dataAttrs
359
+ }),
227
360
  monthInputRef,
228
361
  dayInputRef,
229
362
  yearInputRef,
230
363
  hourInputRef,
231
364
  minutesInputRef,
232
- // secondsInputRef,
233
365
  meridiemInputRef,
234
366
  clearButtonRef,
235
367
  pickerButtonRef,
@@ -248,6 +380,8 @@ const useControlledDateTimePicker = props => {
248
380
  currMeridiemBtnRef,
249
381
  nextMeridiemBtnRef,
250
382
  dateStringFromProps,
383
+ firstSegmentRef,
384
+ lastSegmentRef,
251
385
  tempDateString,
252
386
  setTempDateString,
253
387
  tempTimeString,
@@ -255,6 +389,12 @@ const useControlledDateTimePicker = props => {
255
389
  handleChangeComposedDateTimeString,
256
390
  handleChangeComposedDateString,
257
391
  handleChangeComposedTimeString,
392
+ handleChangeMonth,
393
+ handleChangeDay,
394
+ handleChangeYear,
395
+ handleChangeHours,
396
+ handleChangeMinutes,
397
+ handleChangeMeridiem,
258
398
  handleClearAll,
259
399
  hideDate,
260
400
  hideTime,
@@ -301,8 +441,9 @@ const useControlledDateTimePicker = props => {
301
441
  announcedMinutes,
302
442
  announcedMeridiem,
303
443
  announcedTimeValues,
304
- ariaCurrentValueForInputs
305
- }), [propsWithDefaults, dateStringFromProps, tempDateString, tempTimeString, handleChangeComposedDateTimeString, handleChangeComposedDateString, handleChangeComposedTimeString, handleClearAll, hideDate, hideTime, hideDateTimePicker, hideDatePicker, hideTimePicker, isDateSelector, isTimeSelector, isDateTimeSelector, isControllerOnly, isWithTimeWheelToo, isWithCalendarToo, isWithDateInputs, isWithDateInputsOnly, isWithTimeInputs, isWithTimeInputsOnly, autoFocusMonthInput, autoFocusHourInput, autoFocusPrevMonthArrow, autoFocusHourTimeWheel, latestInteractionRegion, withAnyInputs, withAnyPicker, withClearBtn, withAnyRightController, shouldPreserveClearableSpace, month, day, year, monthNum, dayNum, yearNum, announcedMonth, announcedDay, announcedYear, announcedDateValues, hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues, ariaCurrentValueForInputs] // refs are mutable so we don't need to listen to them
444
+ ariaCurrentValueForInputs,
445
+ onGlobalKeyDown
446
+ }), [dataAttrs, propsWithDefaults, dateStringFromProps, tempDateString, tempTimeString, handleChangeComposedDateTimeString, handleChangeComposedDateString, handleChangeComposedTimeString, handleChangeMonth, handleChangeDay, handleChangeYear, handleChangeHours, handleChangeMinutes, handleChangeMeridiem, handleClearAll, hideDate, hideTime, hideDateTimePicker, hideDatePicker, hideTimePicker, isDateSelector, isTimeSelector, isDateTimeSelector, isControllerOnly, isWithTimeWheelToo, isWithCalendarToo, isWithDateInputs, isWithDateInputsOnly, isWithTimeInputs, isWithTimeInputsOnly, autoFocusMonthInput, autoFocusHourInput, autoFocusPrevMonthArrow, autoFocusHourTimeWheel, latestInteractionRegion, withAnyInputs, withAnyPicker, withClearBtn, withAnyRightController, shouldPreserveClearableSpace, month, day, year, monthNum, dayNum, yearNum, announcedMonth, announcedDay, announcedYear, announcedDateValues, hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues, ariaCurrentValueForInputs, onGlobalKeyDown] // refs are mutable so we don't need to listen to them
306
447
  );
307
448
  return ctx;
308
449
  };
@@ -8,11 +8,12 @@ import { monthNames, announcableCardinalDays } from '../utils/constants.js';
8
8
  // our source of truth is either the date props or dateTime props
9
9
  // based on wheter it's a dateTime picker
10
10
  // or a date picker (it's date picker when hideTime is true)
11
- const useGetDestructuredDateValues = ({
12
- date,
13
- dateTime,
14
- isDateTimeSelector
15
- }) => {
11
+ const useGetDestructuredDateValues = _ref => {
12
+ let {
13
+ date,
14
+ dateTime,
15
+ isDateTimeSelector
16
+ } = _ref;
16
17
  const dateStringFromProps = isDateTimeSelector ? dateTimeToDate(dateTime) : date;
17
18
  const deconstructedValues = deconstructValuesFromDateString(dateStringFromProps);
18
19
  const {
@@ -44,11 +45,12 @@ const useGetDestructuredDateValues = ({
44
45
  // based on wheter it's a dateTime picker
45
46
  // or a time picker (it's time picker when hideDate is true)
46
47
 
47
- const useGetDestructuredTimeValues = ({
48
- time,
49
- dateTime,
50
- isDateTimeSelector
51
- }) => {
48
+ const useGetDestructuredTimeValues = _ref2 => {
49
+ let {
50
+ time,
51
+ dateTime,
52
+ isDateTimeSelector
53
+ } = _ref2;
52
54
  const timeStringFromProps = isDateTimeSelector ? dateTimeToTime(dateTime) : time;
53
55
  const deconstructedValues = deconstructTimeValues(timeStringFromProps);
54
56
  const {
@@ -77,12 +79,13 @@ const useGetDestructuredTimeValues = ({
77
79
  announcedTimeValues
78
80
  }), [hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
79
81
  };
80
- const useGetDestructuredValues = ({
81
- date,
82
- time,
83
- dateTime,
84
- isDateTimeSelector
85
- }) => {
82
+ const useGetDestructuredValues = _ref3 => {
83
+ let {
84
+ date,
85
+ time,
86
+ dateTime,
87
+ isDateTimeSelector
88
+ } = _ref3;
86
89
  const {
87
90
  month,
88
91
  day,
@@ -1,6 +1,6 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import 'react';
3
- import CloseMedium from '@elliemae/ds-icons/CloseMedium';
3
+ import { CloseMedium } from '@elliemae/ds-icons';
4
4
  import { DSIconColors } from '@elliemae/ds-icon';
5
5
  import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
6
6
  import { StyledClearButton } from '../Styleds.js';
@@ -9,10 +9,15 @@ const useClearButton = () => {
9
9
  withAnyPicker,
10
10
  withClearBtn,
11
11
  withAnyInputs,
12
+ isWithTimeInputs,
13
+ isWithDateInputs,
12
14
  isTimeSelector,
13
15
  hourInputRef,
14
16
  monthInputRef,
15
- pickerButtonRef
17
+ pickerButtonRef,
18
+ meridiemInputRef,
19
+ yearInputRef,
20
+ setLatestInteractionRegion
16
21
  } = useContext(ControlledDateTimePickerContext);
17
22
  const focusFirstRegion = useCallback(() => {
18
23
  var _hourInputRef$current, _hourInputRef$current2, _monthInputRef$curren, _monthInputRef$curren2;
@@ -21,8 +26,9 @@ const useClearButton = () => {
21
26
  }, [withAnyInputs, isTimeSelector, hourInputRef, monthInputRef]);
22
27
  const onClearClick = useCallback(e => {
23
28
  handleClearAll(e);
29
+ setLatestInteractionRegion('clear-btn');
24
30
  focusFirstRegion();
25
- }, [focusFirstRegion, handleClearAll]);
31
+ }, [focusFirstRegion, handleClearAll, setLatestInteractionRegion]);
26
32
  const onHomeKeyDown = useCallback(() => {
27
33
  focusFirstRegion();
28
34
  }, [focusFirstRegion]);
@@ -41,7 +47,13 @@ const useClearButton = () => {
41
47
  if (stopPropagationKeys.includes(key)) e.stopPropagation();
42
48
  if (key === 'Home') onHomeKeyDown();
43
49
  if (key === 'End') onEndKeyDown();
44
- }, [onEndKeyDown, onHomeKeyDown]);
50
+
51
+ if (key === 'Backspace' && withAnyInputs) {
52
+ var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
53
+
54
+ if (isWithTimeInputs) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);else if (isWithDateInputs) yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
55
+ }
56
+ }, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onEndKeyDown, onHomeKeyDown, withAnyInputs, yearInputRef]);
45
57
  return useMemo(() => ({
46
58
  onClearClick,
47
59
  onClearButtonKeyDown,