@elliemae/ds-controlled-form 2.4.1-rc.7 → 2.4.2-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/cjs/date-time-picker/ControlledDateTimePickerCTX.js +1 -114
  2. package/cjs/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  3. package/cjs/date-time-picker/config/useChangeHandlers.js +264 -0
  4. package/cjs/date-time-picker/config/useControlledDateTimePicker.js +37 -420
  5. package/cjs/date-time-picker/config/useGetDestructuredValues.js +25 -68
  6. package/cjs/date-time-picker/config/useGetFlags.js +173 -0
  7. package/cjs/date-time-picker/config/useGetPropsBasedOnType.js +101 -0
  8. package/cjs/date-time-picker/config/useGetPropsWithDefault.js +2 -3
  9. package/cjs/date-time-picker/config/useGetReferences.js +86 -0
  10. package/cjs/date-time-picker/config/useGlobalKeyHandlers.js +106 -0
  11. package/cjs/date-time-picker/config/useRelevantValueFromProps.js +39 -0
  12. package/cjs/date-time-picker/config/useValidateProps.js +47 -42
  13. package/cjs/date-time-picker/parts/ClearButton/ClearButton.js +20 -8
  14. package/cjs/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  15. package/cjs/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  16. package/cjs/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  17. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  18. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -49
  19. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  20. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  21. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +8 -4
  22. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  23. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  24. package/cjs/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  25. package/cjs/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +24 -122
  26. package/cjs/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +32 -4
  27. package/cjs/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  28. package/cjs/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  29. package/cjs/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  30. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +7 -3
  31. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  32. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +0 -1
  33. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  34. package/cjs/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  35. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +60 -33
  36. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  37. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  38. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  39. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -65
  40. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  41. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  42. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +18 -116
  43. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +52 -94
  44. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  45. package/cjs/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  46. package/cjs/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  47. package/cjs/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  48. package/cjs/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  49. package/cjs/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  50. package/cjs/date-time-picker/propTypes.js +56 -23
  51. package/cjs/date-time-picker/sharedTypes.js +2 -0
  52. package/cjs/date-time-picker/utils/dateHelpers.js +56 -56
  53. package/cjs/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  54. package/cjs/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +50 -47
  55. package/cjs/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  56. package/cjs/date-time-picker/utils/stringHelpers.js +8 -14
  57. package/cjs/date-time-picker/utils/typeGuards.js +14 -0
  58. package/esm/date-time-picker/ControlledDateTimePickerCTX.js +3 -115
  59. package/esm/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  60. package/esm/date-time-picker/config/useChangeHandlers.js +256 -0
  61. package/esm/date-time-picker/config/useControlledDateTimePicker.js +38 -421
  62. package/esm/date-time-picker/config/useGetDestructuredValues.js +21 -68
  63. package/esm/date-time-picker/config/useGetFlags.js +165 -0
  64. package/esm/date-time-picker/config/useGetPropsBasedOnType.js +97 -0
  65. package/esm/date-time-picker/config/useGetPropsWithDefault.js +1 -2
  66. package/esm/date-time-picker/config/useGetReferences.js +82 -0
  67. package/esm/date-time-picker/config/useGlobalKeyHandlers.js +98 -0
  68. package/esm/date-time-picker/config/useRelevantValueFromProps.js +35 -0
  69. package/esm/date-time-picker/config/useValidateProps.js +47 -42
  70. package/esm/date-time-picker/parts/ClearButton/ClearButton.js +20 -9
  71. package/esm/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  72. package/esm/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  73. package/esm/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  74. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  75. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +2 -50
  76. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  77. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  78. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +9 -5
  79. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  80. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  81. package/esm/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  82. package/esm/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +23 -125
  83. package/esm/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +33 -5
  84. package/esm/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  85. package/esm/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  86. package/esm/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  87. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +9 -5
  88. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  89. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -2
  90. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  91. package/esm/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  92. package/esm/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +59 -33
  93. package/esm/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  94. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  95. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  96. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -66
  97. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  98. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  99. package/esm/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +15 -117
  100. package/esm/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +54 -96
  101. package/esm/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  102. package/esm/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  103. package/esm/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  104. package/esm/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  105. package/esm/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  106. package/esm/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  107. package/esm/date-time-picker/propTypes.js +49 -17
  108. package/esm/date-time-picker/sharedTypes.js +1 -0
  109. package/esm/date-time-picker/utils/dateHelpers.js +57 -57
  110. package/esm/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  111. package/esm/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +46 -47
  112. package/esm/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  113. package/esm/date-time-picker/utils/stringHelpers.js +8 -14
  114. package/esm/date-time-picker/utils/typeGuards.js +8 -0
  115. package/package.json +47 -15
  116. package/types/date-time-picker/ControlledDateTimePicker.d.ts +25 -80
  117. package/types/date-time-picker/ControlledDateTimePickerCTX.d.ts +1 -2
  118. package/types/date-time-picker/ControlledDateTimePickerDatatestid.d.ts +46 -46
  119. package/types/date-time-picker/ControlledDateTimePickerTypes.d.ts +15 -15
  120. package/types/date-time-picker/config/useChangeHandlers.d.ts +25 -0
  121. package/types/date-time-picker/config/useControlledDateTimePicker.d.ts +18 -2
  122. package/types/date-time-picker/config/useGetDestructuredValues.d.ts +30 -4
  123. package/types/date-time-picker/config/useGetFlags.d.ts +27 -0
  124. package/types/date-time-picker/config/useGetPropsBasedOnType.d.ts +28 -0
  125. package/types/date-time-picker/config/useGetPropsWithDefault.d.ts +2 -2
  126. package/types/date-time-picker/config/useGetReferences.d.ts +39 -0
  127. package/types/date-time-picker/config/useGlobalKeyHandlers.d.ts +16 -0
  128. package/types/date-time-picker/config/useRelevantValueFromProps.d.ts +10 -0
  129. package/types/date-time-picker/config/useValidateProps.d.ts +2 -2
  130. package/types/date-time-picker/parts/ClearButton/useClearButton.d.ts +6 -6
  131. package/types/date-time-picker/parts/DateInputs/DDInput.d.ts +6 -6
  132. package/types/date-time-picker/parts/DateInputs/MMInput.d.ts +6 -6
  133. package/types/date-time-picker/parts/DateInputs/YYYYInput.d.ts +6 -6
  134. package/types/date-time-picker/parts/DateInputs/useDateInputs.d.ts +2 -2
  135. package/types/date-time-picker/parts/Pickers/Calendar/Calendar.d.ts +4 -2
  136. package/types/date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +3 -63
  137. package/types/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +4 -4
  138. package/types/date-time-picker/parts/Pickers/Calendar/CalendarFooter.d.ts +2 -2
  139. package/types/date-time-picker/parts/Pickers/Calendar/Day.d.ts +2 -2
  140. package/types/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.d.ts +15 -2
  141. package/types/date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +12 -5
  142. package/types/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +17 -11
  143. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -16
  144. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.d.ts +2 -2
  145. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.d.ts +15 -1
  146. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.d.ts +4 -2
  147. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +3 -62
  148. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelFooter.d.ts +2 -2
  149. package/types/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.d.ts +4 -1
  150. package/types/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.d.ts +16 -5
  151. package/types/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +18 -3
  152. package/types/date-time-picker/parts/TimeInputs/HHInput.d.ts +6 -6
  153. package/types/date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +6 -6
  154. package/types/date-time-picker/parts/TimeInputs/MinutesInput.d.ts +6 -6
  155. package/types/date-time-picker/parts/TimeInputs/useTimeInputs.d.ts +22 -2
  156. package/types/date-time-picker/parts/config.d.ts +3 -3
  157. package/types/date-time-picker/sharedTypes.d.ts +94 -0
  158. package/types/date-time-picker/utils/constants.d.ts +33 -33
  159. package/types/date-time-picker/utils/dateHelpers.d.ts +15 -14
  160. package/types/date-time-picker/utils/dateTimeHelpers.d.ts +3 -3
  161. package/types/date-time-picker/utils/hooks/useGetDayFromDateString.d.ts +1 -1
  162. package/types/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.d.ts +2 -2
  163. package/types/date-time-picker/utils/hooks/useGetStartingFocusedDay.d.ts +6 -6
  164. package/types/date-time-picker/utils/hooks/useOnClickOutside.d.ts +1 -1
  165. package/types/date-time-picker/utils/timeHelpers.d.ts +2 -2
  166. package/types/date-time-picker/utils/typeGuards.d.ts +4 -0
  167. package/types/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.d.ts +0 -2
  168. package/types/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +0 -12
  169. package/types/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +0 -2
  170. package/types/date-time-picker/propTypes.d.ts +0 -81
@@ -3,124 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var ControlledDateTimePickerTypes = require('./ControlledDateTimePickerTypes.js');
7
6
 
8
- // eslint-disable-next-line @typescript-eslint/no-empty-function
9
- const noop = () => {};
10
-
11
- const defaultReturnFalse = () => false; // const mockedStringStateSetter: React.Dispatch<React.SetStateAction<string>> = noop;
12
-
13
-
14
- const mockedSetLatestInteractionRegion = noop;
15
- const defaultProps = {
16
- // changing default type requires changing default booleans (hideDate, withAnyInputs, etc...) in the context too
17
- type: ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL,
18
- dateTime: '',
19
- date: '',
20
- time: '',
21
- onDateChange: noop,
22
- onMonthChange: noop,
23
- onDayChange: noop,
24
- onYearChange: noop,
25
- onTimeChange: noop,
26
- onHourChange: noop,
27
- onMinuteChange: noop,
28
- // onSecondsChange: noop,
29
- onMeridiemChange: noop,
30
- onDateTimeChange: noop,
31
- onPickerOpen: noop,
32
- onPickerClose: noop,
33
- getIsDisabledDay: defaultReturnFalse,
34
- getIsOutOfRangeDay: defaultReturnFalse,
35
- getIsStartRangeDay: defaultReturnFalse,
36
- getIsDayInRange: defaultReturnFalse,
37
- getIsEndRangeDay: defaultReturnFalse,
38
- getIsDisabledTime: defaultReturnFalse,
39
- emptyPickerStartingMonth: undefined,
40
- onCalendarOpenFocusedDay: undefined,
41
- minutesInterval: 1,
42
- isClearable: false,
43
- disabled: false,
44
- hasError: false,
45
- autoFocus: false,
46
- preventCloseOnSelection: false,
47
- pickerFooterMsg: undefined
48
- };
49
- const defaultContext = {
50
- props: defaultProps,
51
- monthInputRef: /*#__PURE__*/React.createRef(),
52
- dayInputRef: /*#__PURE__*/React.createRef(),
53
- yearInputRef: /*#__PURE__*/React.createRef(),
54
- hourInputRef: /*#__PURE__*/React.createRef(),
55
- minutesInputRef: /*#__PURE__*/React.createRef(),
56
- // secondsInputRef: createRef<HTMLInputElement>(),
57
- meridiemInputRef: /*#__PURE__*/React.createRef(),
58
- clearButtonRef: /*#__PURE__*/React.createRef(),
59
- pickerButtonRef: /*#__PURE__*/React.createRef(),
60
- prevYearBtnRef: /*#__PURE__*/React.createRef(),
61
- prevMonthBtnRef: /*#__PURE__*/React.createRef(),
62
- nextMonthBtnRef: /*#__PURE__*/React.createRef(),
63
- nextYearBtnRef: /*#__PURE__*/React.createRef(),
64
- calendarDaysWrapperRef: /*#__PURE__*/React.createRef(),
65
- prevHourBtnRef: /*#__PURE__*/React.createRef(),
66
- currHourBtnRef: /*#__PURE__*/React.createRef(),
67
- nextHourBtnRef: /*#__PURE__*/React.createRef(),
68
- prevMinutesBtnRef: /*#__PURE__*/React.createRef(),
69
- currMinutesBtnRef: /*#__PURE__*/React.createRef(),
70
- nextMinutesBtnRef: /*#__PURE__*/React.createRef(),
71
- prevMeridiemBtnRef: /*#__PURE__*/React.createRef(),
72
- currMeridiemBtnRef: /*#__PURE__*/React.createRef(),
73
- nextMeridiemBtnRef: /*#__PURE__*/React.createRef(),
74
- firstSegmentRef: /*#__PURE__*/React.createRef(),
75
- lastSegmentRef: /*#__PURE__*/React.createRef(),
76
- ariaCurrentValueForInputs: '',
77
- dateStringFromProps: '',
78
- tempDateString: '__/__/____',
79
- // setDateString: mockedStringStateSetter,
80
- tempTimeString: '__:__:__ __',
81
- // setTimeString: mockedStringStateSetter,
82
- handleChangeComposedDateTimeString: noop,
83
- handleChangeComposedDateString: noop,
84
- handleChangeComposedTimeString: noop,
85
- handleChangeMonth: noop,
86
- handleChangeDay: noop,
87
- handleChangeYear: noop,
88
- handleChangeHours: noop,
89
- handleChangeMinutes: noop,
90
- handleChangeMeridiem: noop,
91
- handleClearAll: noop,
92
- hideDate: false,
93
- hideTime: false,
94
- hideDateTimePicker: false,
95
- hideDatePicker: true,
96
- hideTimePicker: true,
97
- withAnyInputs: true,
98
- withAnyPicker: true,
99
- withClearBtn: false,
100
- withAnyRightController: true,
101
- isDateSelector: false,
102
- isTimeSelector: false,
103
- isDateTimeSelector: true,
104
- isControllerOnly: false,
105
- isWithTimeWheelToo: true,
106
- isWithCalendarToo: true,
107
- isWithDateInputs: true,
108
- isWithDateInputsOnly: false,
109
- isWithTimeInputs: true,
110
- isWithTimeInputsOnly: false,
111
- autoFocusMonthInput: false,
112
- autoFocusHourInput: false,
113
- autoFocusPrevMonthArrow: false,
114
- autoFocusHourTimeWheel: false,
115
- shouldPreserveClearableSpace: false,
116
- latestInteractionRegion: '',
117
- setLatestInteractionRegion: mockedSetLatestInteractionRegion,
118
- onGlobalKeyDown: noop
119
- };
7
+ const defaultContext = {};
120
8
  /** Context for cross component communication */
121
9
 
122
10
  const ControlledDateTimePickerContext = /*#__PURE__*/React.createContext(defaultContext);
123
11
 
124
12
  exports.ControlledDateTimePickerContext = ControlledDateTimePickerContext;
125
13
  exports["default"] = ControlledDateTimePickerContext;
126
- exports.defaultProps = defaultProps;
@@ -24,9 +24,7 @@ const ControlledDateTimePickerDatatestid = {
24
24
  DAY: 'ds-controlled-date-time-picker-calendar-day',
25
25
  FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',
26
26
  START_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-start-range-day',
27
- // <-nuevo
28
27
  IN_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-in-range-day',
29
- // <-nuevo
30
28
  END_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-end-range-day',
31
29
  SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',
32
30
  SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',
@@ -0,0 +1,264 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
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');
11
+ var React = require('react');
12
+ var dateHelpers = require('../utils/dateHelpers.js');
13
+ var timeHelpers = require('../utils/timeHelpers.js');
14
+ var stringHelpers = require('../utils/stringHelpers.js');
15
+ var constants = require('../utils/constants.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+ const useChangeHandlers = _ref => {
25
+ let {
26
+ relevantValues,
27
+ destructuredValues,
28
+ propsBasedOnType,
29
+ DOMRefs
30
+ } = _ref;
31
+ const {
32
+ tempDateString,
33
+ setTempDateString,
34
+ tempTimeString,
35
+ setTimeString
36
+ } = relevantValues;
37
+ const {
38
+ getIsDisabledDay,
39
+ getIsOutOfRangeDay,
40
+ appOnDateChange,
41
+ appOnMonthChange,
42
+ appOnDayChange,
43
+ appOnYearChange,
44
+ getIsDisabledTime,
45
+ appOnTimeChange,
46
+ appOnHourChange,
47
+ appOnMinuteChange,
48
+ appOnMeridiemChange,
49
+ appOnDateTimeChange,
50
+ isDateTime,
51
+ isDate,
52
+ isTime
53
+ } = propsBasedOnType;
54
+ const {
55
+ month,
56
+ day,
57
+ year,
58
+ hours,
59
+ minutes,
60
+ meridiem
61
+ } = destructuredValues;
62
+ const {
63
+ firstSegmentRef
64
+ } = DOMRefs;
65
+ const getDateMetaInfo = React.useCallback(function () {
66
+ let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
67
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
68
+ const finalDateString = newDateString || tempDateString;
69
+
70
+ const finalMetaInfo = _objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
71
+
72
+ return finalMetaInfo;
73
+ }, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
74
+ const getTimeMetaInfo = React.useCallback(function () {
75
+ let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
76
+ let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
77
+ const finalTimeString = newTimeString || tempTimeString;
78
+
79
+ const finalMetaInfo = _objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
80
+
81
+ return finalMetaInfo;
82
+ }, [tempTimeString, getIsDisabledTime]);
83
+ const handleChangeComposedDateTimeString = React.useCallback((newDateString, newTimeString, metaInfo) => {
84
+ const appDateString = stringHelpers.isEmptyDateStringMask(newDateString) ? '' : newDateString;
85
+ const appTimeString = stringHelpers.isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;
86
+ appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
87
+
88
+ setTempDateString(newDateString);
89
+ appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
90
+
91
+ setTimeString(newTimeString);
92
+ const newDateTimeString = "".concat(newDateString, " ").concat(newTimeString);
93
+
94
+ const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
95
+ newDateString,
96
+ newTimeString,
97
+ newDateTimeString
98
+ });
99
+
100
+ const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
101
+ appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
102
+ }, [appOnDateChange, setTempDateString, appOnTimeChange, setTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
103
+ const handleChangeComposedDateString = React.useCallback((newDateString, metaInfo) => {
104
+ // if we receive an "empty" mask, we comunicate empty string to the app
105
+ const appDateString = stringHelpers.isEmptyDateStringMask(newDateString) ? '' : newDateString;
106
+ appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
107
+
108
+ setTempDateString(newDateString);
109
+ const newDateTimeString = "".concat(newDateString, " ").concat(tempTimeString);
110
+
111
+ const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(tempTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
112
+ newDateString,
113
+ newTimeString: tempTimeString,
114
+ newDateTimeString
115
+ });
116
+
117
+ const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
118
+ appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
119
+ }, [appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
120
+ const handleChangeComposedTimeString = React.useCallback((newTimeString, metaInfo) => {
121
+ const appTimeString = stringHelpers.isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;
122
+ appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
123
+
124
+ setTimeString(newTimeString);
125
+ const newDateTimeString = "".concat(tempDateString, " ").concat(newTimeString);
126
+
127
+ const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(tempDateString, metaInfo)), {}, {
128
+ newDateTimeString,
129
+ newDateString: tempDateString,
130
+ newTimeString
131
+ });
132
+
133
+ const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
134
+ appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
135
+ }, [appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
136
+ const handleChangeMonth = React.useCallback(function (newMonth, e) {
137
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
138
+ const newDateString = stringHelpers.getFormattedDateString({
139
+ month: newMonth,
140
+ day,
141
+ year
142
+ });
143
+
144
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
145
+ newDateString
146
+ });
147
+
148
+ appOnMonthChange(newMonth, e, finalMetaInfo);
149
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
150
+ }, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
151
+ const handleChangeDay = React.useCallback(function (newDay, e) {
152
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
153
+ const newDateString = stringHelpers.getFormattedDateString({
154
+ month,
155
+ day: newDay,
156
+ year
157
+ });
158
+
159
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
160
+ newDateString
161
+ });
162
+
163
+ appOnDayChange(newDay, e, finalMetaInfo);
164
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
165
+ }, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
166
+ const handleChangeYear = React.useCallback(function (newYear, e) {
167
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
168
+ const newDateString = stringHelpers.getFormattedDateString({
169
+ month,
170
+ day,
171
+ year: newYear
172
+ });
173
+
174
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
175
+ newDateString
176
+ });
177
+
178
+ appOnYearChange(newYear, e, finalMetaInfo);
179
+ handleChangeComposedDateString(newDateString, finalMetaInfo);
180
+ }, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
181
+ const handleChangeHours = React.useCallback(function (newHours, e) {
182
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
183
+ const newTimeString = stringHelpers.getFormattedTimeString({
184
+ hours: newHours,
185
+ minutes,
186
+ // seconds,
187
+ meridiem
188
+ });
189
+
190
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
191
+ newTimeString
192
+ });
193
+
194
+ appOnHourChange(newHours, e, finalMetaInfo);
195
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
196
+ }, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
197
+ const handleChangeMinutes = React.useCallback(function (newMinutes, e) {
198
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
199
+ const newTimeString = stringHelpers.getFormattedTimeString({
200
+ hours,
201
+ minutes: newMinutes,
202
+ meridiem
203
+ });
204
+
205
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
206
+ newTimeString
207
+ });
208
+
209
+ appOnMinuteChange(newMinutes, e, finalMetaInfo);
210
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
211
+ }, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
212
+ const handleChangeMeridiem = React.useCallback(function (newMeridiem, e) {
213
+ let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
214
+ const newTimeString = stringHelpers.getFormattedTimeString({
215
+ hours,
216
+ minutes,
217
+ meridiem: newMeridiem
218
+ });
219
+
220
+ const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
221
+ newTimeString
222
+ });
223
+
224
+ appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
225
+ handleChangeComposedTimeString(newTimeString, finalMetaInfo);
226
+ }, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
227
+ const handleClearAll = React.useCallback(e => {
228
+ const metaInfo = {
229
+ isAutomaticFillTrigger: false,
230
+ isClearButtonAction: true,
231
+ newDateString: '',
232
+ newTimeString: '',
233
+ newDateTimeString: ''
234
+ };
235
+ appOnMonthChange('', e, metaInfo);
236
+ appOnDayChange('', e, metaInfo);
237
+ appOnYearChange('', e, metaInfo);
238
+ appOnHourChange('', e, metaInfo);
239
+ appOnMinuteChange('', e, metaInfo);
240
+ appOnMeridiemChange('', e, metaInfo);
241
+ if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
242
+ if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);
243
+ if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);
244
+ setTimeout(() => {
245
+ var _firstSegmentRef$curr;
246
+
247
+ (_firstSegmentRef$curr = firstSegmentRef.current) === null || _firstSegmentRef$curr === void 0 ? void 0 : _firstSegmentRef$curr.focus();
248
+ });
249
+ }, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, firstSegmentRef, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDate, isDateTime, isTime]);
250
+ return React.useMemo(() => ({
251
+ handleChangeComposedDateTimeString,
252
+ handleChangeComposedDateString,
253
+ handleChangeComposedTimeString,
254
+ handleChangeMonth,
255
+ handleChangeDay,
256
+ handleChangeYear,
257
+ handleChangeHours,
258
+ handleChangeMinutes,
259
+ handleChangeMeridiem,
260
+ handleClearAll
261
+ }), [handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, handleChangeDay, handleChangeHours, handleChangeMeridiem, handleChangeMinutes, handleChangeMonth, handleChangeYear, handleClearAll]);
262
+ };
263
+
264
+ exports.useChangeHandlers = useChangeHandlers;