@elliemae/ds-form-date-time-picker 3.16.4-rc.2 → 3.16.4
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/dist/types/ControlledDateTimePicker.d.ts +8 -0
- package/dist/types/ControlledDateTimePickerCTX.d.ts +5 -0
- package/dist/types/ControlledDateTimePickerDatatestid.d.ts +63 -0
- package/dist/types/ControlledDateTimePickerTypes.d.ts +20 -0
- package/dist/types/config/useChangeHandlers.d.ts +27 -0
- package/dist/types/config/useControlledDateTimePicker.d.ts +16 -0
- package/dist/types/config/useFocusTracker.d.ts +38 -0
- package/dist/types/config/useGetDestructuredValues.d.ts +30 -0
- package/dist/types/config/useGetFlags.d.ts +30 -0
- package/dist/types/config/useGetPropsBasedOnType.d.ts +28 -0
- package/dist/types/config/useGetPropsWithDefault.d.ts +2 -0
- package/dist/types/config/useGetReferences.d.ts +33 -0
- package/dist/types/config/useGlobalKeyHandlers.d.ts +18 -0
- package/dist/types/config/useRelevantValueFromProps.d.ts +10 -0
- package/dist/types/config/useValidateProps.d.ts +2 -0
- package/dist/types/exported-related/theming.d.ts +37 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/parts/ClearButton/ClearButton.d.ts +2 -0
- package/dist/types/parts/ClearButton/useClearButton.d.ts +11 -0
- package/dist/types/parts/ControlledDateTimePickerContent.d.ts +2 -0
- package/dist/types/parts/DateInputs/DDInput.d.ts +17 -0
- package/dist/types/parts/DateInputs/DateInputs.d.ts +2 -0
- package/dist/types/parts/DateInputs/MMInput.d.ts +19 -0
- package/dist/types/parts/DateInputs/YYYYInput.d.ts +17 -0
- package/dist/types/parts/DateInputs/useDateInputs.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/Calendar.d.ts +5 -0
- package/dist/types/parts/Pickers/Calendar/CalendarBody.d.ts +6 -0
- package/dist/types/parts/Pickers/Calendar/CalendarContent.d.ts +4 -0
- package/dist/types/parts/Pickers/Calendar/CalendarContext.d.ts +6 -0
- package/dist/types/parts/Pickers/Calendar/CalendarDaysList.d.ts +9 -0
- package/dist/types/parts/Pickers/Calendar/CalendarFooter.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/CalendarHead.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/CalendarIconTrigger.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/CalendarMonthDays.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/CalendarWeekDays.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/CalendarWrapper.d.ts +2 -0
- package/dist/types/parts/Pickers/Calendar/Day.d.ts +9 -0
- package/dist/types/parts/Pickers/Calendar/Styleds.d.ts +21 -0
- package/dist/types/parts/Pickers/Calendar/useConfigCalendarCTX.d.ts +14 -0
- package/dist/types/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.d.ts +15 -0
- package/dist/types/parts/Pickers/Calendar/useFocusLogic.d.ts +14 -0
- package/dist/types/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +19 -0
- package/dist/types/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +16 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.d.ts +2 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.d.ts +2 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +6 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.d.ts +2 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.d.ts +2 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.d.ts +2 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +7 -0
- package/dist/types/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.d.ts +14 -0
- package/dist/types/parts/Pickers/PickersIcons.d.ts +2 -0
- package/dist/types/parts/Pickers/TimeWheel/HoursList.d.ts +2 -0
- package/dist/types/parts/Pickers/TimeWheel/MeridiemList.d.ts +3 -0
- package/dist/types/parts/Pickers/TimeWheel/MinutesList.d.ts +3 -0
- package/dist/types/parts/Pickers/TimeWheel/TimeWheel.d.ts +5 -0
- package/dist/types/parts/Pickers/TimeWheel/TimeWheelContent.d.ts +2 -0
- package/dist/types/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +6 -0
- package/dist/types/parts/Pickers/TimeWheel/TimeWheelFooter.d.ts +2 -0
- package/dist/types/parts/Pickers/TimeWheel/TimeWheelIconTrigger.d.ts +2 -0
- package/dist/types/parts/Pickers/TimeWheel/TimeWheelWrapper.d.ts +2 -0
- package/dist/types/parts/Pickers/TimeWheel/useConfigTimePickerCTX.d.ts +5 -0
- package/dist/types/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.d.ts +17 -0
- package/dist/types/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +13 -0
- package/dist/types/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +12 -0
- package/dist/types/parts/Styleds.d.ts +13 -0
- package/dist/types/parts/TimeInputs/HHInput.d.ts +18 -0
- package/dist/types/parts/TimeInputs/MeridiemInput.d.ts +17 -0
- package/dist/types/parts/TimeInputs/MinutesInput.d.ts +17 -0
- package/dist/types/parts/TimeInputs/TimeInputs.d.ts +2 -0
- package/dist/types/parts/TimeInputs/useTimeInputs.d.ts +22 -0
- package/dist/types/parts/config.d.ts +5 -0
- package/dist/types/propTypes.d.ts +105 -0
- package/dist/types/sharedTypes.d.ts +95 -0
- package/dist/types/tests/custom-props/customProps.d.ts +397 -0
- package/dist/types/tests/custom-props/date-time-picker.date-custom-props.test.d.ts +1 -0
- package/dist/types/tests/custom-props/date-time-picker.date-time-custom-props.test.d.ts +1 -0
- package/dist/types/tests/custom-props/date-time-picker.time-custom-props.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.auto-advance.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.clear-button.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.keyboard-focus.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.keyboard.data-entry-typing.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.keyboard.fill-with-now.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.keyboard.regressive-backspace.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.keyboard.shortcut-clear.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.manual-delete-values.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.onChange-meta-info.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.types-button.test.d.ts +1 -0
- package/dist/types/tests/date-time-picker.types-dom.test.d.ts +1 -0
- package/dist/types/utils/constants.d.ts +38 -0
- package/dist/types/utils/dateHelpers.d.ts +40 -0
- package/dist/types/utils/dateTimeHelpers.d.ts +8 -0
- package/dist/types/utils/hooks/useGetDayFromDateString.d.ts +1 -0
- package/dist/types/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.d.ts +5 -0
- package/dist/types/utils/hooks/useGetStartingFocusedDay.d.ts +8 -0
- package/dist/types/utils/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/types/utils/numberHelpers.d.ts +1 -0
- package/dist/types/utils/stringHelpers.d.ts +36 -0
- package/dist/types/utils/timeHelpers.d.ts +2 -0
- package/dist/types/utils/typeGuards.d.ts +4 -0
- package/package.json +9 -9
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
|
|
2
|
+
import type { DSControlledDateTimePickerInternalsT } from '../../../sharedTypes.js';
|
|
3
|
+
interface UseFocusLogicArgsT {
|
|
4
|
+
currentDisplayedMonthLogic: ReturnType<typeof useCurrentDisplayedMonthYearLogic>;
|
|
5
|
+
showCalendar: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface FocusLogicT {
|
|
8
|
+
focusedDay?: DSControlledDateTimePickerInternalsT.MetaMonthDay;
|
|
9
|
+
resetFocusedDayToStartDate: () => void;
|
|
10
|
+
handleFocusMetaDay: (metaDayToFocus: DSControlledDateTimePickerInternalsT.MetaMonthDay) => void;
|
|
11
|
+
handleFocusMetaDayByDay: (day: Date) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const useFocusLogic: ({ currentDisplayedMonthLogic }: UseFocusLogicArgsT) => FocusLogicT;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { DSControlledDateTimePickerInternalsT } from '../../../sharedTypes.js';
|
|
3
|
+
import type { useFocusLogic } from './useFocusLogic.js';
|
|
4
|
+
import type { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
|
|
5
|
+
interface UseKeyboardHandlersArgsT {
|
|
6
|
+
currentDisplayedMonthLogic: ReturnType<typeof useCurrentDisplayedMonthYearLogic>;
|
|
7
|
+
focusLogic: ReturnType<typeof useFocusLogic>;
|
|
8
|
+
}
|
|
9
|
+
type HandleDayOnKeyDownT = (e: React.KeyboardEvent, day: DSControlledDateTimePickerInternalsT.MetaMonthDay) => void;
|
|
10
|
+
interface KeyboardHandlersT {
|
|
11
|
+
handleDayOnKeyDown: HandleDayOnKeyDownT;
|
|
12
|
+
handlePrevYearKeyDown: (e: React.KeyboardEvent) => void;
|
|
13
|
+
handlePrevMonthKeyDown: (e: React.KeyboardEvent) => void;
|
|
14
|
+
handleNextMonthKeyDown: (e: React.KeyboardEvent) => void;
|
|
15
|
+
handleNextYearKeyDown: (e: React.KeyboardEvent) => void;
|
|
16
|
+
handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const useKeyboardHandlers: ({ currentDisplayedMonthLogic, focusLogic, }: UseKeyboardHandlersArgsT) => KeyboardHandlersT;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { useFocusLogic } from './useFocusLogic.js';
|
|
3
|
+
interface UsePopperTriggerLogic {
|
|
4
|
+
focusLogic: ReturnType<typeof useFocusLogic>;
|
|
5
|
+
showCalendar: boolean;
|
|
6
|
+
setShowCalendar: StateSetter<boolean>;
|
|
7
|
+
}
|
|
8
|
+
interface PopperTriggerLogicT {
|
|
9
|
+
referenceElement: HTMLButtonElement | null;
|
|
10
|
+
closeCalendar: () => void;
|
|
11
|
+
handleToggleCalendar: () => void;
|
|
12
|
+
handleSetTriggerRef: (instance: HTMLButtonElement) => void;
|
|
13
|
+
handleMenuWrapperKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const usePopperTriggerLogic: ({ focusLogic, showCalendar, setShowCalendar, }: UsePopperTriggerLogic) => PopperTriggerLogicT;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { CalendarWithTimeWheelContextT } from './useConfigCalendarWithTimeWheelCTX.js';
|
|
3
|
+
export declare const defaultCalendarWithTimeWheelContext: CalendarWithTimeWheelContextT;
|
|
4
|
+
/** Context for cross component communication */
|
|
5
|
+
export declare const CalendarWithTimeWheelContext: import("react").Context<CalendarWithTimeWheelContextT>;
|
|
6
|
+
export default CalendarWithTimeWheelContext;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const StyledIconTriggerButton: import("styled-components").StyledComponent<import("react").ComponentType<import("@elliemae/ds-button").DSButtonT.Props>, import("@elliemae/ds-system").Theme, object, never>;
|
|
3
|
+
export declare const StyledCalendarWithTimeWheelWrapper: import("styled-components").StyledComponent<keyof JSX.IntrinsicElements, import("@elliemae/ds-system").Theme, Record<string, unknown> & object, never>;
|
|
4
|
+
export declare const StyledCalendar: import("styled-components").StyledComponent<({ className }: {
|
|
5
|
+
className?: string | undefined;
|
|
6
|
+
}) => JSX.Element, import("@elliemae/ds-system").Theme, object, never>;
|
|
7
|
+
export declare const CalendarWithTimeWheelFooterMessage: import("styled-components").StyledComponent<"footer", import("@elliemae/ds-system").Theme, object, never>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface CalendarWithTimeWheelContextT {
|
|
3
|
+
referenceElement: HTMLButtonElement | null;
|
|
4
|
+
ariaCurrentValueForInputs: string;
|
|
5
|
+
showCalendarWithTimeWheel: boolean;
|
|
6
|
+
closeCalendar: () => void;
|
|
7
|
+
handleToggleCalendarWithTimeWheel: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
8
|
+
handleSetTriggerRef: (instance: HTMLButtonElement) => void;
|
|
9
|
+
handleMenuWrapperKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;
|
|
10
|
+
handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;
|
|
11
|
+
isControllerOnly: boolean;
|
|
12
|
+
disabled: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const useConfigCalendarWithTimeWheelCTX: () => CalendarWithTimeWheelContextT;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { TimeWheelContextT } from './useConfigTimePickerCTX.js';
|
|
3
|
+
export declare const defaultTimePickerContext: TimeWheelContextT;
|
|
4
|
+
/** Context for cross component communication */
|
|
5
|
+
export declare const TimeWheelContext: import("react").Context<TimeWheelContextT>;
|
|
6
|
+
export default TimeWheelContext;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
|
|
2
|
+
import { useCurrentDisplayedWheelsLogic } from './useCurrentDisplayedWheelsLogic.js';
|
|
3
|
+
import { useKeyboardHandlers } from './useKeyboardHandlers.js';
|
|
4
|
+
export type TimeWheelContextT = ReturnType<typeof useCurrentDisplayedWheelsLogic> & ReturnType<typeof usePopperTriggerLogic> & ReturnType<typeof useKeyboardHandlers>;
|
|
5
|
+
export declare const useConfigTimePickerCTX: () => TimeWheelContextT;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DSControlledDateTimePickerT } from '../../../propTypes.js';
|
|
2
|
+
interface UseCurrentDisplayedWheelsLogic {
|
|
3
|
+
currHourNum: number;
|
|
4
|
+
visibleHours: (string | null)[];
|
|
5
|
+
handlePrevHour: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
6
|
+
handleNextHour: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
7
|
+
handleTimeWheelBtnChangeHours: (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
8
|
+
currMinuteNum: number;
|
|
9
|
+
visibleMinutes: (string | null)[];
|
|
10
|
+
handlePrevMinute: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
11
|
+
handleNextMinute: (e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
12
|
+
handleTimeWheelBtnChangeMinutes: (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
13
|
+
handleTimeWheelBtnChangeMeridiem: (newMeridiem: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent) => void;
|
|
14
|
+
currMeridiem: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const useCurrentDisplayedWheelsLogic: () => UseCurrentDisplayedWheelsLogic;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { useCurrentDisplayedWheelsLogic } from './useCurrentDisplayedWheelsLogic.js';
|
|
3
|
+
interface UseKeyboardHandlersArgs {
|
|
4
|
+
currentDisplayedTimeWheelLogic: ReturnType<typeof useCurrentDisplayedWheelsLogic>;
|
|
5
|
+
}
|
|
6
|
+
interface KeyboardHandlersT {
|
|
7
|
+
handleCurrHourOnKeyDown: (e: React.KeyboardEvent) => void;
|
|
8
|
+
handleCurrMinutesOnKeyDown: (e: React.KeyboardEvent) => void;
|
|
9
|
+
handleCurrMeridiemOnKeyDown: (e: React.KeyboardEvent) => void;
|
|
10
|
+
handlePickerIconKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const useKeyboardHandlers: ({ currentDisplayedTimeWheelLogic }: UseKeyboardHandlersArgs) => KeyboardHandlersT;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface PopperTriggerLogicT {
|
|
3
|
+
referenceElement: HTMLButtonElement | null;
|
|
4
|
+
showTimePicker: boolean;
|
|
5
|
+
closeTimePicker: () => void;
|
|
6
|
+
setShowTimePicker: StateSetter<boolean>;
|
|
7
|
+
handleToggleTimePicker: () => void;
|
|
8
|
+
handleSetTriggerRef: (instance: HTMLButtonElement) => void;
|
|
9
|
+
handleMenuWrapperKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const usePopperTriggerLogic: () => PopperTriggerLogicT;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const StyledSeparator: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/dist/types/react-desc-prop-types.js").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, object, never>;
|
|
3
|
+
export declare const StyledColonSeparator: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/dist/types/react-desc-prop-types.js").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, object, never>;
|
|
4
|
+
export declare const Styled2DigitsInput: import("styled-components").StyledComponent<"input", import("@elliemae/ds-system").Theme, Record<string, unknown> & object, never>;
|
|
5
|
+
export declare const StyledMin4DigitsInput: import("styled-components").StyledComponent<"input", import("@elliemae/ds-system").Theme, Record<string, unknown> & object, never>;
|
|
6
|
+
export declare const StyledInputsWrapperGrid: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/dist/types/react-desc-prop-types.js").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, object, never>;
|
|
7
|
+
export declare const StyledDateInputsWrapperGrid: import("styled-components").StyledComponent<keyof JSX.IntrinsicElements, import("@elliemae/ds-system").Theme, Record<string, unknown> & object, never>;
|
|
8
|
+
export declare const StyledTimeInputsWrapperGrid: import("styled-components").StyledComponent<keyof JSX.IntrinsicElements, import("@elliemae/ds-system").Theme, Record<string, unknown> & object, never>;
|
|
9
|
+
export declare const StyledPickersIconsWrapperGrid: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/dist/types/react-desc-prop-types.js").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, {
|
|
10
|
+
isControllerOnly: boolean;
|
|
11
|
+
}, never>;
|
|
12
|
+
export declare const StyledFocusWithIn: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid/dist/types/react-desc-prop-types.js").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, object, never>;
|
|
13
|
+
export declare const StyledClearButton: import("styled-components").StyledComponent<import("react").ComponentType<import("@elliemae/ds-button").DSButtonT.Props>, import("@elliemae/ds-system").Theme, object, never>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';
|
|
3
|
+
interface HHInputsPropsT {
|
|
4
|
+
onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;
|
|
5
|
+
onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;
|
|
6
|
+
onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;
|
|
7
|
+
onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;
|
|
8
|
+
value: string;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
contextRef: React.MutableRefObject<HTMLInputElement | null>;
|
|
11
|
+
placeholder: string;
|
|
12
|
+
ariaCurrentValueForInputs: string;
|
|
13
|
+
autoFocusHourInput: boolean;
|
|
14
|
+
isFocused: boolean;
|
|
15
|
+
ariaAndDataProps?: AriaAndDataProps;
|
|
16
|
+
}
|
|
17
|
+
export declare const HHInput: React.MemoExoticComponent<({ onChange, onBlur, onFocus, onKeyDown, value, disabled, placeholder, ariaCurrentValueForInputs, contextRef, autoFocusHourInput, isFocused, ariaAndDataProps, }: HHInputsPropsT) => JSX.Element>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';
|
|
3
|
+
interface MeridiemInputsPropsT {
|
|
4
|
+
onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;
|
|
5
|
+
onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;
|
|
6
|
+
onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;
|
|
7
|
+
onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;
|
|
8
|
+
value: string;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
contextRef: React.MutableRefObject<HTMLInputElement | null>;
|
|
11
|
+
placeholder: string;
|
|
12
|
+
ariaCurrentValueForInputs: string;
|
|
13
|
+
isFocused: boolean;
|
|
14
|
+
ariaAndDataProps?: AriaAndDataProps;
|
|
15
|
+
}
|
|
16
|
+
export declare const MeridiemInput: React.MemoExoticComponent<({ onChange, onBlur, onFocus, onKeyDown, value, disabled, placeholder, ariaCurrentValueForInputs, contextRef, isFocused, ariaAndDataProps, }: MeridiemInputsPropsT) => JSX.Element>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';
|
|
3
|
+
interface MinutesInputsPropsT {
|
|
4
|
+
onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;
|
|
5
|
+
onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;
|
|
6
|
+
onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;
|
|
7
|
+
onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;
|
|
8
|
+
value: string;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
contextRef: React.MutableRefObject<HTMLInputElement | null>;
|
|
11
|
+
placeholder: string;
|
|
12
|
+
ariaCurrentValueForInputs: string;
|
|
13
|
+
isFocused: boolean;
|
|
14
|
+
ariaAndDataProps?: AriaAndDataProps;
|
|
15
|
+
}
|
|
16
|
+
export declare const MinutesInput: React.MemoExoticComponent<({ onChange, onBlur, onFocus, onKeyDown, value, disabled, placeholder, ariaCurrentValueForInputs, contextRef, isFocused, ariaAndDataProps, }: MinutesInputsPropsT) => JSX.Element>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes.js';
|
|
2
|
+
interface UseTimeInputsR {
|
|
3
|
+
autoFocusHourInput: boolean;
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
handleChangeHours: DSControlledDateTimePickerInternalsT.HandleOnChangeFunc;
|
|
6
|
+
onHoursChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;
|
|
7
|
+
handleChangeMinutes: DSControlledDateTimePickerInternalsT.HandleOnChangeFunc;
|
|
8
|
+
onMinutesChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;
|
|
9
|
+
handleChangeMeridiem: DSControlledDateTimePickerInternalsT.HandleOnChangeFunc;
|
|
10
|
+
onMeridiemChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;
|
|
11
|
+
onHoursFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;
|
|
12
|
+
onMinutesFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;
|
|
13
|
+
onMeridiemFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;
|
|
14
|
+
onHoursBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;
|
|
15
|
+
onMinutesBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;
|
|
16
|
+
onMeridiemBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;
|
|
17
|
+
onHoursKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;
|
|
18
|
+
onMinutesKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;
|
|
19
|
+
onMeridiemKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;
|
|
20
|
+
}
|
|
21
|
+
export declare const useTimeInputs: () => UseTimeInputsR;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { WeakValidationMap } from 'react';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
import { ControlledDateTimePickerDatatestid } from './ControlledDateTimePickerDatatestid.js';
|
|
4
|
+
export declare namespace DSControlledDateTimePickerT {
|
|
5
|
+
type DataTestIdType = typeof ControlledDateTimePickerDatatestid;
|
|
6
|
+
type FlatDataTestIdValues = {
|
|
7
|
+
[K in keyof DataTestIdType]: DataTestIdType[K] extends Record<string, unknown> ? DataTestIdType[K][keyof DataTestIdType[K]] : DataTestIdType[K];
|
|
8
|
+
}[keyof DataTestIdType];
|
|
9
|
+
type AriaAndDataPropsPerDataTestId = {
|
|
10
|
+
[key in FlatDataTestIdValues]?: AriaAndDataPropsOrPropsGetter;
|
|
11
|
+
};
|
|
12
|
+
type OnInternalValuesChangeEvent = React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement> | React.KeyboardEvent<HTMLButtonElement> | React.KeyboardEvent | React.MouseEvent<HTMLInputElement> | React.MouseEvent<HTMLButtonElement>;
|
|
13
|
+
type ControlTypes = 'full-date-time' | 'date-time-inputs' | 'date-time-picker' | 'date-time-picker-controller-only' | 'full-date' | 'date-inputs' | 'date-picker' | 'date-picker-controller-only' | 'full-time' | 'time-inputs' | 'time-picker' | 'time-picker-controller-only';
|
|
14
|
+
interface InternalInputsChangeMetaInfo {
|
|
15
|
+
isAutomaticFillTrigger?: boolean;
|
|
16
|
+
isDayPresentInMonth?: boolean;
|
|
17
|
+
isOutOfRangeDay?: boolean;
|
|
18
|
+
isDisabledDay?: boolean;
|
|
19
|
+
isDisabledTime?: boolean;
|
|
20
|
+
suggestedErrorMsg?: string;
|
|
21
|
+
newDateTimeString?: string;
|
|
22
|
+
newDateString?: string;
|
|
23
|
+
newTimeString?: string;
|
|
24
|
+
}
|
|
25
|
+
type OnDateChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;
|
|
26
|
+
type OnTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;
|
|
27
|
+
type OnDateTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;
|
|
28
|
+
type OnInternalInputsChange = (val: string, e: OnInternalValuesChangeEvent, metaInfo?: InternalInputsChangeMetaInfo) => void;
|
|
29
|
+
type AppOnInputChange = (val: string, e: OnInternalValuesChangeEvent, metaInfo: InternalInputsChangeMetaInfo) => void;
|
|
30
|
+
interface DefaultDateProps {
|
|
31
|
+
onMonthChange: AppOnInputChange;
|
|
32
|
+
onDayChange: AppOnInputChange;
|
|
33
|
+
onYearChange: AppOnInputChange;
|
|
34
|
+
onPickerOpen: NoopishFunc;
|
|
35
|
+
onPickerClose: NoopishFunc;
|
|
36
|
+
getIsDisabledDay: BooleanGetter<string>;
|
|
37
|
+
getIsOutOfRangeDay: BooleanGetter<string>;
|
|
38
|
+
getIsStartRangeDay: BooleanGetter<string>;
|
|
39
|
+
getIsDayInRange: BooleanGetter<string>;
|
|
40
|
+
getIsEndRangeDay: BooleanGetter<string>;
|
|
41
|
+
isClearable: boolean;
|
|
42
|
+
disabled: boolean;
|
|
43
|
+
hasError: boolean;
|
|
44
|
+
autoFocus: boolean;
|
|
45
|
+
preventCloseOnSelection: boolean;
|
|
46
|
+
}
|
|
47
|
+
interface OptionalDatePickerProps extends AriaAndDataPropsPerDataTestId {
|
|
48
|
+
emptyPickerStartingMonth?: string;
|
|
49
|
+
onCalendarOpenFocusedDay?: string;
|
|
50
|
+
pickerFooterMsg?: string;
|
|
51
|
+
innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>;
|
|
52
|
+
}
|
|
53
|
+
interface RequiredDatePickerProps {
|
|
54
|
+
type: 'full-date' | 'date-inputs' | 'date-picker' | 'date-picker-controller-only';
|
|
55
|
+
date: string;
|
|
56
|
+
onDateChange: OnDateChange;
|
|
57
|
+
}
|
|
58
|
+
type DatePickerProps = OptionalDatePickerProps & Partial<DefaultDateProps> & RequiredDatePickerProps;
|
|
59
|
+
type InternalDatePickerProps = OptionalDatePickerProps & DefaultDateProps & RequiredDatePickerProps;
|
|
60
|
+
interface DefaultTimeProps {
|
|
61
|
+
onHourChange: AppOnInputChange;
|
|
62
|
+
onMinuteChange: AppOnInputChange;
|
|
63
|
+
onMeridiemChange: AppOnInputChange;
|
|
64
|
+
onPickerOpen: NoopishFunc;
|
|
65
|
+
onPickerClose: NoopishFunc;
|
|
66
|
+
getIsDisabledTime: BooleanGetter<string>;
|
|
67
|
+
minutesInterval: number;
|
|
68
|
+
isClearable: boolean;
|
|
69
|
+
disabled: boolean;
|
|
70
|
+
hasError: boolean;
|
|
71
|
+
autoFocus: boolean;
|
|
72
|
+
preventCloseOnSelection: boolean;
|
|
73
|
+
}
|
|
74
|
+
interface OptionalTimePickerProps extends AriaAndDataPropsPerDataTestId {
|
|
75
|
+
pickerFooterMsg?: string;
|
|
76
|
+
onTimeWheelOpenStartingTime?: string;
|
|
77
|
+
innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement>;
|
|
78
|
+
}
|
|
79
|
+
interface RequiredTimePickerProps {
|
|
80
|
+
type: 'full-time' | 'time-inputs' | 'time-picker' | 'time-picker-controller-only';
|
|
81
|
+
time: string;
|
|
82
|
+
onTimeChange: OnTimeChange;
|
|
83
|
+
}
|
|
84
|
+
type TimePickerProps = OptionalTimePickerProps & Partial<DefaultTimeProps> & RequiredTimePickerProps;
|
|
85
|
+
type InternalTimePickerProps = OptionalTimePickerProps & DefaultTimeProps & RequiredTimePickerProps;
|
|
86
|
+
type DefaultDateTimeProps = DefaultTimeProps & DefaultDateProps & {
|
|
87
|
+
onDateChange: OnDateChange;
|
|
88
|
+
onTimeChange: OnTimeChange;
|
|
89
|
+
};
|
|
90
|
+
type OptionalDateTimeProps = AriaAndDataPropsPerDataTestId & OptionalTimePickerProps & OptionalDatePickerProps;
|
|
91
|
+
interface RequiredDateTimeProps {
|
|
92
|
+
type: 'full-date-time' | 'date-time-inputs' | 'date-time-picker' | 'date-time-picker-controller-only';
|
|
93
|
+
dateTime: string;
|
|
94
|
+
onDateTimeChange: OnDateTimeChange;
|
|
95
|
+
}
|
|
96
|
+
type DateTimePickerProps = Partial<DefaultDateTimeProps> & OptionalDateTimeProps & RequiredDateTimeProps;
|
|
97
|
+
type InternalDateTimePickerProps = DefaultDateTimeProps & OptionalDateTimeProps & RequiredDateTimeProps;
|
|
98
|
+
type DefaultProps = DefaultDateTimeProps & {
|
|
99
|
+
type: 'full-date-time';
|
|
100
|
+
};
|
|
101
|
+
type Props = DateTimePickerProps | DatePickerProps | TimePickerProps;
|
|
102
|
+
type InternalProps = InternalDateTimePickerProps | InternalDatePickerProps | InternalTimePickerProps;
|
|
103
|
+
}
|
|
104
|
+
export declare const defaultProps: DSControlledDateTimePickerT.DefaultProps;
|
|
105
|
+
export declare const propTypes: WeakValidationMap<unknown>;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { DSControlledDateTimePickerT } from './propTypes.js';
|
|
3
|
+
export declare namespace DSControlledDateTimePickerInternalsT {
|
|
4
|
+
type DateDay = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31;
|
|
5
|
+
type DateMonth = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;
|
|
6
|
+
interface MetaMonthDay {
|
|
7
|
+
day: Date;
|
|
8
|
+
dayAsString: string;
|
|
9
|
+
isPrevMonthDay: boolean;
|
|
10
|
+
isNextMonthDay: boolean;
|
|
11
|
+
isCurrMonthDay: boolean;
|
|
12
|
+
isHidden: boolean;
|
|
13
|
+
dayBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
14
|
+
}
|
|
15
|
+
type OnKeyDown<HTMLT = HTMLInputElement> = (e: React.KeyboardEvent<HTMLT>) => void;
|
|
16
|
+
type OnChangeFunc = (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
17
|
+
type OnDSBtnClick = (e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement> | React.KeyboardEvent) => void;
|
|
18
|
+
type HandleOnChangeFunc = (newVal: string, e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent, metaInfo?: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo) => void;
|
|
19
|
+
type OnBlurFunc = (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
20
|
+
type OnFocusFunc = (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
21
|
+
interface UseDateInputsR {
|
|
22
|
+
month: string;
|
|
23
|
+
day: string;
|
|
24
|
+
year: string;
|
|
25
|
+
autoFocusMonthInput: boolean;
|
|
26
|
+
innerRefMonthInput?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>;
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
onMonthChange: OnChangeFunc;
|
|
29
|
+
onDayChange: OnChangeFunc;
|
|
30
|
+
onYearChange: OnChangeFunc;
|
|
31
|
+
onMonthFocus: OnFocusFunc;
|
|
32
|
+
onDayFocus: OnFocusFunc;
|
|
33
|
+
onYearFocus: OnFocusFunc;
|
|
34
|
+
onMonthBlur: OnBlurFunc;
|
|
35
|
+
onDayBlur: OnBlurFunc;
|
|
36
|
+
onYearBlur: OnBlurFunc;
|
|
37
|
+
onMonthKeyDown: OnKeyDown;
|
|
38
|
+
onDayKeyDown: OnKeyDown;
|
|
39
|
+
onYearKeyDown: OnKeyDown;
|
|
40
|
+
}
|
|
41
|
+
interface InputsReferences {
|
|
42
|
+
monthInputRef: React.RefObject<HTMLInputElement>;
|
|
43
|
+
dayInputRef: React.RefObject<HTMLInputElement>;
|
|
44
|
+
yearInputRef: React.RefObject<HTMLInputElement>;
|
|
45
|
+
hourInputRef: React.RefObject<HTMLInputElement>;
|
|
46
|
+
minutesInputRef: React.RefObject<HTMLInputElement>;
|
|
47
|
+
meridiemInputRef: React.RefObject<HTMLInputElement>;
|
|
48
|
+
clearButtonRef: React.MutableRefObject<HTMLButtonElement>;
|
|
49
|
+
pickerButtonRef: React.MutableRefObject<HTMLButtonElement>;
|
|
50
|
+
}
|
|
51
|
+
interface CalendarReferences {
|
|
52
|
+
prevYearBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
53
|
+
prevMonthBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
54
|
+
nextMonthBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
55
|
+
nextYearBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
56
|
+
calendarDaysWrapperRef: React.MutableRefObject<HTMLDivElement>;
|
|
57
|
+
}
|
|
58
|
+
interface TimewheelReferences {
|
|
59
|
+
prevHourBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
60
|
+
currHourBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
61
|
+
nextHourBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
62
|
+
prevMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
63
|
+
currMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
64
|
+
nextMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
65
|
+
prevMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
66
|
+
currMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
67
|
+
nextMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;
|
|
68
|
+
}
|
|
69
|
+
interface InternalPrecalculatedFlags {
|
|
70
|
+
isControllerOnly: boolean;
|
|
71
|
+
shouldPreserveClearableSpace: boolean;
|
|
72
|
+
isWithTimeWheelToo: boolean;
|
|
73
|
+
isWithCalendarToo: boolean;
|
|
74
|
+
isWithDateInputs: boolean;
|
|
75
|
+
isWithDateInputsOnly: boolean;
|
|
76
|
+
isWithTimeInputs: boolean;
|
|
77
|
+
isWithTimeInputsOnly: boolean;
|
|
78
|
+
autoFocusMonthInput: boolean;
|
|
79
|
+
autoFocusHourInput: boolean;
|
|
80
|
+
autoFocusPrevMonthArrow: boolean;
|
|
81
|
+
autoFocusHourTimeWheel: boolean;
|
|
82
|
+
hideDate: boolean;
|
|
83
|
+
hideTime: boolean;
|
|
84
|
+
hideDateTimePicker: boolean;
|
|
85
|
+
hideDatePicker: boolean;
|
|
86
|
+
hideTimePicker: boolean;
|
|
87
|
+
withAnyInputs: boolean;
|
|
88
|
+
withAnyPicker: boolean;
|
|
89
|
+
withClearBtn: boolean;
|
|
90
|
+
withAnyRightController: boolean;
|
|
91
|
+
isDateSelector: boolean;
|
|
92
|
+
isTimeSelector: boolean;
|
|
93
|
+
isDateTimeSelector: boolean;
|
|
94
|
+
}
|
|
95
|
+
}
|