@elliemae/ds-controlled-form 2.0.0-alpha.10 → 2.0.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/controlled-checkbox/ControlledCheckbox.js +11 -4
- package/cjs/controlled-checkbox/config/useValidateProps.js +5 -7
- package/cjs/controlled-checkbox/propTypes.js +5 -4
- package/cjs/controlled-checkbox/styles.js +84 -48
- package/cjs/controlled-checkbox/utils/setMultipleRefs.js +4 -0
- package/cjs/controlled-checkbox/utils/styleHelpers.js +15 -27
- package/cjs/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
- package/cjs/controlled-date-range-picker/config/useControlledDateRangePicker.js +19 -3
- package/cjs/controlled-date-range-picker/config/useRangePickerLogic.js +21 -12
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +8 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +29 -4
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +8 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +8 -0
- package/cjs/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
- package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
- package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +161 -18
- package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +25 -22
- package/cjs/controlled-date-time-picker/config/useValidateProps.js +10 -41
- package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +5 -6
- package/cjs/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
- package/cjs/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +35 -14
- package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +16 -12
- package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
- package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +17 -13
- package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +16 -12
- package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +104 -36
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +12 -19
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +11 -12
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +26 -16
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +326 -121
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +9 -45
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +48 -23
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +59 -58
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +26 -14
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +11 -12
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +55 -25
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +19 -8
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +11 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -5
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +11 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +13 -9
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +201 -139
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -4
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -12
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +11 -8
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +64 -141
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +12 -7
- package/cjs/controlled-date-time-picker/parts/Styleds.js +70 -31
- package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +17 -13
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +17 -12
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +16 -12
- package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
- package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +98 -176
- package/cjs/controlled-date-time-picker/propTypes.js +3 -1
- package/cjs/controlled-date-time-picker/utils/constants.js +16 -0
- package/cjs/controlled-date-time-picker/utils/dateHelpers.js +39 -21
- package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
- package/cjs/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
- package/cjs/controlled-date-time-picker/utils/stringHelpers.js +28 -18
- package/cjs/controlled-date-time-picker/utils/timeHelpers.js +2 -1
- package/cjs/controlled-toggle/ControlledToggle.js +21 -14
- package/cjs/controlled-toggle/styles.js +138 -71
- package/cjs/controlled-toggle/utils/addTooltipOnReadOnly.js +2 -2
- package/cjs/controlled-toggle/utils/styleHelpers.js +15 -9
- package/esm/controlled-checkbox/ControlledCheckbox.js +11 -4
- package/esm/controlled-checkbox/config/useValidateProps.js +5 -7
- package/esm/controlled-checkbox/propTypes.js +5 -4
- package/esm/controlled-checkbox/styles.js +84 -48
- package/esm/controlled-checkbox/utils/setMultipleRefs.js +4 -0
- package/esm/controlled-checkbox/utils/styleHelpers.js +15 -27
- package/esm/controlled-date-range-picker/ControlledDateRangePickerDatatestid.js +1 -18
- package/esm/controlled-date-range-picker/config/useControlledDateRangePicker.js +15 -3
- package/esm/controlled-date-range-picker/config/useRangePickerLogic.js +21 -12
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +8 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +28 -4
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +8 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +8 -0
- package/esm/controlled-date-time-picker/ControlledDateTimePickerCTX.js +12 -1
- package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +5 -0
- package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +163 -20
- package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +25 -22
- package/esm/controlled-date-time-picker/config/useValidateProps.js +10 -41
- package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +1 -1
- package/esm/controlled-date-time-picker/parts/ClearButton/useClearButton.js +15 -3
- package/esm/controlled-date-time-picker/parts/ControlledDateTimePickerContent.js +34 -14
- package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +16 -12
- package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
- package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +17 -13
- package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +16 -12
- package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +104 -36
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Calendar.js +4 -3
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +10 -7
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -3
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -0
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +33 -28
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +3 -6
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +8 -8
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +26 -16
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +321 -117
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +9 -45
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +1 -1
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +49 -24
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +60 -59
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +27 -15
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +8 -8
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +5 -0
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +53 -23
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +19 -8
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +11 -4
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -5
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +11 -4
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -5
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +196 -135
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -4
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -8
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -0
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +6 -61
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +11 -8
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +65 -142
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +13 -8
- package/esm/controlled-date-time-picker/parts/Styleds.js +68 -29
- package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +17 -13
- package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +17 -12
- package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +16 -12
- package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
- package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +99 -173
- package/esm/controlled-date-time-picker/propTypes.js +3 -1
- package/esm/controlled-date-time-picker/utils/constants.js +10 -1
- package/esm/controlled-date-time-picker/utils/dateHelpers.js +39 -22
- package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
- package/esm/controlled-date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +1 -1
- package/esm/controlled-date-time-picker/utils/stringHelpers.js +28 -18
- package/esm/controlled-date-time-picker/utils/timeHelpers.js +2 -1
- package/esm/controlled-toggle/ControlledToggle.js +21 -14
- package/esm/controlled-toggle/styles.js +138 -71
- package/esm/controlled-toggle/utils/addTooltipOnReadOnly.js +1 -1
- package/esm/controlled-toggle/utils/styleHelpers.js +15 -9
- package/package.json +21 -12
- package/types/controlled-checkbox/ControlledCheckbox.d.ts +60 -9
- package/types/controlled-checkbox/config/useValidateProps.d.ts +1 -1
- package/types/controlled-checkbox/index.d.d.ts +1 -0
- package/types/controlled-checkbox/propTypes.d.ts +55 -8
- package/types/controlled-checkbox/styles.d.ts +4 -4
- package/types/controlled-checkbox/tests/DSControlledCheckbox.keyboard.test.d.ts +1 -0
- package/types/controlled-checkbox/tests/DSControlledCheckbox.test.d.ts +1 -0
- package/types/controlled-checkbox/tests/DSControllledCheckbox.events.test.d.ts +1 -0
- package/types/controlled-date-range-picker/ControlledDateRangePicker.d.ts +12 -2
- package/types/controlled-date-range-picker/ControlledDateRangePickerDatatestid.d.ts +1 -18
- package/types/controlled-date-range-picker/propTypes.d.ts +7 -1
- package/types/controlled-date-range-picker/tests/date-range-picker.auto-advance.test.d.ts +1 -0
- package/types/controlled-date-range-picker/tests/date-range-picker.classes.test.d.ts +1 -0
- package/types/controlled-date-range-picker/tests/date-range-picker.clear-button.test.d.ts +1 -0
- package/types/controlled-date-range-picker/tests/date-range-picker.keyboard-focus.test.d.ts +1 -0
- package/types/controlled-date-range-picker/tests/date-range-picker.manual-delete-values.test.d.ts +1 -0
- package/types/controlled-date-range-picker/tests/date-range-picker.types-dom.test.d.ts +1 -0
- package/types/controlled-date-time-picker/ControlledDateTimePicker.d.ts +84 -21
- package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +3 -0
- 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/Pickers/Calendar/CalendarContext.d.ts +2 -1
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +16 -67
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +1 -3
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +2 -17
- package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +3 -6
- 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 +6 -23
- package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +16 -67
- package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
- package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +3 -12
- package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +1 -10
- package/types/controlled-date-time-picker/parts/Styleds.d.ts +12 -29
- 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/propTypes.d.ts +79 -20
- package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.data-entry-typing.test.d.ts +1 -0
- package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.fill-with-now.test.d.ts +1 -0
- package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.regressive-backspace.test.d.ts +1 -0
- package/types/controlled-date-time-picker/tests/date-time-picker.keyboard.shortcut-clear.test.d.ts +1 -0
- package/types/controlled-date-time-picker/utils/constants.d.ts +9 -0
- package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +1 -0
- package/types/controlled-toggle/ControlledToggle.d.ts +78 -13
- package/types/controlled-toggle/propTypes.d.ts +73 -12
- package/types/controlled-toggle/styles.d.ts +7 -7
- package/cjs/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -53
- package/cjs/package.json +0 -7
- package/esm/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -45
- package/esm/package.json +0 -7
- package/types/controlled-date-time-picker/parts/TimeInputs/SSInput.d.ts +0 -13
|
@@ -3,7 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
7
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
10
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
6
12
|
var React = require('react');
|
|
13
|
+
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
7
14
|
var useGetPropsWithDefault = require('./useGetPropsWithDefault.js');
|
|
8
15
|
var useGetDestructuredValues = require('./useGetDestructuredValues.js');
|
|
9
16
|
var ControlledDateTimePickerTypes = require('../ControlledDateTimePickerTypes.js');
|
|
@@ -11,6 +18,7 @@ var useValidateProps = require('./useValidateProps.js');
|
|
|
11
18
|
var dateHelpers = require('../utils/dateHelpers.js');
|
|
12
19
|
var timeHelpers = require('../utils/timeHelpers.js');
|
|
13
20
|
var stringHelpers = require('../utils/stringHelpers.js');
|
|
21
|
+
var constants = require('../utils/constants.js');
|
|
14
22
|
|
|
15
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
24
|
|
|
@@ -28,8 +36,7 @@ const useControlledDateTimePicker = props => {
|
|
|
28
36
|
const dayInputRef = React.useRef();
|
|
29
37
|
const yearInputRef = React.useRef();
|
|
30
38
|
const hourInputRef = React.useRef();
|
|
31
|
-
const minutesInputRef = React.useRef();
|
|
32
|
-
|
|
39
|
+
const minutesInputRef = React.useRef();
|
|
33
40
|
const meridiemInputRef = React.useRef();
|
|
34
41
|
const clearButtonRef = React.useRef();
|
|
35
42
|
const pickerButtonRef = React.useRef();
|
|
@@ -43,14 +50,12 @@ const useControlledDateTimePicker = props => {
|
|
|
43
50
|
const nextHourBtnRef = React.useRef();
|
|
44
51
|
const prevMinutesBtnRef = React.useRef();
|
|
45
52
|
const currMinutesBtnRef = React.useRef();
|
|
46
|
-
const nextMinutesBtnRef = React.useRef();
|
|
47
|
-
// const currSecondsBtnRef = useRef<HTMLButtonElement>();
|
|
48
|
-
// const nextSecondsBtnRef = useRef<HTMLButtonElement>();
|
|
49
|
-
|
|
53
|
+
const nextMinutesBtnRef = React.useRef();
|
|
50
54
|
const prevMeridiemBtnRef = React.useRef();
|
|
51
55
|
const currMeridiemBtnRef = React.useRef();
|
|
52
56
|
const nextMeridiemBtnRef = React.useRef();
|
|
53
57
|
const propsWithDefaults = useGetPropsWithDefault.useGetDatePickerWithDefaultsProps(props);
|
|
58
|
+
const dataAttrs = dsPropsHelpers.getDataProps(props);
|
|
54
59
|
const {
|
|
55
60
|
type,
|
|
56
61
|
getIsDisabledDay,
|
|
@@ -94,7 +99,8 @@ const useControlledDateTimePicker = props => {
|
|
|
94
99
|
const isWithCalendarToo = type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER || type === ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;
|
|
95
100
|
const withAnyInputs = !hideDate || !hideTime;
|
|
96
101
|
const withAnyPicker = !hideDateTimePicker || !hideTimePicker || !hideDatePicker;
|
|
97
|
-
const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' ||
|
|
102
|
+
const withClearBtn = isClearable && withAnyInputs && (dateStringFromProps !== '__/__/____' && dateStringFromProps !== '' || // date is not "empty-ish"
|
|
103
|
+
timeStringFromProps !== '__:__ __' && timeStringFromProps !== ''); // or time is not "empty-ish"
|
|
98
104
|
|
|
99
105
|
const isWithDateInputs = withAnyInputs && (isDateTimeSelector || isDateSelector);
|
|
100
106
|
const isWithDateInputsOnly = withAnyInputs && isDateSelector;
|
|
@@ -107,6 +113,10 @@ const useControlledDateTimePicker = props => {
|
|
|
107
113
|
const shouldPreserveClearableSpace = isClearable && withAnyInputs;
|
|
108
114
|
const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
|
|
109
115
|
const [latestInteractionRegion, setLatestInteractionRegion] = React.useState('');
|
|
116
|
+
let firstSegmentRef = React.useRef();
|
|
117
|
+
if (isWithDateInputs) firstSegmentRef = monthInputRef;else if (isWithTimeInputs) firstSegmentRef = hourInputRef;else if (withAnyPicker) firstSegmentRef = pickerButtonRef;
|
|
118
|
+
let lastSegmentRef = React.useRef();
|
|
119
|
+
if (withAnyPicker) lastSegmentRef = pickerButtonRef;else if (withClearBtn) lastSegmentRef = clearButtonRef;else if (isWithTimeInputs) lastSegmentRef = meridiemInputRef;else if (isWithDateInputs) lastSegmentRef = yearInputRef;
|
|
110
120
|
const {
|
|
111
121
|
month,
|
|
112
122
|
day,
|
|
@@ -133,12 +143,16 @@ const useControlledDateTimePicker = props => {
|
|
|
133
143
|
dateTime: appDateTime,
|
|
134
144
|
isDateTimeSelector
|
|
135
145
|
});
|
|
136
|
-
const ariaCurrentValueForInputs =
|
|
137
|
-
const getDateMetaInfo = React.useCallback((
|
|
146
|
+
const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
|
|
147
|
+
const getDateMetaInfo = React.useCallback(function () {
|
|
148
|
+
let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
149
|
+
let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
138
150
|
const finalDateString = newDateString || tempDateString;
|
|
139
151
|
return _objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
|
|
140
152
|
}, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
|
|
141
|
-
const getTimeMetaInfo = React.useCallback((
|
|
153
|
+
const getTimeMetaInfo = React.useCallback(function () {
|
|
154
|
+
let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
155
|
+
let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
142
156
|
const finalTimeString = newTimeString || tempTimeString;
|
|
143
157
|
return _objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
|
|
144
158
|
}, [tempTimeString, getIsDisabledTime]);
|
|
@@ -151,7 +165,7 @@ const useControlledDateTimePicker = props => {
|
|
|
151
165
|
appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
|
|
152
166
|
|
|
153
167
|
setTimeString(newTimeString);
|
|
154
|
-
const newDateTimeString =
|
|
168
|
+
const newDateTimeString = "".concat(newDateString, " ").concat(newTimeString);
|
|
155
169
|
|
|
156
170
|
const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
|
|
157
171
|
newDateString,
|
|
@@ -168,7 +182,7 @@ const useControlledDateTimePicker = props => {
|
|
|
168
182
|
appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos
|
|
169
183
|
|
|
170
184
|
setTempDateString(newDateString);
|
|
171
|
-
const newDateTimeString =
|
|
185
|
+
const newDateTimeString = "".concat(newDateString, " ").concat(tempTimeString);
|
|
172
186
|
|
|
173
187
|
const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(tempTimeString, metaInfo)), getDateMetaInfo(newDateString, metaInfo)), {}, {
|
|
174
188
|
newDateString,
|
|
@@ -184,7 +198,7 @@ const useControlledDateTimePicker = props => {
|
|
|
184
198
|
appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos
|
|
185
199
|
|
|
186
200
|
setTimeString(newTimeString);
|
|
187
|
-
const newDateTimeString =
|
|
201
|
+
const newDateTimeString = "".concat(tempDateString, " ").concat(newTimeString);
|
|
188
202
|
|
|
189
203
|
const newMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, getTimeMetaInfo(newTimeString, metaInfo)), getDateMetaInfo(tempDateString, metaInfo)), {}, {
|
|
190
204
|
newDateTimeString,
|
|
@@ -195,6 +209,99 @@ const useControlledDateTimePicker = props => {
|
|
|
195
209
|
const appDateTimeString = stringHelpers.isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
|
|
196
210
|
appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
|
|
197
211
|
}, [appOnTimeChange, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
|
|
212
|
+
const handleChangeMonth = React.useCallback(function (newMonth, e) {
|
|
213
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
|
|
214
|
+
const newDateString = stringHelpers.getFormattedDateString({
|
|
215
|
+
month: newMonth,
|
|
216
|
+
day,
|
|
217
|
+
year
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
|
|
221
|
+
newDateString
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
appOnMonthChange(newMonth, e, finalMetaInfo);
|
|
225
|
+
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
226
|
+
}, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
|
|
227
|
+
const handleChangeDay = React.useCallback(function (newDay, e) {
|
|
228
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
|
|
229
|
+
const newDateString = stringHelpers.getFormattedDateString({
|
|
230
|
+
month,
|
|
231
|
+
day: newDay,
|
|
232
|
+
year
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
|
|
236
|
+
newDateString
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
appOnDayChange(newDay, e, finalMetaInfo);
|
|
240
|
+
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
241
|
+
}, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
|
|
242
|
+
const handleChangeYear = React.useCallback(function (newYear, e) {
|
|
243
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
|
|
244
|
+
const newDateString = stringHelpers.getFormattedDateString({
|
|
245
|
+
month,
|
|
246
|
+
day,
|
|
247
|
+
year: newYear
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
|
|
251
|
+
newDateString
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
appOnYearChange(newYear, e, finalMetaInfo);
|
|
255
|
+
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
256
|
+
}, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
|
|
257
|
+
const handleChangeHours = React.useCallback(function (newHours, e) {
|
|
258
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
|
|
259
|
+
const newTimeString = stringHelpers.getFormattedTimeString({
|
|
260
|
+
hours: newHours,
|
|
261
|
+
minutes,
|
|
262
|
+
// seconds,
|
|
263
|
+
meridiem
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
|
|
267
|
+
newTimeString
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
appOnHourChange(newHours, e, finalMetaInfo);
|
|
271
|
+
handleChangeComposedTimeString(newTimeString, finalMetaInfo);
|
|
272
|
+
}, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
|
|
273
|
+
const handleChangeMinutes = React.useCallback(function (newMinutes, e) {
|
|
274
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
|
|
275
|
+
const newTimeString = stringHelpers.getFormattedTimeString({
|
|
276
|
+
hours,
|
|
277
|
+
minutes: newMinutes,
|
|
278
|
+
// seconds,
|
|
279
|
+
meridiem
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
|
|
283
|
+
newTimeString
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
appOnMinuteChange(newMinutes, e, finalMetaInfo);
|
|
287
|
+
handleChangeComposedTimeString(newTimeString, finalMetaInfo);
|
|
288
|
+
}, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
|
|
289
|
+
const handleChangeMeridiem = React.useCallback(function (newMeridiem, e) {
|
|
290
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : constants.defaultMetaInfo;
|
|
291
|
+
const newTimeString = stringHelpers.getFormattedTimeString({
|
|
292
|
+
hours,
|
|
293
|
+
minutes,
|
|
294
|
+
// seconds,
|
|
295
|
+
meridiem: newMeridiem
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), timeHelpers.getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
|
|
299
|
+
newTimeString
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
|
|
303
|
+
handleChangeComposedTimeString(newTimeString, finalMetaInfo);
|
|
304
|
+
}, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
|
|
198
305
|
const handleClearAll = React.useCallback(e => {
|
|
199
306
|
const metaInfo = {
|
|
200
307
|
isAutomaticFillTrigger: false,
|
|
@@ -227,16 +334,43 @@ const useControlledDateTimePicker = props => {
|
|
|
227
334
|
if (isDateTimeSelector) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
|
|
228
335
|
if (isDateSelector) handleChangeComposedDateString('__/__/____', datePartsChangesMetainfo);
|
|
229
336
|
if (isTimeSelector) handleChangeComposedTimeString('__:__ __', timePartsChangesMetainfo);
|
|
230
|
-
setLatestInteractionRegion('clear-btn');
|
|
231
337
|
}, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDateSelector, isDateTimeSelector, isTimeSelector]);
|
|
338
|
+
const onFillWithCurrentDateKeys = React.useCallback(function () {
|
|
339
|
+
let metaInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
340
|
+
isAutomaticFillTrigger: true
|
|
341
|
+
};
|
|
342
|
+
const now = new Date();
|
|
343
|
+
const nowDateString = dateHelpers.getDateStringFromDay(now);
|
|
344
|
+
const nowTimeString = dateHelpers.getTimeStringFromDay(now);
|
|
345
|
+
|
|
346
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaInfo), dateHelpers.getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay)), timeHelpers.getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime)), {}, {
|
|
347
|
+
newDateString: nowDateString
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
handleChangeComposedDateTimeString(nowDateString, nowTimeString, finalMetaInfo);
|
|
351
|
+
}, [getIsDisabledDay, getIsDisabledTime, getIsOutOfRangeDay, handleChangeComposedDateTimeString]);
|
|
352
|
+
const onGlobalKeyDown = React.useCallback(e => {
|
|
353
|
+
const {
|
|
354
|
+
key,
|
|
355
|
+
ctrlKey,
|
|
356
|
+
metaKey
|
|
357
|
+
} = e;
|
|
358
|
+
|
|
359
|
+
if ((ctrlKey || metaKey) && key === ';') {
|
|
360
|
+
onFillWithCurrentDateKeys();
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if ((ctrlKey || metaKey) && (key === 'Delete' || key === 'Backspace')) handleClearAll(e);
|
|
364
|
+
}, [handleClearAll, onFillWithCurrentDateKeys]);
|
|
232
365
|
const ctx = React__default["default"].useMemo(() => ({
|
|
233
|
-
props: propsWithDefaults,
|
|
366
|
+
props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
|
|
367
|
+
dataAttrs
|
|
368
|
+
}),
|
|
234
369
|
monthInputRef,
|
|
235
370
|
dayInputRef,
|
|
236
371
|
yearInputRef,
|
|
237
372
|
hourInputRef,
|
|
238
373
|
minutesInputRef,
|
|
239
|
-
// secondsInputRef,
|
|
240
374
|
meridiemInputRef,
|
|
241
375
|
clearButtonRef,
|
|
242
376
|
pickerButtonRef,
|
|
@@ -255,6 +389,8 @@ const useControlledDateTimePicker = props => {
|
|
|
255
389
|
currMeridiemBtnRef,
|
|
256
390
|
nextMeridiemBtnRef,
|
|
257
391
|
dateStringFromProps,
|
|
392
|
+
firstSegmentRef,
|
|
393
|
+
lastSegmentRef,
|
|
258
394
|
tempDateString,
|
|
259
395
|
setTempDateString,
|
|
260
396
|
tempTimeString,
|
|
@@ -262,6 +398,12 @@ const useControlledDateTimePicker = props => {
|
|
|
262
398
|
handleChangeComposedDateTimeString,
|
|
263
399
|
handleChangeComposedDateString,
|
|
264
400
|
handleChangeComposedTimeString,
|
|
401
|
+
handleChangeMonth,
|
|
402
|
+
handleChangeDay,
|
|
403
|
+
handleChangeYear,
|
|
404
|
+
handleChangeHours,
|
|
405
|
+
handleChangeMinutes,
|
|
406
|
+
handleChangeMeridiem,
|
|
265
407
|
handleClearAll,
|
|
266
408
|
hideDate,
|
|
267
409
|
hideTime,
|
|
@@ -308,8 +450,9 @@ const useControlledDateTimePicker = props => {
|
|
|
308
450
|
announcedMinutes,
|
|
309
451
|
announcedMeridiem,
|
|
310
452
|
announcedTimeValues,
|
|
311
|
-
ariaCurrentValueForInputs
|
|
312
|
-
|
|
453
|
+
ariaCurrentValueForInputs,
|
|
454
|
+
onGlobalKeyDown
|
|
455
|
+
}), [dataAttrs, propsWithDefaults, dateStringFromProps, tempDateString, tempTimeString, handleChangeComposedDateTimeString, handleChangeComposedDateString, handleChangeComposedTimeString, handleChangeMonth, handleChangeDay, handleChangeYear, handleChangeHours, handleChangeMinutes, handleChangeMeridiem, 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, onGlobalKeyDown] // refs are mutable so we don't need to listen to them
|
|
313
456
|
);
|
|
314
457
|
return ctx;
|
|
315
458
|
};
|
|
@@ -12,11 +12,12 @@ var constants = require('../utils/constants.js');
|
|
|
12
12
|
// our source of truth is either the date props or dateTime props
|
|
13
13
|
// based on wheter it's a dateTime picker
|
|
14
14
|
// or a date picker (it's date picker when hideTime is true)
|
|
15
|
-
const useGetDestructuredDateValues =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
const useGetDestructuredDateValues = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
date,
|
|
18
|
+
dateTime,
|
|
19
|
+
isDateTimeSelector
|
|
20
|
+
} = _ref;
|
|
20
21
|
const dateStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToDate(dateTime) : date;
|
|
21
22
|
const deconstructedValues = stringHelpers.deconstructValuesFromDateString(dateStringFromProps);
|
|
22
23
|
const {
|
|
@@ -29,8 +30,8 @@ const useGetDestructuredDateValues = ({
|
|
|
29
30
|
const yearNum = numberHelpers.convertToPositiveNumberIfPossible(year);
|
|
30
31
|
const announcedMonth = monthNum !== -1 ? constants.monthNames[monthNum - 1] : 'empty month';
|
|
31
32
|
const announcedDay = dayNum !== -1 ? constants.announcableCardinalDays[dayNum] : 'empty day';
|
|
32
|
-
const announcedYear = yearNum !== -1 ? stringHelpers.fillStringWithPlaceHolders(
|
|
33
|
-
const announcedDateValues =
|
|
33
|
+
const announcedYear = yearNum !== -1 ? stringHelpers.fillStringWithPlaceHolders("".concat(yearNum), 4, '0') : 'empty year';
|
|
34
|
+
const announcedDateValues = "".concat(announcedMonth, ", ").concat(announcedDay, ", ").concat(announcedYear);
|
|
34
35
|
return React.useMemo(() => ({
|
|
35
36
|
month,
|
|
36
37
|
day,
|
|
@@ -48,11 +49,12 @@ const useGetDestructuredDateValues = ({
|
|
|
48
49
|
// based on wheter it's a dateTime picker
|
|
49
50
|
// or a time picker (it's time picker when hideDate is true)
|
|
50
51
|
|
|
51
|
-
const useGetDestructuredTimeValues =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
const useGetDestructuredTimeValues = _ref2 => {
|
|
53
|
+
let {
|
|
54
|
+
time,
|
|
55
|
+
dateTime,
|
|
56
|
+
isDateTimeSelector
|
|
57
|
+
} = _ref2;
|
|
56
58
|
const timeStringFromProps = isDateTimeSelector ? stringHelpers.dateTimeToTime(dateTime) : time;
|
|
57
59
|
const deconstructedValues = stringHelpers.deconstructTimeValues(timeStringFromProps);
|
|
58
60
|
const {
|
|
@@ -63,12 +65,12 @@ const useGetDestructuredTimeValues = ({
|
|
|
63
65
|
const hoursNum = numberHelpers.convertToPositiveNumberIfPossible(hours);
|
|
64
66
|
const minutesNum = numberHelpers.convertToPositiveNumberIfPossible(minutes); // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
|
|
65
67
|
|
|
66
|
-
const announcedHours = hoursNum !== -1 ?
|
|
68
|
+
const announcedHours = hoursNum !== -1 ? "".concat(hoursNum) : 'empty hours'; // 01 -> 1 ~ 09 -> 9 || 1_ -> 1 ~ 9_ -> 9 || empty...
|
|
67
69
|
|
|
68
|
-
const announcedMinutes = minutesNum !== -1 ?
|
|
70
|
+
const announcedMinutes = minutesNum !== -1 ? "".concat(minutesNum) : 'empty minutes';
|
|
69
71
|
const announcedMeridiem = // eslint-disable-next-line no-nested-ternary
|
|
70
|
-
meridiem === 'PM' ?
|
|
71
|
-
const announcedTimeValues =
|
|
72
|
+
meridiem === 'PM' ? "post meridiem" : meridiem === 'AM' ? 'ante meridiem' : 'empty meriediem';
|
|
73
|
+
const announcedTimeValues = "".concat(announcedHours, ", ").concat(announcedMinutes, ", ").concat(announcedMeridiem);
|
|
72
74
|
return React.useMemo(() => ({
|
|
73
75
|
hours,
|
|
74
76
|
minutes,
|
|
@@ -81,12 +83,13 @@ const useGetDestructuredTimeValues = ({
|
|
|
81
83
|
announcedTimeValues
|
|
82
84
|
}), [hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
|
|
83
85
|
};
|
|
84
|
-
const useGetDestructuredValues =
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
const useGetDestructuredValues = _ref3 => {
|
|
87
|
+
let {
|
|
88
|
+
date,
|
|
89
|
+
time,
|
|
90
|
+
dateTime,
|
|
91
|
+
isDateTimeSelector
|
|
92
|
+
} = _ref3;
|
|
90
93
|
const {
|
|
91
94
|
month,
|
|
92
95
|
day,
|
|
@@ -7,72 +7,41 @@ var stringHelpers = require('../utils/stringHelpers.js');
|
|
|
7
7
|
var numberHelpers = require('../utils/numberHelpers.js');
|
|
8
8
|
|
|
9
9
|
/* eslint-disable max-len */
|
|
10
|
-
const PREPEND =
|
|
11
|
-
Invalid configuration detected::
|
|
12
|
-
|
|
13
|
-
`;
|
|
10
|
+
const PREPEND = "ControlledDateTimePicker:\n Invalid configuration detected::\n \n ";
|
|
14
11
|
const NOT_A_DEFECT = ''; // '\n\n\t\tThis is not a defect, please check\n\n\t\thttps://qa.dimsum.rd.elliemae.io/?path=/story/components-desktop-components-d-controlledform-date-time-picker--basic\n\n\t\tfor instructions on how to use the component correctly\n\n';
|
|
15
12
|
|
|
16
|
-
const INLINE_RECEIVED_PREPEND =
|
|
17
|
-
|
|
18
|
-
Received:`;
|
|
13
|
+
const INLINE_RECEIVED_PREPEND = "\n\n Received:";
|
|
19
14
|
|
|
20
15
|
const throwInvalidDateTimeError = invalidValue => {
|
|
21
|
-
throw new Error(
|
|
16
|
+
throw new Error("".concat(PREPEND, "the \"dateTime\" you are providing is not respecting the format it must respect.").concat(INLINE_RECEIVED_PREPEND).concat(invalidValue, "(").concat(typeof invalidValue, ")").concat(NOT_A_DEFECT));
|
|
22
17
|
};
|
|
23
18
|
|
|
24
19
|
const throwInvalidDaterror = invalidValue => {
|
|
25
|
-
throw new Error(
|
|
20
|
+
throw new Error("".concat(PREPEND, "the \"date\" you are providing is not respecting the format it must respect.").concat(INLINE_RECEIVED_PREPEND).concat(invalidValue, "(").concat(typeof invalidValue, ")").concat(NOT_A_DEFECT));
|
|
26
21
|
};
|
|
27
22
|
|
|
28
23
|
const throwInvalidTimerror = invalidValue => {
|
|
29
|
-
throw new Error(
|
|
24
|
+
throw new Error("".concat(PREPEND, "the \"time\" you are providing is not respecting the format it must respect.").concat(INLINE_RECEIVED_PREPEND).concat(invalidValue, "(").concat(typeof invalidValue, ")").concat(NOT_A_DEFECT));
|
|
30
25
|
};
|
|
31
26
|
|
|
32
27
|
const throwUncontrolledDateError = (date, onDateChange) => {
|
|
33
|
-
throw new Error(
|
|
34
|
-
the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
|
|
35
|
-
|
|
36
|
-
Received:
|
|
37
|
-
${date}(${typeof date})
|
|
38
|
-
${onDateChange}(${typeof onDateChange})
|
|
39
|
-
${NOT_A_DEFECT}`);
|
|
28
|
+
throw new Error("".concat(PREPEND, "you are trying to use a date selector while providing a non-string \"date\" or providing a non-function to \"onDateChange\"\n the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations\n\n Received:\n ").concat(date, "(").concat(typeof date, ")\n ").concat(onDateChange, "(").concat(typeof onDateChange, ")\n ").concat(NOT_A_DEFECT));
|
|
40
29
|
};
|
|
41
30
|
|
|
42
31
|
const throwUncontrolledTimeError = (time, onTimeChange) => {
|
|
43
|
-
throw new Error(
|
|
44
|
-
the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
|
|
45
|
-
|
|
46
|
-
Received:
|
|
47
|
-
${time}(${typeof time})
|
|
48
|
-
${onTimeChange}(${typeof onTimeChange})
|
|
49
|
-
${NOT_A_DEFECT}`);
|
|
32
|
+
throw new Error("".concat(PREPEND, "you are trying to use a time selector while providing a non-string \"time\" or providing a non-function to \"onTimeChange\"\n the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations\n\n Received:\n ").concat(time, "(").concat(typeof time, ")\n ").concat(onTimeChange, "(").concat(typeof onTimeChange, ")\n ").concat(NOT_A_DEFECT));
|
|
50
33
|
};
|
|
51
34
|
|
|
52
35
|
const throwUncontrolledDateTimeError = (dateTime, onDateTimeChange) => {
|
|
53
|
-
throw new Error(
|
|
54
|
-
the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations
|
|
55
|
-
|
|
56
|
-
Received:
|
|
57
|
-
${dateTime}(${typeof dateTime})
|
|
58
|
-
${onDateTimeChange}(${typeof onDateTimeChange})
|
|
59
|
-
${NOT_A_DEFECT}`);
|
|
36
|
+
throw new Error("".concat(PREPEND, "you are trying to use a date-time selector while providing a non-string \"dateTime\" or providing a non-function to \"onDateTimeChange\"\n the full-controlled pattern must be used\n\tcheck https://reactjs.org/docs/forms.html#controlled-components for more informations\n\n Received:\n ").concat(dateTime, "(").concat(typeof dateTime, ")\n ").concat(onDateTimeChange, "(").concat(typeof onDateTimeChange, ")\n ").concat(NOT_A_DEFECT));
|
|
60
37
|
};
|
|
61
38
|
|
|
62
39
|
const throwInvalidEmptyPickerStartingMonthError = emptyPickerStartingMonth => {
|
|
63
|
-
throw new Error(
|
|
64
|
-
|
|
65
|
-
Received:
|
|
66
|
-
${emptyPickerStartingMonth}(${typeof emptyPickerStartingMonth})
|
|
67
|
-
${NOT_A_DEFECT}`);
|
|
40
|
+
throw new Error("".concat(PREPEND, "the provided emptyPickerStartingMonth props is invalid. please provide a string with the format mm/__/yyyy, (mm 01~12, yyyy 0001~9999) \n\n Received:\n ").concat(emptyPickerStartingMonth, "(").concat(typeof emptyPickerStartingMonth, ")\n ").concat(NOT_A_DEFECT));
|
|
68
41
|
};
|
|
69
42
|
|
|
70
43
|
const throwInvalidOnCalendarOpenFocusedDayError = onCalendarOpenFocusedDay => {
|
|
71
|
-
throw new Error(
|
|
72
|
-
|
|
73
|
-
Received:
|
|
74
|
-
${onCalendarOpenFocusedDay}(${typeof onCalendarOpenFocusedDay})
|
|
75
|
-
${NOT_A_DEFECT}`);
|
|
44
|
+
throw new Error("".concat(PREPEND, "the provided onCalendarOpenFocusedDay props is invalid. please provide a string with the format mm/dd/yyyy, (mm 01~12, dd 01~31, yyyy 0001~9999) \n\n Received:\n ").concat(onCalendarOpenFocusedDay, "(").concat(typeof onCalendarOpenFocusedDay, ")\n ").concat(NOT_A_DEFECT));
|
|
76
45
|
};
|
|
77
46
|
|
|
78
47
|
const useValidateProps = props => {
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
6
|
require('react');
|
|
7
|
-
var
|
|
7
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
8
8
|
var dsIcon = require('@elliemae/ds-icon');
|
|
9
|
-
var
|
|
9
|
+
var DSButton = require('@elliemae/ds-button');
|
|
10
10
|
var Styleds = require('../Styleds.js');
|
|
11
11
|
var ControlledDateTimePickerDatatestid = require('../../ControlledDateTimePickerDatatestid.js');
|
|
12
12
|
var useClearButton = require('./useClearButton.js');
|
|
@@ -14,7 +14,6 @@ var useClearButton = require('./useClearButton.js');
|
|
|
14
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
15
|
|
|
16
16
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
17
|
-
var CloseMedium__default = /*#__PURE__*/_interopDefaultLegacy(CloseMedium);
|
|
18
17
|
|
|
19
18
|
const ClearButton = () => {
|
|
20
19
|
const {
|
|
@@ -28,14 +27,14 @@ const ClearButton = () => {
|
|
|
28
27
|
shouldDisplay: withClearBtn,
|
|
29
28
|
"aria-label": "clear selected date",
|
|
30
29
|
buttonType: "icon",
|
|
31
|
-
size:
|
|
32
|
-
variant:
|
|
30
|
+
size: DSButton.BUTTON_SIZES.M,
|
|
31
|
+
variant: DSButton.BUTTON_VARIANT.DEFAULT,
|
|
33
32
|
"data-testid": ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.CLEAR_BUTTON,
|
|
34
33
|
innerRef: clearButtonRef,
|
|
35
34
|
onClick: onClearClick,
|
|
36
35
|
onKeyDown: onClearButtonKeyDown,
|
|
37
36
|
withAnyPicker: withAnyPicker
|
|
38
|
-
}, void 0, /*#__PURE__*/_jsx__default["default"](
|
|
37
|
+
}, void 0, /*#__PURE__*/_jsx__default["default"](dsIcons.CloseMedium, {
|
|
39
38
|
color: dsIcon.DSIconColors.PRIMARY
|
|
40
39
|
}));
|
|
41
40
|
};
|
|
@@ -13,10 +13,15 @@ const useClearButton = () => {
|
|
|
13
13
|
withAnyPicker,
|
|
14
14
|
withClearBtn,
|
|
15
15
|
withAnyInputs,
|
|
16
|
+
isWithTimeInputs,
|
|
17
|
+
isWithDateInputs,
|
|
16
18
|
isTimeSelector,
|
|
17
19
|
hourInputRef,
|
|
18
20
|
monthInputRef,
|
|
19
|
-
pickerButtonRef
|
|
21
|
+
pickerButtonRef,
|
|
22
|
+
meridiemInputRef,
|
|
23
|
+
yearInputRef,
|
|
24
|
+
setLatestInteractionRegion
|
|
20
25
|
} = React.useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
|
|
21
26
|
const focusFirstRegion = React.useCallback(() => {
|
|
22
27
|
var _hourInputRef$current, _hourInputRef$current2, _monthInputRef$curren, _monthInputRef$curren2;
|
|
@@ -25,8 +30,9 @@ const useClearButton = () => {
|
|
|
25
30
|
}, [withAnyInputs, isTimeSelector, hourInputRef, monthInputRef]);
|
|
26
31
|
const onClearClick = React.useCallback(e => {
|
|
27
32
|
handleClearAll(e);
|
|
33
|
+
setLatestInteractionRegion('clear-btn');
|
|
28
34
|
focusFirstRegion();
|
|
29
|
-
}, [focusFirstRegion, handleClearAll]);
|
|
35
|
+
}, [focusFirstRegion, handleClearAll, setLatestInteractionRegion]);
|
|
30
36
|
const onHomeKeyDown = React.useCallback(() => {
|
|
31
37
|
focusFirstRegion();
|
|
32
38
|
}, [focusFirstRegion]);
|
|
@@ -45,7 +51,13 @@ const useClearButton = () => {
|
|
|
45
51
|
if (stopPropagationKeys.includes(key)) e.stopPropagation();
|
|
46
52
|
if (key === 'Home') onHomeKeyDown();
|
|
47
53
|
if (key === 'End') onEndKeyDown();
|
|
48
|
-
|
|
54
|
+
|
|
55
|
+
if (key === 'Backspace' && withAnyInputs) {
|
|
56
|
+
var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
|
|
57
|
+
|
|
58
|
+
if (isWithTimeInputs) meridiemInputRef === null || meridiemInputRef === void 0 ? void 0 : (_meridiemInputRef$cur = meridiemInputRef.current) === null || _meridiemInputRef$cur === void 0 ? void 0 : (_meridiemInputRef$cur2 = _meridiemInputRef$cur.focus) === null || _meridiemInputRef$cur2 === void 0 ? void 0 : _meridiemInputRef$cur2.call(_meridiemInputRef$cur);else if (isWithDateInputs) yearInputRef === null || yearInputRef === void 0 ? void 0 : (_yearInputRef$current = yearInputRef.current) === null || _yearInputRef$current === void 0 ? void 0 : (_yearInputRef$current2 = _yearInputRef$current.focus) === null || _yearInputRef$current2 === void 0 ? void 0 : _yearInputRef$current2.call(_yearInputRef$current);
|
|
59
|
+
}
|
|
60
|
+
}, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onEndKeyDown, onHomeKeyDown, withAnyInputs, yearInputRef]);
|
|
49
61
|
return React.useMemo(() => ({
|
|
50
62
|
onClearClick,
|
|
51
63
|
onClearButtonKeyDown,
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
11
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
12
|
var React = require('react');
|
|
7
13
|
var dsGrid = require('@elliemae/ds-grid');
|
|
@@ -11,13 +17,19 @@ var DateInputs = require('./DateInputs/DateInputs.js');
|
|
|
11
17
|
var TimeInputs = require('./TimeInputs/TimeInputs.js');
|
|
12
18
|
var PickersIcons = require('./Pickers/PickersIcons.js');
|
|
13
19
|
var ClearButton = require('./ClearButton/ClearButton.js');
|
|
20
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
14
21
|
|
|
15
22
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
23
|
|
|
24
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
17
25
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
18
26
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
27
|
|
|
20
28
|
var _DateInputs, _TimeInputs, _ClearButton, _PickersIcons;
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
21
33
|
const ControlledDateTimePickerContent = () => {
|
|
22
34
|
const {
|
|
23
35
|
hideDate,
|
|
@@ -31,8 +43,11 @@ const ControlledDateTimePickerContent = () => {
|
|
|
31
43
|
shouldPreserveClearableSpace,
|
|
32
44
|
isControllerOnly,
|
|
33
45
|
props: {
|
|
34
|
-
hasError
|
|
35
|
-
|
|
46
|
+
hasError,
|
|
47
|
+
dataAttrs,
|
|
48
|
+
disabled
|
|
49
|
+
},
|
|
50
|
+
onGlobalKeyDown
|
|
36
51
|
} = React__default["default"].useContext(ControlledDateTimePickerCTX.ControlledDateTimePickerContext);
|
|
37
52
|
const resetLatestInteraction = React__default["default"].useCallback(() => {
|
|
38
53
|
setLatestInteractionRegion('');
|
|
@@ -44,18 +59,24 @@ const ControlledDateTimePickerContent = () => {
|
|
|
44
59
|
const rightControlCols = [];
|
|
45
60
|
if (shouldPreserveClearableSpace) rightControlCols.push('28px');
|
|
46
61
|
if (withAnyPicker) rightControlCols.push('auto');
|
|
47
|
-
return /*#__PURE__*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
63
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(Styleds.StyledInputsWrapperGrid, _objectSpread(_objectSpread({
|
|
64
|
+
cols: mainCols,
|
|
65
|
+
gutter: "xxs",
|
|
66
|
+
pr: hideDatePicker && hideTimePicker && hideDateTimePicker ? '2px' : null,
|
|
67
|
+
justPicker: hideDate && hideTime,
|
|
68
|
+
withAnyPicker: withAnyPicker,
|
|
69
|
+
onBlur: resetLatestInteraction,
|
|
70
|
+
onKeyDown: onGlobalKeyDown,
|
|
71
|
+
hasError: hasError,
|
|
72
|
+
isControllerOnly: isControllerOnly,
|
|
73
|
+
disabled: disabled
|
|
74
|
+
}, dataAttrs), {}, {
|
|
75
|
+
children: [hideDate ? null : _DateInputs || (_DateInputs = /*#__PURE__*/_jsx__default["default"](DateInputs.DateInputs, {})), hideTime ? null : _TimeInputs || (_TimeInputs = /*#__PURE__*/_jsx__default["default"](TimeInputs.TimeInputs, {})), withAnyRightController ? /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
|
|
76
|
+
cols: rightControlCols
|
|
77
|
+
}, void 0, shouldPreserveClearableSpace ? _ClearButton || (_ClearButton = /*#__PURE__*/_jsx__default["default"](ClearButton.ClearButton, {})) : null, withAnyPicker ? _PickersIcons || (_PickersIcons = /*#__PURE__*/_jsx__default["default"](PickersIcons.PickersIcons, {})) : null) : null]
|
|
78
|
+
}))
|
|
79
|
+
});
|
|
59
80
|
};
|
|
60
81
|
|
|
61
82
|
exports.ControlledDateTimePickerContent = ControlledDateTimePickerContent;
|