@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
|
@@ -4,7 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var
|
|
7
|
+
var dsIcon = require('@elliemae/ds-icon');
|
|
8
|
+
var dsButton = require('@elliemae/ds-button');
|
|
8
9
|
var RecentDocuments = require('@elliemae/ds-icons/RecentDocuments');
|
|
9
10
|
var TimeWheelContext = require('./TimeWheelContext.js');
|
|
10
11
|
var ControlledDateTimePickerDatatestid = require('../../../ControlledDateTimePickerDatatestid.js');
|
|
@@ -12,10 +13,8 @@ var ControlledDateTimePickerDatatestid = require('../../../ControlledDateTimePic
|
|
|
12
13
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
14
|
|
|
14
15
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
15
|
-
var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
|
|
16
16
|
var RecentDocuments__default = /*#__PURE__*/_interopDefaultLegacy(RecentDocuments);
|
|
17
17
|
|
|
18
|
-
var _RecentDocuments;
|
|
19
18
|
// this is particularly useful due to how usePopper needs to check the references
|
|
20
19
|
// since references are saved in a immutable way, we make sure to shortcircuit useless-re-renders
|
|
21
20
|
|
|
@@ -23,18 +22,20 @@ const TimeWheelIconTrigger = () => {
|
|
|
23
22
|
const {
|
|
24
23
|
handleSetTriggerRef,
|
|
25
24
|
handleToggleTimePicker,
|
|
26
|
-
handlePickerIconKeyDown
|
|
25
|
+
handlePickerIconKeyDown,
|
|
26
|
+
ariaCurrentValueForInputs
|
|
27
27
|
} = React.useContext(TimeWheelContext.TimeWheelContext);
|
|
28
|
-
return React.useMemo(() => /*#__PURE__*/_jsx__default["default"](
|
|
29
|
-
"aria-label":
|
|
30
|
-
buttonType: "
|
|
31
|
-
|
|
32
|
-
size: "m",
|
|
28
|
+
return React.useMemo(() => /*#__PURE__*/_jsx__default["default"](dsButton.DSButtonV2, {
|
|
29
|
+
"aria-label": `time picker context menu trigger, ${ariaCurrentValueForInputs}`,
|
|
30
|
+
buttonType: "icon",
|
|
31
|
+
size: dsButton.BUTTON_SIZES.M,
|
|
33
32
|
innerRef: handleSetTriggerRef,
|
|
34
33
|
onClick: handleToggleTimePicker,
|
|
35
34
|
onKeyDown: handlePickerIconKeyDown,
|
|
36
35
|
"data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.PICKER_ICONS.TIMEWHEEL
|
|
37
|
-
}
|
|
36
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"](RecentDocuments__default["default"], {
|
|
37
|
+
color: dsIcon.DSIconColors.PRIMARY
|
|
38
|
+
})), [ariaCurrentValueForInputs, handlePickerIconKeyDown, handleSetTriggerRef, handleToggleTimePicker]);
|
|
38
39
|
};
|
|
39
40
|
|
|
40
41
|
exports.TimeWheelIconTrigger = TimeWheelIconTrigger;
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
6
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
7
7
|
var React = require('react');
|
|
8
|
+
var ControlledDateTimePickerDatatestid = require('../../../ControlledDateTimePickerDatatestid.js');
|
|
8
9
|
var TimeWheelContent = require('./TimeWheelContent.js');
|
|
9
10
|
var TimeWheelContext = require('./TimeWheelContext.js');
|
|
10
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -39,6 +40,7 @@ const TimeWheelWrapper = () => {
|
|
|
39
40
|
zIndex: 110
|
|
40
41
|
})
|
|
41
42
|
}, attributes.popper), {}, {
|
|
43
|
+
"data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.CONTEXTUAL_MENU.TIMEWHEEL,
|
|
42
44
|
children: [_TimeWheelContent2 || (_TimeWheelContent2 = /*#__PURE__*/_jsx__default["default"](TimeWheelContent.TimeWheelContent, {
|
|
43
45
|
showShadow: true
|
|
44
46
|
})), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -35,7 +35,8 @@ const useConfigTimePickerCTX = () => {
|
|
|
35
35
|
nextMeridiemBtnRef,
|
|
36
36
|
isControllerOnly,
|
|
37
37
|
isWithCalendarToo,
|
|
38
|
-
autoFocusHourTimeWheel
|
|
38
|
+
autoFocusHourTimeWheel,
|
|
39
|
+
ariaCurrentValueForInputs
|
|
39
40
|
} = React.useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
|
|
40
41
|
const {
|
|
41
42
|
currHourNum,
|
|
@@ -176,8 +177,9 @@ const useConfigTimePickerCTX = () => {
|
|
|
176
177
|
prevMeridiemBtnRef,
|
|
177
178
|
currMeridiemBtnRef,
|
|
178
179
|
nextMeridiemBtnRef,
|
|
179
|
-
getIsDisabledTime
|
|
180
|
-
|
|
180
|
+
getIsDisabledTime,
|
|
181
|
+
ariaCurrentValueForInputs
|
|
182
|
+
}), [tempTimeString, isControllerOnly, autoFocusHourTimeWheel, showTimePicker, setShowTimePicker, setPopperElement, setArrowElement, usePopperHelpers, handleToggleTimePicker, handleSetTriggerRef, handleMenuWrapperKeyDown, currHourNum, hours, visibleHours, handlePrevHour, handleNextHour, handleTimeWheelBtnChangeHours, currMinuteNum, minutes, visibleMinutes, handlePrevMinute, handleNextMinute, handleTimeWheelBtnChangeMinutes, meridiem, handleTimeWheelBtnChangeMeridiem, handlePrevHourBtnOnKeyDown, handleCurrHourOnKeyDown, handleNextHourBtnOnKeyDown, handlePrevMinuteBtnOnKeyDown, handleCurrMinutesOnKeyDown, handleNextMinuteBtnOnKeyDown, handlePrevMeridiemBtnOnKeyDown, handleCurrMeridiemOnKeyDown, handleNextMeridiemBtnOnKeyDown, handlePickerIconKeyDown, prevHourBtnRef, currHourBtnRef, nextHourBtnRef, prevMinutesBtnRef, currMinutesBtnRef, nextMinutesBtnRef, prevMeridiemBtnRef, currMeridiemBtnRef, nextMeridiemBtnRef, getIsDisabledTime, ariaCurrentValueForInputs]);
|
|
181
183
|
};
|
|
182
184
|
|
|
183
185
|
exports.useConfigTimePickerCTX = useConfigTimePickerCTX;
|
|
@@ -4,12 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var styled = require('styled-components');
|
|
6
6
|
var dsGrid = require('@elliemae/ds-grid');
|
|
7
|
-
var
|
|
7
|
+
var dsButton = require('@elliemae/ds-button');
|
|
8
8
|
|
|
9
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
10
|
|
|
11
11
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
12
|
-
var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
|
|
13
12
|
|
|
14
13
|
/* eslint-disable max-lines */
|
|
15
14
|
const ResettedInput = /*#__PURE__*/styled__default["default"].input.withConfig({
|
|
@@ -49,7 +48,7 @@ const StyledTimeInputsWrapperGrid = /*#__PURE__*/styled__default["default"].div.
|
|
|
49
48
|
})(["display:grid;grid-template-columns:24px min-content 24px min-content 24px min-content 24px;grid-template-rows:min-content;padding:6px 0;gap:0px 0px;align-items:center;input,p{margin:0;}"]);
|
|
50
49
|
const StyledPickersIconsWrapperGrid = /*#__PURE__*/styled__default["default"](dsGrid.Grid).withConfig({
|
|
51
50
|
componentId: "sc-1t4k08s-8"
|
|
52
|
-
})(["position:relative;", "
|
|
51
|
+
})(["position:relative;", ":before{content:'';position:absolute;top:0px;left:-1px;width:100%;height:100%;border-radius:2px;z-index:-1;", "}"], ({
|
|
53
52
|
isControllerOnly
|
|
54
53
|
}) => isControllerOnly ? undefined : 'height: 26px;', ({
|
|
55
54
|
theme,
|
|
@@ -63,9 +62,9 @@ const StyledFocusWithIn = /*#__PURE__*/styled__default["default"](dsGrid.Grid).w
|
|
|
63
62
|
})(["position:relative;&:focus-within{&:after{display:block;content:' ';position:absolute;top:-5px;left:-2px;width:calc(100% + 4px);height:calc(100% + 10px);border:2px solid ", ";border-radius:2px;pointer-events:none;}}"], ({
|
|
64
63
|
theme
|
|
65
64
|
}) => theme.colors.brand[700]);
|
|
66
|
-
const StyledClearButton = /*#__PURE__*/styled__default["default"](
|
|
65
|
+
const StyledClearButton = /*#__PURE__*/styled__default["default"](dsButton.DSButtonV2).withConfig({
|
|
67
66
|
componentId: "sc-1t4k08s-10"
|
|
68
|
-
})(["height:26px;position:relative;visibility:", "
|
|
67
|
+
})(["height:26px;position:relative;visibility:", ";"], ({
|
|
69
68
|
shouldDisplay
|
|
70
69
|
}) => shouldDisplay ? 'visible' : 'hidden');
|
|
71
70
|
|
|
@@ -26,6 +26,7 @@ const HHInput = /*#__PURE__*/React__default["default"].memo(({
|
|
|
26
26
|
onKeyDown,
|
|
27
27
|
value,
|
|
28
28
|
placeholder,
|
|
29
|
+
ariaCurrentValueForInputs,
|
|
29
30
|
contextRef,
|
|
30
31
|
autoFocusHourInput
|
|
31
32
|
}) => {
|
|
@@ -48,7 +49,7 @@ const HHInput = /*#__PURE__*/React__default["default"].memo(({
|
|
|
48
49
|
value: value,
|
|
49
50
|
ref: contextRef,
|
|
50
51
|
placeholder: placeholder,
|
|
51
|
-
"aria-label":
|
|
52
|
+
"aria-label": `hours input field ${ariaCurrentValueForInputs}`,
|
|
52
53
|
"data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIME_INPUTS.HOUR
|
|
53
54
|
});
|
|
54
55
|
});
|
|
@@ -29,6 +29,7 @@ const MeridiemInput = /*#__PURE__*/React__default["default"].memo(({
|
|
|
29
29
|
onKeyDown,
|
|
30
30
|
value,
|
|
31
31
|
placeholder,
|
|
32
|
+
ariaCurrentValueForInputs,
|
|
32
33
|
contextRef
|
|
33
34
|
}) => {
|
|
34
35
|
const validateOnChange = React.useCallback(e => {
|
|
@@ -49,7 +50,7 @@ const MeridiemInput = /*#__PURE__*/React__default["default"].memo(({
|
|
|
49
50
|
value: value,
|
|
50
51
|
ref: contextRef,
|
|
51
52
|
placeholder: placeholder,
|
|
52
|
-
"aria-label":
|
|
53
|
+
"aria-label": `meridiem input field ${ariaCurrentValueForInputs}`,
|
|
53
54
|
"data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIME_INPUTS.MERIDIEM
|
|
54
55
|
});
|
|
55
56
|
});
|
|
@@ -26,6 +26,7 @@ const MinutesInput = /*#__PURE__*/React__default["default"].memo(({
|
|
|
26
26
|
onKeyDown,
|
|
27
27
|
value,
|
|
28
28
|
placeholder,
|
|
29
|
+
ariaCurrentValueForInputs,
|
|
29
30
|
contextRef
|
|
30
31
|
}) => {
|
|
31
32
|
const validateOnChange = React.useCallback(e => {
|
|
@@ -46,7 +47,7 @@ const MinutesInput = /*#__PURE__*/React__default["default"].memo(({
|
|
|
46
47
|
value: value,
|
|
47
48
|
ref: contextRef,
|
|
48
49
|
placeholder: placeholder,
|
|
49
|
-
"aria-label":
|
|
50
|
+
"aria-label": `minutes input field ${ariaCurrentValueForInputs}`,
|
|
50
51
|
"data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.TIME_INPUTS.MINUTE
|
|
51
52
|
});
|
|
52
53
|
});
|
|
@@ -46,7 +46,8 @@ const TimeInputs = () => {
|
|
|
46
46
|
hourInputRef,
|
|
47
47
|
minutesInputRef,
|
|
48
48
|
// secondsInputRef,
|
|
49
|
-
meridiemInputRef
|
|
49
|
+
meridiemInputRef,
|
|
50
|
+
ariaCurrentValueForInputs
|
|
50
51
|
} = React.useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
|
|
51
52
|
return /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
|
|
52
53
|
cols: [config.fixedValues.smallInputWidth, config.fixedValues.separatorWidth, config.fixedValues.smallInputWidth, config.fixedValues.separatorWidth, config.fixedValues.smallInputWidth]
|
|
@@ -58,6 +59,7 @@ const TimeInputs = () => {
|
|
|
58
59
|
onKeyDown: onHoursKeyDown,
|
|
59
60
|
contextRef: hourInputRef,
|
|
60
61
|
placeholder: "HH",
|
|
62
|
+
ariaCurrentValueForInputs: ariaCurrentValueForInputs,
|
|
61
63
|
autoFocusHourInput: autoFocusHourInput
|
|
62
64
|
})), _StyledColonSeparator || (_StyledColonSeparator = /*#__PURE__*/_jsx__default["default"](Styleds.StyledColonSeparator, {
|
|
63
65
|
alignItems: "center"
|
|
@@ -68,7 +70,8 @@ const TimeInputs = () => {
|
|
|
68
70
|
onFocus: onMeridiemFocus,
|
|
69
71
|
onKeyDown: onMinutesKeyDown,
|
|
70
72
|
contextRef: minutesInputRef,
|
|
71
|
-
placeholder: "MM"
|
|
73
|
+
placeholder: "MM",
|
|
74
|
+
ariaCurrentValueForInputs: ariaCurrentValueForInputs
|
|
72
75
|
})), _StyledSeparator || (_StyledSeparator = /*#__PURE__*/_jsx__default["default"](Styleds.StyledSeparator, {}, void 0, " ")), /*#__PURE__*/_jsx__default["default"](Styleds.StyledFocusWithIn, {}, void 0, /*#__PURE__*/_jsx__default["default"](MeridiemInput.MeridiemInput, {
|
|
73
76
|
value: meridiem,
|
|
74
77
|
onChange: onMeridiemChange,
|
|
@@ -76,7 +79,8 @@ const TimeInputs = () => {
|
|
|
76
79
|
onFocus: onMinutesFocus,
|
|
77
80
|
onKeyDown: onMeridiemKeyDown,
|
|
78
81
|
contextRef: meridiemInputRef,
|
|
79
|
-
placeholder: "AM"
|
|
82
|
+
placeholder: "AM",
|
|
83
|
+
ariaCurrentValueForInputs: ariaCurrentValueForInputs
|
|
80
84
|
})));
|
|
81
85
|
};
|
|
82
86
|
|
|
@@ -15,36 +15,23 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
15
15
|
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; }
|
|
16
16
|
|
|
17
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
18
|
-
// our source of truth is either the time props or dateTime props
|
|
19
|
-
// based on wheter it's a dateTime picker
|
|
20
|
-
// or a time picker (it's time picker when hideDate is true)
|
|
21
|
-
|
|
22
|
-
const useGetDestructuredTimeValues = ({
|
|
23
|
-
time,
|
|
24
|
-
dateTime,
|
|
25
|
-
isDateTimeSelector
|
|
26
|
-
}) => {
|
|
27
|
-
const timeStringFromProps = React.useMemo(() => isDateTimeSelector ? stringHelpers.dateTimeToTime(dateTime) : time, [time, dateTime, isDateTimeSelector]);
|
|
28
|
-
const deconstructedValues = React.useMemo(() => stringHelpers.deconstructTimeValues(timeStringFromProps), [timeStringFromProps]);
|
|
29
|
-
return deconstructedValues;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
18
|
const useTimeInputs = () => {
|
|
33
19
|
const {
|
|
34
20
|
props: {
|
|
35
|
-
time,
|
|
36
|
-
dateTime,
|
|
37
21
|
onHourChange: appOnHourChange,
|
|
38
22
|
onMinuteChange: appOnMinuteChange,
|
|
39
23
|
// onSecondsChange: appOnSecondsChange,
|
|
40
24
|
onMeridiemChange: appOnMeridiemChange,
|
|
41
|
-
getIsDisabledTime
|
|
25
|
+
getIsDisabledTime,
|
|
26
|
+
minutesInterval
|
|
42
27
|
},
|
|
28
|
+
hours,
|
|
29
|
+
minutes,
|
|
30
|
+
meridiem,
|
|
43
31
|
hideDate,
|
|
44
32
|
withAnyRightController,
|
|
45
33
|
withAnyPicker,
|
|
46
34
|
withClearBtn,
|
|
47
|
-
isDateTimeSelector,
|
|
48
35
|
hourInputRef,
|
|
49
36
|
minutesInputRef,
|
|
50
37
|
// secondsInputRef,
|
|
@@ -56,16 +43,6 @@ const useTimeInputs = () => {
|
|
|
56
43
|
handleChangeComposedTimeString,
|
|
57
44
|
setLatestInteractionRegion
|
|
58
45
|
} = React.useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
|
|
59
|
-
const {
|
|
60
|
-
hours,
|
|
61
|
-
minutes,
|
|
62
|
-
// seconds,
|
|
63
|
-
meridiem
|
|
64
|
-
} = useGetDestructuredTimeValues({
|
|
65
|
-
time,
|
|
66
|
-
dateTime,
|
|
67
|
-
isDateTimeSelector
|
|
68
|
-
});
|
|
69
46
|
const setLatestInteractionRegionTimeInputs = React.useCallback(() => {
|
|
70
47
|
setLatestInteractionRegion('time-inputs');
|
|
71
48
|
}, [setLatestInteractionRegion]);
|
|
@@ -185,11 +162,11 @@ const useTimeInputs = () => {
|
|
|
185
162
|
const minutesStringConvertedToInteger = Number.parseInt(minutes, 10);
|
|
186
163
|
const minutesInteger = Number.isNaN(minutesStringConvertedToInteger) ? 0 : minutesStringConvertedToInteger;
|
|
187
164
|
let newMinutes;
|
|
188
|
-
if (key === 'ArrowUp') newMinutes = minutesInteger +
|
|
165
|
+
if (key === 'ArrowUp') newMinutes = minutesInteger + minutesInterval <= 59 ? minutesInteger + minutesInterval : minutesInteger;else newMinutes = minutesInteger - minutesInterval > 0 ? minutesInteger - minutesInterval : 0;
|
|
189
166
|
newMinutes = stringHelpers.prependStringWithPlaceHolders(`${newMinutes}`, 2);
|
|
190
167
|
handleChangeMinutes(newMinutes, e);
|
|
191
168
|
}
|
|
192
|
-
}, [onHomeKeyDown, onEndKeyDown,
|
|
169
|
+
}, [onHomeKeyDown, onEndKeyDown, minutes, minutesInterval, handleChangeMinutes]);
|
|
193
170
|
const onMinutesBlur = React.useCallback(e => {
|
|
194
171
|
var _e$target4;
|
|
195
172
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
6
|
+
const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
7
|
+
const announcableCardinalDays = {
|
|
8
|
+
1: 'first',
|
|
9
|
+
2: 'second',
|
|
10
|
+
3: 'third',
|
|
11
|
+
4: 'fourth',
|
|
12
|
+
5: 'fifth',
|
|
13
|
+
6: 'sixth',
|
|
14
|
+
7: 'seventh',
|
|
15
|
+
8: 'eighth',
|
|
16
|
+
9: 'ninth',
|
|
17
|
+
10: 'tenth',
|
|
18
|
+
11: 'eleventh',
|
|
19
|
+
12: 'twelfth',
|
|
20
|
+
13: 'thirteenth',
|
|
21
|
+
14: 'fourteenth',
|
|
22
|
+
15: 'fifteenth',
|
|
23
|
+
16: 'sixteenth',
|
|
24
|
+
17: 'seventeenth',
|
|
25
|
+
18: 'eighteenth',
|
|
26
|
+
19: 'ninteenth',
|
|
27
|
+
20: 'twentieth',
|
|
28
|
+
21: 'twentie first',
|
|
29
|
+
22: 'twentie second',
|
|
30
|
+
23: 'twentie third',
|
|
31
|
+
24: 'twentie fourth',
|
|
32
|
+
25: 'twentie fifth',
|
|
33
|
+
26: 'twentie sixth',
|
|
34
|
+
27: 'twentie seventh',
|
|
35
|
+
28: 'twentie eighth',
|
|
36
|
+
29: 'twentie ninth',
|
|
37
|
+
30: 'thirtieth',
|
|
38
|
+
31: 'thirty first'
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
exports.announcableCardinalDays = announcableCardinalDays;
|
|
42
|
+
exports.monthNames = monthNames;
|
|
43
|
+
exports.weekDays = weekDays;
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
+
var constants = require('./constants.js');
|
|
6
7
|
var stringHelpers = require('./stringHelpers.js');
|
|
7
8
|
var numberHelpers = require('./numberHelpers.js');
|
|
8
9
|
|
|
9
10
|
/* eslint-disable max-lines */
|
|
10
|
-
const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
11
11
|
const getLastDayOfMonth = (month, year) => new Date(year, month + 1, 0);
|
|
12
12
|
const isValidDayForTheMonth = (month, year, day) => {
|
|
13
13
|
var _Date, _Date$getMonth;
|
|
@@ -206,7 +206,7 @@ const getDayFromDateString = dateString => {
|
|
|
206
206
|
if (monthNum !== -1 && dayNum !== -1 && yearNum !== -1 && isValidDayForTheMonth(monthNum - 1, yearNum, dayNum)) return new Date(yearNum, monthNum - 1, dayNum);
|
|
207
207
|
return null;
|
|
208
208
|
};
|
|
209
|
-
const getMonthNameByMonthNumber = monthNumber => monthNames[monthNumber];
|
|
209
|
+
const getMonthNameByMonthNumber = monthNumber => constants.monthNames[monthNumber];
|
|
210
210
|
const isSameDateMoment = (dateA, dateB) => {
|
|
211
211
|
var _dateA$getTime, _dateB$getTime;
|
|
212
212
|
|
|
@@ -13,6 +13,6 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
13
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
14
|
|
|
15
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__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
|
-
const
|
|
16
|
+
const getValidationDateTimeStringMetaInfo = (dateString, timeString, validators) => _objectSpread(_objectSpread({}, dateHelpers.getValidationDateStringMetaInfo(dateString, validators.getIsOutOfRangeDay, validators.getIsDisabledDay)), timeHelpers.getValidationTimeStringMetaInfo(timeString, validators.getIsDisabledTime));
|
|
17
17
|
|
|
18
|
-
exports.
|
|
18
|
+
exports.getValidationDateTimeStringMetaInfo = getValidationDateTimeStringMetaInfo;
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
require('core-js/modules/es.string.replace.js');
|
|
6
|
+
var constants = require('./constants.js');
|
|
7
|
+
var numberHelpers = require('./numberHelpers.js');
|
|
6
8
|
|
|
7
9
|
/* eslint-disable max-lines */
|
|
10
|
+
|
|
8
11
|
const prependStringWithPlaceHolders = (val, finalLength, placeholder = '0') => {
|
|
9
12
|
if (val.length === finalLength) return val;
|
|
10
13
|
const stringAsAnArray = val.split('').reverse();
|
|
@@ -118,6 +121,18 @@ const isIncompleteString = (testString, placeholder = '_') => testString === ''
|
|
|
118
121
|
const isEmptyDateStringMask = testString => testString === '__/__/____';
|
|
119
122
|
const isEmptyTimeStringMask = testString => testString === '__:__ __';
|
|
120
123
|
const isEmptyDateTimeStringMask = testString => testString === '__/__/____ __:__ __';
|
|
124
|
+
const getAriaDayFromDateString = dateString => {
|
|
125
|
+
const {
|
|
126
|
+
month: monthString,
|
|
127
|
+
day: dayString,
|
|
128
|
+
year: yearString
|
|
129
|
+
} = deconstructValuesFromDateString(dateString);
|
|
130
|
+
const monthNum = numberHelpers.convertToPositiveNumberIfPossible(monthString);
|
|
131
|
+
const dayNum = numberHelpers.convertToPositiveNumberIfPossible(dayString);
|
|
132
|
+
const yearNum = numberHelpers.convertToPositiveNumberIfPossible(yearString);
|
|
133
|
+
if (monthNum === -1 || dayNum === -1 || yearNum === -1) return '';
|
|
134
|
+
return `${constants.monthNames[monthNum - 1]} ${constants.announcableCardinalDays[dayNum]} ${yearNum}`;
|
|
135
|
+
};
|
|
121
136
|
|
|
122
137
|
exports.dateTimeToDate = dateTimeToDate;
|
|
123
138
|
exports.dateTimeToTime = dateTimeToTime;
|
|
@@ -125,6 +140,7 @@ exports.deconstructTimeValues = deconstructTimeValues;
|
|
|
125
140
|
exports.deconstructValuesFromDateString = deconstructValuesFromDateString;
|
|
126
141
|
exports.deconstructValuesFromTimeString = deconstructValuesFromTimeString;
|
|
127
142
|
exports.fillStringWithPlaceHolders = fillStringWithPlaceHolders;
|
|
143
|
+
exports.getAriaDayFromDateString = getAriaDayFromDateString;
|
|
128
144
|
exports.getFormattedDateString = getFormattedDateString;
|
|
129
145
|
exports.getFormattedTimeString = getFormattedTimeString;
|
|
130
146
|
exports.isEmptyDateStringMask = isEmptyDateStringMask;
|
package/cjs/index.js
CHANGED
|
@@ -29,7 +29,7 @@ exports.ControlledDateTimePickerDatatestid = ControlledDateTimePickerDatatestid.
|
|
|
29
29
|
exports.CONTROLLED_DATE_TIME_PICKER_TYPES = ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES;
|
|
30
30
|
exports.deconstructValuesFromDateString = stringHelpers.deconstructValuesFromDateString;
|
|
31
31
|
exports.prependStringWithPlaceHolders = stringHelpers.prependStringWithPlaceHolders;
|
|
32
|
-
exports.
|
|
32
|
+
exports.getValidationDateTimeStringMetaInfo = dateTimeHelpers.getValidationDateTimeStringMetaInfo;
|
|
33
33
|
exports.getDateStringFromDay = dateHelpers.getDateStringFromDay;
|
|
34
34
|
exports.getDateValuesFromDate = dateHelpers.getDateValuesFromDate;
|
|
35
35
|
exports.getDayFromDateString = dateHelpers.getDayFromDateString;
|
|
@@ -10,14 +10,18 @@ import { jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
10
10
|
var _ControlledDateRangeF, _ControlledDateRangeT, _ControlledDateRangeC;
|
|
11
11
|
const StyledWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
12
12
|
componentId: "sc-e4pfvj-0"
|
|
13
|
-
})(["display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto;
|
|
13
|
+
})(["display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto;", " grid-auto-flow:row;grid-template-areas:'. .';justify-content:center;align-items:center;"], ({
|
|
14
|
+
isControllerOnly
|
|
15
|
+
}) => isControllerOnly ? undefined : 'gap: 0px 8px;');
|
|
14
16
|
const ControlledDateRangeContent = () => {
|
|
15
17
|
const {
|
|
16
18
|
withIcon,
|
|
17
19
|
withInputs,
|
|
18
20
|
isControllerOnly
|
|
19
21
|
} = useContext(ControlledDateRangePickerContext);
|
|
20
|
-
return /*#__PURE__*/_jsx(StyledWrapper, {
|
|
22
|
+
return /*#__PURE__*/_jsx(StyledWrapper, {
|
|
23
|
+
isControllerOnly: isControllerOnly
|
|
24
|
+
}, void 0, withInputs ? /*#__PURE__*/jsxs(Fragment, {
|
|
21
25
|
children: [_ControlledDateRangeF || (_ControlledDateRangeF = /*#__PURE__*/_jsx(ControlledDateRangeFromDate, {})), _ControlledDateRangeT || (_ControlledDateRangeT = /*#__PURE__*/_jsx(ControlledDateRangeToDate, {}))]
|
|
22
26
|
}) : null, withIcon || isControllerOnly ? _ControlledDateRangeC || (_ControlledDateRangeC = /*#__PURE__*/_jsx(ControlledDateRangeCalendar, {})) : null);
|
|
23
27
|
};
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
2
|
import React, { useRef, useMemo, useState, useCallback } from 'react';
|
|
3
3
|
import { useGetDatePickerWithDefaultsProps } from './useGetPropsWithDefault.js';
|
|
4
|
+
import { useGetDestructuredValues } from './useGetDestructuredValues.js';
|
|
4
5
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes.js';
|
|
5
6
|
import { useValidateProps } from './useValidateProps.js';
|
|
6
7
|
import { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';
|
|
@@ -56,7 +57,10 @@ const useControlledDateTimePicker = props => {
|
|
|
56
57
|
onYearChange: appOnYearChange,
|
|
57
58
|
onHourChange: appOnHourChange,
|
|
58
59
|
onMinuteChange: appOnMinuteChange,
|
|
59
|
-
onMeridiemChange: appOnMeridiemChange
|
|
60
|
+
onMeridiemChange: appOnMeridiemChange,
|
|
61
|
+
date: appDate,
|
|
62
|
+
time: appTime,
|
|
63
|
+
dateTime: appDateTime
|
|
60
64
|
} = propsWithDefaults;
|
|
61
65
|
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
66
|
// that is an anti-pattern and leads to a lot of issue
|
|
@@ -94,6 +98,33 @@ const useControlledDateTimePicker = props => {
|
|
|
94
98
|
const shouldPreserveClearableSpace = isClearable && withAnyInputs;
|
|
95
99
|
const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
|
|
96
100
|
const [latestInteractionRegion, setLatestInteractionRegion] = useState('');
|
|
101
|
+
const {
|
|
102
|
+
month,
|
|
103
|
+
day,
|
|
104
|
+
year,
|
|
105
|
+
monthNum,
|
|
106
|
+
dayNum,
|
|
107
|
+
yearNum,
|
|
108
|
+
announcedMonth,
|
|
109
|
+
announcedDay,
|
|
110
|
+
announcedYear,
|
|
111
|
+
announcedDateValues,
|
|
112
|
+
hours,
|
|
113
|
+
minutes,
|
|
114
|
+
meridiem,
|
|
115
|
+
hoursNum,
|
|
116
|
+
minutesNum,
|
|
117
|
+
announcedHours,
|
|
118
|
+
announcedMinutes,
|
|
119
|
+
announcedMeridiem,
|
|
120
|
+
announcedTimeValues
|
|
121
|
+
} = useGetDestructuredValues({
|
|
122
|
+
date: appDate,
|
|
123
|
+
time: appTime,
|
|
124
|
+
dateTime: appDateTime,
|
|
125
|
+
isDateTimeSelector
|
|
126
|
+
});
|
|
127
|
+
const ariaCurrentValueForInputs = `current values: ${isWithDateInputs ? `${announcedDateValues}` : ''}${isDateTimeSelector ? ', ' : ''}${isWithTimeInputs ? `${announcedTimeValues}` : ''}`;
|
|
97
128
|
const getDateMetaInfo = useCallback((newDateString = null, metaInfo = {}) => {
|
|
98
129
|
const finalDateString = newDateString || tempDateString;
|
|
99
130
|
return _objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
|
|
@@ -248,8 +279,28 @@ const useControlledDateTimePicker = props => {
|
|
|
248
279
|
withAnyPicker,
|
|
249
280
|
withClearBtn,
|
|
250
281
|
withAnyRightController,
|
|
251
|
-
shouldPreserveClearableSpace
|
|
252
|
-
|
|
282
|
+
shouldPreserveClearableSpace,
|
|
283
|
+
month,
|
|
284
|
+
day,
|
|
285
|
+
year,
|
|
286
|
+
monthNum,
|
|
287
|
+
dayNum,
|
|
288
|
+
yearNum,
|
|
289
|
+
announcedMonth,
|
|
290
|
+
announcedDay,
|
|
291
|
+
announcedYear,
|
|
292
|
+
announcedDateValues,
|
|
293
|
+
hours,
|
|
294
|
+
minutes,
|
|
295
|
+
meridiem,
|
|
296
|
+
hoursNum,
|
|
297
|
+
minutesNum,
|
|
298
|
+
announcedHours,
|
|
299
|
+
announcedMinutes,
|
|
300
|
+
announcedMeridiem,
|
|
301
|
+
announcedTimeValues,
|
|
302
|
+
ariaCurrentValueForInputs
|
|
303
|
+
}), [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
304
|
);
|
|
254
305
|
return ctx;
|
|
255
306
|
};
|