@elliemae/ds-controlled-form 2.4.2-rc.12 → 2.4.2-rc.13
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/autocomplete/config/useAutocomplete.js +0 -1
- package/cjs/autocomplete/parts/A11yFocusedOption.js +9 -6
- package/cjs/autocomplete/parts/container/Container.js +1 -1
- package/cjs/autocomplete/parts/container/useKeyboardNavigation.js +2 -2
- package/cjs/autocomplete/parts/menu-list/MenuList.js +3 -5
- package/cjs/autocomplete/parts/menu-list/styled.js +2 -2
- package/cjs/autocomplete/parts/menu-list/useItemRenderer.js +1 -1
- package/cjs/checkbox/config/useValidateProps.js +6 -3
- package/cjs/checkbox/styles.js +72 -28
- package/cjs/checkbox/utils/styleHelpers.js +20 -2
- package/cjs/combobox/config/useComboBox.js +1 -2
- package/cjs/combobox/config/useCorrectOptions.js +1 -2
- package/cjs/combobox/parts/A11yFocusedOption.js +4 -4
- package/cjs/combobox/parts/A11ySelectedValues.js +2 -2
- package/cjs/combobox/parts/DropdownIndicator.js +13 -5
- package/cjs/combobox/parts/container/Container.js +1 -1
- package/cjs/combobox/parts/container/styled.js +11 -10
- package/cjs/combobox/parts/controls/Controls.js +3 -9
- package/cjs/combobox/parts/controls/styled.js +54 -22
- package/cjs/combobox/parts/controls/useOnPillsNavigation.js +4 -12
- package/cjs/combobox/parts/controls-input/styled.js +41 -11
- package/cjs/combobox/parts/controls-input/useControlsInput.js +1 -5
- package/cjs/combobox/parts/controls-input/useKeyboardNavigation.js +4 -6
- package/cjs/combobox/parts/controls-input/useMaskedOnChange.js +1 -1
- package/cjs/combobox/parts/header-list/HeaderList.js +1 -1
- package/cjs/combobox/parts/header-list/styled.js +39 -10
- package/cjs/combobox/parts/header-list/useHeaderListHandlers.js +4 -11
- package/cjs/combobox/parts/menu-list/MenuList.js +2 -2
- package/cjs/combobox/parts/menu-list/styled.js +37 -21
- package/cjs/combobox/parts/menu-list/useItemRenderer.js +3 -3
- package/cjs/combobox/parts/multi-selected-values-container/MultiSelectedValuesContainer.js +1 -1
- package/cjs/combobox/parts/multi-selected-values-container/RemovableSelectedValuePill.js +1 -3
- package/cjs/combobox/parts/multi-selected-values-container/useGroupPills.js +1 -2
- package/cjs/combobox/parts/styled.js +6 -7
- package/cjs/combobox/sharedTypes.js +2 -2
- package/cjs/combobox/utils/listHelper.js +4 -9
- package/cjs/date-range-picker/config/useRangePickerLogic.js +4 -8
- package/cjs/date-range-picker/parts/ControlledDateRangeCalendar.js +0 -2
- package/cjs/date-range-picker/parts/ControlledDateRangeFromDate.js +0 -2
- package/cjs/date-range-picker/parts/ControlledDateRangeToDate.js +0 -2
- package/cjs/date-time-picker/config/useChangeHandlers.js +3 -3
- package/cjs/date-time-picker/config/useControlledDateTimePicker.js +1 -1
- package/cjs/date-time-picker/config/useFocusTracker.js +1 -1
- package/cjs/date-time-picker/config/useGetDestructuredValues.js +6 -6
- package/cjs/date-time-picker/config/useGetPropsBasedOnType.js +1 -1
- package/cjs/date-time-picker/config/useGetReferences.js +1 -1
- package/cjs/date-time-picker/config/useRelevantValueFromProps.js +1 -1
- package/cjs/date-time-picker/config/useValidateProps.js +42 -11
- package/cjs/date-time-picker/parts/ClearButton/ClearButton.js +1 -3
- package/cjs/date-time-picker/parts/DateInputs/DDInput.js +3 -7
- package/cjs/date-time-picker/parts/DateInputs/MMInput.js +3 -7
- package/cjs/date-time-picker/parts/DateInputs/YYYYInput.js +3 -7
- package/cjs/date-time-picker/parts/DateInputs/useDateInputs.js +13 -23
- package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
- package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +6 -14
- package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/Calendar/Day.js +8 -10
- package/cjs/date-time-picker/parts/Pickers/Calendar/Styleds.js +44 -15
- package/cjs/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +1 -2
- package/cjs/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +2 -1
- package/cjs/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +0 -1
- package/cjs/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +3 -5
- package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +3 -5
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +5 -7
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -8
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +5 -7
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +2 -2
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/Styleds.js +47 -15
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +2 -5
- package/cjs/date-time-picker/parts/Styleds.js +12 -6
- package/cjs/date-time-picker/parts/TimeInputs/HHInput.js +2 -4
- package/cjs/date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -8
- package/cjs/date-time-picker/parts/TimeInputs/MinutesInput.js +3 -7
- package/cjs/date-time-picker/parts/TimeInputs/useTimeInputs.js +14 -26
- package/cjs/date-time-picker/utils/dateHelpers.js +17 -34
- package/cjs/date-time-picker/utils/hooks/useOnClickOutside.js +1 -3
- package/cjs/date-time-picker/utils/stringHelpers.js +5 -11
- package/cjs/input-group/styled.js +79 -13
- package/cjs/large-text-input/DSControlledLargeTextInput.js +1 -1
- package/cjs/large-text-input/styles.js +27 -13
- package/cjs/mask-hook/hooks/useNumberMask.js +1 -5
- package/cjs/mask-hook/hooks/usePhoneMask.js +1 -4
- package/cjs/mask-hook/hooks/useRegExpMask.js +4 -7
- package/cjs/mask-hook/hooks/useSSNMask.js +1 -4
- package/cjs/mask-hook/hooks/useZipCodeMask.js +1 -4
- package/cjs/mask-hook/utils/addSpecialCharacters.js +0 -1
- package/cjs/mask-hook/utils/flatStringArray.js +0 -1
- package/cjs/text-input/config/useInputText.js +0 -1
- package/cjs/text-input/styled/borders.js +18 -11
- package/cjs/text-input/styled/components.js +49 -10
- package/cjs/toggle/ControlledToggle.js +2 -3
- package/cjs/toggle/styles.js +7 -5
- package/esm/autocomplete/config/useAutocomplete.js +0 -1
- package/esm/autocomplete/parts/A11yFocusedOption.js +9 -5
- package/esm/autocomplete/parts/container/Container.js +1 -1
- package/esm/autocomplete/parts/container/useKeyboardNavigation.js +2 -2
- package/esm/autocomplete/parts/menu-list/MenuList.js +3 -5
- package/esm/autocomplete/parts/menu-list/styled.js +2 -2
- package/esm/autocomplete/parts/menu-list/useItemRenderer.js +1 -1
- package/esm/checkbox/config/useValidateProps.js +6 -3
- package/esm/checkbox/styles.js +72 -24
- package/esm/checkbox/utils/styleHelpers.js +20 -2
- package/esm/combobox/config/useComboBox.js +0 -1
- package/esm/combobox/config/useCorrectOptions.js +1 -2
- package/esm/combobox/parts/A11yFocusedOption.js +4 -4
- package/esm/combobox/parts/A11ySelectedValues.js +2 -2
- package/esm/combobox/parts/DropdownIndicator.js +13 -4
- package/esm/combobox/parts/container/Container.js +1 -1
- package/esm/combobox/parts/container/styled.js +11 -6
- package/esm/combobox/parts/controls/Controls.js +3 -9
- package/esm/combobox/parts/controls/styled.js +54 -18
- package/esm/combobox/parts/controls/useOnPillsNavigation.js +4 -12
- package/esm/combobox/parts/controls-input/styled.js +41 -7
- package/esm/combobox/parts/controls-input/useControlsInput.js +1 -5
- package/esm/combobox/parts/controls-input/useKeyboardNavigation.js +4 -6
- package/esm/combobox/parts/controls-input/useMaskedOnChange.js +1 -1
- package/esm/combobox/parts/header-list/HeaderList.js +1 -1
- package/esm/combobox/parts/header-list/styled.js +40 -7
- package/esm/combobox/parts/header-list/useHeaderListHandlers.js +4 -11
- package/esm/combobox/parts/menu-list/MenuList.js +2 -2
- package/esm/combobox/parts/menu-list/styled.js +37 -17
- package/esm/combobox/parts/menu-list/useItemRenderer.js +3 -3
- package/esm/combobox/parts/multi-selected-values-container/MultiSelectedValuesContainer.js +1 -1
- package/esm/combobox/parts/multi-selected-values-container/RemovableSelectedValuePill.js +1 -3
- package/esm/combobox/parts/multi-selected-values-container/useGroupPills.js +1 -2
- package/esm/combobox/parts/styled.js +6 -3
- package/esm/combobox/sharedTypes.js +2 -2
- package/esm/combobox/utils/listHelper.js +4 -9
- package/esm/date-range-picker/config/useRangePickerLogic.js +3 -7
- package/esm/date-range-picker/parts/ControlledDateRangeCalendar.js +0 -2
- package/esm/date-range-picker/parts/ControlledDateRangeFromDate.js +0 -2
- package/esm/date-range-picker/parts/ControlledDateRangeToDate.js +0 -2
- package/esm/date-time-picker/config/useChangeHandlers.js +3 -3
- package/esm/date-time-picker/config/useControlledDateTimePicker.js +1 -1
- package/esm/date-time-picker/config/useFocusTracker.js +1 -1
- package/esm/date-time-picker/config/useGetDestructuredValues.js +6 -6
- package/esm/date-time-picker/config/useGetPropsBasedOnType.js +1 -1
- package/esm/date-time-picker/config/useGetReferences.js +1 -1
- package/esm/date-time-picker/config/useRelevantValueFromProps.js +1 -1
- package/esm/date-time-picker/config/useValidateProps.js +42 -11
- package/esm/date-time-picker/parts/ClearButton/ClearButton.js +1 -3
- package/esm/date-time-picker/parts/DateInputs/DDInput.js +3 -7
- package/esm/date-time-picker/parts/DateInputs/MMInput.js +3 -7
- package/esm/date-time-picker/parts/DateInputs/YYYYInput.js +3 -7
- package/esm/date-time-picker/parts/DateInputs/useDateInputs.js +13 -23
- package/esm/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
- package/esm/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +6 -14
- package/esm/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +1 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/Day.js +8 -10
- package/esm/date-time-picker/parts/Pickers/Calendar/Styleds.js +44 -14
- package/esm/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +0 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +2 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +0 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +3 -5
- package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -1
- package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +3 -5
- package/esm/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +5 -7
- package/esm/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -8
- package/esm/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +5 -7
- package/esm/date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +2 -2
- package/esm/date-time-picker/parts/Pickers/TimeWheel/Styleds.js +47 -14
- package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +1 -1
- package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +1 -1
- package/esm/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
- package/esm/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +2 -5
- package/esm/date-time-picker/parts/Styleds.js +12 -6
- package/esm/date-time-picker/parts/TimeInputs/HHInput.js +2 -4
- package/esm/date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -8
- package/esm/date-time-picker/parts/TimeInputs/MinutesInput.js +3 -7
- package/esm/date-time-picker/parts/TimeInputs/useTimeInputs.js +14 -26
- package/esm/date-time-picker/utils/dateHelpers.js +17 -34
- package/esm/date-time-picker/utils/hooks/useOnClickOutside.js +1 -3
- package/esm/date-time-picker/utils/stringHelpers.js +5 -11
- package/esm/input-group/styled.js +79 -9
- package/esm/large-text-input/DSControlledLargeTextInput.js +1 -1
- package/esm/large-text-input/styles.js +27 -9
- package/esm/mask-hook/hooks/useNumberMask.js +1 -5
- package/esm/mask-hook/hooks/usePhoneMask.js +1 -4
- package/esm/mask-hook/hooks/useRegExpMask.js +4 -7
- package/esm/mask-hook/hooks/useSSNMask.js +1 -4
- package/esm/mask-hook/hooks/useZipCodeMask.js +1 -4
- package/esm/mask-hook/utils/addSpecialCharacters.js +0 -1
- package/esm/mask-hook/utils/flatStringArray.js +0 -1
- package/esm/text-input/config/useInputText.js +0 -1
- package/esm/text-input/styled/borders.js +18 -7
- package/esm/text-input/styled/components.js +49 -6
- package/esm/toggle/ControlledToggle.js +0 -1
- package/esm/toggle/styles.js +7 -5
- package/package.json +15 -15
- package/types/text-input/config/useInputText.d.ts +3 -3
|
@@ -36,9 +36,9 @@ const MeridiemList = () => {
|
|
|
36
36
|
} = useContext(ControlledDateTimePickerContext);
|
|
37
37
|
const isAmCurrent = !currMeridiem || currMeridiem === 'AM';
|
|
38
38
|
const isPmCurrent = currMeridiem === 'PM';
|
|
39
|
-
const hourMinuteString =
|
|
40
|
-
const amTimeString =
|
|
41
|
-
const pmTimeString =
|
|
39
|
+
const hourMinuteString = `${hours || '01'}:${minutes || '00'}`;
|
|
40
|
+
const amTimeString = `${hourMinuteString} AM`;
|
|
41
|
+
const pmTimeString = `${hourMinuteString} PM`;
|
|
42
42
|
const isDisabledAm = getIsDisabledTime(amTimeString);
|
|
43
43
|
const isDisabledPm = getIsDisabledTime(pmTimeString);
|
|
44
44
|
const styledPropsPrevMeridiem = {
|
|
@@ -57,10 +57,8 @@ const MeridiemList = () => {
|
|
|
57
57
|
};
|
|
58
58
|
const handleCurrMeridiemRef = useCallback(ButtonDomNode => {
|
|
59
59
|
setTimeout(() => {
|
|
60
|
-
var _ButtonDomNode$focus;
|
|
61
|
-
|
|
62
60
|
currMeridiemBtnRef.current = ButtonDomNode;
|
|
63
|
-
if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-meridiem') ButtonDomNode
|
|
61
|
+
if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-meridiem') ButtonDomNode?.focus?.();
|
|
64
62
|
});
|
|
65
63
|
}, [currFocusDescriber, latestInteractionRegion, currMeridiemBtnRef]);
|
|
66
64
|
return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/jsx(StyledWheelChangeTimeBtn, _objectSpread(_objectSpread({}, styledPropsPrevMeridiem), {}, {
|
|
@@ -78,7 +76,7 @@ const MeridiemList = () => {
|
|
|
78
76
|
}, void 0, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({}, styledPropsCurrentAmMeridiem), {}, {
|
|
79
77
|
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isAmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM'],
|
|
80
78
|
selected: currMeridiem === 'AM',
|
|
81
|
-
"aria-label":
|
|
79
|
+
"aria-label": `AM ${isAmCurrent ? 'selected' : ''}`,
|
|
82
80
|
"aria-disabled": isDisabledAm,
|
|
83
81
|
buttonType: "raw",
|
|
84
82
|
size: "m",
|
|
@@ -97,7 +95,7 @@ const MeridiemList = () => {
|
|
|
97
95
|
}, void 0, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({}, styledPropsCurrentPmMeridiem), {}, {
|
|
98
96
|
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isPmCurrent ? 'CURRENT_MERIDIEM' : 'MERIDIEM'],
|
|
99
97
|
selected: currMeridiem === 'PM',
|
|
100
|
-
"aria-label":
|
|
98
|
+
"aria-label": `PM ${isPmCurrent ? 'selected' : ''}`,
|
|
101
99
|
"aria-disabled": isDisabledPm,
|
|
102
100
|
buttonType: "raw",
|
|
103
101
|
size: "m",
|
|
@@ -43,10 +43,8 @@ const MinutesList = () => {
|
|
|
43
43
|
} = useContext(ControlledDateTimePickerContext);
|
|
44
44
|
const handleCurrMeridiemRef = useCallback(ButtonDomNode => {
|
|
45
45
|
setTimeout(() => {
|
|
46
|
-
var _ButtonDomNode$focus;
|
|
47
|
-
|
|
48
46
|
currMinutesBtnRef.current = ButtonDomNode;
|
|
49
|
-
if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-minute') ButtonDomNode
|
|
47
|
+
if (latestInteractionRegion === 'timewheel' && currFocusDescriber === 'timewheel-curr-minute') ButtonDomNode?.focus?.();
|
|
50
48
|
});
|
|
51
49
|
}, [currFocusDescriber, latestInteractionRegion, currMinutesBtnRef]);
|
|
52
50
|
return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
|
|
@@ -58,9 +56,9 @@ const MinutesList = () => {
|
|
|
58
56
|
tabIndex: -1,
|
|
59
57
|
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_MINUTE
|
|
60
58
|
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleMinutes.map(minutesString => {
|
|
61
|
-
const key =
|
|
59
|
+
const key = `timewheel-minutes-${minutesString || ''}`;
|
|
62
60
|
if (!minutesString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
|
|
63
|
-
const currMinutesTimeString =
|
|
61
|
+
const currMinutesTimeString = `${currHourNum}:${minutesString} ${currMeridiem}`;
|
|
64
62
|
const isEmptyCurrValueCurrentListItem = !minutes && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum;
|
|
65
63
|
const isCurrentListItem = isEmptyCurrValueCurrentListItem || minutes === minutesString;
|
|
66
64
|
const isDisabled = getIsDisabledTime(currMinutesTimeString);
|
|
@@ -79,7 +77,7 @@ const MinutesList = () => {
|
|
|
79
77
|
}, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread(_objectSpread({}, styledProps), {}, {
|
|
80
78
|
"data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_MINUTE' : 'MINUTE'],
|
|
81
79
|
selected: minutes.length === 2 && convertToPositiveNumberIfPossible(minutesString) === currMinuteNum,
|
|
82
|
-
"aria-label":
|
|
80
|
+
"aria-label": `${minutesString} minutes`,
|
|
83
81
|
"aria-disabled": isDisabled,
|
|
84
82
|
buttonType: "raw",
|
|
85
83
|
size: "m",
|
|
@@ -89,7 +87,7 @@ const MinutesList = () => {
|
|
|
89
87
|
"aria-valuemax": 59,
|
|
90
88
|
"aria-valuemin": 0,
|
|
91
89
|
"aria-valuenow": currMinuteNum,
|
|
92
|
-
"aria-valuetext":
|
|
90
|
+
"aria-valuetext": `${minutesString} minutes`
|
|
93
91
|
}, btnProps), {}, {
|
|
94
92
|
children: minutesString
|
|
95
93
|
})));
|
|
@@ -45,7 +45,7 @@ const SecondsList = () => {
|
|
|
45
45
|
innerRef: prevSecondsBtnRef,
|
|
46
46
|
tabIndex: -1
|
|
47
47
|
}, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleSeconds.map(secondsString => {
|
|
48
|
-
const key =
|
|
48
|
+
const key = `timewheel-seconds-${secondsString}`;
|
|
49
49
|
if (!secondsString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
|
|
50
50
|
const isEmptyCurrValueCurrentListItem = !seconds && convertToPositiveNumberIfPossible(secondsString) === currSecondNum;
|
|
51
51
|
const isCurrentListItem = isEmptyCurrValueCurrentListItem || seconds === secondsString;
|
|
@@ -57,7 +57,7 @@ const SecondsList = () => {
|
|
|
57
57
|
return /*#__PURE__*/_jsx(StyledWheelListItem, {
|
|
58
58
|
isCurrentListItem: isCurrentListItem
|
|
59
59
|
}, key, /*#__PURE__*/jsx(DSButton, _objectSpread(_objectSpread({
|
|
60
|
-
"aria-label":
|
|
60
|
+
"aria-label": `set ${secondsString} seconds`,
|
|
61
61
|
buttonType: "raw",
|
|
62
62
|
size: "l",
|
|
63
63
|
variant: BUTTON_VARIANT.DEFAULT,
|
|
@@ -1,18 +1,37 @@
|
|
|
1
|
-
import _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';
|
|
2
1
|
import styled from 'styled-components';
|
|
3
2
|
import { css } from '@elliemae/ds-system';
|
|
4
3
|
import { Grid } from '@elliemae/ds-grid';
|
|
5
4
|
import { DSButtonV2 } from '@elliemae/ds-button';
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
const focusBorder = css
|
|
6
|
+
/* eslint-disable max-lines */
|
|
7
|
+
const focusBorder = css`
|
|
8
|
+
&:after {
|
|
9
|
+
position: absolute;
|
|
10
|
+
content: '';
|
|
11
|
+
top: -2px;
|
|
12
|
+
left: -2px;
|
|
13
|
+
width: calc(100% + 4px);
|
|
14
|
+
height: calc(100% + 4px);
|
|
15
|
+
border-radius: 50%;
|
|
16
|
+
border: 2px solid ${_ref => {
|
|
9
17
|
let {
|
|
10
18
|
theme,
|
|
11
19
|
isDisabled
|
|
12
20
|
} = _ref;
|
|
13
21
|
return isDisabled ? theme.colors.danger[900] : theme.colors.brand[700];
|
|
14
|
-
}
|
|
15
|
-
|
|
22
|
+
}};
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
const diagonalLine = css`
|
|
26
|
+
&:before {
|
|
27
|
+
position: absolute;
|
|
28
|
+
content: '';
|
|
29
|
+
top: 48%;
|
|
30
|
+
left: -1px;
|
|
31
|
+
height: 1px;
|
|
32
|
+
width: calc(100% + 2px);
|
|
33
|
+
transform: rotate(45deg);
|
|
34
|
+
background-color: ${_ref2 => {
|
|
16
35
|
let {
|
|
17
36
|
theme,
|
|
18
37
|
isCurrentListItem,
|
|
@@ -21,8 +40,11 @@ const diagonalLine = css(_templateObject2 || (_templateObject2 = _taggedTemplate
|
|
|
21
40
|
if (selected) return theme.colors.neutral['000'];
|
|
22
41
|
if (isCurrentListItem) return theme.colors.danger[900];
|
|
23
42
|
return theme.colors.neutral[500];
|
|
24
|
-
}
|
|
25
|
-
|
|
43
|
+
}};
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
46
|
+
const fontColorPerStatus = css`
|
|
47
|
+
${_ref3 => {
|
|
26
48
|
let {
|
|
27
49
|
theme,
|
|
28
50
|
isDisabled,
|
|
@@ -34,8 +56,10 @@ const fontColorPerStatus = css(_templateObject3 || (_templateObject3 = _taggedTe
|
|
|
34
56
|
if (isDisabled) return theme.colors.neutral[500];
|
|
35
57
|
if (isCurrentListItem) return theme.colors.brand[600];
|
|
36
58
|
return theme.colors.neutral[800];
|
|
37
|
-
}
|
|
38
|
-
|
|
59
|
+
}};
|
|
60
|
+
`;
|
|
61
|
+
const hoverBgPerStatus = css`
|
|
62
|
+
${_ref4 => {
|
|
39
63
|
let {
|
|
40
64
|
theme,
|
|
41
65
|
selected,
|
|
@@ -44,7 +68,8 @@ const hoverBgPerStatus = css(_templateObject4 || (_templateObject4 = _taggedTemp
|
|
|
44
68
|
if (isDisabled && selected) return theme.colors.danger[900];
|
|
45
69
|
if (selected) return theme.colors.brand[700];
|
|
46
70
|
return theme.colors.neutral['000'];
|
|
47
|
-
}
|
|
71
|
+
}}
|
|
72
|
+
`;
|
|
48
73
|
const StyledIconTriggerButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
|
|
49
74
|
componentId: "sc-u44anw-0"
|
|
50
75
|
})(["color:", ";width:26px;height:26px;"], _ref5 => {
|
|
@@ -73,7 +98,9 @@ const StyledTimePickerContainer = /*#__PURE__*/styled.div.withConfig({
|
|
|
73
98
|
showShadow,
|
|
74
99
|
isControllerOnly
|
|
75
100
|
} = _ref8;
|
|
76
|
-
return showShadow && !isControllerOnly ?
|
|
101
|
+
return showShadow && !isControllerOnly ? `
|
|
102
|
+
box-shadow: 0 6px 20px 0 rgb(0 0 0 / 24%), 0 8px 17px 0 rgb(0 0 0 / 19%);
|
|
103
|
+
` : '';
|
|
77
104
|
});
|
|
78
105
|
const StyledTimePickerHead = /*#__PURE__*/styled(Grid).withConfig({
|
|
79
106
|
componentId: "sc-u44anw-3"
|
|
@@ -151,19 +178,25 @@ const StyledTimeBtn = /*#__PURE__*/styled(DSButtonV2).withConfig({
|
|
|
151
178
|
selected,
|
|
152
179
|
isCurrentListItem
|
|
153
180
|
} = _ref21;
|
|
154
|
-
return isCurrentListItem && !selected ? focusBorder :
|
|
181
|
+
return isCurrentListItem && !selected ? focusBorder : ``;
|
|
155
182
|
}, _ref22 => {
|
|
156
183
|
let {
|
|
157
184
|
isDisabled
|
|
158
185
|
} = _ref22;
|
|
159
|
-
return isDisabled ? css
|
|
186
|
+
return isDisabled ? css`
|
|
187
|
+
cursor: not-allowed;
|
|
188
|
+
${diagonalLine};
|
|
189
|
+
` : ``;
|
|
160
190
|
}, _ref23 => {
|
|
161
191
|
let {
|
|
162
192
|
theme,
|
|
163
193
|
selected,
|
|
164
194
|
isDisabled
|
|
165
195
|
} = _ref23;
|
|
166
|
-
return selected ? css
|
|
196
|
+
return selected ? css`
|
|
197
|
+
font-weight: ${theme.fontWeights.semibold};
|
|
198
|
+
background-color ${isDisabled ? theme.colors.danger[900] : theme.colors.brand[700]};
|
|
199
|
+
` : ``;
|
|
167
200
|
});
|
|
168
201
|
const StyledWheelListItem = /*#__PURE__*/styled.div.withConfig({
|
|
169
202
|
componentId: "sc-u44anw-7"
|
|
@@ -26,7 +26,7 @@ const TimeWheelContent = /*#__PURE__*/React.memo(_ref => {
|
|
|
26
26
|
showShadow: showShadow,
|
|
27
27
|
isControllerOnly: isControllerOnly,
|
|
28
28
|
"data-testid": ControlledDateTimePickerDatatestid.CONTROLLER_COMPONENT.TIMEWHEEL
|
|
29
|
-
}, void 0, /*#__PURE__*/_jsx(StyledTimePickerHead, {}, void 0,
|
|
29
|
+
}, void 0, /*#__PURE__*/_jsx(StyledTimePickerHead, {}, void 0, `${hours || '__'}:${minutes || '__'} ${meridiem || '__'}`), _StyledTimePickerWhee || (_StyledTimePickerWhee = /*#__PURE__*/_jsx(StyledTimePickerWheelsLegend, {}, void 0, /*#__PURE__*/_jsx("div", {}, void 0, "H"), /*#__PURE__*/_jsx("div", {}, void 0, "M"), /*#__PURE__*/_jsx("div", {}, void 0, "A"))), _StyledTimePickerWhee2 || (_StyledTimePickerWhee2 = /*#__PURE__*/_jsx(StyledTimePickerWheelWrapper, {}, void 0, /*#__PURE__*/_jsx(HoursList, {}), /*#__PURE__*/_jsx(MinutesList, {}), /*#__PURE__*/_jsx(MeridiemList, {}))), _TimeWheelFooter || (_TimeWheelFooter = /*#__PURE__*/_jsx(TimeWheelFooter, {})));
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
export { TimeWheelContent };
|
|
@@ -23,7 +23,7 @@ const TimeWheelIconTrigger = () => {
|
|
|
23
23
|
ariaCurrentValueForInputs
|
|
24
24
|
} = useContext(ControlledDateTimePickerContext);
|
|
25
25
|
return useMemo(() => /*#__PURE__*/_jsx(DSButtonV2, {
|
|
26
|
-
"aria-label":
|
|
26
|
+
"aria-label": `time picker context menu trigger, ${ariaCurrentValueForInputs}`,
|
|
27
27
|
buttonType: "icon",
|
|
28
28
|
size: BUTTON_SIZES.M,
|
|
29
29
|
innerRef: handleSetTriggerRef,
|
|
@@ -14,7 +14,7 @@ const hoursStartPositionOffset = 1; // if array start from 01, this is 1, if sta
|
|
|
14
14
|
const getTotalMinuteListWithStep = function () {
|
|
15
15
|
let step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
16
16
|
const length = Math.ceil(60 / step);
|
|
17
|
-
return new Array(length).fill('_').map((_v, i) => prependStringWithPlaceHolders(
|
|
17
|
+
return new Array(length).fill('_').map((_v, i) => prependStringWithPlaceHolders(`${i * step}`, 2));
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
const useCurrentDisplayedWheelsLogic = () => {
|
|
@@ -91,7 +91,7 @@ const useCurrentDisplayedWheelsLogic = () => {
|
|
|
91
91
|
}, [handleChangeHours]);
|
|
92
92
|
const handleChangeCurrHour = useCallback((offset, e) => {
|
|
93
93
|
const newH = currHourNum + offset;
|
|
94
|
-
if (newH > 0 && newH <= 12) handleChangeHours(prependStringWithPlaceHolders(
|
|
94
|
+
if (newH > 0 && newH <= 12) handleChangeHours(prependStringWithPlaceHolders(`${newH}`, 2), e);
|
|
95
95
|
}, [currHourNum, handleChangeHours]);
|
|
96
96
|
const handlePrevHour = useCallback(e => {
|
|
97
97
|
handleChangeCurrHour(-1, e);
|
|
@@ -104,7 +104,7 @@ const useCurrentDisplayedWheelsLogic = () => {
|
|
|
104
104
|
}, [handleChangeMinutes]);
|
|
105
105
|
const handleChangeCurrMinute = useCallback((offset, e) => {
|
|
106
106
|
const newM = currMinuteNum + offset;
|
|
107
|
-
if (newM >= 0 && newM <= 59) handleChangeMinutes(prependStringWithPlaceHolders(
|
|
107
|
+
if (newM >= 0 && newM <= 59) handleChangeMinutes(prependStringWithPlaceHolders(`${newM}`, 2), e);
|
|
108
108
|
}, [currMinuteNum, handleChangeMinutes]);
|
|
109
109
|
const handlePrevMinute = useCallback(e => {
|
|
110
110
|
handleChangeCurrMinute(-minutesInterval, e);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
1
|
import { useContext, useState, useCallback, useMemo } from 'react';
|
|
3
2
|
import { usePopper } from 'react-popper';
|
|
4
3
|
import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
|
|
@@ -44,14 +43,12 @@ const usePopperTriggerLogic = () => {
|
|
|
44
43
|
});
|
|
45
44
|
}, [isWithCalendarToo, onPickerClose, onPickerOpen, trackFocusTimewheelCurrHour]);
|
|
46
45
|
useOnClickOutside(popperElement, e => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (e.target instanceof Element && !(pickerButtonRef !== null && pickerButtonRef !== void 0 && (_pickerButtonRef$curr = pickerButtonRef.current) !== null && _pickerButtonRef$curr !== void 0 && (_pickerButtonRef$curr2 = _pickerButtonRef$curr.contains) !== null && _pickerButtonRef$curr2 !== void 0 && _pickerButtonRef$curr2.call(_pickerButtonRef$curr, e === null || e === void 0 ? void 0 : e.target))) closeTimePicker();
|
|
46
|
+
if (e.target instanceof Element && !pickerButtonRef?.current?.contains?.(e?.target)) closeTimePicker();
|
|
50
47
|
});
|
|
51
48
|
const handleSetTriggerRef = useCallback(newRef => {
|
|
52
49
|
pickerButtonRef.current = newRef;
|
|
53
50
|
setReferenceElement(newRef);
|
|
54
|
-
if (latestInteractionRegion === 'picker-icon' && currFocusDescriber === 'time-picker-icon') newRef
|
|
51
|
+
if (latestInteractionRegion === 'picker-icon' && currFocusDescriber === 'time-picker-icon') newRef?.focus();
|
|
55
52
|
}, [currFocusDescriber, latestInteractionRegion, pickerButtonRef]);
|
|
56
53
|
const handleMenuWrapperKeyDown = useCallback(e => {
|
|
57
54
|
const {
|
|
@@ -18,7 +18,7 @@ const Styled2DigitsInput = /*#__PURE__*/styled(ResettedInput).withConfig({
|
|
|
18
18
|
let {
|
|
19
19
|
disabled
|
|
20
20
|
} = _ref;
|
|
21
|
-
return disabled ?
|
|
21
|
+
return disabled ? `color: #616b7f;` : ``;
|
|
22
22
|
});
|
|
23
23
|
const StyledMin4DigitsInput = /*#__PURE__*/styled(ResettedInput).withConfig({
|
|
24
24
|
componentId: "sc-2wbvze-4"
|
|
@@ -26,7 +26,7 @@ const StyledMin4DigitsInput = /*#__PURE__*/styled(ResettedInput).withConfig({
|
|
|
26
26
|
let {
|
|
27
27
|
disabled
|
|
28
28
|
} = _ref2;
|
|
29
|
-
return disabled ?
|
|
29
|
+
return disabled ? `color: #616b7f;` : ``;
|
|
30
30
|
});
|
|
31
31
|
const StyledInputsWrapperGrid = /*#__PURE__*/styled(Grid).withConfig({
|
|
32
32
|
componentId: "sc-2wbvze-5"
|
|
@@ -34,7 +34,11 @@ const StyledInputsWrapperGrid = /*#__PURE__*/styled(Grid).withConfig({
|
|
|
34
34
|
let {
|
|
35
35
|
isControllerOnly
|
|
36
36
|
} = _ref3;
|
|
37
|
-
return isControllerOnly ?
|
|
37
|
+
return isControllerOnly ? `` : `
|
|
38
|
+
height: 28px;
|
|
39
|
+
border-width: 1px;
|
|
40
|
+
border-style: solid;
|
|
41
|
+
`;
|
|
38
42
|
}, _ref4 => {
|
|
39
43
|
let {
|
|
40
44
|
theme,
|
|
@@ -59,7 +63,7 @@ const StyledInputsWrapperGrid = /*#__PURE__*/styled(Grid).withConfig({
|
|
|
59
63
|
theme,
|
|
60
64
|
disabled
|
|
61
65
|
} = _ref7;
|
|
62
|
-
return disabled ?
|
|
66
|
+
return disabled ? `background-color: ${theme.colors.neutral[100]};` : ``;
|
|
63
67
|
});
|
|
64
68
|
const StyledDateInputsWrapperGrid = /*#__PURE__*/styled.div.withConfig({
|
|
65
69
|
componentId: "sc-2wbvze-6"
|
|
@@ -73,14 +77,16 @@ const StyledPickersIconsWrapperGrid = /*#__PURE__*/styled(Grid).withConfig({
|
|
|
73
77
|
let {
|
|
74
78
|
isControllerOnly
|
|
75
79
|
} = _ref8;
|
|
76
|
-
return isControllerOnly ?
|
|
80
|
+
return isControllerOnly ? `` : `height: 26px;`;
|
|
77
81
|
}, _ref9 => {
|
|
78
82
|
let {
|
|
79
83
|
theme,
|
|
80
84
|
isControllerOnly,
|
|
81
85
|
hasError
|
|
82
86
|
} = _ref9;
|
|
83
|
-
return isControllerOnly ?
|
|
87
|
+
return isControllerOnly ? `` : `
|
|
88
|
+
border-left: 1px solid ${hasError ? theme.colors.danger[900] : theme.colors.neutral[200]}
|
|
89
|
+
`;
|
|
84
90
|
});
|
|
85
91
|
const StyledFocusWithIn = /*#__PURE__*/styled(Grid).withConfig({
|
|
86
92
|
componentId: "sc-2wbvze-9"
|
|
@@ -41,13 +41,11 @@ const HHInput = /*#__PURE__*/React.memo(_ref => {
|
|
|
41
41
|
onKeyDown: onKeyDown,
|
|
42
42
|
value: value,
|
|
43
43
|
ref: DomElem => {
|
|
44
|
-
var _DomElem$focus;
|
|
45
|
-
|
|
46
44
|
contextRef.current = DomElem;
|
|
47
|
-
if (isFocused) DomElem
|
|
45
|
+
if (isFocused) DomElem?.focus?.();
|
|
48
46
|
},
|
|
49
47
|
placeholder: placeholder,
|
|
50
|
-
"aria-label":
|
|
48
|
+
"aria-label": `hours input field ${ariaCurrentValueForInputs}`,
|
|
51
49
|
"data-testid": ControlledDateTimePickerDatatestid.TIME_INPUTS.HOUR,
|
|
52
50
|
disabled: disabled,
|
|
53
51
|
"aria-disabled": disabled
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
1
|
import React, { useCallback } from 'react';
|
|
3
2
|
import { Styled2DigitsInput } from '../Styleds.js';
|
|
4
3
|
import { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';
|
|
@@ -29,9 +28,7 @@ const MeridiemInput = /*#__PURE__*/React.memo(_ref => {
|
|
|
29
28
|
isFocused
|
|
30
29
|
} = _ref;
|
|
31
30
|
const validateOnChange = useCallback(e => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (isInvalidMeridiem(e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value)) {
|
|
31
|
+
if (isInvalidMeridiem(e?.target?.value)) {
|
|
35
32
|
e.preventDefault();
|
|
36
33
|
return;
|
|
37
34
|
}
|
|
@@ -45,13 +42,11 @@ const MeridiemInput = /*#__PURE__*/React.memo(_ref => {
|
|
|
45
42
|
onKeyDown: onKeyDown,
|
|
46
43
|
value: value,
|
|
47
44
|
ref: DomElem => {
|
|
48
|
-
var _DomElem$focus;
|
|
49
|
-
|
|
50
45
|
contextRef.current = DomElem;
|
|
51
|
-
if (isFocused) DomElem
|
|
46
|
+
if (isFocused) DomElem?.focus?.();
|
|
52
47
|
},
|
|
53
48
|
placeholder: placeholder,
|
|
54
|
-
"aria-label":
|
|
49
|
+
"aria-label": `meridiem input field ${ariaCurrentValueForInputs}`,
|
|
55
50
|
"data-testid": ControlledDateTimePickerDatatestid.TIME_INPUTS.MERIDIEM,
|
|
56
51
|
disabled: disabled,
|
|
57
52
|
"aria-disabled": disabled
|
|
@@ -25,9 +25,7 @@ const MinutesInput = /*#__PURE__*/React.memo(_ref => {
|
|
|
25
25
|
isFocused
|
|
26
26
|
} = _ref;
|
|
27
27
|
const validateOnChange = useCallback(e => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (isInvalidMinute(e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value)) {
|
|
28
|
+
if (isInvalidMinute(e?.target?.value)) {
|
|
31
29
|
e.preventDefault();
|
|
32
30
|
return;
|
|
33
31
|
}
|
|
@@ -41,13 +39,11 @@ const MinutesInput = /*#__PURE__*/React.memo(_ref => {
|
|
|
41
39
|
onKeyDown: onKeyDown,
|
|
42
40
|
value: value,
|
|
43
41
|
ref: DomElem => {
|
|
44
|
-
var _DomElem$focus;
|
|
45
|
-
|
|
46
42
|
contextRef.current = DomElem;
|
|
47
|
-
if (isFocused) DomElem
|
|
43
|
+
if (isFocused) DomElem?.focus?.();
|
|
48
44
|
},
|
|
49
45
|
placeholder: placeholder,
|
|
50
|
-
"aria-label":
|
|
46
|
+
"aria-label": `minutes input field ${ariaCurrentValueForInputs}`,
|
|
51
47
|
"data-testid": ControlledDateTimePickerDatatestid.TIME_INPUTS.MINUTE,
|
|
52
48
|
disabled: disabled,
|
|
53
49
|
"aria-disabled": disabled
|
|
@@ -39,9 +39,7 @@ const useTimeInputs = () => {
|
|
|
39
39
|
trackFocusHourInput();
|
|
40
40
|
}, [trackFocusHourInput]);
|
|
41
41
|
const onHoursChange = useCallback(e => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
let newHours = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value; // converts hours 2~9 to 07~09
|
|
42
|
+
let newHours = e?.target?.value; // converts hours 2~9 to 07~09
|
|
45
43
|
|
|
46
44
|
if (Number.parseInt(newHours, 10) > 1) newHours = prependStringWithPlaceHolders(newHours, 2);
|
|
47
45
|
handleChangeHours(newHours, e); // auto-advance functionality:
|
|
@@ -64,12 +62,12 @@ const useTimeInputs = () => {
|
|
|
64
62
|
const hoursInteger = Number.isNaN(hoursStringConvertedToInteger) ? 0 : hoursStringConvertedToInteger;
|
|
65
63
|
let newHours;
|
|
66
64
|
if (key === 'ArrowUp') newHours = hoursInteger + 1 <= 12 ? hoursInteger + 1 : hoursInteger;else newHours = hoursInteger - 1 > 1 ? hoursInteger - 1 : 1;
|
|
67
|
-
newHours = prependStringWithPlaceHolders(
|
|
65
|
+
newHours = prependStringWithPlaceHolders(`${newHours}`, 2);
|
|
68
66
|
handleChangeHours(newHours, e);
|
|
69
67
|
}
|
|
70
68
|
|
|
71
69
|
if (!Number.isNaN(hoursStringConvertedToInteger) && key === ':') {
|
|
72
|
-
const newHours = prependStringWithPlaceHolders(
|
|
70
|
+
const newHours = prependStringWithPlaceHolders(`${hoursStringConvertedToInteger}`, 2);
|
|
73
71
|
handleChangeHours(newHours, e); // auto-advance functionality:
|
|
74
72
|
|
|
75
73
|
if (newHours.length === 2) trackFocusMinuteInput();
|
|
@@ -84,9 +82,7 @@ const useTimeInputs = () => {
|
|
|
84
82
|
if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();
|
|
85
83
|
}, [hours, isWithDateInputs, trackFocusYearInput, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusMinuteInput, handleChangeHours]);
|
|
86
84
|
const onHoursBlur = useCallback(e => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const newHours = e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.value;
|
|
85
|
+
const newHours = e?.target?.value;
|
|
90
86
|
if (newHours === '0') handleChangeHours('01', e, {
|
|
91
87
|
isAutomaticFillTrigger: true
|
|
92
88
|
});else if (newHours.length > 0 && newHours.length < 2) handleChangeHours(prependStringWithPlaceHolders(newHours, 2), e, {
|
|
@@ -97,9 +93,7 @@ const useTimeInputs = () => {
|
|
|
97
93
|
trackFocusMinuteInput();
|
|
98
94
|
}, [trackFocusMinuteInput]);
|
|
99
95
|
const onMinutesChange = useCallback(e => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
let newMinutes = e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.value; // converts minutes 7~9 to 07~09
|
|
96
|
+
let newMinutes = e?.target?.value; // converts minutes 7~9 to 07~09
|
|
103
97
|
|
|
104
98
|
if (Number.parseInt(newMinutes, 10) > 6) newMinutes = prependStringWithPlaceHolders(newMinutes, 2);
|
|
105
99
|
handleChangeMinutes(newMinutes, e); // auto-advance functionality:
|
|
@@ -122,19 +116,19 @@ const useTimeInputs = () => {
|
|
|
122
116
|
const minutesInteger = Number.isNaN(minutesStringConvertedToInteger) ? 0 : minutesStringConvertedToInteger;
|
|
123
117
|
let newMinutes;
|
|
124
118
|
if (key === 'ArrowUp') newMinutes = minutesInteger + minutesInterval <= 59 ? minutesInteger + minutesInterval : minutesInteger;else newMinutes = minutesInteger - minutesInterval > 0 ? minutesInteger - minutesInterval : 0;
|
|
125
|
-
newMinutes = prependStringWithPlaceHolders(
|
|
119
|
+
newMinutes = prependStringWithPlaceHolders(`${newMinutes}`, 2);
|
|
126
120
|
handleChangeMinutes(newMinutes, e);
|
|
127
121
|
}
|
|
128
122
|
|
|
129
123
|
if (!Number.isNaN(minutesStringConvertedToInteger) && key === ' ') {
|
|
130
|
-
const newMinutes = prependStringWithPlaceHolders(
|
|
124
|
+
const newMinutes = prependStringWithPlaceHolders(`${minutesStringConvertedToInteger}`, 2);
|
|
131
125
|
handleChangeMinutes(newMinutes, e); // auto-advance functionality:
|
|
132
126
|
|
|
133
127
|
if (newMinutes.length === 2) trackFocusMeridiemInput();
|
|
134
128
|
} // regressive backspace functionality
|
|
135
129
|
|
|
136
130
|
|
|
137
|
-
if (key === 'Backspace' &&
|
|
131
|
+
if (key === 'Backspace' && minutes?.length === 0) {
|
|
138
132
|
trackFocusHourInput();
|
|
139
133
|
} // focus last fragment on fill with now
|
|
140
134
|
|
|
@@ -142,9 +136,7 @@ const useTimeInputs = () => {
|
|
|
142
136
|
if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();
|
|
143
137
|
}, [minutes, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, minutesInterval, handleChangeMinutes, trackFocusMeridiemInput, trackFocusHourInput]);
|
|
144
138
|
const onMinutesBlur = useCallback(e => {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const newMinutes = e === null || e === void 0 ? void 0 : (_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.value;
|
|
139
|
+
const newMinutes = e?.target?.value;
|
|
148
140
|
if (newMinutes.length > 0 && newMinutes.length < 2) handleChangeMinutes(prependStringWithPlaceHolders(newMinutes, 2), e, {
|
|
149
141
|
isAutomaticFillTrigger: true
|
|
150
142
|
});
|
|
@@ -153,13 +145,11 @@ const useTimeInputs = () => {
|
|
|
153
145
|
trackFocusMeridiemInput();
|
|
154
146
|
}, [trackFocusMeridiemInput]);
|
|
155
147
|
const onMeridiemChange = useCallback(e => {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
let newMeridiem = e === null || e === void 0 ? void 0 : (_e$target5 = e.target) === null || _e$target5 === void 0 ? void 0 : (_e$target5$value = _e$target5.value) === null || _e$target5$value === void 0 ? void 0 : (_e$target5$value$toUp = _e$target5$value.toUpperCase) === null || _e$target5$value$toUp === void 0 ? void 0 : _e$target5$value$toUp.call(_e$target5$value); // if new value is length 1,
|
|
148
|
+
let newMeridiem = e?.target?.value?.toUpperCase?.(); // if new value is length 1,
|
|
159
149
|
// if previous value was empty, auto-complete
|
|
160
150
|
// if previous value was not empty, set to empty (regressive backspace)
|
|
161
151
|
|
|
162
|
-
if (newMeridiem.length === 1) if (meridiem === '') newMeridiem =
|
|
152
|
+
if (newMeridiem.length === 1) if (meridiem === '') newMeridiem = `${newMeridiem}M`;else newMeridiem = '';
|
|
163
153
|
handleChangeMeridiem(newMeridiem, e); // auto-advance functionality:
|
|
164
154
|
|
|
165
155
|
if (newMeridiem.length === 2 && withAnyRightController) {
|
|
@@ -180,17 +170,15 @@ const useTimeInputs = () => {
|
|
|
180
170
|
if (key === 'ArrowDown' && meridiem !== 'PM') handleChangeMeridiem('PM', e); // regressive backspace functionality
|
|
181
171
|
|
|
182
172
|
if (key === 'Backspace') {
|
|
183
|
-
if (
|
|
173
|
+
if (meridiem?.length === 2) handleChangeMeridiem('', e);else trackFocusMinuteInput();
|
|
184
174
|
} // focus last fragment on fill with now
|
|
185
175
|
|
|
186
176
|
|
|
187
177
|
if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();
|
|
188
178
|
}, [onHomeKeyDown, onEndKeyDown, meridiem, handleChangeMeridiem, trackFocusLastSegment, trackFocusMinuteInput]);
|
|
189
179
|
const onMeridiemBlur = useCallback(e => {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
const newMeridiem = e === null || e === void 0 ? void 0 : (_e$target6 = e.target) === null || _e$target6 === void 0 ? void 0 : (_e$target6$value = _e$target6.value) === null || _e$target6$value === void 0 ? void 0 : (_e$target6$value$toUp = _e$target6$value.toUpperCase) === null || _e$target6$value$toUp === void 0 ? void 0 : _e$target6$value$toUp.call(_e$target6$value);
|
|
193
|
-
if (newMeridiem.length === 1) handleChangeMeridiem("".concat(newMeridiem, "M"), e, {
|
|
180
|
+
const newMeridiem = e?.target?.value?.toUpperCase?.();
|
|
181
|
+
if (newMeridiem.length === 1) handleChangeMeridiem(`${newMeridiem}M`, e, {
|
|
194
182
|
isAutomaticFillTrigger: true
|
|
195
183
|
});
|
|
196
184
|
}, [handleChangeMeridiem]);
|