@elliemae/ds-form-date-time-picker 3.56.0-rc.1 → 3.57.0-next.2

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.
@@ -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 { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;
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 || tempDateString;
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
- [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]
70
+ [tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay]
71
71
  );
72
72
  const getTimeMetaInfo = (0, import_react.useCallback)(
73
73
  (newTimeString = null, metaInfo = {}) => {
74
- const finalTimeString = newTimeString || tempTimeString;
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
- [tempTimeString, getIsDisabledTime]
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
- setTempDateString(newDateString);
88
+ tempDateStringRef.current = newDateString;
89
89
  appOnTimeChange(appTimeString, metaInfo);
90
- setTimeString(newTimeString);
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
- setTempDateString,
105
+ tempDateStringRef,
106
106
  appOnTimeChange,
107
- setTimeString,
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
- setTempDateString(newDateString);
118
- const newDateTimeString = `${newDateString} ${tempTimeString}`;
117
+ tempDateStringRef.current = newDateString;
118
+ const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;
119
119
  const newMetaInfo = {
120
120
  ...metaInfo,
121
- ...getTimeMetaInfo(tempTimeString, metaInfo),
121
+ ...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),
122
122
  ...getDateMetaInfo(newDateString, metaInfo),
123
123
  newDateString,
124
- newTimeString: tempTimeString,
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, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
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
- setTimeString(newTimeString);
137
- const newDateTimeString = `${tempDateString} ${newTimeString}`;
136
+ tempTimeStringRef.current = newTimeString;
137
+ const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;
138
138
  const newMetaInfo = {
139
139
  ...metaInfo,
140
140
  ...getTimeMetaInfo(newTimeString, metaInfo),
141
- ...getDateMetaInfo(tempDateString, metaInfo),
141
+ ...getDateMetaInfo(tempDateStringRef.current, metaInfo),
142
142
  newDateTimeString,
143
- newDateString: tempDateString,
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, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
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": "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",
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": "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",
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 ((0, import_typeGuards.getIsDateTime)(props)) return props.dateTime !== "" ? (0, import_stringHelpers.dateTimeToDate)(props.dateTime) : "__/__/____";
41
- if ((0, import_typeGuards.getIsDate)(props)) return props.date !== "" ? props.date : "__/__/____";
42
- return "__/__/____";
43
- }, [props]);
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 ((0, import_typeGuards.getIsDateTime)(props)) return props.dateTime !== "" ? (0, import_stringHelpers.dateTimeToTime)(props.dateTime) : "__:__ __";
46
- if ((0, import_typeGuards.getIsTime)(props)) return props.time !== "" ? props.time : "__:__ __";
47
- return "__:__ __";
48
- }, [props]);
49
- const [tempDateString, setTempDateString] = (0, import_react.useState)(dateStringFromProps);
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
- tempDateString,
56
- setTempDateString,
57
- tempTimeString,
58
- setTimeString
63
+ tempDateStringRef,
64
+ tempTimeStringRef
59
65
  }),
60
- [dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps]
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": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo, useState } 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 dateStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToDate(props.dateTime) : '__/__/____';\n if (getIsDate(props)) return props.date !== '' ? props.date : '__/__/____';\n return '__/__/____';\n }, [props]);\n const timeStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToTime(props.dateTime) : '__:__ __';\n if (getIsTime(props)) return props.time !== '' ? props.time : '__:__ __';\n return '__:__ __';\n }, [props]);\n\n // don't use tempDateString to trigger useEffect for onDateChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempDateString, setTempDateString] = useState(dateStringFromProps);\n // don't use tempTimeString to trigger useEffect for onTimeChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempTimeString, setTimeString] = useState(timeStringFromProps);\n\n return useMemo(\n () => ({\n dateStringFromProps,\n timeStringFromProps,\n tempDateString,\n setTempDateString,\n tempTimeString,\n setTimeString,\n }),\n [dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAkC;AAClC,wBAAoD;AACpD,2BAA+C;AAGxC,MAAM,4BAA4B,CAAC,UAAqD;AAC7F,QAAM,0BAAsB,sBAAQ,MAAM;AACxC,YAAI,iCAAc,KAAK,EAAG,QAAO,MAAM,aAAa,SAAK,qCAAe,MAAM,QAAQ,IAAI;AAC1F,YAAI,6BAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AACV,QAAM,0BAAsB,sBAAQ,MAAM;AACxC,YAAI,iCAAc,KAAK,EAAG,QAAO,MAAM,aAAa,SAAK,qCAAe,MAAM,QAAQ,IAAI;AAC1F,YAAI,6BAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAKV,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,mBAAmB;AAIxE,QAAM,CAAC,gBAAgB,aAAa,QAAI,uBAAS,mBAAmB;AAEpE,aAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,gBAAgB,gBAAgB,mBAAmB;AAAA,EAC3E;AACF;",
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 { tempDateString, setTempDateString, tempTimeString, setTimeString } = relevantValues;
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 || tempDateString;
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
- [tempDateString, getIsDisabledDay, getIsOutOfRangeDay]
43
+ [tempDateStringRef, getIsDisabledDay, getIsOutOfRangeDay]
44
44
  );
45
45
  const getTimeMetaInfo = useCallback(
46
46
  (newTimeString = null, metaInfo = {}) => {
47
- const finalTimeString = newTimeString || tempTimeString;
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
- [tempTimeString, getIsDisabledTime]
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
- setTempDateString(newDateString);
61
+ tempDateStringRef.current = newDateString;
62
62
  appOnTimeChange(appTimeString, metaInfo);
63
- setTimeString(newTimeString);
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
- setTempDateString,
78
+ tempDateStringRef,
79
79
  appOnTimeChange,
80
- setTimeString,
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
- setTempDateString(newDateString);
91
- const newDateTimeString = `${newDateString} ${tempTimeString}`;
90
+ tempDateStringRef.current = newDateString;
91
+ const newDateTimeString = `${newDateString} ${tempTimeStringRef.current}`;
92
92
  const newMetaInfo = {
93
93
  ...metaInfo,
94
- ...getTimeMetaInfo(tempTimeString, metaInfo),
94
+ ...getTimeMetaInfo(tempTimeStringRef.current, metaInfo),
95
95
  ...getDateMetaInfo(newDateString, metaInfo),
96
96
  newDateString,
97
- newTimeString: tempTimeString,
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, setTempDateString, tempTimeString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
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
- setTimeString(newTimeString);
110
- const newDateTimeString = `${tempDateString} ${newTimeString}`;
109
+ tempTimeStringRef.current = newTimeString;
110
+ const newDateTimeString = `${tempDateStringRef.current} ${newTimeString}`;
111
111
  const newMetaInfo = {
112
112
  ...metaInfo,
113
113
  ...getTimeMetaInfo(newTimeString, metaInfo),
114
- ...getDateMetaInfo(tempDateString, metaInfo),
114
+ ...getDateMetaInfo(tempDateStringRef.current, metaInfo),
115
115
  newDateTimeString,
116
- newDateString: tempDateString,
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, setTimeString, tempDateString, getTimeMetaInfo, getDateMetaInfo, appOnDateTimeChange]
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": "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",
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, useState } from "react";
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 (getIsDateTime(props)) return props.dateTime !== "" ? dateTimeToDate(props.dateTime) : "__/__/____";
8
- if (getIsDate(props)) return props.date !== "" ? props.date : "__/__/____";
9
- return "__/__/____";
10
- }, [props]);
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 (getIsDateTime(props)) return props.dateTime !== "" ? dateTimeToTime(props.dateTime) : "__:__ __";
13
- if (getIsTime(props)) return props.time !== "" ? props.time : "__:__ __";
14
- return "__:__ __";
15
- }, [props]);
16
- const [tempDateString, setTempDateString] = useState(dateStringFromProps);
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
- tempDateString,
23
- setTempDateString,
24
- tempTimeString,
25
- setTimeString
30
+ tempDateStringRef,
31
+ tempTimeStringRef
26
32
  }),
27
- [dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps]
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", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo, useState } 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 dateStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToDate(props.dateTime) : '__/__/____';\n if (getIsDate(props)) return props.date !== '' ? props.date : '__/__/____';\n return '__/__/____';\n }, [props]);\n const timeStringFromProps = useMemo(() => {\n if (getIsDateTime(props)) return props.dateTime !== '' ? dateTimeToTime(props.dateTime) : '__:__ __';\n if (getIsTime(props)) return props.time !== '' ? props.time : '__:__ __';\n return '__:__ __';\n }, [props]);\n\n // don't use tempDateString to trigger useEffect for onDateChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempDateString, setTempDateString] = useState(dateStringFromProps);\n // don't use tempTimeString to trigger useEffect for onTimeChange\n // that is an anti-pattern and leads to a lot of issue\n // if you don't believe me, check date-time-picker v1 which is doing it\n const [tempTimeString, setTimeString] = useState(timeStringFromProps);\n\n return useMemo(\n () => ({\n dateStringFromProps,\n timeStringFromProps,\n tempDateString,\n setTempDateString,\n tempTimeString,\n setTimeString,\n }),\n [dateStringFromProps, tempDateString, tempTimeString, timeStringFromProps],\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACEvB,SAAS,SAAS,gBAAgB;AAClC,SAAS,eAAe,WAAW,iBAAiB;AACpD,SAAS,gBAAgB,sBAAsB;AAGxC,MAAM,4BAA4B,CAAC,UAAqD;AAC7F,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI,cAAc,KAAK,EAAG,QAAO,MAAM,aAAa,KAAK,eAAe,MAAM,QAAQ,IAAI;AAC1F,QAAI,UAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AACV,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI,cAAc,KAAK,EAAG,QAAO,MAAM,aAAa,KAAK,eAAe,MAAM,QAAQ,IAAI;AAC1F,QAAI,UAAU,KAAK,EAAG,QAAO,MAAM,SAAS,KAAK,MAAM,OAAO;AAC9D,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAKV,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,mBAAmB;AAIxE,QAAM,CAAC,gBAAgB,aAAa,IAAI,SAAS,mBAAmB;AAEpE,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,gBAAgB,gBAAgB,mBAAmB;AAAA,EAC3E;AACF;",
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
- tempDateString: string;
6
- setTempDateString: import("react").Dispatch<import("react").SetStateAction<string>>;
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.56.0-rc.1",
3
+ "version": "3.57.0-next.2",
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-button-v2": "3.56.0-rc.1",
40
- "@elliemae/ds-icons": "3.56.0-rc.1",
41
- "@elliemae/ds-props-helpers": "3.56.0-rc.1",
42
- "@elliemae/ds-system": "3.56.0-rc.1",
43
- "@elliemae/ds-popperjs": "3.56.0-rc.1",
44
- "@elliemae/ds-grid": "3.56.0-rc.1",
45
- "@elliemae/ds-accessibility": "3.56.0-rc.1",
46
- "@elliemae/ds-typescript-helpers": "3.56.0-rc.1"
39
+ "@elliemae/ds-accessibility": "3.57.0-next.2",
40
+ "@elliemae/ds-button-v2": "3.57.0-next.2",
41
+ "@elliemae/ds-grid": "3.57.0-next.2",
42
+ "@elliemae/ds-popperjs": "3.57.0-next.2",
43
+ "@elliemae/ds-icons": "3.57.0-next.2",
44
+ "@elliemae/ds-typescript-helpers": "3.57.0-next.2",
45
+ "@elliemae/ds-props-helpers": "3.57.0-next.2",
46
+ "@elliemae/ds-system": "3.57.0-next.2"
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-test-utils": "3.56.0-rc.1",
55
- "@elliemae/ds-monorepo-devops": "3.56.0-rc.1"
54
+ "@elliemae/ds-monorepo-devops": "3.57.0-next.2",
55
+ "@elliemae/ds-test-utils": "3.57.0-next.2"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "@elliemae/pui-theme": "~2.13.0",