@elliemae/ds-controlled-form 2.0.0-alpha.8 → 2.0.0-next.3
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-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
- package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
- package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +54 -3
- package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +146 -0
- 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 +3 -25
- 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 +34 -32
- 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 +39 -20
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +56 -37
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +34 -3
- 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 +5 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +17 -18
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +15 -22
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -19
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -10
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +33 -34
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +3 -1
- 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/Styleds.js +4 -5
- package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +2 -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 +7 -30
- package/cjs/controlled-date-time-picker/utils/constants.js +43 -0
- package/cjs/controlled-date-time-picker/utils/dateHelpers.js +2 -2
- package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
- package/cjs/controlled-date-time-picker/utils/stringHelpers.js +16 -0
- package/cjs/index.js +1 -1
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
- package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
- package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +54 -3
- package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +140 -0
- 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 +6 -27
- 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 +34 -32
- 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 +38 -20
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +54 -36
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +35 -4
- 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 +5 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +17 -16
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +15 -20
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -17
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -10
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +33 -34
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +3 -1
- 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/Styleds.js +4 -4
- package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
- package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +2 -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 +8 -31
- package/esm/controlled-date-time-picker/utils/constants.js +37 -0
- package/esm/controlled-date-time-picker/utils/dateHelpers.js +1 -1
- package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
- package/esm/controlled-date-time-picker/utils/stringHelpers.js +16 -1
- 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
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { StyledWeekDaysListWrapper, StyledWeekDaysHeaderItem } from './Styleds.js';
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
const CalendarWeekDays = /*#__PURE__*/React.memo(() =>
|
|
5
|
+
var _StyledWeekDaysHeader, _StyledWeekDaysHeader2, _StyledWeekDaysHeader3, _StyledWeekDaysHeader4, _StyledWeekDaysHeader5, _StyledWeekDaysHeader6, _StyledWeekDaysHeader7;
|
|
6
|
+
const CalendarWeekDays = /*#__PURE__*/React.memo(() => /*#__PURE__*/_jsx("span", {
|
|
7
|
+
role: "rowgroup"
|
|
8
|
+
}, void 0, /*#__PURE__*/_jsx(StyledWeekDaysListWrapper, {
|
|
9
|
+
role: "row",
|
|
10
|
+
cols: ['32px', '32px', '32px', '32px', '32px', '32px', '32px'],
|
|
11
|
+
rows: ['22px'],
|
|
12
|
+
py: "xxxs",
|
|
13
|
+
px: "6px",
|
|
14
|
+
justifyContent: "space-between",
|
|
15
|
+
alignItems: "center",
|
|
16
|
+
isHeader: true
|
|
17
|
+
}, void 0, _StyledWeekDaysHeader || (_StyledWeekDaysHeader = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
18
|
+
role: "columnheader",
|
|
19
|
+
"aria-colindex": 1
|
|
20
|
+
}, void 0, "sun")), _StyledWeekDaysHeader2 || (_StyledWeekDaysHeader2 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
21
|
+
role: "columnheader",
|
|
22
|
+
"aria-colindex": 2
|
|
23
|
+
}, void 0, "mon")), _StyledWeekDaysHeader3 || (_StyledWeekDaysHeader3 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
24
|
+
role: "columnheader",
|
|
25
|
+
"aria-colindex": 3
|
|
26
|
+
}, void 0, "tue")), _StyledWeekDaysHeader4 || (_StyledWeekDaysHeader4 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
27
|
+
role: "columnheader",
|
|
28
|
+
"aria-colindex": 4
|
|
29
|
+
}, void 0, "wed")), _StyledWeekDaysHeader5 || (_StyledWeekDaysHeader5 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
30
|
+
role: "columnheader",
|
|
31
|
+
"aria-colindex": 5
|
|
32
|
+
}, void 0, "thu")), _StyledWeekDaysHeader6 || (_StyledWeekDaysHeader6 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
33
|
+
role: "columnheader",
|
|
34
|
+
"aria-colindex": 6
|
|
35
|
+
}, void 0, "fri")), _StyledWeekDaysHeader7 || (_StyledWeekDaysHeader7 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
|
|
36
|
+
role: "columnheader",
|
|
37
|
+
"aria-colindex": 7
|
|
38
|
+
}, void 0, "sat")))));
|
|
7
39
|
|
|
8
40
|
export { CalendarWeekDays };
|
|
@@ -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 { CalendarContent } from './CalendarContent.js';
|
|
5
6
|
import { CalendarContext } from './CalendarContext.js';
|
|
6
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -28,6 +29,7 @@ const CalendarWrapper = () => {
|
|
|
28
29
|
zIndex: 110
|
|
29
30
|
})
|
|
30
31
|
}, attributes.popper), {}, {
|
|
32
|
+
"data-testid": ControlledDateTimePickerDatatestid.CONTEXTUAL_MENU.CALENDAR,
|
|
31
33
|
children: [_CalendarContent2 || (_CalendarContent2 = /*#__PURE__*/_jsx(CalendarContent, {})), /*#__PURE__*/jsx("div", {
|
|
32
34
|
ref: setArrowElement,
|
|
33
35
|
style: styles.arrow
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
1
2
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
3
|
import { useContext, useMemo, useCallback } from 'react';
|
|
3
4
|
import { compareTwoDatesDayEquality, getDayFromDateString, isSameDateMoment, getDateStringFromDay, getDateValuesFromDate } from '../../../utils/dateHelpers.js';
|
|
5
|
+
import { weekDays } from '../../../utils/constants.js';
|
|
6
|
+
import { getAriaDayFromDateString } from '../../../utils/stringHelpers.js';
|
|
4
7
|
import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
|
|
5
8
|
import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
|
|
6
9
|
import { CalendarContext } from './CalendarContext.js';
|
|
7
10
|
import { StyledDayBtn } from './Styleds.js';
|
|
11
|
+
import { jsx } from 'react/jsx-runtime';
|
|
8
12
|
|
|
13
|
+
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; }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
9
16
|
const displayNone = {
|
|
10
17
|
display: 'none'
|
|
11
18
|
};
|
|
12
19
|
const Day = ({
|
|
13
|
-
metaDay
|
|
20
|
+
metaDay,
|
|
21
|
+
colIndex,
|
|
22
|
+
isInvisible
|
|
14
23
|
}) => {
|
|
15
24
|
const {
|
|
16
25
|
day,
|
|
@@ -81,26 +90,35 @@ const Day = ({
|
|
|
81
90
|
const handleOnDayFocus = useCallback(() => {
|
|
82
91
|
setLatestInteractionRegion('calendar-days');
|
|
83
92
|
}, [setLatestInteractionRegion]);
|
|
84
|
-
const dayClassModifiers = useMemo(() =>
|
|
85
|
-
|
|
93
|
+
const dayClassModifiers = useMemo(() => `dayWrapper ${isSelected ? 'selectedDay ' : ''}${isDisabled ? 'disabledDay ' : ''}${isOutOfRange ? 'outOfRangeDay ' : ''}${isFocused ? 'focusedDay ' : ''}${isStartRangeDay ? 'startRangeDay ' : ''}${isDayInRange ? 'inRangeDay ' : ''}${isEndRangeDay ? 'endRangeDay ' : ''}${isCurrMonthDay ? '' : 'notCurrentMonth'}`, [isSelected, isDisabled, isOutOfRange, isFocused, isStartRangeDay, isDayInRange, isEndRangeDay, isCurrMonthDay]);
|
|
94
|
+
let dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.DAY;
|
|
95
|
+
if (isSelected) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.SELECTED_DAY;
|
|
96
|
+
if (isFocused) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.FOCUSED_DAY;
|
|
97
|
+
if (isFocused && isSelected) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.SELECTED_FOCUSED_DAY;
|
|
98
|
+
return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
|
|
86
99
|
className: dayClassModifiers,
|
|
87
|
-
style: isHidden ? displayNone : undefined
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
style: isHidden ? displayNone : undefined,
|
|
101
|
+
role: !isInvisible ? 'gridcell' : undefined
|
|
102
|
+
}, Number.isInteger(colIndex) && {
|
|
103
|
+
'aria-colindex': colIndex
|
|
104
|
+
}), {}, {
|
|
105
|
+
children: /*#__PURE__*/_jsx(StyledDayBtn, {
|
|
106
|
+
"aria-label": `${getAriaDayFromDateString(dayAsString)}, ${weekDays[metaDay.day.getDay()]}`,
|
|
107
|
+
"aria-disabled": isOutOfRange || isDisabled,
|
|
108
|
+
"aria-hidden": !!isInvisible,
|
|
109
|
+
buttonType: "raw",
|
|
110
|
+
size: "m",
|
|
111
|
+
onClick: handleOnDayClick // DSButton triggers this with "spacebar" and "enter" too...
|
|
112
|
+
,
|
|
113
|
+
onFocus: handleOnDayFocus,
|
|
114
|
+
onKeyDown: e => {
|
|
115
|
+
handleDayOnKeyDown(e, metaDay);
|
|
116
|
+
},
|
|
117
|
+
innerRef: dayBtnRef,
|
|
118
|
+
tabIndex: isSelected ? 0 : -1,
|
|
119
|
+
"data-isfocused": isFocused,
|
|
120
|
+
"data-testid": dataTestid
|
|
121
|
+
}, void 0, `${day.getDate()}`)
|
|
104
122
|
}));
|
|
105
123
|
};
|
|
106
124
|
|
|
@@ -1,48 +1,50 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
|
-
import {
|
|
2
|
+
import { Grid } from '@elliemae/ds-grid';
|
|
3
|
+
import { DSButtonV2 } from '@elliemae/ds-button';
|
|
3
4
|
|
|
4
5
|
/* eslint-disable max-lines */
|
|
5
|
-
const
|
|
6
|
+
const focusBorder = `
|
|
7
|
+
border-style: solid;
|
|
8
|
+
border-width: 2px;
|
|
9
|
+
border-radius: 50%;
|
|
10
|
+
`;
|
|
11
|
+
const StyledIconTriggerButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
|
|
6
12
|
componentId: "sc-18gg4kd-0"
|
|
7
|
-
})(["
|
|
13
|
+
})(["color:", ";width:26px;height:26px;"], ({
|
|
14
|
+
theme
|
|
15
|
+
}) => theme.colors.brand['600']);
|
|
16
|
+
const StyledShadowWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
17
|
+
componentId: "sc-18gg4kd-1"
|
|
18
|
+
})(["", ""], ({
|
|
8
19
|
isControllerOnly
|
|
9
20
|
}) => isControllerOnly ? undefined : 'box-shadow: 0 6px 20px 0 rgb(0 0 0 / 24%), 0 8px 17px 0 rgb(0 0 0 / 19%);');
|
|
10
21
|
const StyledCalendarWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
11
|
-
componentId: "sc-18gg4kd-
|
|
22
|
+
componentId: "sc-18gg4kd-2"
|
|
12
23
|
})(["display:grid;width:260px;background-color:", ";grid-template-rows:auto auto;"], ({
|
|
13
24
|
theme
|
|
14
25
|
}) => theme.colors.neutral['000']);
|
|
15
26
|
const StyledHeader = /*#__PURE__*/styled.section.withConfig({
|
|
16
|
-
componentId: "sc-18gg4kd-
|
|
17
|
-
})(["display:grid;padding:", ";grid-template-columns:min-content min-content 1fr min-content min-content;grid-template-rows:1fr;align-items:center;justify-content:center;text-align:center;background:", ";h3{font-size:1rem;}"], ({
|
|
27
|
+
componentId: "sc-18gg4kd-3"
|
|
28
|
+
})(["*{margin:0;padding:0;box-sizing:border-box;}display:grid;padding:", ";grid-template-columns:min-content min-content 1fr min-content min-content;grid-template-rows:1fr;align-items:center;justify-content:center;text-align:center;background:", ";h3{font-size:1rem;}"], ({
|
|
18
29
|
theme
|
|
19
30
|
}) => theme.space.xxxs, ({
|
|
20
31
|
theme
|
|
21
32
|
}) => theme.colors.neutral['050']);
|
|
22
|
-
const StyledHeaderButton = /*#__PURE__*/styled(
|
|
23
|
-
componentId: "sc-18gg4kd-
|
|
24
|
-
})(["position:relative;&:focus{&:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:2px solid ", ";border-radius:2px;pointer-events:none;}}&:hover{background:", ";}"], ({
|
|
33
|
+
const StyledHeaderButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
|
|
34
|
+
componentId: "sc-18gg4kd-4"
|
|
35
|
+
})(["position:relative;width:28px;height:28px;&:focus{&:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:2px solid ", ";border-radius:2px;pointer-events:none;}}&:hover{background:", ";}"], ({
|
|
25
36
|
theme
|
|
26
37
|
}) => theme.colors.brand[700], ({
|
|
27
38
|
theme
|
|
28
39
|
}) => theme.colors.brand[200]);
|
|
29
40
|
const StyledBody = /*#__PURE__*/styled.section.withConfig({
|
|
30
|
-
componentId: "sc-18gg4kd-
|
|
41
|
+
componentId: "sc-18gg4kd-5"
|
|
31
42
|
})(["padding:", ";"], ({
|
|
32
43
|
theme
|
|
33
44
|
}) => theme.space.xxxs);
|
|
34
|
-
const
|
|
35
|
-
componentId: "sc-18gg4kd-5"
|
|
36
|
-
})(["display:flex;justify-content:space-between;align-items:center;padding:", ";height:30px;font-size:", ";background-color:", ";li{flex:1;text-transform:capitalize;text-align:center;color:$gray;margin:0 1px;}"], ({
|
|
37
|
-
theme
|
|
38
|
-
}) => theme.space.xxxs, ({
|
|
39
|
-
theme
|
|
40
|
-
}) => theme.fontSizes.label[400], ({
|
|
41
|
-
theme
|
|
42
|
-
}) => theme.colors.neutral['050']);
|
|
43
|
-
const StyledDayBtn = /*#__PURE__*/styled(DSButton).withConfig({
|
|
45
|
+
const StyledDayBtn = /*#__PURE__*/styled(DSButtonV2).withConfig({
|
|
44
46
|
componentId: "sc-18gg4kd-6"
|
|
45
|
-
})(["height:", ";width:", ";min-width:", ";border-radius:50%;color:", ";font-
|
|
47
|
+
})(["height:", ";width:", ";min-width:", ";border-radius:50%;color:", ";font-weight:", ";position:relative;&:hover{color:", ";}&:focus:not(:hover){background-color:", ";color:", ";}&:focus{&:after{border-radius:50%;top:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);}}"], ({
|
|
46
48
|
theme
|
|
47
49
|
}) => theme.space.s, ({
|
|
48
50
|
theme
|
|
@@ -52,8 +54,6 @@ const StyledDayBtn = /*#__PURE__*/styled(DSButton).withConfig({
|
|
|
52
54
|
theme
|
|
53
55
|
}) => theme.colors.neutral[800], ({
|
|
54
56
|
theme
|
|
55
|
-
}) => theme.fontSizes.label[400], ({
|
|
56
|
-
theme
|
|
57
57
|
}) => theme.fontWeights.regular, ({
|
|
58
58
|
theme
|
|
59
59
|
}) => theme.colors.brand[700], ({
|
|
@@ -61,53 +61,71 @@ const StyledDayBtn = /*#__PURE__*/styled(DSButton).withConfig({
|
|
|
61
61
|
}) => theme.colors.neutral['000'], ({
|
|
62
62
|
theme
|
|
63
63
|
}) => theme.colors.brand[600]);
|
|
64
|
-
const
|
|
64
|
+
const StyledWeekDaysListWrapper = /*#__PURE__*/styled(Grid).withConfig({
|
|
65
65
|
componentId: "sc-18gg4kd-7"
|
|
66
|
-
})(["
|
|
66
|
+
})(["font-size:", ";text-align:center;", ";", ";.dayWrapper{position:relative;width:36px;button:focus{&:before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;border-radius:50%;border:2px solid ", ";pointer-events:none;}&:after{position:absolute;content:'';top:-2px;left:-2px;", " border-color:", ";width:calc(100% + 4px);height:calc(100% + 4px);}}&.disabledDay,&.outOfRangeDay{button:focus{&:after{border-color:", ";}}}}.dayWrapper.startRangeDay{border-radius:50% 0 0 50%;background-color:", ";}.dayWrapper.inRangeDay{border-radius:0;background-color:", ";}.dayWrapper.endRangeDay{border-radius:0 50% 50% 0;background-color:", ";}.dayWrapper.startRangeDay.endRangeDay{background:unset;}.dayWrapper.startRangeDay,.dayWrapper.endRangeDay,.dayWrapper.selectedDay{button{color:", ";background-color:", ";font-weight:", ";}}.dayWrapper.notCurrentMonth{button{font-weight:", ";&:not(:hover){color:", ";}}&.selectedDay,&.startRangeDay,&.endRangeDay{button{color:", ";}}}.dayWrapper.disabledDay,.dayWrapper.outOfRangeDay{button{color:", ";font-weight:", ";cursor:not-allowed;&:focus{", " border-color:", ";}&:hover{background:", ";}}&:after{cursor:not-allowed;position:absolute;content:'';top:47%;left:3px;width:calc(100% - 5px);height:1px;background-color:", ";transform:rotate(45deg);pointer-events:none;}&.focusedDay{button{color:", ";font-weight:", ";}&:after{background-color:", ";}}&.selectedDay,&.startRangeDay,&.endRangeDay,&.inRangeDay{button{color:", ";background-color:", ";}&:after{background-color:", ";}}}"], ({
|
|
67
67
|
theme
|
|
68
|
-
}) => theme.
|
|
68
|
+
}) => theme.fontSizes.label[400], ({
|
|
69
|
+
isHeader,
|
|
70
|
+
theme
|
|
71
|
+
}) => isHeader ? `background: ${theme.colors.neutral['050']}` : '', ({
|
|
72
|
+
isHeader
|
|
73
|
+
}) => isHeader ? 'text-transform: capitalize' : '', ({
|
|
74
|
+
theme
|
|
75
|
+
}) => theme.colors.neutral['000'], focusBorder, ({
|
|
76
|
+
theme
|
|
77
|
+
}) => theme.colors.brand[700], ({
|
|
78
|
+
theme
|
|
79
|
+
}) => theme.colors.danger[900], ({
|
|
69
80
|
theme
|
|
70
81
|
}) => theme.colors.brand[200], ({
|
|
71
82
|
theme
|
|
72
|
-
}) => theme.colors.brand[200],
|
|
83
|
+
}) => theme.colors.brand[200], ({
|
|
73
84
|
theme
|
|
74
|
-
}) => theme.colors.
|
|
85
|
+
}) => theme.colors.brand[200], ({
|
|
75
86
|
theme
|
|
76
87
|
}) => theme.colors.neutral['000'], ({
|
|
77
88
|
theme
|
|
78
89
|
}) => theme.colors.brand[700], ({
|
|
79
90
|
theme
|
|
80
|
-
}) => theme.fontWeights.semibold,
|
|
91
|
+
}) => theme.fontWeights.semibold, ({
|
|
81
92
|
theme
|
|
82
93
|
}) => theme.fontWeights.light, ({
|
|
83
94
|
theme
|
|
84
|
-
}) => theme.colors.neutral[500],
|
|
95
|
+
}) => theme.colors.neutral[500], ({
|
|
85
96
|
theme
|
|
86
|
-
}) => theme.colors.neutral['000'],
|
|
97
|
+
}) => theme.colors.neutral['000'], ({
|
|
87
98
|
theme
|
|
88
99
|
}) => theme.colors.neutral[500], ({
|
|
89
100
|
theme
|
|
90
|
-
}) => theme.fontWeights.light, ({
|
|
101
|
+
}) => theme.fontWeights.light, focusBorder, ({
|
|
91
102
|
theme
|
|
92
103
|
}) => theme.colors.danger[900], ({
|
|
93
104
|
theme
|
|
94
105
|
}) => theme.colors.neutral['000'], ({
|
|
95
106
|
theme
|
|
96
|
-
}) => theme.colors.neutral[500],
|
|
107
|
+
}) => theme.colors.neutral[500], ({
|
|
97
108
|
theme
|
|
98
109
|
}) => theme.colors.danger[900], ({
|
|
99
110
|
theme
|
|
100
111
|
}) => theme.fontWeights.regular, ({
|
|
101
112
|
theme
|
|
102
|
-
}) => theme.colors.danger[900],
|
|
113
|
+
}) => theme.colors.danger[900], ({
|
|
103
114
|
theme
|
|
104
115
|
}) => theme.colors.neutral['000'], ({
|
|
105
116
|
theme
|
|
106
117
|
}) => theme.colors.danger[900], ({
|
|
107
118
|
theme
|
|
108
119
|
}) => theme.colors.neutral['000']);
|
|
109
|
-
const
|
|
120
|
+
const StyledWeekDaysHeaderItem = /*#__PURE__*/styled.div.withConfig({
|
|
110
121
|
componentId: "sc-18gg4kd-8"
|
|
122
|
+
})(["width:", ";min-width:", ";"], ({
|
|
123
|
+
theme
|
|
124
|
+
}) => theme.space.s, ({
|
|
125
|
+
theme
|
|
126
|
+
}) => theme.space.s);
|
|
127
|
+
const CalendarFooterMessage = /*#__PURE__*/styled.footer.withConfig({
|
|
128
|
+
componentId: "sc-18gg4kd-9"
|
|
111
129
|
})(["border-top:solid 1px ", ";margin:0 ", ";padding:", " 0;color:", ";font-style:italic;font-weight:", ";font-size:", ";text-align:right;"], ({
|
|
112
130
|
theme
|
|
113
131
|
}) => theme.colors.neutral[300], ({
|
|
@@ -122,4 +140,4 @@ const CalendarFooterMessage = /*#__PURE__*/styled.footer.withConfig({
|
|
|
122
140
|
theme
|
|
123
141
|
}) => theme.fontSizes.microText[200]);
|
|
124
142
|
|
|
125
|
-
export { CalendarFooterMessage, StyledBody, StyledCalendarWrapper, StyledDayBtn, StyledHeader, StyledHeaderButton,
|
|
143
|
+
export { CalendarFooterMessage, StyledBody, StyledCalendarWrapper, StyledDayBtn, StyledHeader, StyledHeaderButton, StyledIconTriggerButton, StyledShadowWrapper, StyledWeekDaysHeaderItem, StyledWeekDaysListWrapper };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useContext, useState,
|
|
1
|
+
import { useContext, useState, useMemo, useCallback } from 'react';
|
|
2
2
|
import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
|
|
3
3
|
import { useKeyboardHandlers } from './useKeyboardHandlers.js';
|
|
4
4
|
import { useFocusLogic } from './useFocusLogic.js';
|
|
@@ -6,6 +6,19 @@ import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
|
|
|
6
6
|
import { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
|
|
7
7
|
|
|
8
8
|
/* eslint-disable complexity */
|
|
9
|
+
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
function sliceIntoChunks(arr, chunkSize) {
|
|
12
|
+
const res = [];
|
|
13
|
+
|
|
14
|
+
for (let i = 0; i < arr.length; i += chunkSize) {
|
|
15
|
+
const chunk = arr.slice(i, i + chunkSize);
|
|
16
|
+
res.push(chunk);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return res;
|
|
20
|
+
}
|
|
21
|
+
|
|
9
22
|
const useConfigCalendarCTX = () => {
|
|
10
23
|
const {
|
|
11
24
|
pickerButtonRef,
|
|
@@ -28,7 +41,8 @@ const useConfigCalendarCTX = () => {
|
|
|
28
41
|
isControllerOnly,
|
|
29
42
|
isWithTimeWheelToo,
|
|
30
43
|
setLatestInteractionRegion,
|
|
31
|
-
autoFocusPrevMonthArrow
|
|
44
|
+
autoFocusPrevMonthArrow,
|
|
45
|
+
ariaCurrentValueForInputs
|
|
32
46
|
} = useContext(ControlledDateTimePickerContext);
|
|
33
47
|
const [showCalendar, setShowCalendar] = useState(false);
|
|
34
48
|
const {
|
|
@@ -40,6 +54,19 @@ const useConfigCalendarCTX = () => {
|
|
|
40
54
|
handleNextMonth,
|
|
41
55
|
handleNextYear
|
|
42
56
|
} = useCurrentDisplayedMonthYearLogic();
|
|
57
|
+
const {
|
|
58
|
+
invisibleFirstDay,
|
|
59
|
+
daysMatrixByWeekday,
|
|
60
|
+
invisibleLastDay
|
|
61
|
+
} = useMemo(() => {
|
|
62
|
+
const [invisible1stDay, ...otherDays] = [...daysArray];
|
|
63
|
+
const invisibleDayLast = otherDays.pop();
|
|
64
|
+
return {
|
|
65
|
+
invisibleFirstDay: invisible1stDay,
|
|
66
|
+
daysMatrixByWeekday: sliceIntoChunks(otherDays, 7),
|
|
67
|
+
invisibleLastDay: invisibleDayLast
|
|
68
|
+
};
|
|
69
|
+
}, [daysArray]);
|
|
43
70
|
const setLatestInteractionRegionCalendarHead = useCallback(() => {
|
|
44
71
|
setLatestInteractionRegion('calendar-head');
|
|
45
72
|
}, [setLatestInteractionRegion]);
|
|
@@ -142,6 +169,9 @@ const useConfigCalendarCTX = () => {
|
|
|
142
169
|
currentMonth,
|
|
143
170
|
currentYear,
|
|
144
171
|
daysArray,
|
|
172
|
+
invisibleFirstDay,
|
|
173
|
+
daysMatrixByWeekday,
|
|
174
|
+
invisibleLastDay,
|
|
145
175
|
focusedDay,
|
|
146
176
|
tryToFocusCurrentlyDataIsFocusedDay,
|
|
147
177
|
handleFocusMetaDay,
|
|
@@ -162,8 +192,9 @@ const useConfigCalendarCTX = () => {
|
|
|
162
192
|
onNextMonthFocus,
|
|
163
193
|
onNextYearFocus,
|
|
164
194
|
isWithTimeWheelToo,
|
|
165
|
-
autoFocusPrevMonthArrow
|
|
166
|
-
|
|
195
|
+
autoFocusPrevMonthArrow,
|
|
196
|
+
ariaCurrentValueForInputs
|
|
197
|
+
}), [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
198
|
};
|
|
168
199
|
|
|
169
200
|
export { useConfigCalendarCTX };
|
|
@@ -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":
|
|
20
|
-
buttonType: "
|
|
21
|
-
|
|
22
|
-
size: "m",
|
|
20
|
+
return useMemo(() => /*#__PURE__*/_jsx(StyledIconTriggerButton, {
|
|
21
|
+
"aria-label": `date time picker context menu trigger, ${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 };
|
|
@@ -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,14 +34,14 @@ 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 => {
|
|
44
|
+
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleHours.map(hourString => {
|
|
46
45
|
const key = `timewheel-hour-${hourString}`;
|
|
47
46
|
if (!hourString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
|
|
48
47
|
const currHourTimeString = `${hourString}:${minutes || '00'} ${meridiem || 'AM'}`;
|
|
@@ -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
63
|
"aria-label": `${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": `${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 };
|