@elliemae/ds-form-date-time-picker 3.54.1 → 3.55.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config/useChangeHandlers.js +19 -19
- package/dist/cjs/config/useChangeHandlers.js.map +2 -2
- package/dist/cjs/config/useRelevantValueFromProps.js +21 -15
- package/dist/cjs/config/useRelevantValueFromProps.js.map +2 -2
- package/dist/esm/config/useChangeHandlers.js +19 -19
- package/dist/esm/config/useChangeHandlers.js.map +2 -2
- package/dist/esm/config/useRelevantValueFromProps.js +22 -16
- package/dist/esm/config/useRelevantValueFromProps.js.map +2 -2
- package/dist/types/config/useRelevantValueFromProps.d.ts +2 -4
- package/package.json +11 -11
|
@@ -38,7 +38,7 @@ var import_timeHelpers = require("../utils/timeHelpers.js");
|
|
|
38
38
|
var import_stringHelpers = require("../utils/stringHelpers.js");
|
|
39
39
|
var import_constants = require("../utils/constants.js");
|
|
40
40
|
const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }) => {
|
|
41
|
-
const {
|
|
41
|
+
const { tempDateStringRef, tempTimeStringRef } = relevantValues;
|
|
42
42
|
const {
|
|
43
43
|
getIsDisabledDay,
|
|
44
44
|
getIsOutOfRangeDay,
|
|
@@ -60,34 +60,34 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
60
60
|
const { trackFocusFirstSegment } = focusTrackers;
|
|
61
61
|
const getDateMetaInfo = (0, import_react.useCallback)(
|
|
62
62
|
(newDateString = null, metaInfo = {}) => {
|
|
63
|
-
const finalDateString = newDateString ||
|
|
63
|
+
const finalDateString = newDateString || tempDateStringRef.current;
|
|
64
64
|
const finalMetaInfo = {
|
|
65
65
|
...metaInfo,
|
|
66
66
|
...(0, import_dateHelpers.getValidationDateStringMetaInfo)(finalDateString, getIsOutOfRangeDay, getIsDisabledDay)
|
|
67
67
|
};
|
|
68
68
|
return finalMetaInfo;
|
|
69
69
|
},
|
|
70
|
-
[
|
|
70
|
+
[tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay]
|
|
71
71
|
);
|
|
72
72
|
const getTimeMetaInfo = (0, import_react.useCallback)(
|
|
73
73
|
(newTimeString = null, metaInfo = {}) => {
|
|
74
|
-
const finalTimeString = newTimeString ||
|
|
74
|
+
const finalTimeString = newTimeString || tempTimeStringRef.current;
|
|
75
75
|
const finalMetaInfo = {
|
|
76
76
|
...metaInfo,
|
|
77
77
|
...(0, import_timeHelpers.getValidationTimeStringMetaInfo)(finalTimeString, getIsDisabledTime)
|
|
78
78
|
};
|
|
79
79
|
return finalMetaInfo;
|
|
80
80
|
},
|
|
81
|
-
[
|
|
81
|
+
[tempTimeStringRef, getIsDisabledTime]
|
|
82
82
|
);
|
|
83
83
|
const handleChangeComposedDateTimeString = (0, import_react.useCallback)(
|
|
84
84
|
(newDateString, newTimeString, metaInfo) => {
|
|
85
85
|
const appDateString = (0, import_stringHelpers.isEmptyDateStringMask)(newDateString) ? "" : newDateString;
|
|
86
86
|
const appTimeString = (0, import_stringHelpers.isEmptyTimeStringMask)(newTimeString) ? "" : newTimeString;
|
|
87
87
|
appOnDateChange(appDateString, metaInfo);
|
|
88
|
-
|
|
88
|
+
tempDateStringRef.current = newDateString;
|
|
89
89
|
appOnTimeChange(appTimeString, metaInfo);
|
|
90
|
-
|
|
90
|
+
tempTimeStringRef.current = newTimeString;
|
|
91
91
|
const newDateTimeString = `${newDateString} ${newTimeString}`;
|
|
92
92
|
const newMetaInfo = {
|
|
93
93
|
...metaInfo,
|
|
@@ -102,9 +102,9 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
102
102
|
},
|
|
103
103
|
[
|
|
104
104
|
appOnDateChange,
|
|
105
|
-
|
|
105
|
+
tempDateStringRef,
|
|
106
106
|
appOnTimeChange,
|
|
107
|
-
|
|
107
|
+
tempTimeStringRef,
|
|
108
108
|
getTimeMetaInfo,
|
|
109
109
|
getDateMetaInfo,
|
|
110
110
|
appOnDateTimeChange
|
|
@@ -114,39 +114,39 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
114
114
|
(newDateString, metaInfo) => {
|
|
115
115
|
const appDateString = (0, import_stringHelpers.isEmptyDateStringMask)(newDateString) ? "" : newDateString;
|
|
116
116
|
appOnDateChange(appDateString, metaInfo);
|
|
117
|
-
|
|
118
|
-
const newDateTimeString = `${newDateString} ${
|
|
117
|
+
tempDateStringRef.current = newDateString;
|
|
118
|
+
const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;
|
|
119
119
|
const newMetaInfo = {
|
|
120
120
|
...metaInfo,
|
|
121
|
-
...getTimeMetaInfo(
|
|
121
|
+
...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),
|
|
122
122
|
...getDateMetaInfo(newDateString, metaInfo),
|
|
123
123
|
newDateString,
|
|
124
|
-
newTimeString:
|
|
124
|
+
newTimeString: tempTimeStringRef.current,
|
|
125
125
|
newDateTimeString
|
|
126
126
|
};
|
|
127
127
|
const appDateTimeString = (0, import_stringHelpers.isEmptyDateTimeStringMask)(newDateTimeString) ? "" : newDateTimeString;
|
|
128
128
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
129
129
|
},
|
|
130
|
-
[appOnDateChange,
|
|
130
|
+
[appOnDateChange, tempDateStringRef, tempTimeStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
131
131
|
);
|
|
132
132
|
const handleChangeComposedTimeString = (0, import_react.useCallback)(
|
|
133
133
|
(newTimeString, metaInfo) => {
|
|
134
134
|
const appTimeString = (0, import_stringHelpers.isEmptyTimeStringMask)(newTimeString) ? "" : newTimeString;
|
|
135
135
|
appOnTimeChange(appTimeString, metaInfo);
|
|
136
|
-
|
|
137
|
-
const newDateTimeString = `${
|
|
136
|
+
tempTimeStringRef.current = newTimeString;
|
|
137
|
+
const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;
|
|
138
138
|
const newMetaInfo = {
|
|
139
139
|
...metaInfo,
|
|
140
140
|
...getTimeMetaInfo(newTimeString, metaInfo),
|
|
141
|
-
...getDateMetaInfo(
|
|
141
|
+
...getDateMetaInfo(tempDateStringRef.current, metaInfo),
|
|
142
142
|
newDateTimeString,
|
|
143
|
-
newDateString:
|
|
143
|
+
newDateString: tempDateStringRef.current,
|
|
144
144
|
newTimeString
|
|
145
145
|
};
|
|
146
146
|
const appDateTimeString = (0, import_stringHelpers.isEmptyDateTimeStringMask)(newDateTimeString) ? "" : newDateTimeString;
|
|
147
147
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
148
148
|
},
|
|
149
|
-
[appOnTimeChange,
|
|
149
|
+
[appOnTimeChange, tempTimeStringRef, tempDateStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
150
150
|
);
|
|
151
151
|
const handleChangeMonth = (0, import_react.useCallback)(
|
|
152
152
|
(newMonth, e, metaInfo = import_constants.defaultMetaInfo) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/config/useChangeHandlers.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateString, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeString, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTimeString(newTimeString);\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n setTempDateString,\n appOnTimeChange,\n setTimeString,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n const newDateTimeString = `${newDateString} ${tempTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n setTimeString(newTimeString);\n const newDateTimeString = `${tempDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateString, metaInfo),\n newDateTimeString,\n newDateString: tempDateString,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,mBAAqC;AAMrC,yBAAgD;AAChD,yBAAgD;AAChD,2BAMO;AAGP,uBAAgC;AASzB,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,oBAAoB,kBAAkB,cAAc,MAAc;AACpH,QAAM,EAAE,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateStringRef, tempTimeStringRef } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeStringRef, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString; // use ref to avoid re-render\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempTimeStringRef.current = newTimeString;\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n tempDateStringRef,\n appOnTimeChange,\n tempTimeStringRef,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString;\n const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeStringRef.current,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, tempDateStringRef, tempTimeStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n tempTimeStringRef.current = newTimeString;\n const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateStringRef.current, metaInfo),\n newDateTimeString,\n newDateString: tempDateStringRef.current,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, tempTimeStringRef, tempDateStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,mBAAqC;AAMrC,yBAAgD;AAChD,yBAAgD;AAChD,2BAMO;AAGP,uBAAgC;AASzB,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,oBAAoB,kBAAkB,cAAc,MAAc;AACpH,QAAM,EAAE,mBAAmB,kBAAkB,IAAI;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,EAAE,OAAO,KAAK,MAAM,OAAO,SAAS,SAAS,IAAI;AACvD,QAAM,EAAE,uBAAuB,IAAI;AAEnC,QAAM,sBAAkB;AAAA,IACtB,CACE,gBAA+B,MAC/B,WAA8E,CAAC,MACT;AACtE,YAAM,kBAAkB,iBAAiB,kBAAkB;AAC3D,YAAM,gBAAmF;AAAA,QACvF,GAAG;AAAA,QACH,OAAG,oDAAgC,iBAAiB,oBAAoB,gBAAgB;AAAA,MAC1F;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,mBAAmB,kBAAkB,kBAAkB;AAAA,EAC1D;AAEA,QAAM,sBAAkB;AAAA,IACtB,CACE,gBAA+B,MAC/B,WAA8E,CAAC,MACT;AACtE,YAAM,kBAAkB,iBAAiB,kBAAkB;AAC3D,YAAM,gBAAmF;AAAA,QACvF,GAAG;AAAA,QACH,OAAG,oDAAgC,iBAAiB,iBAAiB;AAAA,MACvE;AACA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,mBAAmB,iBAAiB;AAAA,EACvC;AAEA,QAAM,yCAAqC;AAAA,IACzC,CACE,eACA,eACA,aACS;AACT,YAAM,oBAAgB,4CAAsB,aAAa,IAAI,KAAK;AAClE,YAAM,oBAAgB,4CAAsB,aAAa,IAAI,KAAK;AAClE,sBAAgB,eAAe,QAAQ;AACvC,wBAAkB,UAAU;AAE5B,sBAAgB,eAAe,QAAQ;AACvC,wBAAkB,UAAU;AAE5B,YAAM,oBAAoB,GAAG,aAAa,IAAI,aAAa;AAC3D,YAAM,cAAc;AAAA,QAClB,GAAG;AAAA,QACH,GAAG,gBAAgB,eAAe,QAAQ;AAAA,QAC1C,GAAG,gBAAgB,eAAe,QAAQ;AAAA,QAC1C;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,YAAM,wBAAoB,gDAA0B,iBAAiB,IAAI,KAAK;AAC9E,0BAAoB,mBAAmB,WAAW;AAAA,IACpD;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,qCAAiC;AAAA,IACrC,CAAC,eAAuB,aAAgF;AAEtG,YAAM,oBAAgB,4CAAsB,aAAa,IAAI,KAAK;AAClE,sBAAgB,eAAe,QAAQ;AACvC,wBAAkB,UAAU;AAC5B,YAAM,oBAAoB,GAAG,aAAa,IAAI,kBAAkB,OAAO;AACvE,YAAM,cAAc;AAAA,QAClB,GAAG;AAAA,QACH,GAAG,gBAAgB,kBAAkB,SAAS,QAAQ;AAAA,QACtD,GAAG,gBAAgB,eAAe,QAAQ;AAAA,QAC1C;AAAA,QACA,eAAe,kBAAkB;AAAA,QACjC;AAAA,MACF;AAEA,YAAM,wBAAoB,gDAA0B,iBAAiB,IAAI,KAAK;AAC9E,0BAAoB,mBAAmB,WAAW;AAAA,IACpD;AAAA,IACA,CAAC,iBAAiB,mBAAmB,mBAAmB,iBAAiB,iBAAiB,mBAAmB;AAAA,EAC/G;AACA,QAAM,qCAAiC;AAAA,IACrC,CAAC,eAAuB,aAAgF;AACtG,YAAM,oBAAgB,4CAAsB,aAAa,IAAI,KAAK;AAClE,sBAAgB,eAAe,QAAQ;AAEvC,wBAAkB,UAAU;AAC5B,YAAM,oBAAoB,GAAG,kBAAkB,OAAO,IAAI,aAAa;AACvE,YAAM,cAAc;AAAA,QAClB,GAAG;AAAA,QACH,GAAG,gBAAgB,eAAe,QAAQ;AAAA,QAC1C,GAAG,gBAAgB,kBAAkB,SAAS,QAAQ;AAAA,QACtD;AAAA,QACA,eAAe,kBAAkB;AAAA,QACjC;AAAA,MACF;AAEA,YAAM,wBAAoB,gDAA0B,iBAAiB,IAAI,KAAK;AAC9E,0BAAoB,mBAAmB,WAAW;AAAA,IACpD;AAAA,IACA,CAAC,iBAAiB,mBAAmB,mBAAmB,iBAAiB,iBAAiB,mBAAmB;AAAA,EAC/G;AAEA,QAAM,wBAAwE;AAAA,IAC5E,CAAC,UAAU,GAAG,WAAW,qCAAoB;AAC3C,YAAM,oBAAgB,6CAAuB;AAAA,QAC3C,OAAO;AAAA,QACP;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,gBAA0E;AAAA,QAC9E,GAAG;AAAA,QACH,OAAG,oDAAgC,eAAe,oBAAoB,gBAAgB;AAAA,QACtF;AAAA,MACF;AACA,uBAAiB,UAAU,GAAG,aAAa;AAC3C,qCAA+B,eAAe,aAAa;AAAA,IAC7D;AAAA,IACA,CAAC,KAAK,MAAM,oBAAoB,kBAAkB,kBAAkB,8BAA8B;AAAA,EACpG;AACA,QAAM,sBAAsE;AAAA,IAC1E,CAAC,QAAQ,GAAG,WAAW,qCAAoB;AACzC,YAAM,oBAAgB,6CAAuB;AAAA,QAC3C;AAAA,QACA,KAAK;AAAA,QACL;AAAA,MACF,CAAC;AACD,YAAM,gBAA0E;AAAA,QAC9E,GAAG;AAAA,QACH,OAAG,oDAAgC,eAAe,oBAAoB,gBAAgB;AAAA,QACtF;AAAA,MACF;AACA,qBAAe,QAAQ,GAAG,aAAa;AACvC,qCAA+B,eAAe,aAAa;AAAA,IAC7D;AAAA,IACA,CAAC,OAAO,MAAM,oBAAoB,kBAAkB,gBAAgB,8BAA8B;AAAA,EACpG;AACA,QAAM,uBAAuE;AAAA,IAC3E,CAAC,SAAS,GAAG,WAAW,qCAAoB;AAC1C,YAAM,oBAAgB,6CAAuB;AAAA,QAC3C;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR,CAAC;AACD,YAAM,gBAA0E;AAAA,QAC9E,GAAG;AAAA,QACH,OAAG,oDAAgC,eAAe,oBAAoB,gBAAgB;AAAA,QACtF;AAAA,MACF;AACA,sBAAgB,SAAS,GAAG,aAAa;AACzC,qCAA+B,eAAe,aAAa;AAAA,IAC7D;AAAA,IACA,CAAC,OAAO,KAAK,oBAAoB,kBAAkB,iBAAiB,8BAA8B;AAAA,EACpG;AAEA,QAAM,wBAAwE;AAAA,IAC5E,CAAC,UAAU,GAAG,WAAW,qCAAoB;AAC3C,YAAM,oBAAgB,6CAAuB;AAAA,QAC3C,OAAO;AAAA,QACP;AAAA;AAAA,QAEA;AAAA,MACF,CAAC;AACD,YAAM,gBAA0E;AAAA,QAC9E,GAAG;AAAA,QACH,OAAG,oDAAgC,eAAe,iBAAiB;AAAA,QACnE;AAAA,MACF;AACA,sBAAgB,UAAU,GAAG,aAAa;AAC1C,qCAA+B,eAAe,aAAa;AAAA,IAC7D;AAAA,IACA,CAAC,SAAS,UAAU,mBAAmB,iBAAiB,8BAA8B;AAAA,EACxF;AACA,QAAM,0BAA0E;AAAA,IAC9E,CAAC,YAAY,GAAG,WAAW,qCAAoB;AAC7C,YAAM,oBAAgB,6CAAuB;AAAA,QAC3C;AAAA,QACA,SAAS;AAAA,QACT;AAAA,MACF,CAAC;AACD,YAAM,gBAA0E;AAAA,QAC9E,GAAG;AAAA,QACH,OAAG,oDAAgC,eAAe,iBAAiB;AAAA,QACnE;AAAA,MACF;AACA,wBAAkB,YAAY,GAAG,aAAa;AAC9C,qCAA+B,eAAe,aAAa;AAAA,IAC7D;AAAA,IACA,CAAC,OAAO,UAAU,mBAAmB,mBAAmB,8BAA8B;AAAA,EACxF;AACA,QAAM,2BAA2E;AAAA,IAC/E,CAAC,aAAa,GAAG,WAAW,qCAAoB;AAC9C,YAAM,oBAAgB,6CAAuB;AAAA,QAC3C;AAAA,QACA;AAAA,QACA,UAAU;AAAA,MACZ,CAAC;AACD,YAAM,gBAA0E;AAAA,QAC9E,GAAG;AAAA,QACH,OAAG,oDAAgC,eAAe,iBAAiB;AAAA,QACnE;AAAA,MACF;AACA,0BAAoB,aAAa,GAAG,aAAa;AACjD,qCAA+B,eAAe,aAAa;AAAA,IAC7D;AAAA,IACA,CAAC,OAAO,SAAS,mBAAmB,qBAAqB,8BAA8B;AAAA,EACzF;AAEA,QAAM,qBAAoE;AAAA,IACxE,CAAC,MAAM;AACL,YAAM,WAAW;AAAA,QACf,wBAAwB;AAAA,QACxB,qBAAqB;AAAA,QACrB,eAAe;AAAA,QACf,eAAe;AAAA,QACf,mBAAmB;AAAA,MACrB;AACA,uBAAiB,IAAI,GAAG,QAAQ;AAChC,qBAAe,IAAI,GAAG,QAAQ;AAC9B,sBAAgB,IAAI,GAAG,QAAQ;AAC/B,sBAAgB,IAAI,GAAG,QAAQ;AAC/B,wBAAkB,IAAI,GAAG,QAAQ;AACjC,0BAAoB,IAAI,GAAG,QAAQ;AACnC,UAAI,WAAY,oCAAmC,cAAc,YAAY,QAAQ;AACrF,UAAI,OAAQ,gCAA+B,cAAc,QAAQ;AACjE,UAAI,OAAQ,gCAA+B,YAAY,QAAQ;AAC/D,6BAAuB;AAAA,IACzB;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,aAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -36,28 +36,34 @@ var import_react = require("react");
|
|
|
36
36
|
var import_typeGuards = require("../utils/typeGuards.js");
|
|
37
37
|
var import_stringHelpers = require("../utils/stringHelpers.js");
|
|
38
38
|
const useRelevantValueFromProps = (props) => {
|
|
39
|
+
const isDateTime = (0, import_typeGuards.getIsDateTime)(props);
|
|
40
|
+
const isDate = (0, import_typeGuards.getIsDate)(props);
|
|
41
|
+
const isTime = (0, import_typeGuards.getIsTime)(props);
|
|
42
|
+
const { dateTime } = props;
|
|
43
|
+
const time = isTime ? props.time : "";
|
|
44
|
+
const date = isDate ? props.date : "";
|
|
45
|
+
const tempDateStringRef = (0, import_react.useRef)("__/__/____");
|
|
39
46
|
const dateStringFromProps = (0, import_react.useMemo)(() => {
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
if (isDateTime)
|
|
48
|
+
tempDateStringRef.current = dateTime !== "" && dateTime !== void 0 ? (0, import_stringHelpers.dateTimeToDate)(dateTime) : "__/__/____";
|
|
49
|
+
if (isDate) tempDateStringRef.current = date !== "" ? date : "__/__/____";
|
|
50
|
+
return tempDateStringRef.current;
|
|
51
|
+
}, [isDate, isDateTime, date, dateTime]);
|
|
52
|
+
const tempTimeStringRef = (0, import_react.useRef)("__:__ __");
|
|
44
53
|
const timeStringFromProps = (0, import_react.useMemo)(() => {
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const [tempTimeString, setTimeString] = (0, import_react.useState)(timeStringFromProps);
|
|
54
|
+
if (isDateTime)
|
|
55
|
+
tempTimeStringRef.current = dateTime !== "" && dateTime !== void 0 ? (0, import_stringHelpers.dateTimeToTime)(dateTime) : "__:__ __";
|
|
56
|
+
if (isTime) tempTimeStringRef.current = time !== "" ? time : "__:__ __";
|
|
57
|
+
return tempTimeStringRef.current;
|
|
58
|
+
}, [isDateTime, isTime, time, dateTime]);
|
|
51
59
|
return (0, import_react.useMemo)(
|
|
52
60
|
() => ({
|
|
53
61
|
dateStringFromProps,
|
|
54
62
|
timeStringFromProps,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
tempTimeString,
|
|
58
|
-
setTimeString
|
|
63
|
+
tempDateStringRef,
|
|
64
|
+
tempTimeStringRef
|
|
59
65
|
}),
|
|
60
|
-
[dateStringFromProps,
|
|
66
|
+
[dateStringFromProps, timeStringFromProps]
|
|
61
67
|
);
|
|
62
68
|
};
|
|
63
69
|
//# sourceMappingURL=useRelevantValueFromProps.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/config/useRelevantValueFromProps.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["import { useMemo, useRef } from 'react';\nimport { getIsDateTime, getIsDate, getIsTime } from '../utils/typeGuards.js';\nimport { dateTimeToTime, dateTimeToDate } from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\n\nexport const useRelevantValueFromProps = (props: DSControlledDateTimePickerT.InternalProps) => {\n const isDateTime = getIsDateTime(props);\n const isDate = getIsDate(props);\n const isTime = getIsTime(props);\n const { dateTime } = props;\n // why not destructuring? because destructuring will not trigger typescript safeguards infers.\n // this is safer and more explicit anyway, when things are undefined we default to '' which is later used in ternaries as a single check\n const time = isTime ? props.time : '';\n const date = isDate ? props.date : '';\n\n const tempDateStringRef = useRef('__/__/____');\n const dateStringFromProps = useMemo(() => {\n if (isDateTime)\n tempDateStringRef.current = dateTime !== '' && dateTime !== undefined ? dateTimeToDate(dateTime) : '__/__/____';\n if (isDate) tempDateStringRef.current = date !== '' ? date : '__/__/____';\n // the ref is storing a primitive value, which means that even if we return the .current, it will trigger shallow comparisons\n // don't do the same with non primitive values, instead do a {...ref.current} or [...ref.current] to ensure a new reference is created on memo run\n // which in turns would trigger sideEffects as expected on ref change.\n // note: side-effects doesn't run on non primitive useRef().current changes.\n return tempDateStringRef.current;\n }, [isDate, isDateTime, date, dateTime]);\n\n const tempTimeStringRef = useRef('__:__ __');\n const timeStringFromProps = useMemo(() => {\n if (isDateTime)\n tempTimeStringRef.current = dateTime !== '' && dateTime !== undefined ? dateTimeToTime(dateTime) : '__:__ __';\n if (isTime) tempTimeStringRef.current = time !== '' ? time : '__:__ __';\n // the ref is storing a primitive value, which means that even if we return the .current, it will trigger shallow comparisons\n // don't do the same with non primitive values, instead do a {...ref.current} or [...ref.current] to ensure a new reference is created on memo run\n // which in turns would trigger sideEffects as expected on ref change.\n // note: side-effects doesn't run on non primitive useRef().current changes.\n return tempTimeStringRef.current;\n }, [isDateTime, isTime, time, dateTime]);\n\n return useMemo(\n () => ({\n dateStringFromProps,\n timeStringFromProps,\n tempDateStringRef,\n tempTimeStringRef,\n }),\n [dateStringFromProps, timeStringFromProps],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAgC;AAChC,wBAAoD;AACpD,2BAA+C;AAGxC,MAAM,4BAA4B,CAAC,UAAqD;AAC7F,QAAM,iBAAa,iCAAc,KAAK;AACtC,QAAM,aAAS,6BAAU,KAAK;AAC9B,QAAM,aAAS,6BAAU,KAAK;AAC9B,QAAM,EAAE,SAAS,IAAI;AAGrB,QAAM,OAAO,SAAS,MAAM,OAAO;AACnC,QAAM,OAAO,SAAS,MAAM,OAAO;AAEnC,QAAM,wBAAoB,qBAAO,YAAY;AAC7C,QAAM,0BAAsB,sBAAQ,MAAM;AACxC,QAAI;AACF,wBAAkB,UAAU,aAAa,MAAM,aAAa,aAAY,qCAAe,QAAQ,IAAI;AACrG,QAAI,OAAQ,mBAAkB,UAAU,SAAS,KAAK,OAAO;AAK7D,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,QAAQ,YAAY,MAAM,QAAQ,CAAC;AAEvC,QAAM,wBAAoB,qBAAO,UAAU;AAC3C,QAAM,0BAAsB,sBAAQ,MAAM;AACxC,QAAI;AACF,wBAAkB,UAAU,aAAa,MAAM,aAAa,aAAY,qCAAe,QAAQ,IAAI;AACrG,QAAI,OAAQ,mBAAkB,UAAU,SAAS,KAAK,OAAO;AAK7D,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,YAAY,QAAQ,MAAM,QAAQ,CAAC;AAEvC,aAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,mBAAmB;AAAA,EAC3C;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "../utils/stringHelpers.js";
|
|
12
12
|
import { defaultMetaInfo } from "../utils/constants.js";
|
|
13
13
|
const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }) => {
|
|
14
|
-
const {
|
|
14
|
+
const { tempDateStringRef, tempTimeStringRef } = relevantValues;
|
|
15
15
|
const {
|
|
16
16
|
getIsDisabledDay,
|
|
17
17
|
getIsOutOfRangeDay,
|
|
@@ -33,34 +33,34 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
33
33
|
const { trackFocusFirstSegment } = focusTrackers;
|
|
34
34
|
const getDateMetaInfo = useCallback(
|
|
35
35
|
(newDateString = null, metaInfo = {}) => {
|
|
36
|
-
const finalDateString = newDateString ||
|
|
36
|
+
const finalDateString = newDateString || tempDateStringRef.current;
|
|
37
37
|
const finalMetaInfo = {
|
|
38
38
|
...metaInfo,
|
|
39
39
|
...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay)
|
|
40
40
|
};
|
|
41
41
|
return finalMetaInfo;
|
|
42
42
|
},
|
|
43
|
-
[
|
|
43
|
+
[tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay]
|
|
44
44
|
);
|
|
45
45
|
const getTimeMetaInfo = useCallback(
|
|
46
46
|
(newTimeString = null, metaInfo = {}) => {
|
|
47
|
-
const finalTimeString = newTimeString ||
|
|
47
|
+
const finalTimeString = newTimeString || tempTimeStringRef.current;
|
|
48
48
|
const finalMetaInfo = {
|
|
49
49
|
...metaInfo,
|
|
50
50
|
...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime)
|
|
51
51
|
};
|
|
52
52
|
return finalMetaInfo;
|
|
53
53
|
},
|
|
54
|
-
[
|
|
54
|
+
[tempTimeStringRef, getIsDisabledTime]
|
|
55
55
|
);
|
|
56
56
|
const handleChangeComposedDateTimeString = useCallback(
|
|
57
57
|
(newDateString, newTimeString, metaInfo) => {
|
|
58
58
|
const appDateString = isEmptyDateStringMask(newDateString) ? "" : newDateString;
|
|
59
59
|
const appTimeString = isEmptyTimeStringMask(newTimeString) ? "" : newTimeString;
|
|
60
60
|
appOnDateChange(appDateString, metaInfo);
|
|
61
|
-
|
|
61
|
+
tempDateStringRef.current = newDateString;
|
|
62
62
|
appOnTimeChange(appTimeString, metaInfo);
|
|
63
|
-
|
|
63
|
+
tempTimeStringRef.current = newTimeString;
|
|
64
64
|
const newDateTimeString = `${newDateString} ${newTimeString}`;
|
|
65
65
|
const newMetaInfo = {
|
|
66
66
|
...metaInfo,
|
|
@@ -75,9 +75,9 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
75
75
|
},
|
|
76
76
|
[
|
|
77
77
|
appOnDateChange,
|
|
78
|
-
|
|
78
|
+
tempDateStringRef,
|
|
79
79
|
appOnTimeChange,
|
|
80
|
-
|
|
80
|
+
tempTimeStringRef,
|
|
81
81
|
getTimeMetaInfo,
|
|
82
82
|
getDateMetaInfo,
|
|
83
83
|
appOnDateTimeChange
|
|
@@ -87,39 +87,39 @@ const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnTyp
|
|
|
87
87
|
(newDateString, metaInfo) => {
|
|
88
88
|
const appDateString = isEmptyDateStringMask(newDateString) ? "" : newDateString;
|
|
89
89
|
appOnDateChange(appDateString, metaInfo);
|
|
90
|
-
|
|
91
|
-
const newDateTimeString = `${newDateString} ${
|
|
90
|
+
tempDateStringRef.current = newDateString;
|
|
91
|
+
const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;
|
|
92
92
|
const newMetaInfo = {
|
|
93
93
|
...metaInfo,
|
|
94
|
-
...getTimeMetaInfo(
|
|
94
|
+
...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),
|
|
95
95
|
...getDateMetaInfo(newDateString, metaInfo),
|
|
96
96
|
newDateString,
|
|
97
|
-
newTimeString:
|
|
97
|
+
newTimeString: tempTimeStringRef.current,
|
|
98
98
|
newDateTimeString
|
|
99
99
|
};
|
|
100
100
|
const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? "" : newDateTimeString;
|
|
101
101
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
102
102
|
},
|
|
103
|
-
[appOnDateChange,
|
|
103
|
+
[appOnDateChange, tempDateStringRef, tempTimeStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
104
104
|
);
|
|
105
105
|
const handleChangeComposedTimeString = useCallback(
|
|
106
106
|
(newTimeString, metaInfo) => {
|
|
107
107
|
const appTimeString = isEmptyTimeStringMask(newTimeString) ? "" : newTimeString;
|
|
108
108
|
appOnTimeChange(appTimeString, metaInfo);
|
|
109
|
-
|
|
110
|
-
const newDateTimeString = `${
|
|
109
|
+
tempTimeStringRef.current = newTimeString;
|
|
110
|
+
const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;
|
|
111
111
|
const newMetaInfo = {
|
|
112
112
|
...metaInfo,
|
|
113
113
|
...getTimeMetaInfo(newTimeString, metaInfo),
|
|
114
|
-
...getDateMetaInfo(
|
|
114
|
+
...getDateMetaInfo(tempDateStringRef.current, metaInfo),
|
|
115
115
|
newDateTimeString,
|
|
116
|
-
newDateString:
|
|
116
|
+
newDateString: tempDateStringRef.current,
|
|
117
117
|
newTimeString
|
|
118
118
|
};
|
|
119
119
|
const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? "" : newDateTimeString;
|
|
120
120
|
appOnDateTimeChange(appDateTimeString, newMetaInfo);
|
|
121
121
|
},
|
|
122
|
-
[appOnTimeChange,
|
|
122
|
+
[appOnTimeChange, tempTimeStringRef, tempDateStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
|
|
123
123
|
);
|
|
124
124
|
const handleChangeMonth = useCallback(
|
|
125
125
|
(newMonth, e, metaInfo = defaultMetaInfo) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useChangeHandlers.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateString, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeString;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeString, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTimeString(newTimeString);\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n setTempDateString,\n appOnTimeChange,\n setTimeString,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n setTempDateString(newDateString);\n const newDateTimeString = `${newDateString} ${tempTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n setTimeString(newTimeString);\n const newDateTimeString = `${tempDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateString, metaInfo),\n newDateTimeString,\n newDateString: tempDateString,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACGvB,SAAS,aAAa,eAAe;AAMrC,SAAS,uCAAuC;AAChD,SAAS,uCAAuC;AAChD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAS,uBAAuB;AASzB,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,oBAAoB,kBAAkB,cAAc,MAAc;AACpH,QAAM,EAAE,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useCallback, useMemo } from 'react';\nimport type { useRelevantValueFromProps } from './useRelevantValueFromProps.js';\nimport type { useGetDestructuredValues } from './useGetDestructuredValues.js';\nimport type { useGetPropsBasedOnType } from './useGetPropsBasedOnType.js';\nimport type { useGetReferences } from './useGetReferences.js';\nimport type { useFocusTracker } from './useFocusTracker.js';\nimport { getValidationDateStringMetaInfo } from '../utils/dateHelpers.js';\nimport { getValidationTimeStringMetaInfo } from '../utils/timeHelpers.js';\nimport {\n isEmptyDateStringMask,\n isEmptyTimeStringMask,\n isEmptyDateTimeStringMask,\n getFormattedDateString,\n getFormattedTimeString,\n} from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\nimport type { DSControlledDateTimePickerInternalsT } from '../sharedTypes.js';\nimport { defaultMetaInfo } from '../utils/constants.js';\ninterface Config {\n relevantValues: ReturnType<typeof useRelevantValueFromProps>;\n destructuredValues: ReturnType<typeof useGetDestructuredValues>;\n propsBasedOnType: ReturnType<typeof useGetPropsBasedOnType>;\n DOMRefs: ReturnType<typeof useGetReferences>;\n focusTrackers: ReturnType<typeof useFocusTracker>;\n}\n\nexport const useChangeHandlers = ({ relevantValues, destructuredValues, propsBasedOnType, focusTrackers }: Config) => {\n const { tempDateStringRef, tempTimeStringRef } = relevantValues;\n const {\n getIsDisabledDay,\n getIsOutOfRangeDay,\n appOnDateChange,\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledTime,\n appOnTimeChange,\n appOnHourChange,\n appOnMinuteChange,\n appOnMeridiemChange,\n appOnDateTimeChange,\n isDateTime,\n isDate,\n isTime,\n } = propsBasedOnType;\n const { month, day, year, hours, minutes, meridiem } = destructuredValues;\n const { trackFocusFirstSegment } = focusTrackers;\n\n const getDateMetaInfo = useCallback(\n (\n newDateString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalDateString = newDateString || tempDateStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(finalDateString, getIsOutOfRangeDay, getIsDisabledDay),\n };\n return finalMetaInfo;\n },\n [tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay],\n );\n\n const getTimeMetaInfo = useCallback(\n (\n newTimeString: string | null = null,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {},\n ): Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> => {\n const finalTimeString = newTimeString || tempTimeStringRef.current;\n const finalMetaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(finalTimeString, getIsDisabledTime),\n };\n return finalMetaInfo;\n },\n [tempTimeStringRef, getIsDisabledTime],\n );\n\n const handleChangeComposedDateTimeString = useCallback(\n (\n newDateString: string,\n newTimeString: string,\n metaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ): void => {\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString; // use ref to avoid re-render\n\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempTimeStringRef.current = newTimeString;\n\n const newDateTimeString = `${newDateString} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [\n appOnDateChange,\n tempDateStringRef,\n appOnTimeChange,\n tempTimeStringRef,\n getTimeMetaInfo,\n getDateMetaInfo,\n appOnDateTimeChange,\n ],\n );\n const handleChangeComposedDateString = useCallback(\n (newDateString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n // if we receive an \"empty\" mask, we comunicate empty string to the app\n const appDateString = isEmptyDateStringMask(newDateString) ? '' : newDateString;\n appOnDateChange(appDateString, metaInfo); // don't do this on useEffect to avoid complete chaos\n tempDateStringRef.current = newDateString;\n const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),\n ...getDateMetaInfo(newDateString, metaInfo),\n newDateString,\n newTimeString: tempTimeStringRef.current,\n newDateTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnDateChange, tempDateStringRef, tempTimeStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n const handleChangeComposedTimeString = useCallback(\n (newTimeString: string, metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo>) => {\n const appTimeString = isEmptyTimeStringMask(newTimeString) ? '' : newTimeString;\n appOnTimeChange(appTimeString, metaInfo); // don't do this on useEffect to avoid complete chaos\n\n tempTimeStringRef.current = newTimeString;\n const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;\n const newMetaInfo = {\n ...metaInfo,\n ...getTimeMetaInfo(newTimeString, metaInfo),\n ...getDateMetaInfo(tempDateStringRef.current, metaInfo),\n newDateTimeString,\n newDateString: tempDateStringRef.current,\n newTimeString,\n };\n\n const appDateTimeString = isEmptyDateTimeStringMask(newDateTimeString) ? '' : newDateTimeString;\n appOnDateTimeChange(appDateTimeString, newMetaInfo); // don't do this on useEffect to avoid complete chaos\n },\n [appOnTimeChange, tempTimeStringRef, tempDateStringRef, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange],\n );\n\n const handleChangeMonth: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMonth, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month: newMonth,\n day,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnMonthChange(newMonth, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [day, year, getIsOutOfRangeDay, getIsDisabledDay, appOnMonthChange, handleChangeComposedDateString],\n );\n const handleChangeDay: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newDay, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day: newDay,\n year,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnDayChange(newDay, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, year, getIsOutOfRangeDay, getIsDisabledDay, appOnDayChange, handleChangeComposedDateString],\n );\n const handleChangeYear: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newYear, e, metaInfo = defaultMetaInfo) => {\n const newDateString = getFormattedDateString({\n month,\n day,\n year: newYear,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationDateStringMetaInfo(newDateString, getIsOutOfRangeDay, getIsDisabledDay),\n newDateString,\n };\n appOnYearChange(newYear, e, finalMetaInfo);\n handleChangeComposedDateString(newDateString, finalMetaInfo);\n },\n [month, day, getIsOutOfRangeDay, getIsDisabledDay, appOnYearChange, handleChangeComposedDateString],\n );\n\n const handleChangeHours: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newHours, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours: newHours,\n minutes,\n // seconds,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnHourChange(newHours, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [minutes, meridiem, getIsDisabledTime, appOnHourChange, handleChangeComposedTimeString],\n );\n const handleChangeMinutes: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMinutes, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes: newMinutes,\n meridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMinuteChange(newMinutes, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, meridiem, getIsDisabledTime, appOnMinuteChange, handleChangeComposedTimeString],\n );\n const handleChangeMeridiem: DSControlledDateTimePickerT.OnInternalInputsChange = useCallback(\n (newMeridiem, e, metaInfo = defaultMetaInfo) => {\n const newTimeString = getFormattedTimeString({\n hours,\n minutes,\n meridiem: newMeridiem,\n });\n const finalMetaInfo: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo = {\n ...metaInfo,\n ...getValidationTimeStringMetaInfo(newTimeString, getIsDisabledTime),\n newTimeString,\n };\n appOnMeridiemChange(newMeridiem, e, finalMetaInfo);\n handleChangeComposedTimeString(newTimeString, finalMetaInfo);\n },\n [hours, minutes, getIsDisabledTime, appOnMeridiemChange, handleChangeComposedTimeString],\n );\n\n const handleClearAll: DSControlledDateTimePickerInternalsT.OnDSBtnClick = useCallback(\n (e) => {\n const metaInfo = {\n isAutomaticFillTrigger: false,\n isClearButtonAction: true,\n newDateString: '',\n newTimeString: '',\n newDateTimeString: '',\n };\n appOnMonthChange('', e, metaInfo);\n appOnDayChange('', e, metaInfo);\n appOnYearChange('', e, metaInfo);\n appOnHourChange('', e, metaInfo);\n appOnMinuteChange('', e, metaInfo);\n appOnMeridiemChange('', e, metaInfo);\n if (isDateTime) handleChangeComposedDateTimeString('__/__/____', '__:__ __', metaInfo);\n if (isDate) handleChangeComposedDateString('__/__/____', metaInfo);\n if (isTime) handleChangeComposedTimeString('__:__ __', metaInfo);\n trackFocusFirstSegment();\n },\n [\n appOnDayChange,\n appOnHourChange,\n appOnMeridiemChange,\n appOnMinuteChange,\n appOnMonthChange,\n appOnYearChange,\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n isDate,\n isDateTime,\n isTime,\n trackFocusFirstSegment,\n ],\n );\n\n return useMemo(\n () => ({\n handleChangeComposedDateTimeString,\n handleChangeComposedDateString,\n handleChangeComposedTimeString,\n handleChangeMonth,\n handleChangeDay,\n handleChangeYear,\n handleChangeHours,\n handleChangeMinutes,\n handleChangeMeridiem,\n handleClearAll,\n }),\n [\n handleChangeComposedDateString,\n handleChangeComposedDateTimeString,\n handleChangeComposedTimeString,\n handleChangeDay,\n handleChangeHours,\n handleChangeMeridiem,\n handleChangeMinutes,\n handleChangeMonth,\n handleChangeYear,\n handleClearAll,\n ],\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,30 +1,36 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { useMemo,
|
|
2
|
+
import { useMemo, useRef } from "react";
|
|
3
3
|
import { getIsDateTime, getIsDate, getIsTime } from "../utils/typeGuards.js";
|
|
4
4
|
import { dateTimeToTime, dateTimeToDate } from "../utils/stringHelpers.js";
|
|
5
5
|
const useRelevantValueFromProps = (props) => {
|
|
6
|
+
const isDateTime = getIsDateTime(props);
|
|
7
|
+
const isDate = getIsDate(props);
|
|
8
|
+
const isTime = getIsTime(props);
|
|
9
|
+
const { dateTime } = props;
|
|
10
|
+
const time = isTime ? props.time : "";
|
|
11
|
+
const date = isDate ? props.date : "";
|
|
12
|
+
const tempDateStringRef = useRef("__/__/____");
|
|
6
13
|
const dateStringFromProps = useMemo(() => {
|
|
7
|
-
if (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
14
|
+
if (isDateTime)
|
|
15
|
+
tempDateStringRef.current = dateTime !== "" && dateTime !== void 0 ? dateTimeToDate(dateTime) : "__/__/____";
|
|
16
|
+
if (isDate) tempDateStringRef.current = date !== "" ? date : "__/__/____";
|
|
17
|
+
return tempDateStringRef.current;
|
|
18
|
+
}, [isDate, isDateTime, date, dateTime]);
|
|
19
|
+
const tempTimeStringRef = useRef("__:__ __");
|
|
11
20
|
const timeStringFromProps = useMemo(() => {
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const [tempTimeString, setTimeString] = useState(timeStringFromProps);
|
|
21
|
+
if (isDateTime)
|
|
22
|
+
tempTimeStringRef.current = dateTime !== "" && dateTime !== void 0 ? dateTimeToTime(dateTime) : "__:__ __";
|
|
23
|
+
if (isTime) tempTimeStringRef.current = time !== "" ? time : "__:__ __";
|
|
24
|
+
return tempTimeStringRef.current;
|
|
25
|
+
}, [isDateTime, isTime, time, dateTime]);
|
|
18
26
|
return useMemo(
|
|
19
27
|
() => ({
|
|
20
28
|
dateStringFromProps,
|
|
21
29
|
timeStringFromProps,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
tempTimeString,
|
|
25
|
-
setTimeString
|
|
30
|
+
tempDateStringRef,
|
|
31
|
+
tempTimeStringRef
|
|
26
32
|
}),
|
|
27
|
-
[dateStringFromProps,
|
|
33
|
+
[dateStringFromProps, timeStringFromProps]
|
|
28
34
|
);
|
|
29
35
|
};
|
|
30
36
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useRelevantValueFromProps.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useMemo, useRef } from 'react';\nimport { getIsDateTime, getIsDate, getIsTime } from '../utils/typeGuards.js';\nimport { dateTimeToTime, dateTimeToDate } from '../utils/stringHelpers.js';\nimport type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';\n\nexport const useRelevantValueFromProps = (props: DSControlledDateTimePickerT.InternalProps) => {\n const isDateTime = getIsDateTime(props);\n const isDate = getIsDate(props);\n const isTime = getIsTime(props);\n const { dateTime } = props;\n // why not destructuring? because destructuring will not trigger typescript safeguards infers.\n // this is safer and more explicit anyway, when things are undefined we default to '' which is later used in ternaries as a single check\n const time = isTime ? props.time : '';\n const date = isDate ? props.date : '';\n\n const tempDateStringRef = useRef('__/__/____');\n const dateStringFromProps = useMemo(() => {\n if (isDateTime)\n tempDateStringRef.current = dateTime !== '' && dateTime !== undefined ? dateTimeToDate(dateTime) : '__/__/____';\n if (isDate) tempDateStringRef.current = date !== '' ? date : '__/__/____';\n // the ref is storing a primitive value, which means that even if we return the .current, it will trigger shallow comparisons\n // don't do the same with non primitive values, instead do a {...ref.current} or [...ref.current] to ensure a new reference is created on memo run\n // which in turns would trigger sideEffects as expected on ref change.\n // note: side-effects doesn't run on non primitive useRef().current changes.\n return tempDateStringRef.current;\n }, [isDate, isDateTime, date, dateTime]);\n\n const tempTimeStringRef = useRef('__:__ __');\n const timeStringFromProps = useMemo(() => {\n if (isDateTime)\n tempTimeStringRef.current = dateTime !== '' && dateTime !== undefined ? dateTimeToTime(dateTime) : '__:__ __';\n if (isTime) tempTimeStringRef.current = time !== '' ? time : '__:__ __';\n // the ref is storing a primitive value, which means that even if we return the .current, it will trigger shallow comparisons\n // don't do the same with non primitive values, instead do a {...ref.current} or [...ref.current] to ensure a new reference is created on memo run\n // which in turns would trigger sideEffects as expected on ref change.\n // note: side-effects doesn't run on non primitive useRef().current changes.\n return tempTimeStringRef.current;\n }, [isDateTime, isTime, time, dateTime]);\n\n return useMemo(\n () => ({\n dateStringFromProps,\n timeStringFromProps,\n tempDateStringRef,\n tempTimeStringRef,\n }),\n [dateStringFromProps, timeStringFromProps],\n );\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,SAAS,cAAc;AAChC,SAAS,eAAe,WAAW,iBAAiB;AACpD,SAAS,gBAAgB,sBAAsB;AAGxC,MAAM,4BAA4B,CAAC,UAAqD;AAC7F,QAAM,aAAa,cAAc,KAAK;AACtC,QAAM,SAAS,UAAU,KAAK;AAC9B,QAAM,SAAS,UAAU,KAAK;AAC9B,QAAM,EAAE,SAAS,IAAI;AAGrB,QAAM,OAAO,SAAS,MAAM,OAAO;AACnC,QAAM,OAAO,SAAS,MAAM,OAAO;AAEnC,QAAM,oBAAoB,OAAO,YAAY;AAC7C,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI;AACF,wBAAkB,UAAU,aAAa,MAAM,aAAa,SAAY,eAAe,QAAQ,IAAI;AACrG,QAAI,OAAQ,mBAAkB,UAAU,SAAS,KAAK,OAAO;AAK7D,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,QAAQ,YAAY,MAAM,QAAQ,CAAC;AAEvC,QAAM,oBAAoB,OAAO,UAAU;AAC3C,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI;AACF,wBAAkB,UAAU,aAAa,MAAM,aAAa,SAAY,eAAe,QAAQ,IAAI;AACrG,QAAI,OAAQ,mBAAkB,UAAU,SAAS,KAAK,OAAO;AAK7D,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,YAAY,QAAQ,MAAM,QAAQ,CAAC;AAEvC,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,mBAAmB;AAAA,EAC3C;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,8 +2,6 @@ import type { DSControlledDateTimePickerT } from '../react-desc-prop-types.js';
|
|
|
2
2
|
export declare const useRelevantValueFromProps: (props: DSControlledDateTimePickerT.InternalProps) => {
|
|
3
3
|
dateStringFromProps: string;
|
|
4
4
|
timeStringFromProps: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
tempTimeString: string;
|
|
8
|
-
setTimeString: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
5
|
+
tempDateStringRef: import("react").MutableRefObject<string>;
|
|
6
|
+
tempTimeStringRef: import("react").MutableRefObject<string>;
|
|
9
7
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-form-date-time-picker",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.55.0-next.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Controlled Form Date Time Picker",
|
|
6
6
|
"files": [
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"indent": 4
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@elliemae/ds-
|
|
40
|
-
"@elliemae/ds-grid": "3.
|
|
41
|
-
"@elliemae/ds-
|
|
42
|
-
"@elliemae/ds-popperjs": "3.
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-
|
|
45
|
-
"@elliemae/ds-system": "3.
|
|
46
|
-
"@elliemae/ds-typescript-helpers": "3.
|
|
39
|
+
"@elliemae/ds-button-v2": "3.55.0-next.3",
|
|
40
|
+
"@elliemae/ds-grid": "3.55.0-next.3",
|
|
41
|
+
"@elliemae/ds-accessibility": "3.55.0-next.3",
|
|
42
|
+
"@elliemae/ds-popperjs": "3.55.0-next.3",
|
|
43
|
+
"@elliemae/ds-icons": "3.55.0-next.3",
|
|
44
|
+
"@elliemae/ds-props-helpers": "3.55.0-next.3",
|
|
45
|
+
"@elliemae/ds-system": "3.55.0-next.3",
|
|
46
|
+
"@elliemae/ds-typescript-helpers": "3.55.0-next.3"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@elliemae/pui-cli": "9.0.0-next.65",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"jest": "~29.7.0",
|
|
52
52
|
"styled-components": "~5.3.9",
|
|
53
53
|
"styled-system": "^5.1.5",
|
|
54
|
-
"@elliemae/ds-monorepo-devops": "3.
|
|
55
|
-
"@elliemae/ds-test-utils": "3.
|
|
54
|
+
"@elliemae/ds-monorepo-devops": "3.55.0-next.3",
|
|
55
|
+
"@elliemae/ds-test-utils": "3.55.0-next.3"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@elliemae/pui-theme": "~2.13.0",
|