@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.
- package/cjs/controlled-checkbox/config/useValidateProps.js +3 -5
- package/cjs/controlled-checkbox/styles.js +2 -2
- package/cjs/controlled-checkbox/utils/styleHelpers.js +2 -20
- package/cjs/controlled-date-range-picker/config/useRangePickerLogic.js +1 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +1 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +1 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +1 -0
- package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
- package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +60 -7
- package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +146 -0
- package/cjs/controlled-date-time-picker/config/useValidateProps.js +10 -41
- package/cjs/controlled-date-time-picker/index.js +1 -1
- package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +8 -7
- package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +3 -2
- package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
- package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +3 -2
- package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +3 -2
- package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +6 -28
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +7 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +11 -6
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +4 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +24 -5
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +36 -34
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +13 -11
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +6 -2
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWeekDays.js +34 -2
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +2 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +42 -23
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +52 -37
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +34 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +1 -2
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +1 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +3 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +13 -11
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +2 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +11 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +6 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +20 -21
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +20 -27
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +21 -22
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -12
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +25 -85
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -2
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -10
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +2 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -0
- package/cjs/controlled-date-time-picker/parts/Styleds.js +6 -12
- package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -1
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +2 -1
- package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +7 -3
- package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +11 -34
- package/cjs/controlled-date-time-picker/utils/constants.js +43 -0
- package/cjs/controlled-date-time-picker/utils/dateHelpers.js +7 -7
- package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
- package/cjs/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
- package/cjs/controlled-date-time-picker/utils/stringHelpers.js +20 -3
- package/cjs/controlled-toggle/ControlledToggle.js +2 -1
- package/cjs/controlled-toggle/styles.js +5 -7
- package/cjs/index.js +1 -1
- package/esm/controlled-checkbox/config/useValidateProps.js +3 -5
- package/esm/controlled-checkbox/styles.js +2 -2
- package/esm/controlled-checkbox/utils/styleHelpers.js +2 -20
- package/esm/controlled-date-range-picker/config/useRangePickerLogic.js +1 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +1 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +1 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +1 -0
- package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
- package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +60 -7
- package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +140 -0
- package/esm/controlled-date-time-picker/config/useValidateProps.js +10 -41
- package/esm/controlled-date-time-picker/index.js +1 -1
- package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +7 -6
- package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +3 -2
- package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
- package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +3 -2
- package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +3 -2
- package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +9 -30
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +7 -4
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +12 -7
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +4 -0
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +26 -7
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +36 -34
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +12 -9
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +6 -2
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWeekDays.js +35 -3
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +2 -0
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +41 -23
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +50 -36
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +35 -5
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +1 -2
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +1 -1
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +3 -1
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -0
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +12 -9
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +2 -0
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +11 -5
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +6 -4
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +20 -19
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +20 -25
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +21 -20
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -12
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +25 -85
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -2
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -0
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -9
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +2 -0
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -0
- package/esm/controlled-date-time-picker/parts/Styleds.js +6 -11
- package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
- package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -1
- package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +2 -1
- package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +7 -3
- package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +12 -35
- package/esm/controlled-date-time-picker/utils/constants.js +37 -0
- package/esm/controlled-date-time-picker/utils/dateHelpers.js +6 -6
- package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
- package/esm/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
- package/esm/controlled-date-time-picker/utils/stringHelpers.js +20 -4
- package/esm/controlled-toggle/ControlledToggle.js +2 -1
- package/esm/controlled-toggle/styles.js +5 -7
- package/esm/index.js +1 -1
- package/package.json +12 -4
- package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +25 -3
- package/types/controlled-date-time-picker/config/useGetDestructuredValues.d.ts +4 -0
- package/types/controlled-date-time-picker/index.d.ts +1 -1
- package/types/controlled-date-time-picker/parts/DateInputs/DDInput.d.ts +2 -1
- package/types/controlled-date-time-picker/parts/DateInputs/MMInput.d.ts +2 -1
- package/types/controlled-date-time-picker/parts/DateInputs/YYYYInput.d.ts +2 -1
- package/types/controlled-date-time-picker/parts/DateInputs/useDateInputs.d.ts +0 -9
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.d.ts +5 -1
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +9 -5
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +5 -3
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/Day.d.ts +5 -3
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +48 -103
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +2 -2
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +4 -4
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +2 -2
- package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -0
- package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +21 -0
- package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +65 -4
- package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
- package/types/controlled-date-time-picker/parts/Styleds.d.ts +21 -1
- package/types/controlled-date-time-picker/parts/TimeInputs/HHInput.d.ts +2 -1
- package/types/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +2 -1
- package/types/controlled-date-time-picker/parts/TimeInputs/MinutesInput.d.ts +2 -1
- package/types/controlled-date-time-picker/utils/constants.d.ts +35 -0
- package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +2 -2
- package/types/controlled-date-time-picker/utils/dateTimeHelpers.d.ts +1 -1
- package/types/controlled-date-time-picker/utils/stringHelpers.d.ts +1 -0
- package/cjs/package.json +0 -7
- package/esm/package.json +0 -7
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
|
+
import { useContext, useState, useMemo, useCallback } from 'react';
|
|
2
3
|
import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
|
|
3
4
|
import { useKeyboardHandlers } from './useKeyboardHandlers.js';
|
|
4
5
|
import { useFocusLogic } from './useFocusLogic.js';
|
|
5
6
|
import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
|
|
6
7
|
import { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
function sliceIntoChunks(arr, chunkSize) {
|
|
11
|
+
const res = [];
|
|
12
|
+
|
|
13
|
+
for (let i = 0; i < arr.length; i += chunkSize) {
|
|
14
|
+
const chunk = arr.slice(i, i + chunkSize);
|
|
15
|
+
res.push(chunk);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
|
|
9
21
|
const useConfigCalendarCTX = () => {
|
|
10
22
|
const {
|
|
11
23
|
pickerButtonRef,
|
|
@@ -28,7 +40,8 @@ const useConfigCalendarCTX = () => {
|
|
|
28
40
|
isControllerOnly,
|
|
29
41
|
isWithTimeWheelToo,
|
|
30
42
|
setLatestInteractionRegion,
|
|
31
|
-
autoFocusPrevMonthArrow
|
|
43
|
+
autoFocusPrevMonthArrow,
|
|
44
|
+
ariaCurrentValueForInputs
|
|
32
45
|
} = useContext(ControlledDateTimePickerContext);
|
|
33
46
|
const [showCalendar, setShowCalendar] = useState(false);
|
|
34
47
|
const {
|
|
@@ -40,6 +53,19 @@ const useConfigCalendarCTX = () => {
|
|
|
40
53
|
handleNextMonth,
|
|
41
54
|
handleNextYear
|
|
42
55
|
} = useCurrentDisplayedMonthYearLogic();
|
|
56
|
+
const {
|
|
57
|
+
invisibleFirstDay,
|
|
58
|
+
daysMatrixByWeekday,
|
|
59
|
+
invisibleLastDay
|
|
60
|
+
} = useMemo(() => {
|
|
61
|
+
const [invisible1stDay, ...otherDays] = [...daysArray];
|
|
62
|
+
const invisibleDayLast = otherDays.pop();
|
|
63
|
+
return {
|
|
64
|
+
invisibleFirstDay: invisible1stDay,
|
|
65
|
+
daysMatrixByWeekday: sliceIntoChunks(otherDays, 7),
|
|
66
|
+
invisibleLastDay: invisibleDayLast
|
|
67
|
+
};
|
|
68
|
+
}, [daysArray]);
|
|
43
69
|
const setLatestInteractionRegionCalendarHead = useCallback(() => {
|
|
44
70
|
setLatestInteractionRegion('calendar-head');
|
|
45
71
|
}, [setLatestInteractionRegion]);
|
|
@@ -142,6 +168,9 @@ const useConfigCalendarCTX = () => {
|
|
|
142
168
|
currentMonth,
|
|
143
169
|
currentYear,
|
|
144
170
|
daysArray,
|
|
171
|
+
invisibleFirstDay,
|
|
172
|
+
daysMatrixByWeekday,
|
|
173
|
+
invisibleLastDay,
|
|
145
174
|
focusedDay,
|
|
146
175
|
tryToFocusCurrentlyDataIsFocusedDay,
|
|
147
176
|
handleFocusMetaDay,
|
|
@@ -162,8 +191,9 @@ const useConfigCalendarCTX = () => {
|
|
|
162
191
|
onNextMonthFocus,
|
|
163
192
|
onNextYearFocus,
|
|
164
193
|
isWithTimeWheelToo,
|
|
165
|
-
autoFocusPrevMonthArrow
|
|
166
|
-
|
|
194
|
+
autoFocusPrevMonthArrow,
|
|
195
|
+
ariaCurrentValueForInputs
|
|
196
|
+
}), [showCalendar, closeCalendar, setPopperElement, setArrowElement, usePopperHelpers, handleToggleCalendar, handleSetTriggerRef, handleMenuWrapperKeyDown, isControllerOnly, calendarDaysWrapperRef, prevYearBtnRef, prevMonthBtnRef, nextMonthBtnRef, nextYearBtnRef, currentMonth, currentYear, daysArray, invisibleFirstDay, daysMatrixByWeekday, invisibleLastDay, focusedDay, tryToFocusCurrentlyDataIsFocusedDay, handleFocusMetaDay, handleFocusMetaDayByDay, resetFocusedDayToStartDate, handlePrevMonth, handlePrevYear, handleNextMonth, handleNextYear, handleDayOnKeyDown, handlePrevYearKeyDown, handlePrevMonthKeyDown, handleNextMonthKeyDown, handleNextYearKeyDown, handlePickerIconKeyDown, onPrevYearFocus, onPrevMonthFocus, onNextMonthFocus, onNextYearFocus, isWithTimeWheelToo, autoFocusPrevMonthArrow, ariaCurrentValueForInputs]);
|
|
167
197
|
};
|
|
168
198
|
|
|
169
199
|
export { useConfigCalendarCTX };
|
package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import { useEffect, useState, useMemo, createRef, useCallback } from 'react';
|
|
2
3
|
import { useGetMonthYearFromDateStringOrEmptyStartingMonth } from '../../../utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js';
|
|
3
4
|
import { getFiveBySevenCurrentMonthDaysMatrix, sumValuesToDate, getDateStringFromDay, sumFromDateValues } from '../../../utils/dateHelpers.js';
|
|
4
5
|
|
|
5
|
-
/* eslint-disable complexity */
|
|
6
6
|
const useCurrentDisplayedMonthYearLogic = () => {
|
|
7
7
|
const {
|
|
8
8
|
month: monthFromDateString,
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import { useState, useMemo, useCallback, useLayoutEffect } from 'react';
|
|
2
3
|
import { compareTwoDatesDayEquality } from '../../../utils/dateHelpers.js';
|
|
3
4
|
import { useGetStartingFocusedDay } from '../../../utils/hooks/useGetStartingFocusedDay.js';
|
|
4
5
|
|
|
5
|
-
/* eslint-disable complexity */
|
|
6
|
-
|
|
7
6
|
// eslint-disable-next-line max-params
|
|
8
7
|
const loopWhileWaiting = (cb, shortcircuit = () => false, timePerTry = 100, maxTries = 5) => {
|
|
9
8
|
let ab = maxTries;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import { useState, useCallback, useMemo } from 'react';
|
|
2
3
|
import { usePopper } from 'react-popper';
|
|
3
4
|
import { useOnClickOutside } from '../../../utils/hooks/useOnClickOutside.js';
|
|
4
5
|
|
|
5
|
-
/* eslint-disable complexity */
|
|
6
6
|
const usePopperTriggerLogic = ({
|
|
7
7
|
focusedDay,
|
|
8
8
|
resetFocusedDayToStartDate,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
2
|
import { useContext } from 'react';
|
|
3
|
+
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
3
4
|
import { StyledCalendarWithTimeWheelWrapper, StyledCalendar } from './Styleds.js';
|
|
4
5
|
import { CalendarWithTimeWheelFooter } from './CalendarWithTimeWheelFooter.js';
|
|
5
6
|
import { TimeWheelContent } from '../TimeWheel/TimeWheelContent.js';
|
|
@@ -11,7 +12,8 @@ const CalendarWithTimeWheelContent = () => {
|
|
|
11
12
|
isControllerOnly
|
|
12
13
|
} = useContext(ControlledDateTimePickerContext);
|
|
13
14
|
return /*#__PURE__*/_jsx(StyledCalendarWithTimeWheelWrapper, {
|
|
14
|
-
isControllerOnly: isControllerOnly
|
|
15
|
+
isControllerOnly: isControllerOnly,
|
|
16
|
+
"data-testid": ControlledDateTimePickerDatatestid.CONTROLLER_COMPONENT.CALENDAR_TIMEWHEEL
|
|
15
17
|
}, void 0, _StyledCalendar || (_StyledCalendar = /*#__PURE__*/_jsx(StyledCalendar, {})), _TimeWheelContent || (_TimeWheelContent = /*#__PURE__*/_jsx(TimeWheelContent, {})), _CalendarWithTimeWhee || (_CalendarWithTimeWhee = /*#__PURE__*/_jsx(CalendarWithTimeWheelFooter, {})));
|
|
16
18
|
};
|
|
17
19
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
2
|
import { useContext, useMemo } from 'react';
|
|
3
|
-
import
|
|
3
|
+
import { DSIconColors } from '@elliemae/ds-icon';
|
|
4
|
+
import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
|
|
4
5
|
import DatePicker from '@elliemae/ds-icons/DatePicker';
|
|
5
6
|
import { CalendarWithTimeWheelContext } from './CalendarWithTimeWheelContext.js';
|
|
7
|
+
import { StyledIconTriggerButton } from './Styleds.js';
|
|
6
8
|
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
7
9
|
|
|
8
|
-
var _DatePicker;
|
|
9
10
|
// this is particularly useful due to how usePopper needs to check the references
|
|
10
11
|
// since references are saved in a immutable way, we make sure to shortcircuit useless-re-renders
|
|
11
12
|
|
|
@@ -13,19 +14,21 @@ const CalendarWithTimeWheelIconTrigger = () => {
|
|
|
13
14
|
const {
|
|
14
15
|
handleSetTriggerRef,
|
|
15
16
|
handleToggleCalendarWithTimeWheel,
|
|
16
|
-
handlePickerIconKeyDown
|
|
17
|
+
handlePickerIconKeyDown,
|
|
18
|
+
ariaCurrentValueForInputs
|
|
17
19
|
} = useContext(CalendarWithTimeWheelContext);
|
|
18
|
-
return useMemo(() => /*#__PURE__*/_jsx(
|
|
19
|
-
"aria-label": "date time picker context menu trigger",
|
|
20
|
-
buttonType: "
|
|
21
|
-
|
|
22
|
-
size: "m",
|
|
20
|
+
return useMemo(() => /*#__PURE__*/_jsx(StyledIconTriggerButton, {
|
|
21
|
+
"aria-label": "date time picker context menu trigger, ".concat(ariaCurrentValueForInputs),
|
|
22
|
+
buttonType: "icon",
|
|
23
|
+
size: BUTTON_SIZES.M,
|
|
23
24
|
variant: BUTTON_VARIANT.DEFAULT,
|
|
24
25
|
innerRef: handleSetTriggerRef,
|
|
25
26
|
onClick: handleToggleCalendarWithTimeWheel,
|
|
26
27
|
onKeyDown: handlePickerIconKeyDown,
|
|
27
28
|
"data-testid": ControlledDateTimePickerDatatestid.PICKER_ICONS.CALENDAR_TIMEWHEEL
|
|
28
|
-
}
|
|
29
|
+
}, void 0, /*#__PURE__*/_jsx(DatePicker, {
|
|
30
|
+
color: DSIconColors.PRIMARY
|
|
31
|
+
})), [ariaCurrentValueForInputs, handlePickerIconKeyDown, handleSetTriggerRef, handleToggleCalendarWithTimeWheel]);
|
|
29
32
|
};
|
|
30
33
|
|
|
31
34
|
export { CalendarWithTimeWheelIconTrigger };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
2
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
3
3
|
import { useContext } from 'react';
|
|
4
|
+
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
4
5
|
import { CalendarWithTimeWheelContent } from './CalendarWithTimeWheelContent.js';
|
|
5
6
|
import { CalendarWithTimeWheelContext } from './CalendarWithTimeWheelContext.js';
|
|
6
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -28,6 +29,7 @@ const CalendarWithTimeWheelWrapper = () => {
|
|
|
28
29
|
zIndex: 110
|
|
29
30
|
})
|
|
30
31
|
}, attributes.popper), {}, {
|
|
32
|
+
"data-testid": ControlledDateTimePickerDatatestid.CONTEXTUAL_MENU.CALENDAR_TIMEWHEEL,
|
|
31
33
|
children: [_CalendarWithTimeWhee2 || (_CalendarWithTimeWhee2 = /*#__PURE__*/_jsx(CalendarWithTimeWheelContent, {})), /*#__PURE__*/jsx("div", {
|
|
32
34
|
ref: setArrowElement,
|
|
33
35
|
style: styles.arrow
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
|
+
import { DSButtonV2 } from '@elliemae/ds-button';
|
|
2
3
|
import { CalendarContent } from '../Calendar/CalendarContent.js';
|
|
3
4
|
|
|
4
|
-
const
|
|
5
|
+
const StyledIconTriggerButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
|
|
5
6
|
componentId: "sc-h2xj8r-0"
|
|
6
|
-
})(["
|
|
7
|
+
})(["color:", ";width:26px;height:26px;"], ({
|
|
8
|
+
theme
|
|
9
|
+
}) => theme.colors.brand['600']);
|
|
10
|
+
const StyledCalendarWithTimeWheelWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
11
|
+
componentId: "sc-h2xj8r-1"
|
|
12
|
+
})(["background:", ";", " display:grid;grid-template-columns:260px 192px;grid-template-rows:1fr;column-gap:0;& > div:last-of-type{box-shadow:-1px 0 0 0 ", ";margin-left:1px;}"], ({
|
|
7
13
|
theme
|
|
8
14
|
}) => theme.colors.neutral['000'], ({
|
|
9
15
|
isControllerOnly
|
|
@@ -11,10 +17,10 @@ const StyledCalendarWithTimeWheelWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
|
11
17
|
theme
|
|
12
18
|
}) => theme.colors.neutral[200]);
|
|
13
19
|
const StyledCalendar = /*#__PURE__*/styled(CalendarContent).withConfig({
|
|
14
|
-
componentId: "sc-h2xj8r-
|
|
20
|
+
componentId: "sc-h2xj8r-2"
|
|
15
21
|
})(["box-shadow:none;"]);
|
|
16
22
|
const CalendarWithTimeWheelFooterMessage = /*#__PURE__*/styled.footer.withConfig({
|
|
17
|
-
componentId: "sc-h2xj8r-
|
|
23
|
+
componentId: "sc-h2xj8r-3"
|
|
18
24
|
})(["border-top:solid 1px ", ";margin:0 ", ";padding:", " 0;color:", ";font-style:italic;font-weight:", ";font-size:", ";text-align:right;grid-column:1/3;"], ({
|
|
19
25
|
theme
|
|
20
26
|
}) => theme.colors.neutral[300], ({
|
|
@@ -29,4 +35,4 @@ const CalendarWithTimeWheelFooterMessage = /*#__PURE__*/styled.footer.withConfig
|
|
|
29
35
|
theme
|
|
30
36
|
}) => theme.fontSizes.microText[200]);
|
|
31
37
|
|
|
32
|
-
export { CalendarWithTimeWheelFooterMessage, StyledCalendar, StyledCalendarWithTimeWheelWrapper };
|
|
38
|
+
export { CalendarWithTimeWheelFooterMessage, StyledCalendar, StyledCalendarWithTimeWheelWrapper, StyledIconTriggerButton };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import { useContext, useState, useCallback, useMemo } from 'react';
|
|
2
3
|
import { usePopper } from 'react-popper';
|
|
3
4
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../../ControlledDateTimePickerTypes.js';
|
|
@@ -6,7 +7,6 @@ import { useOnClickOutside } from '../../../utils/hooks/useOnClickOutside.js';
|
|
|
6
7
|
import { CalendarContext } from '../Calendar/CalendarContext.js';
|
|
7
8
|
import { TimeWheelContext } from '../TimeWheel/TimeWheelContext.js';
|
|
8
9
|
|
|
9
|
-
/* eslint-disable max-statements */
|
|
10
10
|
const useConfigCalendarWithTimeWheelCTX = () => {
|
|
11
11
|
const {
|
|
12
12
|
pickerButtonRef,
|
|
@@ -18,7 +18,8 @@ const useConfigCalendarWithTimeWheelCTX = () => {
|
|
|
18
18
|
hideDate,
|
|
19
19
|
hideTime,
|
|
20
20
|
monthInputRef,
|
|
21
|
-
hourInputRef
|
|
21
|
+
hourInputRef,
|
|
22
|
+
ariaCurrentValueForInputs
|
|
22
23
|
} = useContext(ControlledDateTimePickerContext);
|
|
23
24
|
const {
|
|
24
25
|
handleToggleCalendar
|
|
@@ -99,8 +100,9 @@ const useConfigCalendarWithTimeWheelCTX = () => {
|
|
|
99
100
|
handleSetTriggerRef,
|
|
100
101
|
handleMenuWrapperKeyDown,
|
|
101
102
|
handlePickerIconKeyDown,
|
|
102
|
-
isControllerOnly
|
|
103
|
-
|
|
103
|
+
isControllerOnly,
|
|
104
|
+
ariaCurrentValueForInputs
|
|
105
|
+
}), [showCalendarWithTimeWheel, usePopperHelpers, handleToggleCalendarWithTimeWheel, handleSetTriggerRef, handleMenuWrapperKeyDown, handlePickerIconKeyDown, isControllerOnly, ariaCurrentValueForInputs]);
|
|
104
106
|
};
|
|
105
107
|
|
|
106
108
|
export { useConfigCalendarWithTimeWheelCTX };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
2
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
3
3
|
import { useContext } from 'react';
|
|
4
|
-
import ChevronSmallUp from '@elliemae/ds-icons
|
|
5
|
-
import ChevronSmallDown from '@elliemae/ds-icons/ChevronSmallDown';
|
|
4
|
+
import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
|
|
6
5
|
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
7
6
|
import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
|
|
8
7
|
import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn, StyledTimeBtn } from './Styleds.js';
|
|
@@ -35,17 +34,17 @@ const HoursList = () => {
|
|
|
35
34
|
} = useContext(TimeWheelContext);
|
|
36
35
|
return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
37
36
|
"aria-label": "subtract one hour",
|
|
38
|
-
buttonType: "
|
|
39
|
-
leftIcon: _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})),
|
|
37
|
+
buttonType: "raw",
|
|
40
38
|
size: "m",
|
|
41
39
|
onClick: handlePrevHour,
|
|
42
40
|
onKeyDown: handlePrevHourBtnOnKeyDown,
|
|
43
41
|
innerRef: prevHourBtnRef,
|
|
42
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_HOUR,
|
|
44
43
|
tabIndex: -1
|
|
45
|
-
})), visibleHours.map(hourString => {
|
|
46
|
-
const key =
|
|
44
|
+
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleHours.map(hourString => {
|
|
45
|
+
const key = "timewheel-hour-".concat(hourString);
|
|
47
46
|
if (!hourString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
|
|
48
|
-
const currHourTimeString =
|
|
47
|
+
const currHourTimeString = "".concat(hourString, ":").concat(minutes || '00', " ").concat(meridiem || 'AM');
|
|
49
48
|
const isEmptyCurrValueCurrentListItem = !hours && convertToPositiveNumberIfPossible(hourString) === currHourNum;
|
|
50
49
|
const isCurrentListItem = isEmptyCurrValueCurrentListItem || hours === hourString;
|
|
51
50
|
const isDisabled = getIsDisabledTime(currHourTimeString);
|
|
@@ -56,34 +55,36 @@ const HoursList = () => {
|
|
|
56
55
|
};
|
|
57
56
|
return /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
58
57
|
isCurrentListItem: isCurrentListItem
|
|
59
|
-
}, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread({
|
|
58
|
+
}, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({
|
|
60
59
|
isCurrentListItem: isCurrentListItem,
|
|
61
60
|
autoFocus: autoFocusHourTimeWheel && isCurrentListItem,
|
|
62
|
-
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? '
|
|
61
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_HOUR' : 'HOUR'],
|
|
63
62
|
selected: hours.length === 2 && convertToPositiveNumberIfPossible(hourString) === currHourNum,
|
|
64
|
-
"aria-label":
|
|
63
|
+
"aria-label": "".concat(hourString, " hours"),
|
|
65
64
|
"aria-disabled": isDisabled,
|
|
66
65
|
isDisabled: isDisabled,
|
|
67
|
-
buttonType: "
|
|
68
|
-
labelText: hourString,
|
|
66
|
+
buttonType: "raw",
|
|
69
67
|
size: "m",
|
|
70
68
|
onClick: e => handleTimeWheelBtnChangeHours(hourString, e),
|
|
71
69
|
tabIndex: tabIndex,
|
|
72
70
|
role: "spinbutton",
|
|
73
71
|
"aria-valuemax": "12",
|
|
74
|
-
"aria-valuemin": "
|
|
75
|
-
"aria-valuenow":
|
|
76
|
-
|
|
72
|
+
"aria-valuemin": "1",
|
|
73
|
+
"aria-valuenow": currHourNum,
|
|
74
|
+
"aria-valuetext": "".concat(hourString, " hours")
|
|
75
|
+
}, btnProps), {}, {
|
|
76
|
+
children: hourString
|
|
77
|
+
})));
|
|
77
78
|
}), /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
78
79
|
"aria-label": "add one hour",
|
|
79
|
-
buttonType: "
|
|
80
|
-
leftIcon: _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})),
|
|
80
|
+
buttonType: "raw",
|
|
81
81
|
size: "m",
|
|
82
82
|
onClick: handleNextHour,
|
|
83
83
|
onKeyDown: handleNextHourBtnOnKeyDown,
|
|
84
84
|
innerRef: nextHourBtnRef,
|
|
85
|
-
tabIndex: -1
|
|
86
|
-
|
|
85
|
+
tabIndex: -1,
|
|
86
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_HOUR
|
|
87
|
+
}, void 0, _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})))));
|
|
87
88
|
};
|
|
88
89
|
|
|
89
90
|
export { HoursList };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
2
|
import { useContext } from 'react';
|
|
3
|
-
import ChevronSmallUp from '@elliemae/ds-icons
|
|
4
|
-
import ChevronSmallDown from '@elliemae/ds-icons/ChevronSmallDown';
|
|
3
|
+
import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
|
|
5
4
|
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
6
5
|
import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn, StyledTimeBtn } from './Styleds.js';
|
|
7
6
|
import { TimeWheelContext } from './TimeWheelContext.js';
|
|
@@ -23,34 +22,32 @@ const MeridiemList = () => {
|
|
|
23
22
|
} = useContext(TimeWheelContext);
|
|
24
23
|
const isAmCurrent = !meridiem || meridiem === 'AM';
|
|
25
24
|
const isPmCurrent = meridiem === 'PM';
|
|
26
|
-
const hourMinuteString =
|
|
27
|
-
const amTimeString =
|
|
28
|
-
const pmTimeString =
|
|
25
|
+
const hourMinuteString = "".concat(hours || '01', ":").concat(minutes || '00');
|
|
26
|
+
const amTimeString = "".concat(hourMinuteString, " AM");
|
|
27
|
+
const pmTimeString = "".concat(hourMinuteString, " PM");
|
|
29
28
|
const isDisabledAm = getIsDisabledTime(amTimeString);
|
|
30
29
|
const isDisabledPm = getIsDisabledTime(pmTimeString);
|
|
31
30
|
return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
32
31
|
"aria-label": "set am meridiem",
|
|
33
32
|
"aria-disabled": isDisabledAm,
|
|
34
33
|
isDisabled: isDisabledAm,
|
|
35
|
-
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.
|
|
36
|
-
buttonType: "
|
|
37
|
-
leftIcon: _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})),
|
|
34
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MERIDIEM,
|
|
35
|
+
buttonType: "raw",
|
|
38
36
|
size: "m",
|
|
39
37
|
onClick: e => handleTimeWheelBtnChangeMeridiem('AM', e),
|
|
40
38
|
onKeyDown: handlePrevMeridiemBtnOnKeyDown,
|
|
41
39
|
innerRef: prevMeridiemBtnRef,
|
|
42
40
|
tabIndex: -1
|
|
43
|
-
})), meridiem === 'AM' || meridiem === '' ? _StyledWheelListItem || (_StyledWheelListItem = /*#__PURE__*/_jsx(StyledWheelListItem, {})) : null, /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
41
|
+
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), meridiem === 'AM' || meridiem === '' ? _StyledWheelListItem || (_StyledWheelListItem = /*#__PURE__*/_jsx(StyledWheelListItem, {})) : null, /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
44
42
|
isCurrentListItem: isAmCurrent
|
|
45
43
|
}, void 0, /*#__PURE__*/_jsx(StyledTimeBtn, {
|
|
46
44
|
isCurrentListItem: isAmCurrent,
|
|
47
|
-
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isAmCurrent ? '
|
|
45
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isAmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM'],
|
|
48
46
|
selected: meridiem === 'AM',
|
|
49
|
-
"aria-label":
|
|
47
|
+
"aria-label": "AM ".concat(isAmCurrent ? 'selected' : ''),
|
|
50
48
|
"aria-disabled": isDisabledAm,
|
|
51
49
|
isDisabled: isDisabledAm,
|
|
52
|
-
buttonType: "
|
|
53
|
-
labelText: "AM",
|
|
50
|
+
buttonType: "raw",
|
|
54
51
|
size: "m",
|
|
55
52
|
onClick: e => handleTimeWheelBtnChangeMeridiem('AM', e),
|
|
56
53
|
onKeyDown: isAmCurrent ? handleCurrMeridiemOnKeyDown : undefined,
|
|
@@ -60,17 +57,16 @@ const MeridiemList = () => {
|
|
|
60
57
|
"aria-valuemax": "1",
|
|
61
58
|
"aria-valuemin": "0",
|
|
62
59
|
"aria-valuenow": isPmCurrent ? '1' : '0',
|
|
63
|
-
"aria-valuetext":
|
|
64
|
-
})), /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
60
|
+
"aria-valuetext": isAmCurrent ? 'ante meridiem' : 'post meridiem'
|
|
61
|
+
}, void 0, "AM")), /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
65
62
|
isCurrentListItem: isPmCurrent
|
|
66
63
|
}, void 0, /*#__PURE__*/_jsx(StyledTimeBtn, {
|
|
67
64
|
isCurrentListItem: isPmCurrent,
|
|
68
|
-
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? '
|
|
69
|
-
"aria-label":
|
|
65
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM'],
|
|
66
|
+
"aria-label": "PM ".concat(isPmCurrent ? 'selected' : ''),
|
|
70
67
|
"aria-disabled": isDisabledPm,
|
|
71
68
|
isDisabled: isDisabledPm,
|
|
72
|
-
buttonType: "
|
|
73
|
-
labelText: "PM",
|
|
69
|
+
buttonType: "raw",
|
|
74
70
|
size: "m",
|
|
75
71
|
onClick: e => handleTimeWheelBtnChangeMeridiem('PM', e),
|
|
76
72
|
onKeyDown: isPmCurrent ? handleCurrMeridiemOnKeyDown : undefined,
|
|
@@ -80,20 +76,19 @@ const MeridiemList = () => {
|
|
|
80
76
|
"aria-valuemax": "1",
|
|
81
77
|
"aria-valuemin": "0",
|
|
82
78
|
"aria-valuenow": isPmCurrent ? '1' : '0',
|
|
83
|
-
"aria-valuetext":
|
|
84
|
-
})), meridiem === 'PM' ? _StyledWheelListItem2 || (_StyledWheelListItem2 = /*#__PURE__*/_jsx(StyledWheelListItem, {})) : null, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
79
|
+
"aria-valuetext": isAmCurrent ? 'ante meridiem' : 'post meridiem'
|
|
80
|
+
}, void 0, "PM")), meridiem === 'PM' ? _StyledWheelListItem2 || (_StyledWheelListItem2 = /*#__PURE__*/_jsx(StyledWheelListItem, {})) : null, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
85
81
|
"aria-label": "set pm meridiem",
|
|
86
82
|
"aria-disabled": isDisabledPm,
|
|
87
83
|
isDisabled: isDisabledPm,
|
|
88
|
-
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.
|
|
89
|
-
buttonType: "
|
|
90
|
-
leftIcon: _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})),
|
|
84
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MERIDIEM,
|
|
85
|
+
buttonType: "raw",
|
|
91
86
|
size: "m",
|
|
92
87
|
onClick: e => handleTimeWheelBtnChangeMeridiem('PM', e),
|
|
93
88
|
onKeyDown: handleNextMeridiemBtnOnKeyDown,
|
|
94
89
|
innerRef: nextMeridiemBtnRef,
|
|
95
90
|
tabIndex: -1
|
|
96
|
-
})));
|
|
91
|
+
}, void 0, _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})))));
|
|
97
92
|
};
|
|
98
93
|
|
|
99
94
|
export { MeridiemList, MeridiemList as default };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
2
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
3
3
|
import { useContext } from 'react';
|
|
4
|
-
import ChevronSmallUp from '@elliemae/ds-icons
|
|
5
|
-
import ChevronSmallDown from '@elliemae/ds-icons/ChevronSmallDown';
|
|
4
|
+
import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
|
|
6
5
|
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
7
6
|
import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
|
|
8
7
|
import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn, StyledTimeBtn } from './Styleds.js';
|
|
@@ -34,17 +33,17 @@ const MinutesList = () => {
|
|
|
34
33
|
} = useContext(TimeWheelContext);
|
|
35
34
|
return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
36
35
|
"aria-label": "subtract one minute",
|
|
37
|
-
buttonType: "
|
|
38
|
-
leftIcon: _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})),
|
|
36
|
+
buttonType: "raw",
|
|
39
37
|
size: "m",
|
|
40
38
|
onClick: handlePrevMinute,
|
|
41
39
|
onKeyDown: handlePrevMinuteBtnOnKeyDown,
|
|
42
40
|
innerRef: prevMinutesBtnRef,
|
|
43
|
-
tabIndex: -1
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
tabIndex: -1,
|
|
42
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE
|
|
43
|
+
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleMinutes.map(minutesString => {
|
|
44
|
+
const key = "timewheel-minutes-".concat(minutesString);
|
|
46
45
|
if (!minutesString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
|
|
47
|
-
const currMinutesTimeString =
|
|
46
|
+
const currMinutesTimeString = "".concat(hours || '01', ":").concat(minutesString, " ").concat(meridiem || 'AM');
|
|
48
47
|
const isEmptyCurrValueCurrentListItem = !minutes && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum;
|
|
49
48
|
const isCurrentListItem = isEmptyCurrValueCurrentListItem || minutes === minutesString;
|
|
50
49
|
const isDisabled = getIsDisabledTime(currMinutesTimeString);
|
|
@@ -56,33 +55,35 @@ const MinutesList = () => {
|
|
|
56
55
|
return /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
57
56
|
isCurrentListItem: isCurrentListItem,
|
|
58
57
|
selected: convertToPositiveNumberIfPossible(minutesString) === currMinuteNum
|
|
59
|
-
}, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread({
|
|
58
|
+
}, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({
|
|
60
59
|
isCurrentListItem: isCurrentListItem,
|
|
61
|
-
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? '
|
|
60
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_MINUTE' : 'MINUTE'],
|
|
62
61
|
selected: minutes.length === 2 && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum,
|
|
63
|
-
"aria-label":
|
|
62
|
+
"aria-label": "".concat(minutesString, " minutes"),
|
|
64
63
|
"aria-disabled": isDisabled,
|
|
65
64
|
isDisabled: isDisabled,
|
|
66
|
-
buttonType: "
|
|
67
|
-
labelText: minutesString,
|
|
65
|
+
buttonType: "raw",
|
|
68
66
|
size: "m",
|
|
69
67
|
onClick: e => handleTimeWheelBtnChangeMinutes(minutesString, e),
|
|
70
68
|
tabIndex: tabIndex,
|
|
71
69
|
role: "spinbutton",
|
|
72
|
-
"aria-valuemax": "
|
|
73
|
-
"aria-valuemin": "
|
|
74
|
-
"aria-valuenow":
|
|
75
|
-
|
|
70
|
+
"aria-valuemax": "59",
|
|
71
|
+
"aria-valuemin": "0",
|
|
72
|
+
"aria-valuenow": currMinuteNum,
|
|
73
|
+
"aria-valuetext": "".concat(minutesString, " minutes")
|
|
74
|
+
}, btnProps), {}, {
|
|
75
|
+
children: minutesString
|
|
76
|
+
})));
|
|
76
77
|
}), /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
77
78
|
"aria-label": "add one minute",
|
|
78
|
-
buttonType: "
|
|
79
|
-
leftIcon: _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})),
|
|
79
|
+
buttonType: "raw",
|
|
80
80
|
size: "m",
|
|
81
81
|
onClick: handleNextMinute,
|
|
82
82
|
onKeyDown: handleNextMinuteBtnOnKeyDown,
|
|
83
83
|
innerRef: nextMinutesBtnRef,
|
|
84
|
+
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_MINUTE,
|
|
84
85
|
tabIndex: -1
|
|
85
|
-
})));
|
|
86
|
+
}, void 0, _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})))));
|
|
86
87
|
};
|
|
87
88
|
|
|
88
89
|
export { MinutesList, MinutesList as default };
|
|
@@ -31,16 +31,15 @@ const SecondsList = () => {
|
|
|
31
31
|
} = useContext(TimeWheelContext);
|
|
32
32
|
return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
33
33
|
"aria-label": "subtract one minute",
|
|
34
|
-
buttonType: "
|
|
35
|
-
leftIcon: _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})),
|
|
34
|
+
buttonType: "raw",
|
|
36
35
|
size: "m",
|
|
37
36
|
variant: BUTTON_VARIANT.DEFAULT,
|
|
38
37
|
onClick: handlePrevSecond,
|
|
39
38
|
onKeyDown: handlePrevSecondBtnOnKeyDown,
|
|
40
39
|
innerRef: prevSecondsBtnRef,
|
|
41
40
|
tabIndex: -1
|
|
42
|
-
})), visibleSeconds.map(secondsString => {
|
|
43
|
-
const key =
|
|
41
|
+
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleSeconds.map(secondsString => {
|
|
42
|
+
const key = "timewheel-seconds-".concat(secondsString);
|
|
44
43
|
if (!secondsString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
|
|
45
44
|
const isEmptyCurrValueCurrentListItem = !seconds && convertToPositiveNumberIfPossible(secondsString) === currSecondNum;
|
|
46
45
|
const isCurrentListItem = isEmptyCurrValueCurrentListItem || seconds === secondsString;
|
|
@@ -51,26 +50,26 @@ const SecondsList = () => {
|
|
|
51
50
|
};
|
|
52
51
|
return /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
53
52
|
isCurrentListItem: isCurrentListItem
|
|
54
|
-
}, key, /*#__PURE__*/jsx(DSButton, _objectSpread({
|
|
55
|
-
"aria-label":
|
|
56
|
-
buttonType: "
|
|
57
|
-
labelText: secondsString,
|
|
53
|
+
}, key, /*#__PURE__*/jsx(DSButton, _objectSpread(_objectSpread({
|
|
54
|
+
"aria-label": "set ".concat(secondsString, " seconds"),
|
|
55
|
+
buttonType: "raw",
|
|
58
56
|
size: "l",
|
|
59
57
|
variant: BUTTON_VARIANT.DEFAULT,
|
|
60
58
|
onClick: e => handleTimeWheelBtnChangeSeconds(secondsString, e),
|
|
61
59
|
tabIndex: tabIndex
|
|
62
|
-
}, btnProps)
|
|
60
|
+
}, btnProps), {}, {
|
|
61
|
+
children: secondsString
|
|
62
|
+
})));
|
|
63
63
|
}), /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
64
64
|
"aria-label": "add one minute",
|
|
65
|
-
buttonType: "
|
|
66
|
-
leftIcon: _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})),
|
|
65
|
+
buttonType: "raw",
|
|
67
66
|
size: "m",
|
|
68
67
|
variant: BUTTON_VARIANT.DEFAULT,
|
|
69
68
|
onClick: handleNextSecond,
|
|
70
69
|
onKeyDown: handleNextSecondBtnOnKeyDown,
|
|
71
70
|
innerRef: nextSecondsBtnRef,
|
|
72
71
|
tabIndex: -1
|
|
73
|
-
})));
|
|
72
|
+
}, void 0, _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})))));
|
|
74
73
|
};
|
|
75
74
|
|
|
76
75
|
export { SecondsList, SecondsList as default };
|