@elliemae/ds-controlled-form 2.0.0-alpha.10 → 2.0.0-alpha.14

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 (207) hide show
  1. package/cjs/controlled-checkbox/ControlledCheckbox.js +11 -4
  2. package/cjs/controlled-checkbox/config/useValidateProps.js +5 -7
  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 +15 -27
  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 +21 -12
  10. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +8 -0
  11. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +29 -4
  12. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +8 -0
  13. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +8 -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 +161 -18
  17. package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +25 -22
  18. package/cjs/controlled-date-time-picker/config/useValidateProps.js +10 -41
  19. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +5 -6
  20. package/cjs/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
  21. package/cjs/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +35 -14
  22. package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +16 -12
  23. package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  24. package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +17 -13
  25. package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +16 -12
  26. package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +104 -36
  27. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
  28. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
  29. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
  30. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  31. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
  32. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +12 -19
  33. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +11 -12
  34. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
  35. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +26 -16
  36. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +326 -121
  37. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +9 -45
  38. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
  39. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +48 -23
  40. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +59 -58
  41. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +26 -14
  42. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
  43. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +11 -12
  44. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
  45. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +55 -25
  46. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +19 -8
  47. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +11 -4
  48. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -5
  49. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +11 -4
  50. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +13 -9
  51. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +201 -139
  52. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
  53. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -4
  54. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
  55. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -12
  56. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
  57. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
  58. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +11 -8
  59. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +64 -141
  60. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +12 -7
  61. package/cjs/controlled-date-time-picker/parts/Styleds.js +70 -31
  62. package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +17 -13
  63. package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +17 -12
  64. package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +16 -12
  65. package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
  66. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +98 -176
  67. package/cjs/controlled-date-time-picker/propTypes.js +3 -1
  68. package/cjs/controlled-date-time-picker/utils/constants.js +16 -0
  69. package/cjs/controlled-date-time-picker/utils/dateHelpers.js +39 -21
  70. package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
  71. package/cjs/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
  72. package/cjs/controlled-date-time-picker/utils/stringHelpers.js +28 -18
  73. package/cjs/controlled-date-time-picker/utils/timeHelpers.js +2 -1
  74. package/cjs/controlled-toggle/ControlledToggle.js +21 -14
  75. package/cjs/controlled-toggle/styles.js +138 -71
  76. package/cjs/controlled-toggle/utils/addTooltipOnReadOnly.js +2 -2
  77. package/cjs/controlled-toggle/utils/styleHelpers.js +15 -9
  78. package/esm/controlled-checkbox/ControlledCheckbox.js +11 -4
  79. package/esm/controlled-checkbox/config/useValidateProps.js +5 -7
  80. package/esm/controlled-checkbox/propTypes.js +5 -4
  81. package/esm/controlled-checkbox/styles.js +84 -48
  82. package/esm/controlled-checkbox/utils/setMultipleRefs.js +4 -0
  83. package/esm/controlled-checkbox/utils/styleHelpers.js +15 -27
  84. package/esm/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
  85. package/esm/controlled-date-range-picker/config/useControlledDateRangePicker.js +15 -3
  86. package/esm/controlled-date-range-picker/config/useRangePickerLogic.js +21 -12
  87. package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +8 -0
  88. package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +28 -4
  89. package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +8 -0
  90. package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +8 -0
  91. package/esm/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
  92. package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
  93. package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +163 -20
  94. package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +25 -22
  95. package/esm/controlled-date-time-picker/config/useValidateProps.js +10 -41
  96. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +1 -1
  97. package/esm/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
  98. package/esm/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +34 -14
  99. package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +16 -12
  100. package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  101. package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +17 -13
  102. package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +16 -12
  103. package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +104 -36
  104. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
  105. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
  106. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
  107. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
  108. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
  109. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +3 -6
  110. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +8 -8
  111. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
  112. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +26 -16
  113. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +321 -117
  114. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +9 -45
  115. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
  116. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +49 -24
  117. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +60 -59
  118. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +27 -15
  119. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
  120. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +8 -8
  121. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
  122. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +53 -23
  123. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +19 -8
  124. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +11 -4
  125. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -5
  126. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +11 -4
  127. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -5
  128. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +196 -135
  129. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
  130. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -4
  131. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
  132. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -8
  133. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
  134. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
  135. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +11 -8
  136. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +65 -142
  137. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +13 -8
  138. package/esm/controlled-date-time-picker/parts/Styleds.js +68 -29
  139. package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +17 -13
  140. package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +17 -12
  141. package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +16 -12
  142. package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
  143. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +99 -173
  144. package/esm/controlled-date-time-picker/propTypes.js +3 -1
  145. package/esm/controlled-date-time-picker/utils/constants.js +10 -1
  146. package/esm/controlled-date-time-picker/utils/dateHelpers.js +39 -22
  147. package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
  148. package/esm/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
  149. package/esm/controlled-date-time-picker/utils/stringHelpers.js +28 -18
  150. package/esm/controlled-date-time-picker/utils/timeHelpers.js +2 -1
  151. package/esm/controlled-toggle/ControlledToggle.js +21 -14
  152. package/esm/controlled-toggle/styles.js +138 -71
  153. package/esm/controlled-toggle/utils/addTooltipOnReadOnly.js +1 -1
  154. package/esm/controlled-toggle/utils/styleHelpers.js +15 -9
  155. package/package.json +21 -12
  156. package/types/controlled-checkbox/ControlledCheckbox.d.ts +60 -9
  157. package/types/controlled-checkbox/config/useValidateProps.d.ts +1 -1
  158. package/types/controlled-checkbox/index.d.d.ts +1 -0
  159. package/types/controlled-checkbox/propTypes.d.ts +55 -8
  160. package/types/controlled-checkbox/styles.d.ts +4 -4
  161. package/types/controlled-checkbox/tests/DSControlledCheckbox.keyboard.test.d.ts +1 -0
  162. package/types/controlled-checkbox/tests/DSControlledCheckbox.test.d.ts +1 -0
  163. package/types/controlled-checkbox/tests/DSControllledCheckbox.events.test.d.ts +1 -0
  164. package/types/controlled-date-range-picker/ControlledDateRangePicker.d.ts +12 -2
  165. package/types/controlled-date-range-picker/ControlledDateRangePickerDatatestid.d.ts +1 -18
  166. package/types/controlled-date-range-picker/propTypes.d.ts +7 -1
  167. package/types/controlled-date-range-picker/tests/date-range-picker.auto-advance.test.d.ts +1 -0
  168. package/types/controlled-date-range-picker/tests/date-range-picker.classes.test.d.ts +1 -0
  169. package/types/controlled-date-range-picker/tests/date-range-picker.clear-button.test.d.ts +1 -0
  170. package/types/controlled-date-range-picker/tests/date-range-picker.keyboard-focus.test.d.ts +1 -0
  171. package/types/controlled-date-range-picker/tests/date-range-picker.manual-delete-values.test.d.ts +1 -0
  172. package/types/controlled-date-range-picker/tests/date-range-picker.types-dom.test.d.ts +1 -0
  173. package/types/controlled-date-time-picker/ControlledDateTimePicker.d.ts +84 -21
  174. package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +3 -0
  175. package/types/controlled-date-time-picker/parts/DateInputs/DDInput.d.ts +2 -1
  176. package/types/controlled-date-time-picker/parts/DateInputs/MMInput.d.ts +2 -1
  177. package/types/controlled-date-time-picker/parts/DateInputs/YYYYInput.d.ts +2 -1
  178. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +2 -1
  179. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +16 -67
  180. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +1 -3
  181. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +2 -17
  182. package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +3 -6
  183. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -0
  184. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +6 -23
  185. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +16 -67
  186. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
  187. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +3 -12
  188. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +1 -10
  189. package/types/controlled-date-time-picker/parts/Styleds.d.ts +12 -29
  190. package/types/controlled-date-time-picker/parts/TimeInputs/HHInput.d.ts +2 -1
  191. package/types/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +2 -1
  192. package/types/controlled-date-time-picker/parts/TimeInputs/MinutesInput.d.ts +2 -1
  193. package/types/controlled-date-time-picker/propTypes.d.ts +79 -20
  194. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.data-entry-typing.test.d.ts +1 -0
  195. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.fill-with-now.test.d.ts +1 -0
  196. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.regressive-backspace.test.d.ts +1 -0
  197. package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.shortcut-clear.test.d.ts +1 -0
  198. package/types/controlled-date-time-picker/utils/constants.d.ts +9 -0
  199. package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +1 -0
  200. package/types/controlled-toggle/ControlledToggle.d.ts +78 -13
  201. package/types/controlled-toggle/propTypes.d.ts +73 -12
  202. package/types/controlled-toggle/styles.d.ts +7 -7
  203. package/cjs/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -53
  204. package/cjs/package.json +0 -7
  205. package/esm/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -45
  206. package/esm/package.json +0 -7
  207. package/types/controlled-date-time-picker/parts/TimeInputs/SSInput.d.ts +0 -13
@@ -3,7 +3,14 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.filter.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.filter.js');
10
+ require('core-js/modules/esnext.async-iterator.for-each.js');
11
+ require('core-js/modules/esnext.iterator.for-each.js');
6
12
  var React = require('react');
13
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
7
14
  var useGetPropsWithDefault = require('./useGetPropsWithDefault.js');
8
15
  var useGetDestructuredValues = require('./useGetDestructuredValues.js');
9
16
  var ControlledDateTimePickerTypes = require('../ControlledDateTimePickerTypes.js');
@@ -11,6 +18,7 @@ var useValidateProps = require('./useValidateProps.js');
11
18
  var dateHelpers = require('../utils/dateHelpers.js');
12
19
  var timeHelpers = require('../utils/timeHelpers.js');
13
20
  var stringHelpers = require('../utils/stringHelpers.js');
21
+ var constants = require('../utils/constants.js');
14
22
 
15
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
24
 
@@ -28,8 +36,7 @@ const useControlledDateTimePicker = props => {
28
36
  const dayInputRef = React.useRef();
29
37
  const yearInputRef = React.useRef();
30
38
  const hourInputRef = React.useRef();
31
- const minutesInputRef = React.useRef(); // const secondsInputRef = useRef<HTMLInputElement>();
32
-
39
+ const minutesInputRef = React.useRef();
33
40
  const meridiemInputRef = React.useRef();
34
41
  const clearButtonRef = React.useRef();
35
42
  const pickerButtonRef = React.useRef();
@@ -43,14 +50,12 @@ const useControlledDateTimePicker = props => {
43
50
  const nextHourBtnRef = React.useRef();
44
51
  const prevMinutesBtnRef = React.useRef();
45
52
  const currMinutesBtnRef = React.useRef();
46
- const nextMinutesBtnRef = React.useRef(); // const prevSecondsBtnRef = useRef<HTMLButtonElement>();
47
- // const currSecondsBtnRef = useRef<HTMLButtonElement>();
48
- // const nextSecondsBtnRef = useRef<HTMLButtonElement>();
49
-
53
+ const nextMinutesBtnRef = React.useRef();
50
54
  const prevMeridiemBtnRef = React.useRef();
51
55
  const currMeridiemBtnRef = React.useRef();
52
56
  const nextMeridiemBtnRef = React.useRef();
53
57
  const propsWithDefaults = useGetPropsWithDefault.useGetDatePickerWithDefaultsProps(props);
58
+ const dataAttrs = dsPropsHelpers.getDataProps(props);
54
59
  const {
55
60
  type,
56
61
  getIsDisabledDay,
@@ -94,7 +99,8 @@ const useControlledDateTimePicker = props => {
94
99
  const isWithCalendarToo = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
95
100
  const withAnyInputs = !hideDate || !hideTime;
96
101
  const withAnyPicker = !hideDateTimePicker || !hideTimePicker || !hideDatePicker;
97
- const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' || timeStringFromProps !== '__:__ __' && timeStringFromProps !== ''); // or time is not "empty-ish"
102
+ const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' || // date is not "empty-ish"
103
+ timeStringFromProps !== '__:__ __' && timeStringFromProps !== ''); // or time is not "empty-ish"
98
104
 
99
105
  const isWithDateInputs = withAnyInputs && (isDateTimeSelector || isDateSelector);
100
106
  const isWithDateInputsOnly = withAnyInputs && isDateSelector;
@@ -107,6 +113,10 @@ const useControlledDateTimePicker = props => {
107
113
  const shouldPreserveClearableSpace = isClearable && withAnyInputs;
108
114
  const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
109
115
  const [latestInteractionRegion, setLatestInteractionRegion] = React.useState('');
116
+ let firstSegmentRef = React.useRef();
117
+ if (isWithDateInputs) firstSegmentRef = monthInputRef;else if (isWithTimeInputs) firstSegmentRef = hourInputRef;else if (withAnyPicker) firstSegmentRef = pickerButtonRef;
118
+ let lastSegmentRef = React.useRef();
119
+ if (withAnyPicker) lastSegmentRef = pickerButtonRef;else if (withClearBtn) lastSegmentRef = clearButtonRef;else if (isWithTimeInputs) lastSegmentRef = meridiemInputRef;else if (isWithDateInputs) lastSegmentRef = yearInputRef;
110
120
  const {
111
121
  month,
112
122
  day,
@@ -133,12 +143,16 @@ const useControlledDateTimePicker = props => {
133
143
  dateTime: appDateTime,
134
144
  isDateTimeSelector
135
145
  });
136
- const ariaCurrentValueForInputs = `current values: ${isWithDateInputs ? `${announcedDateValues}` : ''}${isDateTimeSelector ? ', ' : ''}${isWithTimeInputs ? `${announcedTimeValues}` : ''}`;
137
- const getDateMetaInfo = React.useCallback((newDateString = null, metaInfo = {}) => {
146
+ const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
147
+ const getDateMetaInfo = React.useCallback(function () {
148
+ let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
149
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
138
150
  const finalDateString = newDateString || tempDateString;
139
151
  return _objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
140
152
  }, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
141
- const getTimeMetaInfo = React.useCallback((newTimeString = null, metaInfo = {}) => {
153
+ const getTimeMetaInfo = React.useCallback(function () {
154
+ let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
155
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
142
156
  const finalTimeString = newTimeString || tempTimeString;
143
157
  return _objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
144
158
  }, [tempTimeString, getIsDisabledTime]);
@@ -151,7 +165,7 @@ const useControlledDateTimePicker = props => {
151
165
  appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
152
166
 
153
167
  setTimeString(newTimeString);
154
- const newDateTimeString = `${newDateString} ${newTimeString}`;
168
+ const newDateTimeString = "".concat(newDateString, " ").concat(newTimeString);
155
169
 
156
170
  const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
157
171
  newDateString,
@@ -168,7 +182,7 @@ const useControlledDateTimePicker = props => {
168
182
  appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
169
183
 
170
184
  setTempDateString(newDateString);
171
- const newDateTimeString = `${newDateString} ${tempTimeString}`;
185
+ const newDateTimeString = "".concat(newDateString, " ").concat(tempTimeString);
172
186
 
173
187
  const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(tempTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
174
188
  newDateString,
@@ -184,7 +198,7 @@ const useControlledDateTimePicker = props => {
184
198
  appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
185
199
 
186
200
  setTimeString(newTimeString);
187
- const newDateTimeString = `${tempDateString} ${newTimeString}`;
201
+ const newDateTimeString = "".concat(tempDateString, " ").concat(newTimeString);
188
202
 
189
203
  const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(tempDateString, metaInfo)), {}, {
190
204
  newDateTimeString,
@@ -195,6 +209,99 @@ const useControlledDateTimePicker = props => {
195
209
  const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
196
210
  appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
197
211
  }, [appOnTimeChange, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
212
+ const handleChangeMonth = React.useCallback(function (newMonth, e) {
213
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
214
+ const newDateString = stringHelpers.getFormattedDateString({
215
+ month: newMonth,
216
+ day,
217
+ year
218
+ });
219
+
220
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
221
+ newDateString
222
+ });
223
+
224
+ appOnMonthChange(newMonth, e, finalMetaInfo);
225
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
226
+ }, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
227
+ const handleChangeDay = React.useCallback(function (newDay, e) {
228
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
229
+ const newDateString = stringHelpers.getFormattedDateString({
230
+ month,
231
+ day: newDay,
232
+ year
233
+ });
234
+
235
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
236
+ newDateString
237
+ });
238
+
239
+ appOnDayChange(newDay, e, finalMetaInfo);
240
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
241
+ }, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
242
+ const handleChangeYear = React.useCallback(function (newYear, e) {
243
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
244
+ const newDateString = stringHelpers.getFormattedDateString({
245
+ month,
246
+ day,
247
+ year: newYear
248
+ });
249
+
250
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
251
+ newDateString
252
+ });
253
+
254
+ appOnYearChange(newYear, e, finalMetaInfo);
255
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
256
+ }, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
257
+ const handleChangeHours = React.useCallback(function (newHours, e) {
258
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
259
+ const newTimeString = stringHelpers.getFormattedTimeString({
260
+ hours: newHours,
261
+ minutes,
262
+ // seconds,
263
+ meridiem
264
+ });
265
+
266
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
267
+ newTimeString
268
+ });
269
+
270
+ appOnHourChange(newHours, e, finalMetaInfo);
271
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
272
+ }, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
273
+ const handleChangeMinutes = React.useCallback(function (newMinutes, e) {
274
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
275
+ const newTimeString = stringHelpers.getFormattedTimeString({
276
+ hours,
277
+ minutes: newMinutes,
278
+ // seconds,
279
+ meridiem
280
+ });
281
+
282
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
283
+ newTimeString
284
+ });
285
+
286
+ appOnMinuteChange(newMinutes, e, finalMetaInfo);
287
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
288
+ }, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
289
+ const handleChangeMeridiem = React.useCallback(function (newMeridiem, e) {
290
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
291
+ const newTimeString = stringHelpers.getFormattedTimeString({
292
+ hours,
293
+ minutes,
294
+ // seconds,
295
+ meridiem: newMeridiem
296
+ });
297
+
298
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
299
+ newTimeString
300
+ });
301
+
302
+ appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
303
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
304
+ }, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
198
305
  const handleClearAll = React.useCallback(e => {
199
306
  const metaInfo = {
200
307
  isAutomaticFillTrigger: false,
@@ -227,16 +334,43 @@ const useControlledDateTimePicker = props => {
227
334
  if (isDateTimeSelector) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
228
335
  if (isDateSelector) handleChangeComposedDateString('__/__/____', datePartsChangesMetainfo);
229
336
  if (isTimeSelector) handleChangeComposedTimeString('__:__ __', timePartsChangesMetainfo);
230
- setLatestInteractionRegion('clear-btn');
231
337
  }, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDateSelector, isDateTimeSelector, isTimeSelector]);
338
+ const onFillWithCurrentDateKeys = React.useCallback(function () {
339
+ let metaInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
340
+ isAutomaticFillTrigger: true
341
+ };
342
+ const now = new Date();
343
+ const nowDateString = dateHelpers.getDateStringFromDay(now);
344
+ const nowTimeString = dateHelpers.getTimeStringFromDay(now);
345
+
346
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay)), timeHelpers.getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime)), {}, {
347
+ newDateString: nowDateString
348
+ });
349
+
350
+ handleChangeComposedDateTimeString(nowDateString, nowTimeString, finalMetaInfo);
351
+ }, [getIsDisabledDay, getIsDisabledTime, getIsOutOfRangeDay, handleChangeComposedDateTimeString]);
352
+ const onGlobalKeyDown = React.useCallback(e => {
353
+ const {
354
+ key,
355
+ ctrlKey,
356
+ metaKey
357
+ } = e;
358
+
359
+ if ((ctrlKey || metaKey) && key === ';') {
360
+ onFillWithCurrentDateKeys();
361
+ }
362
+
363
+ if ((ctrlKey || metaKey) && (key === 'Delete' || key === 'Backspace')) handleClearAll(e);
364
+ }, [handleClearAll, onFillWithCurrentDateKeys]);
232
365
  const ctx = React__default["default"].useMemo(() => ({
233
- props: propsWithDefaults,
366
+ props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
367
+ dataAttrs
368
+ }),
234
369
  monthInputRef,
235
370
  dayInputRef,
236
371
  yearInputRef,
237
372
  hourInputRef,
238
373
  minutesInputRef,
239
- // secondsInputRef,
240
374
  meridiemInputRef,
241
375
  clearButtonRef,
242
376
  pickerButtonRef,
@@ -255,6 +389,8 @@ const useControlledDateTimePicker = props => {
255
389
  currMeridiemBtnRef,
256
390
  nextMeridiemBtnRef,
257
391
  dateStringFromProps,
392
+ firstSegmentRef,
393
+ lastSegmentRef,
258
394
  tempDateString,
259
395
  setTempDateString,
260
396
  tempTimeString,
@@ -262,6 +398,12 @@ const useControlledDateTimePicker = props => {
262
398
  handleChangeComposedDateTimeString,
263
399
  handleChangeComposedDateString,
264
400
  handleChangeComposedTimeString,
401
+ handleChangeMonth,
402
+ handleChangeDay,
403
+ handleChangeYear,
404
+ handleChangeHours,
405
+ handleChangeMinutes,
406
+ handleChangeMeridiem,
265
407
  handleClearAll,
266
408
  hideDate,
267
409
  hideTime,
@@ -308,8 +450,9 @@ const useControlledDateTimePicker = props => {
308
450
  announcedMinutes,
309
451
  announcedMeridiem,
310
452
  announcedTimeValues,
311
- ariaCurrentValueForInputs
312
- }), [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
453
+ ariaCurrentValueForInputs,
454
+ onGlobalKeyDown
455
+ }), [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
313
456
  );
314
457
  return ctx;
315
458
  };
@@ -12,11 +12,12 @@ var constants = require('../utils/constants.js');
12
12
  // our source of truth is either the date props or dateTime props
13
13
  // based on wheter it's a dateTime picker
14
14
  // or a date picker (it's date picker when hideTime is true)
15
- const useGetDestructuredDateValues = ({
16
- date,
17
- dateTime,
18
- isDateTimeSelector
19
- }) => {
15
+ const useGetDestructuredDateValues = _ref => {
16
+ let {
17
+ date,
18
+ dateTime,
19
+ isDateTimeSelector
20
+ } = _ref;
20
21
  const dateStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToDate(dateTime) : date;
21
22
  const deconstructedValues = stringHelpers.deconstructValuesFromDateString(dateStringFromProps);
22
23
  const {
@@ -29,8 +30,8 @@ const useGetDestructuredDateValues = ({
29
30
  const yearNum = numberHelpers.convertToPositiveNumberIfPossible(year);
30
31
  const announcedMonth = monthNum !== -1 ? constants.monthNames[monthNum - 1] : 'empty month';
31
32
  const announcedDay = dayNum !== -1 ? constants.announcableCardinalDays[dayNum] : 'empty day';
32
- const announcedYear = yearNum !== -1 ? stringHelpers.fillStringWithPlaceHolders(`${yearNum}`, 4, '0') : 'empty year';
33
- const announcedDateValues = `${announcedMonth}, ${announcedDay}, ${announcedYear}`;
33
+ const announcedYear = yearNum !== -1 ? stringHelpers.fillStringWithPlaceHolders("".concat(yearNum), 4, '0') : 'empty year';
34
+ const announcedDateValues = "".concat(announcedMonth, ", ").concat(announcedDay, ", ").concat(announcedYear);
34
35
  return React.useMemo(() => ({
35
36
  month,
36
37
  day,
@@ -48,11 +49,12 @@ const useGetDestructuredDateValues = ({
48
49
  // based on wheter it's a dateTime picker
49
50
  // or a time picker (it's time picker when hideDate is true)
50
51
 
51
- const useGetDestructuredTimeValues = ({
52
- time,
53
- dateTime,
54
- isDateTimeSelector
55
- }) => {
52
+ const useGetDestructuredTimeValues = _ref2 => {
53
+ let {
54
+ time,
55
+ dateTime,
56
+ isDateTimeSelector
57
+ } = _ref2;
56
58
  const timeStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToTime(dateTime) : time;
57
59
  const deconstructedValues = stringHelpers.deconstructTimeValues(timeStringFromProps);
58
60
  const {
@@ -63,12 +65,12 @@ const useGetDestructuredTimeValues = ({
63
65
  const hoursNum = numberHelpers.convertToPositiveNumberIfPossible(hours);
64
66
  const minutesNum = numberHelpers.convertToPositiveNumberIfPossible(minutes); // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
65
67
 
66
- const announcedHours = hoursNum !== -1 ? `${hoursNum}` : 'empty hours'; // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
68
+ const announcedHours = hoursNum !== -1 ? "".concat(hoursNum) : 'empty hours'; // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
67
69
 
68
- const announcedMinutes = minutesNum !== -1 ? `${minutesNum}` : 'empty minutes';
70
+ const announcedMinutes = minutesNum !== -1 ? "".concat(minutesNum) : 'empty minutes';
69
71
  const announcedMeridiem = // eslint-disable-next-line no-nested-ternary
70
- meridiem === 'PM' ? `post meridiem` : meridiem === 'AM' ? 'ante meridiem' : 'empty meriediem';
71
- const announcedTimeValues = `${announcedHours}, ${announcedMinutes}, ${announcedMeridiem}`;
72
+ meridiem === 'PM' ? "post meridiem" : meridiem === 'AM' ? 'ante meridiem' : 'empty meriediem';
73
+ const announcedTimeValues = "".concat(announcedHours, ", ").concat(announcedMinutes, ", ").concat(announcedMeridiem);
72
74
  return React.useMemo(() => ({
73
75
  hours,
74
76
  minutes,
@@ -81,12 +83,13 @@ const useGetDestructuredTimeValues = ({
81
83
  announcedTimeValues
82
84
  }), [hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
83
85
  };
84
- const useGetDestructuredValues = ({
85
- date,
86
- time,
87
- dateTime,
88
- isDateTimeSelector
89
- }) => {
86
+ const useGetDestructuredValues = _ref3 => {
87
+ let {
88
+ date,
89
+ time,
90
+ dateTime,
91
+ isDateTimeSelector
92
+ } = _ref3;
90
93
  const {
91
94
  month,
92
95
  day,
@@ -7,72 +7,41 @@ var stringHelpers = require('../utils/stringHelpers.js');
7
7
  var numberHelpers = require('../utils/numberHelpers.js');
8
8
 
9
9
  /* eslint-disable max-len */
10
- const PREPEND = `ControlledDateTimePicker:
11
- Invalid configuration detected::
12
-
13
- `;
10
+ const PREPEND = "ControlledDateTimePicker:\n Invalid configuration detected::\n \n ";
14
11
  const NOT_A_DEFECT = ''; // '\n\n\t\tThis is not a defect, please check\n\n\t\thttps://qa.dimsum.rd.elliemae.io/?path=/story/components-desktop-components-d-controlledform-date-time-picker--basic\n\n\t\tfor instructions on how to use the component correctly\n\n';
15
12
 
16
- const INLINE_RECEIVED_PREPEND = `
17
-
18
- Received:`;
13
+ const INLINE_RECEIVED_PREPEND = "\n\n Received:";
19
14
 
20
15
  const throwInvalidDateTimeError = invalidValue => {
21
- throw new Error(`${PREPEND}the "dateTime" you are providing is not respecting the format it must respect.${INLINE_RECEIVED_PREPEND}${invalidValue}(${typeof invalidValue})${NOT_A_DEFECT}`);
16
+ throw new Error("".concat(PREPEND, "the \"dateTime\" you are providing is not respecting the format it must respect.").concat(INLINE_RECEIVED_PREPEND).concat(invalidValue, "(").concat(typeof invalidValue, ")").concat(NOT_A_DEFECT));
22
17
  };
23
18
 
24
19
  const throwInvalidDaterror = invalidValue => {
25
- throw new Error(`${PREPEND}the "date" you are providing is not respecting the format it must respect.${INLINE_RECEIVED_PREPEND}${invalidValue}(${typeof invalidValue})${NOT_A_DEFECT}`);
20
+ throw new Error("".concat(PREPEND, "the \"date\" you are providing is not respecting the format it must respect.").concat(INLINE_RECEIVED_PREPEND).concat(invalidValue, "(").concat(typeof invalidValue, ")").concat(NOT_A_DEFECT));
26
21
  };
27
22
 
28
23
  const throwInvalidTimerror = invalidValue => {
29
- throw new Error(`${PREPEND}the "time" you are providing is not respecting the format it must respect.${INLINE_RECEIVED_PREPEND}${invalidValue}(${typeof invalidValue})${NOT_A_DEFECT}`);
24
+ throw new Error("".concat(PREPEND, "the \"time\" you are providing is not respecting the format it must respect.").concat(INLINE_RECEIVED_PREPEND).concat(invalidValue, "(").concat(typeof invalidValue, ")").concat(NOT_A_DEFECT));
30
25
  };
31
26
 
32
27
  const throwUncontrolledDateError = (date, onDateChange) => {
33
- throw new Error(`${PREPEND}you are trying to use a date selector while providing a non-string "date" or providing a non-function to "onDateChange"
34
- the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
35
-
36
- Received:
37
- ${date}(${typeof date})
38
- ${onDateChange}(${typeof onDateChange})
39
- ${NOT_A_DEFECT}`);
28
+ throw new Error("".concat(PREPEND, "you are trying to use a date selector while providing a non-string \"date\" or providing a non-function to \"onDateChange\"\n the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations\n\n Received:\n ").concat(date, "(").concat(typeof date, ")\n ").concat(onDateChange, "(").concat(typeof onDateChange, ")\n ").concat(NOT_A_DEFECT));
40
29
  };
41
30
 
42
31
  const throwUncontrolledTimeError = (time, onTimeChange) => {
43
- throw new Error(`${PREPEND}you are trying to use a time selector while providing a non-string "time" or providing a non-function to "onTimeChange"
44
- the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
45
-
46
- Received:
47
- ${time}(${typeof time})
48
- ${onTimeChange}(${typeof onTimeChange})
49
- ${NOT_A_DEFECT}`);
32
+ throw new Error("".concat(PREPEND, "you are trying to use a time selector while providing a non-string \"time\" or providing a non-function to \"onTimeChange\"\n the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations\n\n Received:\n ").concat(time, "(").concat(typeof time, ")\n ").concat(onTimeChange, "(").concat(typeof onTimeChange, ")\n ").concat(NOT_A_DEFECT));
50
33
  };
51
34
 
52
35
  const throwUncontrolledDateTimeError = (dateTime, onDateTimeChange) => {
53
- throw new Error(`${PREPEND}you are trying to use a date-time selector while providing a non-string "dateTime" or providing a non-function to "onDateTimeChange"
54
- the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
55
-
56
- Received:
57
- ${dateTime}(${typeof dateTime})
58
- ${onDateTimeChange}(${typeof onDateTimeChange})
59
- ${NOT_A_DEFECT}`);
36
+ throw new Error("".concat(PREPEND, "you are trying to use a date-time selector while providing a non-string \"dateTime\" or providing a non-function to \"onDateTimeChange\"\n the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations\n\n Received:\n ").concat(dateTime, "(").concat(typeof dateTime, ")\n ").concat(onDateTimeChange, "(").concat(typeof onDateTimeChange, ")\n ").concat(NOT_A_DEFECT));
60
37
  };
61
38
 
62
39
  const throwInvalidEmptyPickerStartingMonthError = emptyPickerStartingMonth => {
63
- throw new Error(`${PREPEND}the provided emptyPickerStartingMonth props is invalid. please provide a string with the format mm/__/yyyy, (mm 01~12, yyyy 0001~9999)
64
-
65
- Received:
66
- ${emptyPickerStartingMonth}(${typeof emptyPickerStartingMonth})
67
- ${NOT_A_DEFECT}`);
40
+ throw new Error("".concat(PREPEND, "the provided emptyPickerStartingMonth props is invalid. please provide a string with the format mm/__/yyyy, (mm 01~12, yyyy 0001~9999) \n\n Received:\n ").concat(emptyPickerStartingMonth, "(").concat(typeof emptyPickerStartingMonth, ")\n ").concat(NOT_A_DEFECT));
68
41
  };
69
42
 
70
43
  const throwInvalidOnCalendarOpenFocusedDayError = onCalendarOpenFocusedDay => {
71
- throw new Error(`${PREPEND}the provided onCalendarOpenFocusedDay props is invalid. please provide a string with the format mm/dd/yyyy, (mm 01~12, dd 01~31, yyyy 0001~9999)
72
-
73
- Received:
74
- ${onCalendarOpenFocusedDay}(${typeof onCalendarOpenFocusedDay})
75
- ${NOT_A_DEFECT}`);
44
+ throw new Error("".concat(PREPEND, "the provided onCalendarOpenFocusedDay props is invalid. please provide a string with the format mm/dd/yyyy, (mm 01~12, dd 01~31, yyyy 0001~9999) \n\n Received:\n ").concat(onCalendarOpenFocusedDay, "(").concat(typeof onCalendarOpenFocusedDay, ")\n ").concat(NOT_A_DEFECT));
76
45
  };
77
46
 
78
47
  const useValidateProps = props => {
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
6
  require('react');
7
- var CloseMedium = require('@elliemae/ds-icons/CloseMedium');
7
+ var dsIcons = require('@elliemae/ds-icons');
8
8
  var dsIcon = require('@elliemae/ds-icon');
9
- var dsButton = require('@elliemae/ds-button');
9
+ var DSButton = require('@elliemae/ds-button');
10
10
  var Styleds = require('../Styleds.js');
11
11
  var ControlledDateTimePickerDatatestid = require('../../ControlledDateTimePickerDatatestid.js');
12
12
  var useClearButton = require('./useClearButton.js');
@@ -14,7 +14,6 @@ var useClearButton = require('./useClearButton.js');
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
16
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
- var CloseMedium__default = /*#__PURE__*/_interopDefaultLegacy(CloseMedium);
18
17
 
19
18
  const ClearButton = () => {
20
19
  const {
@@ -28,14 +27,14 @@ const ClearButton = () => {
28
27
  shouldDisplay: withClearBtn,
29
28
  "aria-label": "clear selected date",
30
29
  buttonType: "icon",
31
- size: dsButton.BUTTON_SIZES.M,
32
- variant: dsButton.BUTTON_VARIANT.DEFAULT,
30
+ size: DSButton.BUTTON_SIZES.M,
31
+ variant: DSButton.BUTTON_VARIANT.DEFAULT,
33
32
  "data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.CLEAR_BUTTON,
34
33
  innerRef: clearButtonRef,
35
34
  onClick: onClearClick,
36
35
  onKeyDown: onClearButtonKeyDown,
37
36
  withAnyPicker: withAnyPicker
38
- }, void 0, /*#__PURE__*/_jsx__default["default"](CloseMedium__default["default"], {
37
+ }, void 0, /*#__PURE__*/_jsx__default["default"](dsIcons.CloseMedium, {
39
38
  color: dsIcon.DSIconColors.PRIMARY
40
39
  }));
41
40
  };
@@ -13,10 +13,15 @@ const useClearButton = () => {
13
13
  withAnyPicker,
14
14
  withClearBtn,
15
15
  withAnyInputs,
16
+ isWithTimeInputs,
17
+ isWithDateInputs,
16
18
  isTimeSelector,
17
19
  hourInputRef,
18
20
  monthInputRef,
19
- pickerButtonRef
21
+ pickerButtonRef,
22
+ meridiemInputRef,
23
+ yearInputRef,
24
+ setLatestInteractionRegion
20
25
  } = React.useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
21
26
  const focusFirstRegion = React.useCallback(() => {
22
27
  var _hourInputRef$current, _hourInputRef$current2, _monthInputRef$curren, _monthInputRef$curren2;
@@ -25,8 +30,9 @@ const useClearButton = () => {
25
30
  }, [withAnyInputs, isTimeSelector, hourInputRef, monthInputRef]);
26
31
  const onClearClick = React.useCallback(e => {
27
32
  handleClearAll(e);
33
+ setLatestInteractionRegion('clear-btn');
28
34
  focusFirstRegion();
29
- }, [focusFirstRegion, handleClearAll]);
35
+ }, [focusFirstRegion, handleClearAll, setLatestInteractionRegion]);
30
36
  const onHomeKeyDown = React.useCallback(() => {
31
37
  focusFirstRegion();
32
38
  }, [focusFirstRegion]);
@@ -45,7 +51,13 @@ const useClearButton = () => {
45
51
  if (stopPropagationKeys.includes(key)) e.stopPropagation();
46
52
  if (key === 'Home') onHomeKeyDown();
47
53
  if (key === 'End') onEndKeyDown();
48
- }, [onEndKeyDown, onHomeKeyDown]);
54
+
55
+ if (key === 'Backspace' && withAnyInputs) {
56
+ var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
57
+
58
+ 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);
59
+ }
60
+ }, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onEndKeyDown, onHomeKeyDown, withAnyInputs, yearInputRef]);
49
61
  return React.useMemo(() => ({
50
62
  onClearClick,
51
63
  onClearButtonKeyDown,
@@ -2,6 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
11
  var _jsx = require('@babel/runtime/helpers/jsx');
6
12
  var React = require('react');
7
13
  var dsGrid = require('@elliemae/ds-grid');
@@ -11,13 +17,19 @@ var DateInputs = require('./DateInputs/DateInputs.js');
11
17
  var TimeInputs = require('./TimeInputs/TimeInputs.js');
12
18
  var PickersIcons = require('./Pickers/PickersIcons.js');
13
19
  var ClearButton = require('./ClearButton/ClearButton.js');
20
+ var jsxRuntime = require('react/jsx-runtime');
14
21
 
15
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
23
 
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
17
25
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
18
26
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
27
 
20
28
  var _DateInputs, _TimeInputs, _ClearButton, _PickersIcons;
29
+
30
+ 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; }
31
+
32
+ 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; }
21
33
  const ControlledDateTimePickerContent = () => {
22
34
  const {
23
35
  hideDate,
@@ -31,8 +43,11 @@ const ControlledDateTimePickerContent = () => {
31
43
  shouldPreserveClearableSpace,
32
44
  isControllerOnly,
33
45
  props: {
34
- hasError
35
- }
46
+ hasError,
47
+ dataAttrs,
48
+ disabled
49
+ },
50
+ onGlobalKeyDown
36
51
  } = React__default["default"].useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
37
52
  const resetLatestInteraction = React__default["default"].useCallback(() => {
38
53
  setLatestInteractionRegion('');
@@ -44,18 +59,24 @@ const ControlledDateTimePickerContent = () => {
44
59
  const rightControlCols = [];
45
60
  if (shouldPreserveClearableSpace) rightControlCols.push('28px');
46
61
  if (withAnyPicker) rightControlCols.push('auto');
47
- return /*#__PURE__*/_jsx__default["default"](Styleds.StyledInputsWrapperGrid, {
48
- cols: mainCols,
49
- gutter: "xxs",
50
- pr: hideDatePicker && hideTimePicker && hideDateTimePicker ? '2px' : null,
51
- justPicker: hideDate && hideTime,
52
- withAnyPicker: withAnyPicker,
53
- onBlur: resetLatestInteraction,
54
- hasError: hasError,
55
- isControllerOnly: isControllerOnly
56
- }, void 0, hideDate ? null : _DateInputs || (_DateInputs = /*#__PURE__*/_jsx__default["default"](DateInputs.DateInputs, {})), hideTime ? null : _TimeInputs || (_TimeInputs = /*#__PURE__*/_jsx__default["default"](TimeInputs.TimeInputs, {})), withAnyRightController ? /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
57
- cols: rightControlCols
58
- }, void 0, shouldPreserveClearableSpace ? _ClearButton || (_ClearButton = /*#__PURE__*/_jsx__default["default"](ClearButton.ClearButton, {})) : null, withAnyPicker ? _PickersIcons || (_PickersIcons = /*#__PURE__*/_jsx__default["default"](PickersIcons.PickersIcons, {})) : null) : null);
62
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
63
+ children: /*#__PURE__*/jsxRuntime.jsxs(Styleds.StyledInputsWrapperGrid, _objectSpread(_objectSpread({
64
+ cols: mainCols,
65
+ gutter: "xxs",
66
+ pr: hideDatePicker && hideTimePicker && hideDateTimePicker ? '2px' : null,
67
+ justPicker: hideDate && hideTime,
68
+ withAnyPicker: withAnyPicker,
69
+ onBlur: resetLatestInteraction,
70
+ onKeyDown: onGlobalKeyDown,
71
+ hasError: hasError,
72
+ isControllerOnly: isControllerOnly,
73
+ disabled: disabled
74
+ }, dataAttrs), {}, {
75
+ children: [hideDate ? null : _DateInputs || (_DateInputs = /*#__PURE__*/_jsx__default["default"](DateInputs.DateInputs, {})), hideTime ? null : _TimeInputs || (_TimeInputs = /*#__PURE__*/_jsx__default["default"](TimeInputs.TimeInputs, {})), withAnyRightController ? /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
76
+ cols: rightControlCols
77
+ }, void 0, shouldPreserveClearableSpace ? _ClearButton || (_ClearButton = /*#__PURE__*/_jsx__default["default"](ClearButton.ClearButton, {})) : null, withAnyPicker ? _PickersIcons || (_PickersIcons = /*#__PURE__*/_jsx__default["default"](PickersIcons.PickersIcons, {})) : null) : null]
78
+ }))
79
+ });
59
80
  };
60
81
 
61
82
  exports.ControlledDateTimePickerContent = ControlledDateTimePickerContent;