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

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 (162) hide show
  1. package/cjs/controlled-checkbox/config/useValidateProps.js +3 -5
  2. package/cjs/controlled-checkbox/styles.js +2 -2
  3. package/cjs/controlled-checkbox/utils/styleHelpers.js +2 -20
  4. package/cjs/controlled-date-range-picker/config/useRangePickerLogic.js +1 -0
  5. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +1 -0
  6. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
  7. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +1 -0
  8. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +1 -0
  9. package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
  10. package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +60 -7
  11. package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +146 -0
  12. package/cjs/controlled-date-time-picker/config/useValidateProps.js +10 -41
  13. package/cjs/controlled-date-time-picker/index.js +1 -1
  14. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +8 -7
  15. package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +3 -2
  16. package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  17. package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +3 -2
  18. package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +3 -2
  19. package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +6 -28
  20. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +7 -4
  21. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +11 -6
  22. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +4 -0
  23. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +24 -5
  24. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +36 -34
  25. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +13 -11
  26. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +6 -2
  27. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWeekDays.js +34 -2
  28. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +2 -0
  29. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +42 -23
  30. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +52 -37
  31. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +34 -4
  32. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
  33. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +1 -2
  34. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +1 -1
  35. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +3 -1
  36. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -0
  37. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +13 -11
  38. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +2 -0
  39. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +11 -4
  40. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +6 -4
  41. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +20 -21
  42. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +20 -27
  43. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +21 -22
  44. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -12
  45. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +25 -85
  46. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -2
  47. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -0
  48. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -10
  49. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +2 -0
  50. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -3
  51. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
  52. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -0
  53. package/cjs/controlled-date-time-picker/parts/Styleds.js +6 -12
  54. package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
  55. package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -1
  56. package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +2 -1
  57. package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +7 -3
  58. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +11 -34
  59. package/cjs/controlled-date-time-picker/utils/constants.js +43 -0
  60. package/cjs/controlled-date-time-picker/utils/dateHelpers.js +7 -7
  61. package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
  62. package/cjs/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
  63. package/cjs/controlled-date-time-picker/utils/stringHelpers.js +20 -3
  64. package/cjs/controlled-toggle/ControlledToggle.js +2 -1
  65. package/cjs/controlled-toggle/styles.js +5 -7
  66. package/cjs/index.js +1 -1
  67. package/esm/controlled-checkbox/config/useValidateProps.js +3 -5
  68. package/esm/controlled-checkbox/styles.js +2 -2
  69. package/esm/controlled-checkbox/utils/styleHelpers.js +2 -20
  70. package/esm/controlled-date-range-picker/config/useRangePickerLogic.js +1 -0
  71. package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +1 -0
  72. package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
  73. package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +1 -0
  74. package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +1 -0
  75. package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
  76. package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +60 -7
  77. package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +140 -0
  78. package/esm/controlled-date-time-picker/config/useValidateProps.js +10 -41
  79. package/esm/controlled-date-time-picker/index.js +1 -1
  80. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +7 -6
  81. package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +3 -2
  82. package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  83. package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +3 -2
  84. package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +3 -2
  85. package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +9 -30
  86. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +7 -4
  87. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +12 -7
  88. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +4 -0
  89. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +26 -7
  90. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +36 -34
  91. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +12 -9
  92. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +6 -2
  93. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWeekDays.js +35 -3
  94. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +2 -0
  95. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +41 -23
  96. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +50 -36
  97. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +35 -5
  98. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
  99. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +1 -2
  100. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +1 -1
  101. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +3 -1
  102. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -0
  103. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +12 -9
  104. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +2 -0
  105. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +11 -5
  106. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +6 -4
  107. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +20 -19
  108. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +20 -25
  109. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +21 -20
  110. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -12
  111. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +25 -85
  112. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -2
  113. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -0
  114. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -9
  115. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +2 -0
  116. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -3
  117. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
  118. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -0
  119. package/esm/controlled-date-time-picker/parts/Styleds.js +6 -11
  120. package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
  121. package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -1
  122. package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +2 -1
  123. package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +7 -3
  124. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +12 -35
  125. package/esm/controlled-date-time-picker/utils/constants.js +37 -0
  126. package/esm/controlled-date-time-picker/utils/dateHelpers.js +6 -6
  127. package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
  128. package/esm/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
  129. package/esm/controlled-date-time-picker/utils/stringHelpers.js +20 -4
  130. package/esm/controlled-toggle/ControlledToggle.js +2 -1
  131. package/esm/controlled-toggle/styles.js +5 -7
  132. package/esm/index.js +1 -1
  133. package/package.json +12 -4
  134. package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +25 -3
  135. package/types/controlled-date-time-picker/config/useGetDestructuredValues.d.ts +4 -0
  136. package/types/controlled-date-time-picker/index.d.ts +1 -1
  137. package/types/controlled-date-time-picker/parts/DateInputs/DDInput.d.ts +2 -1
  138. package/types/controlled-date-time-picker/parts/DateInputs/MMInput.d.ts +2 -1
  139. package/types/controlled-date-time-picker/parts/DateInputs/YYYYInput.d.ts +2 -1
  140. package/types/controlled-date-time-picker/parts/DateInputs/useDateInputs.d.ts +0 -9
  141. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.d.ts +5 -1
  142. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +9 -5
  143. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +5 -3
  144. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Day.d.ts +5 -3
  145. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +48 -103
  146. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +2 -2
  147. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +4 -4
  148. package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +2 -2
  149. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -0
  150. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +21 -0
  151. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +65 -4
  152. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
  153. package/types/controlled-date-time-picker/parts/Styleds.d.ts +21 -1
  154. package/types/controlled-date-time-picker/parts/TimeInputs/HHInput.d.ts +2 -1
  155. package/types/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +2 -1
  156. package/types/controlled-date-time-picker/parts/TimeInputs/MinutesInput.d.ts +2 -1
  157. package/types/controlled-date-time-picker/utils/constants.d.ts +35 -0
  158. package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +2 -2
  159. package/types/controlled-date-time-picker/utils/dateTimeHelpers.d.ts +1 -1
  160. package/types/controlled-date-time-picker/utils/stringHelpers.d.ts +1 -0
  161. package/cjs/package.json +0 -7
  162. package/esm/package.json +0 -7
@@ -15,16 +15,38 @@ const ControlledDateTimePickerDatatestid = {
15
15
  CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-trigger-icon'
16
16
  },
17
17
  CALENDAR: {
18
+ PREV_YEAR: 'ds-controlled-date-time-picker-calendar-prev-year',
19
+ PREV_MONTH: 'ds-controlled-date-time-picker-calendar-prev-month',
18
20
  DAY: 'ds-controlled-date-time-picker-calendar-day',
19
- FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day'
21
+ FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',
22
+ SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',
23
+ SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',
24
+ NEXT_MONTH: 'ds-controlled-date-time-picker-calendar-next-month',
25
+ NEXT_YEAR: 'ds-controlled-date-time-picker-calendar-next-year'
20
26
  },
21
27
  TIMEWHEEL: {
28
+ PREV_HOUR: 'ds-controlled-date-time-picker-timewheel-prev-hour',
22
29
  HOUR: 'ds-controlled-date-time-picker-timewheel-hour',
23
- SELECTED_HOUR: 'ds-controlled-date-time-picker-timewheel-selected-hour',
30
+ CURRENT_HOUR: 'ds-controlled-date-time-picker-timewheel-current-hour',
31
+ NEXT_HOUR: 'ds-controlled-date-time-picker-timewheel-next-hour',
32
+ PREV_MINUTE: 'ds-controlled-date-time-picker-timewheel-prev-minute',
24
33
  MINUTE: 'ds-controlled-date-time-picker-timewheel-minute',
25
- SELECTED_MINUTE: 'ds-controlled-date-time-picker-timewheel-selected-minute',
34
+ CURRENT_MINUTE: 'ds-controlled-date-time-picker-timewheel-current-minute',
35
+ NEXT_MINUTE: 'ds-controlled-date-time-picker-timewheel-next-minute',
36
+ PREV_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-prev-meridiem',
26
37
  MERIDIEM: 'ds-controlled-date-time-picker-timewheel-meridiem',
27
- SELECTED_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-selected-meridiem'
38
+ CURRENT_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-current-meridiem',
39
+ NEXT_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-next-meridiem'
40
+ },
41
+ CONTEXTUAL_MENU: {
42
+ CALENDAR: 'ds-controlled-date-time-picker-calendar-context-content-wrapper',
43
+ TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-context-content-wrapper',
44
+ CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-context-content-wrapper'
45
+ },
46
+ CONTROLLER_COMPONENT: {
47
+ CALENDAR: 'ds-controlled-date-time-picker-calendar-controller-wrapper',
48
+ TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-controller-wrapper',
49
+ CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-controller-wrapper'
28
50
  },
29
51
  CLEAR_BUTTON: 'ds-controlled-date-time-picker-clear-btn'
30
52
  };
@@ -1,6 +1,8 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
3
  import React, { useRef, useMemo, useState, useCallback } from 'react';
3
4
  import { useGetDatePickerWithDefaultsProps } from './useGetPropsWithDefault.js';
5
+ import { useGetDestructuredValues } from './useGetDestructuredValues.js';
4
6
  import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes.js';
5
7
  import { useValidateProps } from './useValidateProps.js';
6
8
  import { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';
@@ -56,7 +58,10 @@ const useControlledDateTimePicker = props => {
56
58
  onYearChange: appOnYearChange,
57
59
  onHourChange: appOnHourChange,
58
60
  onMinuteChange: appOnMinuteChange,
59
- onMeridiemChange: appOnMeridiemChange
61
+ onMeridiemChange: appOnMeridiemChange,
62
+ date: appDate,
63
+ time: appTime,
64
+ dateTime: appDateTime
60
65
  } = propsWithDefaults;
61
66
  const dateStringFromProps = useMemo(() => propsWithDefaults.dateTime && propsWithDefaults.dateTime !== '' ? dateTimeToDate(propsWithDefaults.dateTime) : propsWithDefaults.date && propsWithDefaults.date !== '' ? propsWithDefaults.date : '__/__/____', [propsWithDefaults.date, propsWithDefaults.dateTime]); // don't use tempDateString to trigger useEffect for onDateChange
62
67
  // that is an anti-pattern and leads to a lot of issue
@@ -81,7 +86,8 @@ const useControlledDateTimePicker = props => {
81
86
  const isWithCalendarToo = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
82
87
  const withAnyInputs = !hideDate || !hideTime;
83
88
  const withAnyPicker = !hideDateTimePicker || !hideTimePicker || !hideDatePicker;
84
- const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' || timeStringFromProps !== '__:__ __' && timeStringFromProps !== ''); // or time is not "empty-ish"
89
+ const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' || // date is not "empty-ish"
90
+ timeStringFromProps !== '__:__ __' && timeStringFromProps !== ''); // or time is not "empty-ish"
85
91
 
86
92
  const isWithDateInputs = withAnyInputs && (isDateTimeSelector || isDateSelector);
87
93
  const isWithDateInputsOnly = withAnyInputs && isDateSelector;
@@ -94,6 +100,33 @@ const useControlledDateTimePicker = props => {
94
100
  const shouldPreserveClearableSpace = isClearable && withAnyInputs;
95
101
  const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
96
102
  const [latestInteractionRegion, setLatestInteractionRegion] = useState('');
103
+ const {
104
+ month,
105
+ day,
106
+ year,
107
+ monthNum,
108
+ dayNum,
109
+ yearNum,
110
+ announcedMonth,
111
+ announcedDay,
112
+ announcedYear,
113
+ announcedDateValues,
114
+ hours,
115
+ minutes,
116
+ meridiem,
117
+ hoursNum,
118
+ minutesNum,
119
+ announcedHours,
120
+ announcedMinutes,
121
+ announcedMeridiem,
122
+ announcedTimeValues
123
+ } = useGetDestructuredValues({
124
+ date: appDate,
125
+ time: appTime,
126
+ dateTime: appDateTime,
127
+ isDateTimeSelector
128
+ });
129
+ const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
97
130
  const getDateMetaInfo = useCallback((newDateString = null, metaInfo = {}) => {
98
131
  const finalDateString = newDateString || tempDateString;
99
132
  return _objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
@@ -111,7 +144,7 @@ const useControlledDateTimePicker = props => {
111
144
  appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
112
145
 
113
146
  setTimeString(newTimeString);
114
- const newDateTimeString = `${newDateString} ${newTimeString}`;
147
+ const newDateTimeString = "".concat(newDateString, " ").concat(newTimeString);
115
148
 
116
149
  const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
117
150
  newDateString,
@@ -128,7 +161,7 @@ const useControlledDateTimePicker = props => {
128
161
  appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
129
162
 
130
163
  setTempDateString(newDateString);
131
- const newDateTimeString = `${newDateString} ${tempTimeString}`;
164
+ const newDateTimeString = "".concat(newDateString, " ").concat(tempTimeString);
132
165
 
133
166
  const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(tempTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
134
167
  newDateString,
@@ -144,7 +177,7 @@ const useControlledDateTimePicker = props => {
144
177
  appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
145
178
 
146
179
  setTimeString(newTimeString);
147
- const newDateTimeString = `${tempDateString} ${newTimeString}`;
180
+ const newDateTimeString = "".concat(tempDateString, " ").concat(newTimeString);
148
181
 
149
182
  const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(tempDateString, metaInfo)), {}, {
150
183
  newDateTimeString,
@@ -248,8 +281,28 @@ const useControlledDateTimePicker = props => {
248
281
  withAnyPicker,
249
282
  withClearBtn,
250
283
  withAnyRightController,
251
- shouldPreserveClearableSpace
252
- }), [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] // refs are mutable so we don't need to listen to them
284
+ shouldPreserveClearableSpace,
285
+ month,
286
+ day,
287
+ year,
288
+ monthNum,
289
+ dayNum,
290
+ yearNum,
291
+ announcedMonth,
292
+ announcedDay,
293
+ announcedYear,
294
+ announcedDateValues,
295
+ hours,
296
+ minutes,
297
+ meridiem,
298
+ hoursNum,
299
+ minutesNum,
300
+ announcedHours,
301
+ announcedMinutes,
302
+ announcedMeridiem,
303
+ 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
253
306
  );
254
307
  return ctx;
255
308
  };
@@ -0,0 +1,140 @@
1
+ import { useMemo } from 'react';
2
+ import { dateTimeToDate, deconstructValuesFromDateString, fillStringWithPlaceHolders, dateTimeToTime, deconstructTimeValues } from '../utils/stringHelpers.js';
3
+ import { convertToPositiveNumberIfPossible } from '../utils/numberHelpers.js';
4
+ import { monthNames, announcableCardinalDays } from '../utils/constants.js';
5
+
6
+ /* eslint-disable max-lines */
7
+ // this is because it's fully controlled
8
+ // our source of truth is either the date props or dateTime props
9
+ // based on wheter it's a dateTime picker
10
+ // or a date picker (it's date picker when hideTime is true)
11
+ const useGetDestructuredDateValues = ({
12
+ date,
13
+ dateTime,
14
+ isDateTimeSelector
15
+ }) => {
16
+ const dateStringFromProps = isDateTimeSelector ? dateTimeToDate(dateTime) : date;
17
+ const deconstructedValues = deconstructValuesFromDateString(dateStringFromProps);
18
+ const {
19
+ month,
20
+ day,
21
+ year
22
+ } = deconstructedValues;
23
+ const monthNum = convertToPositiveNumberIfPossible(month);
24
+ const dayNum = convertToPositiveNumberIfPossible(day);
25
+ const yearNum = convertToPositiveNumberIfPossible(year);
26
+ const announcedMonth = monthNum !== -1 ? monthNames[monthNum - 1] : 'empty month';
27
+ const announcedDay = dayNum !== -1 ? announcableCardinalDays[dayNum] : 'empty day';
28
+ const announcedYear = yearNum !== -1 ? fillStringWithPlaceHolders("".concat(yearNum), 4, '0') : 'empty year';
29
+ const announcedDateValues = "".concat(announcedMonth, ", ").concat(announcedDay, ", ").concat(announcedYear);
30
+ return useMemo(() => ({
31
+ month,
32
+ day,
33
+ year,
34
+ monthNum,
35
+ dayNum,
36
+ yearNum,
37
+ announcedMonth,
38
+ announcedDay,
39
+ announcedYear,
40
+ announcedDateValues
41
+ }), [announcedDay, announcedMonth, announcedYear, announcedDateValues, day, dayNum, month, monthNum, year, yearNum]);
42
+ }; // this is because it's fully controlled
43
+ // our source of truth is either the time props or dateTime props
44
+ // based on wheter it's a dateTime picker
45
+ // or a time picker (it's time picker when hideDate is true)
46
+
47
+ const useGetDestructuredTimeValues = ({
48
+ time,
49
+ dateTime,
50
+ isDateTimeSelector
51
+ }) => {
52
+ const timeStringFromProps = isDateTimeSelector ? dateTimeToTime(dateTime) : time;
53
+ const deconstructedValues = deconstructTimeValues(timeStringFromProps);
54
+ const {
55
+ hours,
56
+ minutes,
57
+ meridiem
58
+ } = deconstructedValues;
59
+ const hoursNum = convertToPositiveNumberIfPossible(hours);
60
+ const minutesNum = convertToPositiveNumberIfPossible(minutes); // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
61
+
62
+ const announcedHours = hoursNum !== -1 ? "".concat(hoursNum) : 'empty hours'; // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
63
+
64
+ const announcedMinutes = minutesNum !== -1 ? "".concat(minutesNum) : 'empty minutes';
65
+ const announcedMeridiem = // eslint-disable-next-line no-nested-ternary
66
+ meridiem === 'PM' ? "post meridiem" : meridiem === 'AM' ? 'ante meridiem' : 'empty meriediem';
67
+ const announcedTimeValues = "".concat(announcedHours, ", ").concat(announcedMinutes, ", ").concat(announcedMeridiem);
68
+ return useMemo(() => ({
69
+ hours,
70
+ minutes,
71
+ meridiem,
72
+ hoursNum,
73
+ minutesNum,
74
+ announcedHours,
75
+ announcedMinutes,
76
+ announcedMeridiem,
77
+ announcedTimeValues
78
+ }), [hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
79
+ };
80
+ const useGetDestructuredValues = ({
81
+ date,
82
+ time,
83
+ dateTime,
84
+ isDateTimeSelector
85
+ }) => {
86
+ const {
87
+ month,
88
+ day,
89
+ year,
90
+ monthNum,
91
+ dayNum,
92
+ yearNum,
93
+ announcedMonth,
94
+ announcedDay,
95
+ announcedYear,
96
+ announcedDateValues
97
+ } = useGetDestructuredDateValues({
98
+ date,
99
+ dateTime,
100
+ isDateTimeSelector
101
+ });
102
+ const {
103
+ hours,
104
+ minutes,
105
+ meridiem,
106
+ hoursNum,
107
+ minutesNum,
108
+ announcedHours,
109
+ announcedMinutes,
110
+ announcedMeridiem,
111
+ announcedTimeValues
112
+ } = useGetDestructuredTimeValues({
113
+ time,
114
+ dateTime,
115
+ isDateTimeSelector
116
+ });
117
+ return useMemo(() => ({
118
+ month,
119
+ day,
120
+ year,
121
+ monthNum,
122
+ dayNum,
123
+ yearNum,
124
+ announcedMonth,
125
+ announcedDay,
126
+ announcedYear,
127
+ announcedDateValues,
128
+ hours,
129
+ minutes,
130
+ meridiem,
131
+ hoursNum,
132
+ minutesNum,
133
+ announcedHours,
134
+ announcedMinutes,
135
+ announcedMeridiem,
136
+ announcedTimeValues
137
+ }), [month, day, year, monthNum, dayNum, yearNum, announcedMonth, announcedDay, announcedYear, announcedDateValues, hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
138
+ };
139
+
140
+ export { useGetDestructuredDateValues, useGetDestructuredTimeValues, useGetDestructuredValues };
@@ -3,72 +3,41 @@ import { deconstructValuesFromDateString, isValidDateString, dateTimeToDate, isV
3
3
  import { convertToPositiveNumberIfPossible } from '../utils/numberHelpers.js';
4
4
 
5
5
  /* eslint-disable max-len */
6
- const PREPEND = `ControlledDateTimePicker:
7
- Invalid configuration detected::
8
-
9
- `;
6
+ const PREPEND = "ControlledDateTimePicker:\n Invalid configuration detected::\n \n ";
10
7
  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';
11
8
 
12
- const INLINE_RECEIVED_PREPEND = `
13
-
14
- Received:`;
9
+ const INLINE_RECEIVED_PREPEND = "\n\n Received:";
15
10
 
16
11
  const throwInvalidDateTimeError = invalidValue => {
17
- 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}`);
12
+ 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));
18
13
  };
19
14
 
20
15
  const throwInvalidDaterror = invalidValue => {
21
- 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}`);
16
+ 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));
22
17
  };
23
18
 
24
19
  const throwInvalidTimerror = invalidValue => {
25
- 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}`);
20
+ 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));
26
21
  };
27
22
 
28
23
  const throwUncontrolledDateError = (date, onDateChange) => {
29
- 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"
30
- the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
31
-
32
- Received:
33
- ${date}(${typeof date})
34
- ${onDateChange}(${typeof onDateChange})
35
- ${NOT_A_DEFECT}`);
24
+ 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));
36
25
  };
37
26
 
38
27
  const throwUncontrolledTimeError = (time, onTimeChange) => {
39
- 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"
40
- the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
41
-
42
- Received:
43
- ${time}(${typeof time})
44
- ${onTimeChange}(${typeof onTimeChange})
45
- ${NOT_A_DEFECT}`);
28
+ 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));
46
29
  };
47
30
 
48
31
  const throwUncontrolledDateTimeError = (dateTime, onDateTimeChange) => {
49
- 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"
50
- the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
51
-
52
- Received:
53
- ${dateTime}(${typeof dateTime})
54
- ${onDateTimeChange}(${typeof onDateTimeChange})
55
- ${NOT_A_DEFECT}`);
32
+ 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));
56
33
  };
57
34
 
58
35
  const throwInvalidEmptyPickerStartingMonthError = emptyPickerStartingMonth => {
59
- 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)
60
-
61
- Received:
62
- ${emptyPickerStartingMonth}(${typeof emptyPickerStartingMonth})
63
- ${NOT_A_DEFECT}`);
36
+ 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));
64
37
  };
65
38
 
66
39
  const throwInvalidOnCalendarOpenFocusedDayError = onCalendarOpenFocusedDay => {
67
- 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)
68
-
69
- Received:
70
- ${onCalendarOpenFocusedDay}(${typeof onCalendarOpenFocusedDay})
71
- ${NOT_A_DEFECT}`);
40
+ 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));
72
41
  };
73
42
 
74
43
  const useValidateProps = props => {
@@ -2,6 +2,6 @@ export { DSControlledDateTimePicker, DSControlledDateTimePickerWithSchema } from
2
2
  export { ControlledDateTimePickerDatatestid } from './ControlledDateTimePickerDatatestid.js';
3
3
  export { CONTROLLED_DATE_TIME_PICKER_TYPES } from './ControlledDateTimePickerTypes.js';
4
4
  export { deconstructValuesFromDateString, prependStringWithPlaceHolders } from './utils/stringHelpers.js';
5
- export { getValidatioDateTimeStringMetaInfo } from './utils/dateTimeHelpers.js';
5
+ export { getValidationDateTimeStringMetaInfo } from './utils/dateTimeHelpers.js';
6
6
  export { getDateStringFromDay, getDateValuesFromDate, getDayFromDateString, getValidationDateStringMetaInfo } from './utils/dateHelpers.js';
7
7
  export { getValidationTimeStringMetaInfo } from './utils/timeHelpers.js';
@@ -1,12 +1,12 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import 'react';
3
3
  import CloseMedium from '@elliemae/ds-icons/CloseMedium';
4
- import { BUTTON_VARIANT } from '@elliemae/ds-basic/Button';
4
+ import { DSIconColors } from '@elliemae/ds-icon';
5
+ import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
5
6
  import { StyledClearButton } from '../Styleds.js';
6
7
  import { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';
7
8
  import { useClearButton } from './useClearButton.js';
8
9
 
9
- var _CloseMedium;
10
10
  const ClearButton = () => {
11
11
  const {
12
12
  onClearClick,
@@ -18,16 +18,17 @@ const ClearButton = () => {
18
18
  return /*#__PURE__*/_jsx(StyledClearButton, {
19
19
  shouldDisplay: withClearBtn,
20
20
  "aria-label": "clear selected date",
21
- buttonType: "text",
22
- leftIcon: _CloseMedium || (_CloseMedium = /*#__PURE__*/_jsx(CloseMedium, {})),
23
- size: "m",
21
+ buttonType: "icon",
22
+ size: BUTTON_SIZES.M,
24
23
  variant: BUTTON_VARIANT.DEFAULT,
25
24
  "data-testid": ControlledDateTimePickerDatatestid.CLEAR_BUTTON,
26
25
  innerRef: clearButtonRef,
27
26
  onClick: onClearClick,
28
27
  onKeyDown: onClearButtonKeyDown,
29
28
  withAnyPicker: withAnyPicker
30
- });
29
+ }, void 0, /*#__PURE__*/_jsx(CloseMedium, {
30
+ color: DSIconColors.PRIMARY
31
+ }));
31
32
  };
32
33
 
33
34
  export { ClearButton };
@@ -18,7 +18,8 @@ const DDInput = /*#__PURE__*/React.memo(({
18
18
  onKeyDown,
19
19
  value,
20
20
  contextRef,
21
- placeholder
21
+ placeholder,
22
+ ariaCurrentValueForInputs
22
23
  }) => {
23
24
  const validateOnChange = useCallback(e => {
24
25
  var _e$target;
@@ -38,7 +39,7 @@ const DDInput = /*#__PURE__*/React.memo(({
38
39
  value: value,
39
40
  ref: contextRef,
40
41
  placeholder: placeholder,
41
- "aria-label": "day input field",
42
+ "aria-label": "day input field, ".concat(ariaCurrentValueForInputs),
42
43
  "data-testid": ControlledDateTimePickerDatatestid.DATE_INPUTS.DAY
43
44
  });
44
45
  });
@@ -33,7 +33,8 @@ const DateInputs = () => {
33
33
  const {
34
34
  monthInputRef,
35
35
  dayInputRef,
36
- yearInputRef
36
+ yearInputRef,
37
+ ariaCurrentValueForInputs
37
38
  } = useContext(ControlledDateTimePickerContext);
38
39
  return /*#__PURE__*/_jsx(Grid, {
39
40
  cols: [fixedValues.smallInputWidth, fixedValues.separatorWidth, fixedValues.smallInputWidth, fixedValues.separatorWidth, fixedValues.largeInputWidth]
@@ -45,7 +46,8 @@ const DateInputs = () => {
45
46
  value: month,
46
47
  contextRef: monthInputRef,
47
48
  autoFocusMonthInput: autoFocusMonthInput,
48
- placeholder: "MM"
49
+ placeholder: "MM",
50
+ ariaCurrentValueForInputs: ariaCurrentValueForInputs
49
51
  })), _StyledSeparator || (_StyledSeparator = /*#__PURE__*/_jsx(StyledSeparator, {
50
52
  alignItems: "center"
51
53
  }, void 0, "/")), /*#__PURE__*/_jsx(StyledFocusWithIn, {}, void 0, /*#__PURE__*/_jsx(DDInput, {
@@ -55,7 +57,8 @@ const DateInputs = () => {
55
57
  onKeyDown: onDayKeyDown,
56
58
  value: day,
57
59
  contextRef: dayInputRef,
58
- placeholder: "DD"
60
+ placeholder: "DD",
61
+ ariaCurrentValueForInputs: ariaCurrentValueForInputs
59
62
  })), _StyledSeparator2 || (_StyledSeparator2 = /*#__PURE__*/_jsx(StyledSeparator, {
60
63
  alignItems: "center"
61
64
  }, void 0, "/")), /*#__PURE__*/_jsx(StyledFocusWithIn, {}, void 0, /*#__PURE__*/_jsx(YYYYInput, {
@@ -65,7 +68,8 @@ const DateInputs = () => {
65
68
  onKeyDown: onYearKeyDown,
66
69
  value: year,
67
70
  contextRef: yearInputRef,
68
- placeholder: "YYYY"
71
+ placeholder: "YYYY",
72
+ ariaCurrentValueForInputs: ariaCurrentValueForInputs
69
73
  })));
70
74
  };
71
75
 
@@ -19,7 +19,8 @@ const MMInput = /*#__PURE__*/React.memo(({
19
19
  value,
20
20
  placeholder,
21
21
  contextRef,
22
- autoFocusMonthInput
22
+ autoFocusMonthInput,
23
+ ariaCurrentValueForInputs
23
24
  }) => {
24
25
  const validateOnChange = useCallback(e => {
25
26
  var _e$target;
@@ -40,7 +41,7 @@ const MMInput = /*#__PURE__*/React.memo(({
40
41
  value: value,
41
42
  ref: contextRef,
42
43
  placeholder: placeholder,
43
- "aria-label": "month input field",
44
+ "aria-label": "month input field, ".concat(ariaCurrentValueForInputs),
44
45
  "data-testid": ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH
45
46
  });
46
47
  });
@@ -18,7 +18,8 @@ const YYYYInput = /*#__PURE__*/React.memo(({
18
18
  onKeyDown,
19
19
  value,
20
20
  placeholder,
21
- contextRef
21
+ contextRef,
22
+ ariaCurrentValueForInputs
22
23
  }) => {
23
24
  const validateOnChange = useCallback(e => {
24
25
  var _e$target;
@@ -38,7 +39,7 @@ const YYYYInput = /*#__PURE__*/React.memo(({
38
39
  value: value,
39
40
  ref: contextRef,
40
41
  placeholder: placeholder,
41
- "aria-label": "year input field",
42
+ "aria-label": "year input field, ".concat(ariaCurrentValueForInputs),
42
43
  "data-testid": ControlledDateTimePickerDatatestid.DATE_INPUTS.YEAR
43
44
  });
44
45
  });
@@ -1,36 +1,24 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
- import { useMemo, useContext, useCallback } from 'react';
2
+ import { useContext, useCallback, useMemo } from 'react';
3
3
  import { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX.js';
4
- import { dateTimeToDate, deconstructValuesFromDateString, getFormattedDateString, prependStringWithPlaceHolders, fillStringWithPlaceHolders } from '../../utils/stringHelpers.js';
4
+ import { getFormattedDateString, prependStringWithPlaceHolders, fillStringWithPlaceHolders } from '../../utils/stringHelpers.js';
5
5
  import { getValidationDateStringMetaInfo } from '../../utils/dateHelpers.js';
6
6
 
7
7
  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; }
8
8
 
9
9
  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; }
10
- // our source of truth is either the date props or dateTime props
11
- // based on wheter it's a dateTime picker
12
- // or a date picker (it's date picker when hideTime is true)
13
-
14
- const useGetDestructuredDateValues = ({
15
- date,
16
- dateTime,
17
- hideTime
18
- }) => {
19
- const dateStringFromProps = useMemo(() => hideTime ? date : dateTimeToDate(dateTime), [date, dateTime, hideTime]);
20
- const deconstructedValues = useMemo(() => deconstructValuesFromDateString(dateStringFromProps), [dateStringFromProps]);
21
- return deconstructedValues;
22
- };
23
10
  const useDateInputs = () => {
24
11
  const {
25
12
  props: {
26
- date,
27
- dateTime,
28
13
  onMonthChange: appOnMonthChange,
29
14
  onDayChange: appOnDayChange,
30
15
  onYearChange: appOnYearChange,
31
16
  getIsDisabledDay,
32
17
  getIsOutOfRangeDay
33
18
  },
19
+ month,
20
+ day,
21
+ year,
34
22
  hideTime,
35
23
  monthInputRef,
36
24
  dayInputRef,
@@ -46,15 +34,6 @@ const useDateInputs = () => {
46
34
  withAnyRightController,
47
35
  autoFocusMonthInput
48
36
  } = useContext(ControlledDateTimePickerContext);
49
- const {
50
- month,
51
- day,
52
- year
53
- } = useGetDestructuredDateValues({
54
- date,
55
- dateTime,
56
- hideTime
57
- });
58
37
  const onHomeKeyDown = useCallback(() => {
59
38
  var _monthInputRef$curren, _monthInputRef$curren2;
60
39
 
@@ -113,7 +92,7 @@ const useDateInputs = () => {
113
92
  const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;
114
93
  let newMonth;
115
94
  if (key === 'ArrowUp') newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;else newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;
116
- newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);
95
+ newMonth = prependStringWithPlaceHolders("".concat(newMonth), 2);
117
96
  handleChangeMonth(newMonth, e);
118
97
  }
119
98
  }, [onHomeKeyDown, onEndKeyDown, month, handleChangeMonth]);
@@ -172,7 +151,7 @@ const useDateInputs = () => {
172
151
  const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;
173
152
  let newDay;
174
153
  if (key === 'ArrowUp') newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;else newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;
175
- newDay = prependStringWithPlaceHolders(`${newDay}`, 2);
154
+ newDay = prependStringWithPlaceHolders("".concat(newDay), 2);
176
155
  handleChangeDay(newDay, e);
177
156
  }
178
157
  }, [onHomeKeyDown, onEndKeyDown, handleChangeDay, day]);
@@ -237,7 +216,7 @@ const useDateInputs = () => {
237
216
  const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;
238
217
  let newYear;
239
218
  if (key === 'ArrowUp') newYear = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;else newYear = yearInteger - 1 > 0 ? yearInteger - 1 : 1;
240
- newYear = prependStringWithPlaceHolders(`${newYear}`, 4);
219
+ newYear = prependStringWithPlaceHolders("".concat(newYear), 4);
241
220
  handleChangeYear(newYear, e);
242
221
  }
243
222
  }, [onHomeKeyDown, onEndKeyDown, handleChangeYear, year]);
@@ -269,4 +248,4 @@ const useDateInputs = () => {
269
248
  }), [month, day, year, autoFocusMonthInput, onMonthFocus, onMonthChange, onDayFocus, onDayChange, onYearFocus, onYearChange, onMonthBlur, onDayBlur, onYearBlur, onMonthKeyDown, onDayKeyDown, onYearKeyDown]);
270
249
  };
271
250
 
272
- export { useDateInputs, useGetDestructuredDateValues };
251
+ export { useDateInputs };
@@ -3,11 +3,14 @@ import React from 'react';
3
3
  import { CalendarMonthDays } from './CalendarMonthDays.js';
4
4
  import { CalendarWeekDays } from './CalendarWeekDays.js';
5
5
  import { StyledBody } from './Styleds.js';
6
- import { jsxs, Fragment } from 'react/jsx-runtime';
7
6
 
8
7
  var _CalendarWeekDays, _StyledBody;
9
- const CalendarBody = /*#__PURE__*/React.memo(() => /*#__PURE__*/jsxs(Fragment, {
10
- children: [_CalendarWeekDays || (_CalendarWeekDays = /*#__PURE__*/_jsx(CalendarWeekDays, {})), _StyledBody || (_StyledBody = /*#__PURE__*/_jsx(StyledBody, {}, void 0, /*#__PURE__*/_jsx(CalendarMonthDays, {})))]
11
- }));
8
+ const CalendarBody = /*#__PURE__*/React.memo(({
9
+ weekRowsNum
10
+ }) => /*#__PURE__*/_jsx("span", {
11
+ role: "grid",
12
+ "aria-colcount": 7,
13
+ "aria-rowcount": weekRowsNum
14
+ }, void 0, _CalendarWeekDays || (_CalendarWeekDays = /*#__PURE__*/_jsx(CalendarWeekDays, {})), _StyledBody || (_StyledBody = /*#__PURE__*/_jsx(StyledBody, {}, void 0, /*#__PURE__*/_jsx(CalendarMonthDays, {})))));
12
15
 
13
16
  export { CalendarBody };