@elliemae/ds-controlled-form 2.0.0-alpha.11 → 2.0.0-alpha.12
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 +2 -2
- 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 +13 -7
- 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 +20 -12
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +7 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +29 -8
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +7 -0
- package/cjs/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +7 -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 +154 -13
- package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +19 -16
- 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 +15 -11
- package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
- package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +16 -12
- package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +15 -11
- package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +101 -33
- 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 +10 -17
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +10 -11
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +20 -10
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +326 -117
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +8 -43
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +47 -21
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +59 -58
- package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +25 -13
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +10 -11
- 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 +18 -7
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +7 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +1 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +7 -0
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +11 -7
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +201 -80
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -3
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +10 -11
- 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 +8 -5
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +64 -141
- package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +11 -7
- package/cjs/controlled-date-time-picker/parts/Styleds.js +70 -26
- package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +16 -12
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +15 -11
- package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +15 -11
- package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
- package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +95 -173
- 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 +34 -16
- package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
- package/cjs/controlled-date-time-picker/utils/stringHelpers.js +23 -14
- package/cjs/controlled-date-time-picker/utils/timeHelpers.js +2 -1
- package/cjs/controlled-toggle/ControlledToggle.js +21 -15
- package/cjs/controlled-toggle/styles.js +138 -69
- 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 +2 -2
- 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 +13 -7
- 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 +20 -12
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeCalendar.js +7 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +28 -8
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeFromDate.js +7 -0
- package/esm/controlled-date-range-picker/parts/ControlledDateRangeToDate.js +7 -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 +156 -15
- package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +19 -16
- 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 +15 -11
- package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
- package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +16 -12
- package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +15 -11
- package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +101 -33
- 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 +1 -4
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +7 -7
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -0
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +20 -10
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +321 -113
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +8 -43
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +48 -22
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +60 -59
- package/esm/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +26 -14
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +2 -1
- package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +7 -7
- 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 +18 -7
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +7 -0
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +1 -0
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +7 -0
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +196 -76
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +4 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +4 -3
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -1
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +7 -7
- 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 +8 -5
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +65 -142
- package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +12 -8
- package/esm/controlled-date-time-picker/parts/Styleds.js +68 -24
- package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +16 -12
- package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +15 -11
- package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +15 -11
- package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +8 -5
- package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +96 -170
- 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 +34 -17
- package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +5 -0
- package/esm/controlled-date-time-picker/utils/stringHelpers.js +23 -14
- package/esm/controlled-date-time-picker/utils/timeHelpers.js +2 -1
- package/esm/controlled-toggle/ControlledToggle.js +21 -15
- package/esm/controlled-toggle/styles.js +138 -69
- 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/esm/controlled-date-time-picker/parts/TimeInputs/SSInput.js +0 -45
- package/types/controlled-date-time-picker/parts/TimeInputs/SSInput.d.ts +0 -13
|
@@ -1,13 +1,23 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
6
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
1
7
|
import { useMemo } from 'react';
|
|
2
8
|
import { uid } from 'uid';
|
|
9
|
+
import { getDataProps } from '@elliemae/ds-props-helpers';
|
|
3
10
|
import { useGetDateRangePickerWithDefaultsProps } from './useGetPropsWithDefault.js';
|
|
4
11
|
import { useRangePickerLogic } from './useRangePickerLogic.js';
|
|
5
12
|
import { CONTROLLED_DATE_RANGE_PICKER_TYPES } from '../ControlledDateRangePickerTypes.js';
|
|
6
13
|
|
|
7
|
-
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
8
17
|
const useControlledDateRangePicker = props => {
|
|
9
18
|
const instanceUID = useMemo(() => uid(6), []);
|
|
10
19
|
const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);
|
|
20
|
+
const dataAttrs = getDataProps(props);
|
|
11
21
|
const {
|
|
12
22
|
type
|
|
13
23
|
} = propsWithDefaults;
|
|
@@ -16,13 +26,15 @@ const useControlledDateRangePicker = props => {
|
|
|
16
26
|
const isControllerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.CONTROLLER_ONLY;
|
|
17
27
|
const rangePickerLogic = useRangePickerLogic(propsWithDefaults);
|
|
18
28
|
const ctx = useMemo(() => ({
|
|
19
|
-
props: propsWithDefaults,
|
|
29
|
+
props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
|
|
30
|
+
dataAttrs
|
|
31
|
+
}),
|
|
20
32
|
instanceUID,
|
|
21
33
|
rangePickerLogic,
|
|
22
34
|
withInputs,
|
|
23
35
|
withIcon,
|
|
24
36
|
isControllerOnly
|
|
25
|
-
}), [instanceUID, isControllerOnly, propsWithDefaults, rangePickerLogic, withIcon, withInputs]);
|
|
37
|
+
}), [instanceUID, isControllerOnly, dataAttrs, propsWithDefaults, rangePickerLogic, withIcon, withInputs]);
|
|
26
38
|
return ctx;
|
|
27
39
|
};
|
|
28
40
|
|
|
@@ -1,25 +1,33 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
1
6
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
7
|
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
3
8
|
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
4
9
|
import '../../controlled-date-time-picker/ControlledDateTimePicker.js';
|
|
10
|
+
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
11
|
+
import 'core-js/modules/esnext.iterator.map.js';
|
|
5
12
|
import 'core-js/modules/es.string.replace.js';
|
|
6
13
|
import { getDayFromDateString } from '../../controlled-date-time-picker/utils/dateHelpers.js';
|
|
7
14
|
|
|
8
15
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
9
16
|
|
|
10
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(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; }
|
|
11
|
-
const useRangePickerLogic =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const useRangePickerLogic = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
fromDate,
|
|
21
|
+
onFromDateChange,
|
|
22
|
+
onMonthFromChange,
|
|
23
|
+
onDayFromChange,
|
|
24
|
+
onYearFromChange,
|
|
25
|
+
toDate,
|
|
26
|
+
onMonthToChange,
|
|
27
|
+
onDayToChange,
|
|
28
|
+
onYearToChange,
|
|
29
|
+
onToDateChange
|
|
30
|
+
} = _ref;
|
|
23
31
|
// the implementation is based on controlled-date-time-picker that is not meant to "understand"
|
|
24
32
|
// the "from" - "to" logic on click, we are "overloading" the "from" - "to" logic here
|
|
25
33
|
// we track wheter we are going to set the "from" OR "to" controlled date based on this toggle
|
|
@@ -2,8 +2,15 @@ import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
|
2
2
|
import { useContext } from 'react';
|
|
3
3
|
import { DSControlledDateTimePicker } from '../../controlled-date-time-picker/ControlledDateTimePicker.js';
|
|
4
4
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../controlled-date-time-picker/ControlledDateTimePickerTypes.js';
|
|
5
|
+
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
6
|
+
import 'core-js/modules/esnext.iterator.map.js';
|
|
5
7
|
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
6
8
|
import 'core-js/modules/es.string.replace.js';
|
|
9
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
10
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
11
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
12
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
13
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
7
14
|
import '@babel/runtime/helpers/esm/defineProperty';
|
|
8
15
|
import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';
|
|
9
16
|
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
6
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
1
7
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
8
|
import { useContext } from 'react';
|
|
3
9
|
import styled from 'styled-components';
|
|
@@ -5,25 +11,39 @@ import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCT
|
|
|
5
11
|
import { ControlledDateRangeFromDate } from './ControlledDateRangeFromDate.js';
|
|
6
12
|
import { ControlledDateRangeToDate } from './ControlledDateRangeToDate.js';
|
|
7
13
|
import { ControlledDateRangeCalendar } from './ControlledDateRangeCalendar.js';
|
|
14
|
+
import { ControlledDateRangePickerDatatestid } from '../ControlledDateRangePickerDatatestid.js';
|
|
8
15
|
import { jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
16
|
|
|
10
17
|
var _ControlledDateRangeF, _ControlledDateRangeT, _ControlledDateRangeC;
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
11
22
|
const StyledWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
12
23
|
componentId: "sc-e4pfvj-0"
|
|
13
|
-
})(["display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto;", " grid-auto-flow:row;grid-template-areas:'. .';justify-content:center;align-items:center;"],
|
|
14
|
-
|
|
15
|
-
|
|
24
|
+
})(["display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto;", " grid-auto-flow:row;grid-template-areas:'. .';justify-content:center;align-items:center;"], _ref => {
|
|
25
|
+
let {
|
|
26
|
+
isControllerOnly
|
|
27
|
+
} = _ref;
|
|
28
|
+
return isControllerOnly ? undefined : 'gap: 0px 8px;';
|
|
29
|
+
});
|
|
16
30
|
const ControlledDateRangeContent = () => {
|
|
17
31
|
const {
|
|
32
|
+
props: {
|
|
33
|
+
dataAttrs
|
|
34
|
+
},
|
|
18
35
|
withIcon,
|
|
19
36
|
withInputs,
|
|
20
37
|
isControllerOnly
|
|
21
38
|
} = useContext(ControlledDateRangePickerContext);
|
|
22
|
-
return /*#__PURE__*/
|
|
23
|
-
isControllerOnly: isControllerOnly
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
39
|
+
return /*#__PURE__*/jsxs(StyledWrapper, _objectSpread(_objectSpread({
|
|
40
|
+
isControllerOnly: isControllerOnly,
|
|
41
|
+
"data-testid": ControlledDateRangePickerDatatestid.WRAPPER
|
|
42
|
+
}, dataAttrs), {}, {
|
|
43
|
+
children: [withInputs ? /*#__PURE__*/jsxs(Fragment, {
|
|
44
|
+
children: [_ControlledDateRangeF || (_ControlledDateRangeF = /*#__PURE__*/_jsx(ControlledDateRangeFromDate, {})), _ControlledDateRangeT || (_ControlledDateRangeT = /*#__PURE__*/_jsx(ControlledDateRangeToDate, {}))]
|
|
45
|
+
}) : null, withIcon || isControllerOnly ? _ControlledDateRangeC || (_ControlledDateRangeC = /*#__PURE__*/_jsx(ControlledDateRangeCalendar, {})) : null]
|
|
46
|
+
}));
|
|
27
47
|
};
|
|
28
48
|
|
|
29
49
|
export { ControlledDateRangeContent };
|
|
@@ -3,8 +3,15 @@ import { useContext } from 'react';
|
|
|
3
3
|
import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';
|
|
4
4
|
import { DSControlledDateTimePicker } from '../../controlled-date-time-picker/ControlledDateTimePicker.js';
|
|
5
5
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../controlled-date-time-picker/ControlledDateTimePickerTypes.js';
|
|
6
|
+
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
7
|
+
import 'core-js/modules/esnext.iterator.map.js';
|
|
6
8
|
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
7
9
|
import 'core-js/modules/es.string.replace.js';
|
|
10
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
11
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
12
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
13
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
14
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
8
15
|
import '@babel/runtime/helpers/esm/defineProperty';
|
|
9
16
|
|
|
10
17
|
const ControlledDateRangeFromDate = () => {
|
|
@@ -3,8 +3,15 @@ import { useContext } from 'react';
|
|
|
3
3
|
import { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';
|
|
4
4
|
import { DSControlledDateTimePicker } from '../../controlled-date-time-picker/ControlledDateTimePicker.js';
|
|
5
5
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../../controlled-date-time-picker/ControlledDateTimePickerTypes.js';
|
|
6
|
+
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
7
|
+
import 'core-js/modules/esnext.iterator.map.js';
|
|
6
8
|
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
7
9
|
import 'core-js/modules/es.string.replace.js';
|
|
10
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
11
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
12
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
13
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
14
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
8
15
|
import '@babel/runtime/helpers/esm/defineProperty';
|
|
9
16
|
|
|
10
17
|
const ControlledDateRangeToDate = () => {
|
|
@@ -36,6 +36,7 @@ const defaultProps = {
|
|
|
36
36
|
onCalendarOpenFocusedDay: undefined,
|
|
37
37
|
minutesInterval: 1,
|
|
38
38
|
isClearable: false,
|
|
39
|
+
disabled: false,
|
|
39
40
|
hasError: false,
|
|
40
41
|
autoFocus: false,
|
|
41
42
|
preventCloseOnSelection: false,
|
|
@@ -66,6 +67,9 @@ const defaultContext = {
|
|
|
66
67
|
prevMeridiemBtnRef: /*#__PURE__*/createRef(),
|
|
67
68
|
currMeridiemBtnRef: /*#__PURE__*/createRef(),
|
|
68
69
|
nextMeridiemBtnRef: /*#__PURE__*/createRef(),
|
|
70
|
+
firstSegmentRef: /*#__PURE__*/createRef(),
|
|
71
|
+
lastSegmentRef: /*#__PURE__*/createRef(),
|
|
72
|
+
ariaCurrentValueForInputs: '',
|
|
69
73
|
dateStringFromProps: '',
|
|
70
74
|
tempDateString: '__/__/____',
|
|
71
75
|
// setDateString: mockedStringStateSetter,
|
|
@@ -74,6 +78,12 @@ const defaultContext = {
|
|
|
74
78
|
handleChangeComposedDateTimeString: noop,
|
|
75
79
|
handleChangeComposedDateString: noop,
|
|
76
80
|
handleChangeComposedTimeString: noop,
|
|
81
|
+
handleChangeMonth: noop,
|
|
82
|
+
handleChangeDay: noop,
|
|
83
|
+
handleChangeYear: noop,
|
|
84
|
+
handleChangeHours: noop,
|
|
85
|
+
handleChangeMinutes: noop,
|
|
86
|
+
handleChangeMeridiem: noop,
|
|
77
87
|
handleClearAll: noop,
|
|
78
88
|
hideDate: false,
|
|
79
89
|
hideTime: false,
|
|
@@ -100,7 +110,8 @@ const defaultContext = {
|
|
|
100
110
|
autoFocusHourTimeWheel: false,
|
|
101
111
|
shouldPreserveClearableSpace: false,
|
|
102
112
|
latestInteractionRegion: '',
|
|
103
|
-
setLatestInteractionRegion: mockedSetLatestInteractionRegion
|
|
113
|
+
setLatestInteractionRegion: mockedSetLatestInteractionRegion,
|
|
114
|
+
onGlobalKeyDown: noop
|
|
104
115
|
};
|
|
105
116
|
/** Context for cross component communication */
|
|
106
117
|
|
|
@@ -19,6 +19,11 @@ const ControlledDateTimePickerDatatestid = {
|
|
|
19
19
|
PREV_MONTH: 'ds-controlled-date-time-picker-calendar-prev-month',
|
|
20
20
|
DAY: 'ds-controlled-date-time-picker-calendar-day',
|
|
21
21
|
FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',
|
|
22
|
+
START_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-start-range-day',
|
|
23
|
+
// <-nuevo
|
|
24
|
+
IN_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-in-range-day',
|
|
25
|
+
// <-nuevo
|
|
26
|
+
END_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-end-range-day',
|
|
22
27
|
SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',
|
|
23
28
|
SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',
|
|
24
29
|
NEXT_MONTH: 'ds-controlled-date-time-picker-calendar-next-month',
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
1
6
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
7
|
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
3
8
|
import React, { useRef, useMemo, useState, useCallback } from 'react';
|
|
9
|
+
import { getDataProps } from '@elliemae/ds-props-helpers';
|
|
4
10
|
import { useGetDatePickerWithDefaultsProps } from './useGetPropsWithDefault.js';
|
|
5
11
|
import { useGetDestructuredValues } from './useGetDestructuredValues.js';
|
|
6
12
|
import { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes.js';
|
|
7
13
|
import { useValidateProps } from './useValidateProps.js';
|
|
8
|
-
import { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';
|
|
14
|
+
import { getValidationDateStringMetaInfo, getDateStringFromDay, getTimeStringFromDay } from '../utils/dateHelpers.js';
|
|
9
15
|
import { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';
|
|
10
|
-
import { dateTimeToDate, dateTimeToTime, isEmptyDateStringMask, isEmptyTimeStringMask, isEmptyDateTimeStringMask } from '../utils/stringHelpers.js';
|
|
16
|
+
import { dateTimeToDate, dateTimeToTime, getFormattedDateString, getFormattedTimeString, isEmptyDateStringMask, isEmptyTimeStringMask, isEmptyDateTimeStringMask } from '../utils/stringHelpers.js';
|
|
17
|
+
import { defaultMetaInfo } from '../utils/constants.js';
|
|
11
18
|
|
|
12
19
|
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; }
|
|
13
20
|
|
|
@@ -20,8 +27,7 @@ const useControlledDateTimePicker = props => {
|
|
|
20
27
|
const dayInputRef = useRef();
|
|
21
28
|
const yearInputRef = useRef();
|
|
22
29
|
const hourInputRef = useRef();
|
|
23
|
-
const minutesInputRef = useRef();
|
|
24
|
-
|
|
30
|
+
const minutesInputRef = useRef();
|
|
25
31
|
const meridiemInputRef = useRef();
|
|
26
32
|
const clearButtonRef = useRef();
|
|
27
33
|
const pickerButtonRef = useRef();
|
|
@@ -35,14 +41,12 @@ const useControlledDateTimePicker = props => {
|
|
|
35
41
|
const nextHourBtnRef = useRef();
|
|
36
42
|
const prevMinutesBtnRef = useRef();
|
|
37
43
|
const currMinutesBtnRef = useRef();
|
|
38
|
-
const nextMinutesBtnRef = useRef();
|
|
39
|
-
// const currSecondsBtnRef = useRef<HTMLButtonElement>();
|
|
40
|
-
// const nextSecondsBtnRef = useRef<HTMLButtonElement>();
|
|
41
|
-
|
|
44
|
+
const nextMinutesBtnRef = useRef();
|
|
42
45
|
const prevMeridiemBtnRef = useRef();
|
|
43
46
|
const currMeridiemBtnRef = useRef();
|
|
44
47
|
const nextMeridiemBtnRef = useRef();
|
|
45
48
|
const propsWithDefaults = useGetDatePickerWithDefaultsProps(props);
|
|
49
|
+
const dataAttrs = getDataProps(props);
|
|
46
50
|
const {
|
|
47
51
|
type,
|
|
48
52
|
getIsDisabledDay,
|
|
@@ -100,6 +104,10 @@ const useControlledDateTimePicker = props => {
|
|
|
100
104
|
const shouldPreserveClearableSpace = isClearable && withAnyInputs;
|
|
101
105
|
const withAnyRightController = withAnyPicker || withClearBtn || shouldPreserveClearableSpace;
|
|
102
106
|
const [latestInteractionRegion, setLatestInteractionRegion] = useState('');
|
|
107
|
+
let firstSegmentRef = useRef();
|
|
108
|
+
if (isWithDateInputs) firstSegmentRef = monthInputRef;else if (isWithTimeInputs) firstSegmentRef = hourInputRef;else if (withAnyPicker) firstSegmentRef = pickerButtonRef;
|
|
109
|
+
let lastSegmentRef = useRef();
|
|
110
|
+
if (withAnyPicker) lastSegmentRef = pickerButtonRef;else if (withClearBtn) lastSegmentRef = clearButtonRef;else if (isWithTimeInputs) lastSegmentRef = meridiemInputRef;else if (isWithDateInputs) lastSegmentRef = yearInputRef;
|
|
103
111
|
const {
|
|
104
112
|
month,
|
|
105
113
|
day,
|
|
@@ -127,11 +135,15 @@ const useControlledDateTimePicker = props => {
|
|
|
127
135
|
isDateTimeSelector
|
|
128
136
|
});
|
|
129
137
|
const ariaCurrentValueForInputs = "current values: ".concat(isWithDateInputs ? "".concat(announcedDateValues) : '').concat(isDateTimeSelector ? ', ' : '').concat(isWithTimeInputs ? "".concat(announcedTimeValues) : '');
|
|
130
|
-
const getDateMetaInfo = useCallback((
|
|
138
|
+
const getDateMetaInfo = useCallback(function () {
|
|
139
|
+
let newDateString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
140
|
+
let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
131
141
|
const finalDateString = newDateString || tempDateString;
|
|
132
142
|
return _objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay));
|
|
133
143
|
}, [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]);
|
|
134
|
-
const getTimeMetaInfo = useCallback((
|
|
144
|
+
const getTimeMetaInfo = useCallback(function () {
|
|
145
|
+
let newTimeString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
146
|
+
let metaInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
135
147
|
const finalTimeString = newTimeString || tempTimeString;
|
|
136
148
|
return _objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime));
|
|
137
149
|
}, [tempTimeString, getIsDisabledTime]);
|
|
@@ -188,6 +200,99 @@ const useControlledDateTimePicker = props => {
|
|
|
188
200
|
const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;
|
|
189
201
|
appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos
|
|
190
202
|
}, [appOnTimeChange, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]);
|
|
203
|
+
const handleChangeMonth = useCallback(function (newMonth, e) {
|
|
204
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
|
|
205
|
+
const newDateString = getFormattedDateString({
|
|
206
|
+
month: newMonth,
|
|
207
|
+
day,
|
|
208
|
+
year
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
|
|
212
|
+
newDateString
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
appOnMonthChange(newMonth, e, finalMetaInfo);
|
|
216
|
+
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
217
|
+
}, [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString]);
|
|
218
|
+
const handleChangeDay = useCallback(function (newDay, e) {
|
|
219
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
|
|
220
|
+
const newDateString = getFormattedDateString({
|
|
221
|
+
month,
|
|
222
|
+
day: newDay,
|
|
223
|
+
year
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
|
|
227
|
+
newDateString
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
appOnDayChange(newDay, e, finalMetaInfo);
|
|
231
|
+
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
232
|
+
}, [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString]);
|
|
233
|
+
const handleChangeYear = useCallback(function (newYear, e) {
|
|
234
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
|
|
235
|
+
const newDateString = getFormattedDateString({
|
|
236
|
+
month,
|
|
237
|
+
day,
|
|
238
|
+
year: newYear
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay)), {}, {
|
|
242
|
+
newDateString
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
appOnYearChange(newYear, e, finalMetaInfo);
|
|
246
|
+
handleChangeComposedDateString(newDateString, finalMetaInfo);
|
|
247
|
+
}, [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString]);
|
|
248
|
+
const handleChangeHours = useCallback(function (newHours, e) {
|
|
249
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
|
|
250
|
+
const newTimeString = getFormattedTimeString({
|
|
251
|
+
hours: newHours,
|
|
252
|
+
minutes,
|
|
253
|
+
// seconds,
|
|
254
|
+
meridiem
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
|
|
258
|
+
newTimeString
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
appOnHourChange(newHours, e, finalMetaInfo);
|
|
262
|
+
handleChangeComposedTimeString(newTimeString, finalMetaInfo);
|
|
263
|
+
}, [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString]);
|
|
264
|
+
const handleChangeMinutes = useCallback(function (newMinutes, e) {
|
|
265
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
|
|
266
|
+
const newTimeString = getFormattedTimeString({
|
|
267
|
+
hours,
|
|
268
|
+
minutes: newMinutes,
|
|
269
|
+
// seconds,
|
|
270
|
+
meridiem
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
|
|
274
|
+
newTimeString
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
appOnMinuteChange(newMinutes, e, finalMetaInfo);
|
|
278
|
+
handleChangeComposedTimeString(newTimeString, finalMetaInfo);
|
|
279
|
+
}, [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString]);
|
|
280
|
+
const handleChangeMeridiem = useCallback(function (newMeridiem, e) {
|
|
281
|
+
let metaInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMetaInfo;
|
|
282
|
+
const newTimeString = getFormattedTimeString({
|
|
283
|
+
hours,
|
|
284
|
+
minutes,
|
|
285
|
+
// seconds,
|
|
286
|
+
meridiem: newMeridiem
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime)), {}, {
|
|
290
|
+
newTimeString
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
appOnMeridiemChange(newMeridiem, e, finalMetaInfo);
|
|
294
|
+
handleChangeComposedTimeString(newTimeString, finalMetaInfo);
|
|
295
|
+
}, [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString]);
|
|
191
296
|
const handleClearAll = useCallback(e => {
|
|
192
297
|
const metaInfo = {
|
|
193
298
|
isAutomaticFillTrigger: false,
|
|
@@ -220,16 +325,43 @@ const useControlledDateTimePicker = props => {
|
|
|
220
325
|
if (isDateTimeSelector) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);
|
|
221
326
|
if (isDateSelector) handleChangeComposedDateString('__/__/____', datePartsChangesMetainfo);
|
|
222
327
|
if (isTimeSelector) handleChangeComposedTimeString('__:__ __', timePartsChangesMetainfo);
|
|
223
|
-
setLatestInteractionRegion('clear-btn');
|
|
224
328
|
}, [appOnDayChange, appOnHourChange, appOnMeridiemChange, appOnMinuteChange, appOnMonthChange, appOnYearChange, handleChangeComposedDateString, handleChangeComposedDateTimeString, handleChangeComposedTimeString, isDateSelector, isDateTimeSelector, isTimeSelector]);
|
|
329
|
+
const onFillWithCurrentDateKeys = useCallback(function () {
|
|
330
|
+
let metaInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
331
|
+
isAutomaticFillTrigger: true
|
|
332
|
+
};
|
|
333
|
+
const now = new Date();
|
|
334
|
+
const nowDateString = getDateStringFromDay(now);
|
|
335
|
+
const nowTimeString = getTimeStringFromDay(now);
|
|
336
|
+
|
|
337
|
+
const finalMetaInfo = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaInfo), getValidationDateStringMetaInfo(nowDateString, getIsOutOfRangeDay, getIsDisabledDay)), getValidationTimeStringMetaInfo(nowTimeString, getIsDisabledTime)), {}, {
|
|
338
|
+
newDateString: nowDateString
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
handleChangeComposedDateTimeString(nowDateString, nowTimeString, finalMetaInfo);
|
|
342
|
+
}, [getIsDisabledDay, getIsDisabledTime, getIsOutOfRangeDay, handleChangeComposedDateTimeString]);
|
|
343
|
+
const onGlobalKeyDown = useCallback(e => {
|
|
344
|
+
const {
|
|
345
|
+
key,
|
|
346
|
+
ctrlKey,
|
|
347
|
+
metaKey
|
|
348
|
+
} = e;
|
|
349
|
+
|
|
350
|
+
if ((ctrlKey || metaKey) && key === ';') {
|
|
351
|
+
onFillWithCurrentDateKeys();
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
if ((ctrlKey || metaKey) && (key === 'Delete' || key === 'Backspace')) handleClearAll(e);
|
|
355
|
+
}, [handleClearAll, onFillWithCurrentDateKeys]);
|
|
225
356
|
const ctx = React.useMemo(() => ({
|
|
226
|
-
props: propsWithDefaults,
|
|
357
|
+
props: _objectSpread(_objectSpread({}, propsWithDefaults), {}, {
|
|
358
|
+
dataAttrs
|
|
359
|
+
}),
|
|
227
360
|
monthInputRef,
|
|
228
361
|
dayInputRef,
|
|
229
362
|
yearInputRef,
|
|
230
363
|
hourInputRef,
|
|
231
364
|
minutesInputRef,
|
|
232
|
-
// secondsInputRef,
|
|
233
365
|
meridiemInputRef,
|
|
234
366
|
clearButtonRef,
|
|
235
367
|
pickerButtonRef,
|
|
@@ -248,6 +380,8 @@ const useControlledDateTimePicker = props => {
|
|
|
248
380
|
currMeridiemBtnRef,
|
|
249
381
|
nextMeridiemBtnRef,
|
|
250
382
|
dateStringFromProps,
|
|
383
|
+
firstSegmentRef,
|
|
384
|
+
lastSegmentRef,
|
|
251
385
|
tempDateString,
|
|
252
386
|
setTempDateString,
|
|
253
387
|
tempTimeString,
|
|
@@ -255,6 +389,12 @@ const useControlledDateTimePicker = props => {
|
|
|
255
389
|
handleChangeComposedDateTimeString,
|
|
256
390
|
handleChangeComposedDateString,
|
|
257
391
|
handleChangeComposedTimeString,
|
|
392
|
+
handleChangeMonth,
|
|
393
|
+
handleChangeDay,
|
|
394
|
+
handleChangeYear,
|
|
395
|
+
handleChangeHours,
|
|
396
|
+
handleChangeMinutes,
|
|
397
|
+
handleChangeMeridiem,
|
|
258
398
|
handleClearAll,
|
|
259
399
|
hideDate,
|
|
260
400
|
hideTime,
|
|
@@ -301,8 +441,9 @@ const useControlledDateTimePicker = props => {
|
|
|
301
441
|
announcedMinutes,
|
|
302
442
|
announcedMeridiem,
|
|
303
443
|
announcedTimeValues,
|
|
304
|
-
ariaCurrentValueForInputs
|
|
305
|
-
|
|
444
|
+
ariaCurrentValueForInputs,
|
|
445
|
+
onGlobalKeyDown
|
|
446
|
+
}), [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
|
|
306
447
|
);
|
|
307
448
|
return ctx;
|
|
308
449
|
};
|
|
@@ -8,11 +8,12 @@ import { monthNames, announcableCardinalDays } from '../utils/constants.js';
|
|
|
8
8
|
// our source of truth is either the date props or dateTime props
|
|
9
9
|
// based on wheter it's a dateTime picker
|
|
10
10
|
// or a date picker (it's date picker when hideTime is true)
|
|
11
|
-
const useGetDestructuredDateValues =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const useGetDestructuredDateValues = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
date,
|
|
14
|
+
dateTime,
|
|
15
|
+
isDateTimeSelector
|
|
16
|
+
} = _ref;
|
|
16
17
|
const dateStringFromProps = isDateTimeSelector ? dateTimeToDate(dateTime) : date;
|
|
17
18
|
const deconstructedValues = deconstructValuesFromDateString(dateStringFromProps);
|
|
18
19
|
const {
|
|
@@ -44,11 +45,12 @@ const useGetDestructuredDateValues = ({
|
|
|
44
45
|
// based on wheter it's a dateTime picker
|
|
45
46
|
// or a time picker (it's time picker when hideDate is true)
|
|
46
47
|
|
|
47
|
-
const useGetDestructuredTimeValues =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const useGetDestructuredTimeValues = _ref2 => {
|
|
49
|
+
let {
|
|
50
|
+
time,
|
|
51
|
+
dateTime,
|
|
52
|
+
isDateTimeSelector
|
|
53
|
+
} = _ref2;
|
|
52
54
|
const timeStringFromProps = isDateTimeSelector ? dateTimeToTime(dateTime) : time;
|
|
53
55
|
const deconstructedValues = deconstructTimeValues(timeStringFromProps);
|
|
54
56
|
const {
|
|
@@ -77,12 +79,13 @@ const useGetDestructuredTimeValues = ({
|
|
|
77
79
|
announcedTimeValues
|
|
78
80
|
}), [hours, minutes, meridiem, hoursNum, minutesNum, announcedHours, announcedMinutes, announcedMeridiem, announcedTimeValues]);
|
|
79
81
|
};
|
|
80
|
-
const useGetDestructuredValues =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
const useGetDestructuredValues = _ref3 => {
|
|
83
|
+
let {
|
|
84
|
+
date,
|
|
85
|
+
time,
|
|
86
|
+
dateTime,
|
|
87
|
+
isDateTimeSelector
|
|
88
|
+
} = _ref3;
|
|
86
89
|
const {
|
|
87
90
|
month,
|
|
88
91
|
day,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
2
|
import 'react';
|
|
3
|
-
import CloseMedium from '@elliemae/ds-icons
|
|
3
|
+
import { CloseMedium } from '@elliemae/ds-icons';
|
|
4
4
|
import { DSIconColors } from '@elliemae/ds-icon';
|
|
5
5
|
import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
|
|
6
6
|
import { StyledClearButton } from '../Styleds.js';
|
|
@@ -9,10 +9,15 @@ const useClearButton = () => {
|
|
|
9
9
|
withAnyPicker,
|
|
10
10
|
withClearBtn,
|
|
11
11
|
withAnyInputs,
|
|
12
|
+
isWithTimeInputs,
|
|
13
|
+
isWithDateInputs,
|
|
12
14
|
isTimeSelector,
|
|
13
15
|
hourInputRef,
|
|
14
16
|
monthInputRef,
|
|
15
|
-
pickerButtonRef
|
|
17
|
+
pickerButtonRef,
|
|
18
|
+
meridiemInputRef,
|
|
19
|
+
yearInputRef,
|
|
20
|
+
setLatestInteractionRegion
|
|
16
21
|
} = useContext(ControlledDateTimePickerContext);
|
|
17
22
|
const focusFirstRegion = useCallback(() => {
|
|
18
23
|
var _hourInputRef$current, _hourInputRef$current2, _monthInputRef$curren, _monthInputRef$curren2;
|
|
@@ -21,8 +26,9 @@ const useClearButton = () => {
|
|
|
21
26
|
}, [withAnyInputs, isTimeSelector, hourInputRef, monthInputRef]);
|
|
22
27
|
const onClearClick = useCallback(e => {
|
|
23
28
|
handleClearAll(e);
|
|
29
|
+
setLatestInteractionRegion('clear-btn');
|
|
24
30
|
focusFirstRegion();
|
|
25
|
-
}, [focusFirstRegion, handleClearAll]);
|
|
31
|
+
}, [focusFirstRegion, handleClearAll, setLatestInteractionRegion]);
|
|
26
32
|
const onHomeKeyDown = useCallback(() => {
|
|
27
33
|
focusFirstRegion();
|
|
28
34
|
}, [focusFirstRegion]);
|
|
@@ -41,7 +47,13 @@ const useClearButton = () => {
|
|
|
41
47
|
if (stopPropagationKeys.includes(key)) e.stopPropagation();
|
|
42
48
|
if (key === 'Home') onHomeKeyDown();
|
|
43
49
|
if (key === 'End') onEndKeyDown();
|
|
44
|
-
|
|
50
|
+
|
|
51
|
+
if (key === 'Backspace' && withAnyInputs) {
|
|
52
|
+
var _meridiemInputRef$cur, _meridiemInputRef$cur2, _yearInputRef$current, _yearInputRef$current2;
|
|
53
|
+
|
|
54
|
+
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);
|
|
55
|
+
}
|
|
56
|
+
}, [isWithDateInputs, isWithTimeInputs, meridiemInputRef, onEndKeyDown, onHomeKeyDown, withAnyInputs, yearInputRef]);
|
|
45
57
|
return useMemo(() => ({
|
|
46
58
|
onClearClick,
|
|
47
59
|
onClearButtonKeyDown,
|