@elliemae/ds-form-date-time-picker 3.5.0-rc.1 → 3.5.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,7 +29,7 @@ var import_react = require("react");
29
29
  var import_ControlledDateTimePickerTypes = require("../ControlledDateTimePickerTypes");
30
30
  var import_typeGuards = require("../utils/typeGuards");
31
31
  const getDateTimeFlags = (props) => {
32
- const { type, isClearable, dateTime, autoFocus } = props;
32
+ const { type, isClearable, dateTime, autoFocus, innerRef } = props;
33
33
  const constants = {
34
34
  hideDatePicker: true,
35
35
  hideTimePicker: true,
@@ -61,6 +61,8 @@ const getDateTimeFlags = (props) => {
61
61
  isWithTimeInputs: withAnyInputs,
62
62
  autoFocusMonthInput: withAnyInputs && autoFocus,
63
63
  autoFocusPrevMonthArrow: isControllerOnly && autoFocus,
64
+ innerRefMonthInput: withAnyInputs && innerRef,
65
+ innerRefPrevMonthArrow: isControllerOnly && innerRef,
64
66
  shouldPreserveClearableSpace,
65
67
  withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
66
68
  ...constants
@@ -68,7 +70,7 @@ const getDateTimeFlags = (props) => {
68
70
  return finalFlags;
69
71
  };
70
72
  const getDateFlags = (props) => {
71
- const { type, isClearable, date, autoFocus } = props;
73
+ const { type, isClearable, date, autoFocus, innerRef } = props;
72
74
  const constants = {
73
75
  isDateSelector: true,
74
76
  hideTime: true,
@@ -100,6 +102,8 @@ const getDateFlags = (props) => {
100
102
  isWithDateInputsOnly: withAnyInputs,
101
103
  autoFocusMonthInput: withAnyInputs && autoFocus,
102
104
  autoFocusPrevMonthArrow: isControllerOnly && autoFocus,
105
+ innerRefMonthInput: withAnyInputs && innerRef,
106
+ innerRefPrevMonthArrow: isControllerOnly && innerRef,
103
107
  shouldPreserveClearableSpace,
104
108
  withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
105
109
  ...constants
@@ -107,7 +111,7 @@ const getDateFlags = (props) => {
107
111
  return finalFlags;
108
112
  };
109
113
  const getTimeFlags = (props) => {
110
- const { type, isClearable, time, autoFocus } = props;
114
+ const { type, isClearable, time, autoFocus, innerRef } = props;
111
115
  const constants = {
112
116
  hideDate: true,
113
117
  hideDateTimePicker: true,
@@ -120,7 +124,9 @@ const getTimeFlags = (props) => {
120
124
  isWithTimeWheelToo: false,
121
125
  isWithCalendarToo: false,
122
126
  autoFocusMonthInput: false,
123
- autoFocusPrevMonthArrow: false
127
+ autoFocusPrevMonthArrow: false,
128
+ innerRefMonthInput: void 0,
129
+ innerRefPrevMonthArrow: void 0
124
130
  };
125
131
  const withAnyInputs = type === import_ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === import_ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;
126
132
  const hideTimePicker = type !== import_ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL && type !== import_ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER && type !== import_ControlledDateTimePickerTypes.CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;
@@ -139,6 +145,8 @@ const getTimeFlags = (props) => {
139
145
  isWithTimeInputsOnly: withAnyInputs,
140
146
  autoFocusHourInput: withAnyInputs && autoFocus,
141
147
  autoFocusHourTimeWheel: isControllerOnly && autoFocus,
148
+ innerRefHourInput: withAnyInputs && innerRef,
149
+ innerRefHourTimeWheel: isControllerOnly && innerRef,
142
150
  shouldPreserveClearableSpace,
143
151
  withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
144
152
  ...constants
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/config/useGetFlags.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes';\nimport { getIsDateTime, getIsDate } from '../utils/typeGuards';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\nconst getDateTimeFlags = (props: DSControlledDateTimePickerT.InternalDateTimePickerProps) => {\n const { type, isClearable, dateTime, autoFocus } = props;\n const constants = {\n hideDatePicker: true,\n hideTimePicker: true,\n isDateSelector: false,\n isTimeSelector: false,\n isDateTimeSelector: true,\n isWithDateInputsOnly: false,\n isWithTimeInputsOnly: false,\n autoFocusHourInput: false,\n autoFocusHourTimeWheel: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL ||\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS;\n const hideDateTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const withAnyPicker = !hideDateTimePicker;\n const withClearBtn = withAnyInputs && isClearable && dateTime !== '' && dateTime !== '__/__/____ __:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideTime: !withAnyInputs,\n hideDateTimePicker,\n isControllerOnly,\n isWithTimeWheelToo: !hideDateTimePicker,\n isWithCalendarToo: !hideDateTimePicker,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithTimeInputs: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getDateFlags = (props: DSControlledDateTimePickerT.InternalDatePickerProps) => {\n const { type, isClearable, date, autoFocus } = props;\n\n const constants = {\n isDateSelector: true,\n hideTime: true,\n hideDateTimePicker: true,\n hideTimePicker: true,\n isTimeSelector: false,\n isDateTimeSelector: false,\n isWithCalendarToo: false,\n isWithTimeWheelToo: false,\n isWithTimeInputs: false,\n isWithTimeInputsOnly: false,\n autoFocusHourTimeWheel: false,\n autoFocusHourInput: false,\n };\n\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS;\n const hideDatePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n\n const withAnyPicker = !hideDatePicker;\n const withClearBtn = withAnyInputs && isClearable && date !== '' && date !== '__/__/____';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideDatePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithDateInputsOnly: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getTimeFlags = (props: DSControlledDateTimePickerT.InternalTimePickerProps) => {\n const { type, isClearable, time, autoFocus } = props;\n const constants = {\n hideDate: true,\n hideDateTimePicker: true,\n hideDatePicker: true,\n isDateSelector: false,\n isDateTimeSelector: false,\n isWithDateInputs: false,\n isWithDateInputsOnly: false,\n isTimeSelector: true,\n isWithTimeWheelToo: false,\n isWithCalendarToo: false,\n autoFocusMonthInput: false,\n autoFocusPrevMonthArrow: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;\n const hideTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const withClearBtn = withAnyInputs && isClearable && time !== '' && time !== '__:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const withAnyPicker = !hideTimePicker;\n const finalFlags = {\n hideTime: !withAnyInputs,\n hideTimePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithTimeInputs: withAnyInputs,\n isWithTimeInputsOnly: withAnyInputs,\n autoFocusHourInput: withAnyInputs && autoFocus,\n autoFocusHourTimeWheel: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\n\nexport const useGetFlags = (props: DSControlledDateTimePickerT.InternalProps) =>\n useMemo(() => {\n if (getIsDateTime(props)) {\n return getDateTimeFlags(props);\n }\n if (getIsDate(props)) {\n return getDateFlags(props);\n }\n return getTimeFlags(props);\n }, [props]);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes';\nimport { getIsDateTime, getIsDate } from '../utils/typeGuards';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\nconst getDateTimeFlags = (props: DSControlledDateTimePickerT.InternalDateTimePickerProps) => {\n const { type, isClearable, dateTime, autoFocus, innerRef } = props;\n const constants = {\n hideDatePicker: true,\n hideTimePicker: true,\n isDateSelector: false,\n isTimeSelector: false,\n isDateTimeSelector: true,\n isWithDateInputsOnly: false,\n isWithTimeInputsOnly: false,\n autoFocusHourInput: false,\n autoFocusHourTimeWheel: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL ||\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS;\n const hideDateTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const withAnyPicker = !hideDateTimePicker;\n const withClearBtn = withAnyInputs && isClearable && dateTime !== '' && dateTime !== '__/__/____ __:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideTime: !withAnyInputs,\n hideDateTimePicker,\n isControllerOnly,\n isWithTimeWheelToo: !hideDateTimePicker,\n isWithCalendarToo: !hideDateTimePicker,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithTimeInputs: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n innerRefMonthInput: withAnyInputs && innerRef,\n innerRefPrevMonthArrow: isControllerOnly && innerRef,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getDateFlags = (props: DSControlledDateTimePickerT.InternalDatePickerProps) => {\n const { type, isClearable, date, autoFocus, innerRef } = props;\n\n const constants = {\n isDateSelector: true,\n hideTime: true,\n hideDateTimePicker: true,\n hideTimePicker: true,\n isTimeSelector: false,\n isDateTimeSelector: false,\n isWithCalendarToo: false,\n isWithTimeWheelToo: false,\n isWithTimeInputs: false,\n isWithTimeInputsOnly: false,\n autoFocusHourTimeWheel: false,\n autoFocusHourInput: false,\n };\n\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS;\n const hideDatePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n\n const withAnyPicker = !hideDatePicker;\n const withClearBtn = withAnyInputs && isClearable && date !== '' && date !== '__/__/____';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideDatePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithDateInputsOnly: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n innerRefMonthInput: withAnyInputs && innerRef,\n innerRefPrevMonthArrow: isControllerOnly && innerRef,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getTimeFlags = (props: DSControlledDateTimePickerT.InternalTimePickerProps) => {\n const { type, isClearable, time, autoFocus, innerRef } = props;\n const constants = {\n hideDate: true,\n hideDateTimePicker: true,\n hideDatePicker: true,\n isDateSelector: false,\n isDateTimeSelector: false,\n isWithDateInputs: false,\n isWithDateInputsOnly: false,\n isTimeSelector: true,\n isWithTimeWheelToo: false,\n isWithCalendarToo: false,\n autoFocusMonthInput: false,\n autoFocusPrevMonthArrow: false,\n innerRefMonthInput: undefined,\n innerRefPrevMonthArrow: undefined,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;\n const hideTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const withClearBtn = withAnyInputs && isClearable && time !== '' && time !== '__:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const withAnyPicker = !hideTimePicker;\n const finalFlags = {\n hideTime: !withAnyInputs,\n hideTimePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithTimeInputs: withAnyInputs,\n isWithTimeInputsOnly: withAnyInputs,\n autoFocusHourInput: withAnyInputs && autoFocus,\n autoFocusHourTimeWheel: isControllerOnly && autoFocus,\n innerRefHourInput: withAnyInputs && innerRef,\n innerRefHourTimeWheel: isControllerOnly && innerRef,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\n\nexport const useGetFlags = (props: DSControlledDateTimePickerT.InternalProps) =>\n useMemo(() => {\n if (getIsDateTime(props)) {\n return getDateTimeFlags(props);\n }\n if (getIsDate(props)) {\n return getDateFlags(props);\n }\n return getTimeFlags(props);\n }, [props]);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -40,6 +40,7 @@ const DateInputs = () => {
40
40
  day,
41
41
  year,
42
42
  autoFocusMonthInput,
43
+ innerRefMonthInput,
43
44
  onMonthChange,
44
45
  onDayChange,
45
46
  onYearChange,
@@ -77,6 +78,7 @@ const DateInputs = () => {
77
78
  onKeyDown: onMonthKeyDown,
78
79
  value: month,
79
80
  contextRef: monthInputRef,
81
+ innerRef: innerRefMonthInput,
80
82
  autoFocusMonthInput,
81
83
  placeholder: "MM",
82
84
  ariaCurrentValueForInputs,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/DateInputs/DateInputs.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { MMInput } from './MMInput';\nimport { DDInput } from './DDInput';\nimport { YYYYInput } from './YYYYInput';\nimport { StyledFocusWithIn, StyledSeparator } from '../Styleds';\nimport { useDateInputs } from './useDateInputs';\nimport { fixedValues } from '../config';\n\nexport const DateInputs = (): JSX.Element => {\n const {\n month,\n day,\n year,\n autoFocusMonthInput,\n onMonthChange,\n onDayChange,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthFocus,\n onDayFocus,\n onYearFocus,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n disabled,\n } = useDateInputs();\n // we do this here so MMInput,DDInput,YYYYInput can be pure component memoized via React.memo\n const {\n monthInputRef,\n dayInputRef,\n yearInputRef,\n ariaCurrentValueForInputs,\n latestInteractionRegion,\n currFocusDescriber,\n } = useContext(ControlledDateTimePickerContext);\n\n return (\n <Grid\n cols={[\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.largeInputWidth,\n ]}\n >\n <StyledFocusWithIn>\n <MMInput\n onChange={onMonthChange}\n onBlur={onMonthBlur}\n onFocus={onMonthFocus}\n onKeyDown={onMonthKeyDown}\n value={month}\n contextRef={monthInputRef}\n autoFocusMonthInput={autoFocusMonthInput}\n placeholder=\"MM\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'month-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <DDInput\n onChange={onDayChange}\n onBlur={onDayBlur}\n onFocus={onDayFocus}\n onKeyDown={onDayKeyDown}\n value={day}\n contextRef={dayInputRef}\n placeholder=\"DD\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'day-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <YYYYInput\n onChange={onYearChange}\n onBlur={onYearBlur}\n onFocus={onYearFocus}\n onKeyDown={onYearKeyDown}\n value={year}\n contextRef={yearInputRef}\n placeholder=\"YYYY\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'year-input'}\n />\n </StyledFocusWithIn>\n </Grid>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,qBAAqB;AACrB,yCAAgD;AAChD,qBAAwB;AACxB,qBAAwB;AACxB,uBAA0B;AAC1B,qBAAmD;AACnD,2BAA8B;AAC9B,oBAA4B;AAErB,MAAM,aAAa,MAAmB;AAC3C,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,IACA;AAAA,IACA;AAAA,MACE,wCAAc;AAElB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,6BAAW,kEAA+B;AAE9C,SACE,mDAAC;AAAA,IACC,MAAM;AAAA,MACJ,0BAAY;AAAA,MACZ,0BAAY;AAAA,MACZ,0BAAY;AAAA,MACZ,0BAAY;AAAA,MACZ,0BAAY;AAAA,IACd;AAAA,KAEA,mDAAC,wCACC,mDAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,mDAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,mDAAC,wCACC,mDAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,mDAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,mDAAC,wCACC,mDAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,CACF;AAEJ;",
4
+ "sourcesContent": ["import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\n\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { MMInput } from './MMInput';\nimport { DDInput } from './DDInput';\nimport { YYYYInput } from './YYYYInput';\nimport { StyledFocusWithIn, StyledSeparator } from '../Styleds';\nimport { useDateInputs } from './useDateInputs';\nimport { fixedValues } from '../config';\n\nexport const DateInputs = (): JSX.Element => {\n const {\n month,\n day,\n year,\n autoFocusMonthInput,\n innerRefMonthInput,\n onMonthChange,\n onDayChange,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthFocus,\n onDayFocus,\n onYearFocus,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n disabled,\n } = useDateInputs();\n // we do this here so MMInput,DDInput,YYYYInput can be pure component memoized via React.memo\n const {\n monthInputRef,\n dayInputRef,\n yearInputRef,\n ariaCurrentValueForInputs,\n latestInteractionRegion,\n currFocusDescriber,\n } = useContext(ControlledDateTimePickerContext);\n\n return (\n <Grid\n cols={[\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.largeInputWidth,\n ]}\n >\n <StyledFocusWithIn>\n <MMInput\n onChange={onMonthChange}\n onBlur={onMonthBlur}\n onFocus={onMonthFocus}\n onKeyDown={onMonthKeyDown}\n value={month}\n contextRef={monthInputRef}\n innerRef={innerRefMonthInput}\n autoFocusMonthInput={autoFocusMonthInput}\n placeholder=\"MM\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'month-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <DDInput\n onChange={onDayChange}\n onBlur={onDayBlur}\n onFocus={onDayFocus}\n onKeyDown={onDayKeyDown}\n value={day}\n contextRef={dayInputRef}\n placeholder=\"DD\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'day-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <YYYYInput\n onChange={onYearChange}\n onBlur={onYearBlur}\n onFocus={onYearFocus}\n onKeyDown={onYearKeyDown}\n value={year}\n contextRef={yearInputRef}\n placeholder=\"YYYY\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'year-input'}\n />\n </StyledFocusWithIn>\n </Grid>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,qBAAqB;AAErB,yCAAgD;AAChD,qBAAwB;AACxB,qBAAwB;AACxB,uBAA0B;AAC1B,qBAAmD;AACnD,2BAA8B;AAC9B,oBAA4B;AAErB,MAAM,aAAa,MAAmB;AAC3C,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,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,wCAAc;AAElB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,6BAAW,kEAA+B;AAE9C,SACE,mDAAC;AAAA,IACC,MAAM;AAAA,MACJ,0BAAY;AAAA,MACZ,0BAAY;AAAA,MACZ,0BAAY;AAAA,MACZ,0BAAY;AAAA,MACZ,0BAAY;AAAA,IACd;AAAA,KAEA,mDAAC,wCACC,mDAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV;AAAA,IACA,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,mDAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,mDAAC,wCACC,mDAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,mDAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,mDAAC,wCACC,mDAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,CACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -26,6 +26,7 @@ __export(MMInput_exports, {
26
26
  module.exports = __toCommonJS(MMInput_exports);
27
27
  var React = __toESM(require("react"));
28
28
  var import_react = __toESM(require("react"));
29
+ var import_ds_utilities = require("@elliemae/ds-utilities");
29
30
  var import_Styleds = require("../Styleds");
30
31
  var import_ControlledDateTimePickerDatatestid = require("../../ControlledDateTimePickerDatatestid");
31
32
  const regExpNumbers = /^[0-9]+$/;
@@ -44,6 +45,7 @@ const MMInput = import_react.default.memo(({
44
45
  disabled,
45
46
  placeholder,
46
47
  contextRef,
48
+ innerRef,
47
49
  autoFocusMonthInput,
48
50
  ariaCurrentValueForInputs,
49
51
  isFocused
@@ -55,6 +57,17 @@ const MMInput = import_react.default.memo(({
55
57
  }
56
58
  onChange(e);
57
59
  }, [onChange]);
60
+ const handleRef = (0, import_react.useCallback)((DomElem) => {
61
+ contextRef.current = DomElem;
62
+ if (isFocused)
63
+ DomElem?.focus?.();
64
+ }, [contextRef, isFocused]);
65
+ const currentRef = (0, import_react.useMemo)(() => {
66
+ if (innerRef) {
67
+ return (0, import_ds_utilities.setMultipleRefs)([handleRef, innerRef]);
68
+ }
69
+ return handleRef;
70
+ }, [handleRef, innerRef]);
58
71
  return /* @__PURE__ */ import_react.default.createElement(import_Styleds.Styled2DigitsInput, {
59
72
  autoFocus: autoFocusMonthInput,
60
73
  onChange: validateOnChange,
@@ -62,11 +75,7 @@ const MMInput = import_react.default.memo(({
62
75
  onFocus,
63
76
  onKeyDown,
64
77
  value,
65
- ref: (DomElem) => {
66
- contextRef.current = DomElem;
67
- if (isFocused)
68
- DomElem?.focus?.();
69
- },
78
+ ref: currentRef,
70
79
  placeholder,
71
80
  "aria-label": `month input field, ${ariaCurrentValueForInputs}`,
72
81
  "data-testid": import_ControlledDateTimePickerDatatestid.ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/DateInputs/MMInput.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useCallback } from 'react';\nimport { Styled2DigitsInput } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\n\nconst regExpNumbers = /^[0-9]+$/;\nconst isInvalidMonth = (month: string) => {\n if (month === '') return false;\n const numberOnly = regExpNumbers.test(month);\n return month.length > 2 || month === '00' || !numberOnly || Number.parseInt(month, 10) > 12;\n};\ninterface MMInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n autoFocusMonthInput: boolean;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n isFocused: boolean;\n}\nexport const MMInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n contextRef,\n autoFocusMonthInput,\n ariaCurrentValueForInputs,\n isFocused,\n }: MMInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidMonth(e?.target?.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n return (\n <Styled2DigitsInput\n autoFocus={autoFocusMonthInput}\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n ref={(DomElem: HTMLInputElement) => {\n (contextRef as React.MutableRefObject<HTMLInputElement>).current = DomElem;\n if (isFocused) DomElem?.focus?.();\n }}\n placeholder={placeholder}\n aria-label={`month input field, ${ariaCurrentValueForInputs}`}\n data-testid={ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH}\n disabled={disabled}\n aria-disabled={disabled}\n />\n );\n },\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAmC;AACnC,qBAAmC;AACnC,gDAAmD;AAGnD,MAAM,gBAAgB;AACtB,MAAM,iBAAiB,CAAC,UAAkB;AACxC,MAAI,UAAU;AAAI,WAAO;AACzB,QAAM,aAAa,cAAc,KAAK,KAAK;AAC3C,SAAO,MAAM,SAAS,KAAK,UAAU,QAAQ,CAAC,cAAc,OAAO,SAAS,OAAO,EAAE,IAAI;AAC3F;AAcO,MAAM,UAAU,qBAAM,KAC3B,CAAC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACiC;AACjC,QAAM,mBAAmB,8BACvB,CAAC,MAA2C;AAC1C,QAAI,eAAe,GAAG,QAAQ,KAAK,GAAG;AACpC,QAAE,eAAe;AACjB;AAAA,IACF;AACA,aAAS,CAAC;AAAA,EACZ,GACA,CAAC,QAAQ,CACX;AACA,SACE,mDAAC;AAAA,IACC,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,CAAC,YAA8B;AAClC,MAAC,WAAwD,UAAU;AACnE,UAAI;AAAW,iBAAS,QAAQ;AAAA,IAClC;AAAA,IACA;AAAA,IACA,cAAY,sBAAsB;AAAA,IAClC,eAAa,6EAAmC,YAAY;AAAA,IAC5D;AAAA,IACA,iBAAe;AAAA,GACjB;AAEJ,CACF;",
4
+ "sourcesContent": ["import React, { useCallback, useMemo } from 'react';\nimport { setMultipleRefs } from '@elliemae/ds-utilities';\nimport { Styled2DigitsInput } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\n\nconst regExpNumbers = /^[0-9]+$/;\nconst isInvalidMonth = (month: string) => {\n if (month === '') return false;\n const numberOnly = regExpNumbers.test(month);\n return month.length > 2 || month === '00' || !numberOnly || Number.parseInt(month, 10) > 12;\n};\ninterface MMInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n autoFocusMonthInput: boolean;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n isFocused: boolean;\n innerRef: React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>;\n}\nexport const MMInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n contextRef,\n innerRef,\n autoFocusMonthInput,\n ariaCurrentValueForInputs,\n isFocused,\n }: MMInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidMonth(e?.target?.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n\n const handleRef = useCallback(\n (DomElem: HTMLInputElement) => {\n (contextRef as React.MutableRefObject<HTMLInputElement>).current = DomElem;\n if (isFocused) DomElem?.focus?.();\n },\n [contextRef, isFocused],\n );\n\n const currentRef = useMemo(() => {\n if (innerRef) {\n return setMultipleRefs([handleRef, innerRef]);\n }\n return handleRef;\n }, [handleRef, innerRef]);\n\n return (\n <Styled2DigitsInput\n autoFocus={autoFocusMonthInput}\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n ref={currentRef}\n placeholder={placeholder}\n aria-label={`month input field, ${ariaCurrentValueForInputs}`}\n data-testid={ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH}\n disabled={disabled}\n aria-disabled={disabled}\n />\n );\n },\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4C;AAC5C,0BAAgC;AAChC,qBAAmC;AACnC,gDAAmD;AAGnD,MAAM,gBAAgB;AACtB,MAAM,iBAAiB,CAAC,UAAkB;AACxC,MAAI,UAAU;AAAI,WAAO;AACzB,QAAM,aAAa,cAAc,KAAK,KAAK;AAC3C,SAAO,MAAM,SAAS,KAAK,UAAU,QAAQ,CAAC,cAAc,OAAO,SAAS,OAAO,EAAE,IAAI;AAC3F;AAeO,MAAM,UAAU,qBAAM,KAC3B,CAAC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACiC;AACjC,QAAM,mBAAmB,8BACvB,CAAC,MAA2C;AAC1C,QAAI,eAAe,GAAG,QAAQ,KAAK,GAAG;AACpC,QAAE,eAAe;AACjB;AAAA,IACF;AACA,aAAS,CAAC;AAAA,EACZ,GACA,CAAC,QAAQ,CACX;AAEA,QAAM,YAAY,8BAChB,CAAC,YAA8B;AAC7B,IAAC,WAAwD,UAAU;AACnE,QAAI;AAAW,eAAS,QAAQ;AAAA,EAClC,GACA,CAAC,YAAY,SAAS,CACxB;AAEA,QAAM,aAAa,0BAAQ,MAAM;AAC/B,QAAI,UAAU;AACZ,aAAO,yCAAgB,CAAC,WAAW,QAAQ,CAAC;AAAA,IAC9C;AACA,WAAO;AAAA,EACT,GAAG,CAAC,WAAW,QAAQ,CAAC;AAExB,SACE,mDAAC;AAAA,IACC,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA,cAAY,sBAAsB;AAAA,IAClC,eAAa,6EAAmC,YAAY;AAAA,IAC5D;AAAA,IACA,iBAAe;AAAA,GACjB;AAEJ,CACF;",
6
6
  "names": []
7
7
  }
@@ -47,6 +47,7 @@ const useDateInputs = () => {
47
47
  withAnyPicker,
48
48
  withAnyRightController,
49
49
  autoFocusMonthInput,
50
+ innerRefMonthInput,
50
51
  trackFocusResetter,
51
52
  trackFocusFirstSegment,
52
53
  trackFocusLastSegment,
@@ -305,6 +306,7 @@ const useDateInputs = () => {
305
306
  day,
306
307
  year,
307
308
  autoFocusMonthInput,
309
+ innerRefMonthInput,
308
310
  disabled,
309
311
  onMonthFocus,
310
312
  onMonthChange,
@@ -323,6 +325,7 @@ const useDateInputs = () => {
323
325
  day,
324
326
  year,
325
327
  autoFocusMonthInput,
328
+ innerRefMonthInput,
326
329
  disabled,
327
330
  onMonthFocus,
328
331
  onMonthChange,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/DateInputs/useDateInputs.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport {\n getFormattedDateString,\n prependStringWithPlaceHolders,\n fillStringWithPlaceHolders,\n} from '../../utils/stringHelpers';\nimport { getValidationDateStringMetaInfo } from '../../utils/dateHelpers';\nimport { defaultMetaInfo } from '../../utils/constants';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\nimport type { DSControlledDateTimePickerT } from '../../propTypes';\n\nexport const useDateInputs = (): DSControlledDateTimePickerInternalsT.UseDateInputsR => {\n const {\n props: { disabled },\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n month,\n day,\n year,\n hideTime,\n handleChangeComposedDateString,\n withClearBtn,\n withAnyPicker,\n withAnyRightController,\n autoFocusMonthInput,\n trackFocusResetter,\n trackFocusFirstSegment,\n trackFocusLastSegment,\n trackFocusDayInput,\n trackFocusMonthInput,\n trackFocusYearInput,\n trackFocusHourInput,\n trackFocusClearBtn,\n trackFocusPicker,\n } = useContext(ControlledDateTimePickerContext);\n\n const onHomeKeyDown = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const onEndKeyDown = useCallback(() => {\n trackFocusLastSegment();\n }, [trackFocusLastSegment]);\n\n const handleChangeMonth = useCallback(\n (\n newMonth: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onMonthFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusMonthInput();\n }, [trackFocusMonthInput]);\n const onMonthChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newMonth = e?.target?.value;\n // converts months 2~9 to 02~09\n if (Number.parseInt(newMonth, 10) > 1) newMonth = prependStringWithPlaceHolders(newMonth, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n },\n [handleChangeMonth, trackFocusDayInput],\n );\n const onMonthKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const monthStringConvertedToInteger = Number.parseInt(month, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;\n let newMonth;\n if (key === 'ArrowUp') newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;\n else newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;\n newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);\n handleChangeMonth(newMonth, e);\n }\n if (!Number.isNaN(monthStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n }\n\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth],\n );\n const onMonthBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newMonth = e?.target?.value;\n if (newMonth === '0') handleChangeMonth('01', e, { isAutomaticFillTrigger: true });\n else if (newMonth.length > 0 && newMonth.length < 2)\n handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeMonth],\n );\n\n const handleChangeDay = useCallback(\n (\n newDay: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onDayFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusDayInput();\n }, [trackFocusDayInput]);\n const onDayChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newDay = e?.target?.value;\n // converts days 4~9 to 04~09\n if (Number.parseInt(newDay, 10) > 3) newDay = prependStringWithPlaceHolders(newDay, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n },\n [handleChangeDay, trackFocusYearInput],\n );\n const onDayKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const dayStringConvertedToInteger = Number.parseInt(day, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;\n let newDay;\n if (key === 'ArrowUp') newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;\n else newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;\n newDay = prependStringWithPlaceHolders(`${newDay}`, 2);\n handleChangeDay(newDay, e);\n }\n if (!Number.isNaN(dayStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n }\n // regressive backspace functionality\n if (key === 'Backspace' && day?.length === 0) {\n trackFocusMonthInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n day,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n handleChangeDay,\n trackFocusYearInput,\n trackFocusMonthInput,\n ],\n );\n const onDayBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newDay = e?.target?.value;\n if (newDay === '0') handleChangeDay('01', e, { isAutomaticFillTrigger: true });\n else if (newDay.length > 0 && newDay.length < 2)\n handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeDay],\n );\n\n const handleChangeYear = useCallback(\n (\n newYear: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 const onYearFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusYearInput();\n }, [trackFocusYearInput]);\n const onYearChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n const newYear = e?.target?.value;\n handleChangeYear(newYear, e);\n // auto-advance functionality:\n if (newYear.length === 4) {\n if (!hideTime) trackFocusHourInput();\n else if (withAnyRightController) {\n if (withClearBtn) trackFocusClearBtn();\n else if (withAnyPicker) trackFocusPicker();\n // pending approval from Seda, check which one should be focused first...\n }\n }\n },\n [\n handleChangeYear,\n hideTime,\n trackFocusHourInput,\n withAnyRightController,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n ],\n );\n const onYearKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n\n /* ****** New year value calculator logic ********* */\n const yearStringConvertedToInteger = Number.parseInt(year, 10);\n const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;\n let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, '0') : '';\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n let newYearInteger;\n if (key === 'ArrowUp') newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;\n else newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;\n newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);\n }\n const isAutomaticFillTrigger = newYear !== year && ['Tab', ' '].includes(key);\n const metainfo = { isAutomaticFillTrigger };\n\n /* ************* new year apply logic ************* */\n // tab/spacebar applies auto-fill\n // arrows up/down applies increment/decrement\n if (key === 'ArrowUp' || key === 'ArrowDown' || isAutomaticFillTrigger) {\n handleChangeYear(newYear, e, metainfo);\n }\n\n /* ************* focus tracking logic ************* */\n let trackNextFocus = trackFocusResetter; // if nothing after, we reset internal focus tracker to avoid re-render unexpected focus shift\n if (!hideTime) trackNextFocus = trackFocusHourInput;\n else if (withClearBtn) trackNextFocus = trackFocusClearBtn;\n else if (withAnyPicker) trackNextFocus = trackFocusPicker;\n\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n\n /* ************** auto-advance logic ************** */\n if (key === ' ') {\n // auto-advance functionality:\n trackNextFocus();\n }\n /* ********** regressive backspace logic ********** */\n if (key === 'Backspace' && year?.length === 0) {\n trackFocusDayInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n year,\n trackFocusResetter,\n hideTime,\n trackFocusHourInput,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n trackFocusDayInput,\n handleChangeYear,\n ],\n );\n const onYearBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(() => {\n // this was used before, now that we have a wrapping onBlur resetting the focus tracker, this is unused;\n }, []);\n\n return useMemo(\n () => ({\n month,\n day,\n year,\n autoFocusMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n }),\n [\n month,\n day,\n year,\n autoFocusMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport {\n getFormattedDateString,\n prependStringWithPlaceHolders,\n fillStringWithPlaceHolders,\n} from '../../utils/stringHelpers';\nimport { getValidationDateStringMetaInfo } from '../../utils/dateHelpers';\nimport { defaultMetaInfo } from '../../utils/constants';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\nimport type { DSControlledDateTimePickerT } from '../../propTypes';\n\nexport const useDateInputs = (): DSControlledDateTimePickerInternalsT.UseDateInputsR => {\n const {\n props: { disabled },\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n month,\n day,\n year,\n hideTime,\n handleChangeComposedDateString,\n withClearBtn,\n withAnyPicker,\n withAnyRightController,\n autoFocusMonthInput,\n innerRefMonthInput,\n trackFocusResetter,\n trackFocusFirstSegment,\n trackFocusLastSegment,\n trackFocusDayInput,\n trackFocusMonthInput,\n trackFocusYearInput,\n trackFocusHourInput,\n trackFocusClearBtn,\n trackFocusPicker,\n } = useContext(ControlledDateTimePickerContext);\n\n const onHomeKeyDown = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const onEndKeyDown = useCallback(() => {\n trackFocusLastSegment();\n }, [trackFocusLastSegment]);\n\n const handleChangeMonth = useCallback(\n (\n newMonth: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onMonthFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusMonthInput();\n }, [trackFocusMonthInput]);\n const onMonthChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newMonth = e?.target?.value;\n // converts months 2~9 to 02~09\n if (Number.parseInt(newMonth, 10) > 1) newMonth = prependStringWithPlaceHolders(newMonth, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n },\n [handleChangeMonth, trackFocusDayInput],\n );\n const onMonthKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const monthStringConvertedToInteger = Number.parseInt(month, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;\n let newMonth;\n if (key === 'ArrowUp') newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;\n else newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;\n newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);\n handleChangeMonth(newMonth, e);\n }\n if (!Number.isNaN(monthStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n }\n\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth],\n );\n const onMonthBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newMonth = e?.target?.value;\n if (newMonth === '0') handleChangeMonth('01', e, { isAutomaticFillTrigger: true });\n else if (newMonth.length > 0 && newMonth.length < 2)\n handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeMonth],\n );\n\n const handleChangeDay = useCallback(\n (\n newDay: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onDayFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusDayInput();\n }, [trackFocusDayInput]);\n const onDayChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newDay = e?.target?.value;\n // converts days 4~9 to 04~09\n if (Number.parseInt(newDay, 10) > 3) newDay = prependStringWithPlaceHolders(newDay, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n },\n [handleChangeDay, trackFocusYearInput],\n );\n const onDayKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const dayStringConvertedToInteger = Number.parseInt(day, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;\n let newDay;\n if (key === 'ArrowUp') newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;\n else newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;\n newDay = prependStringWithPlaceHolders(`${newDay}`, 2);\n handleChangeDay(newDay, e);\n }\n if (!Number.isNaN(dayStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n }\n // regressive backspace functionality\n if (key === 'Backspace' && day?.length === 0) {\n trackFocusMonthInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n day,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n handleChangeDay,\n trackFocusYearInput,\n trackFocusMonthInput,\n ],\n );\n const onDayBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newDay = e?.target?.value;\n if (newDay === '0') handleChangeDay('01', e, { isAutomaticFillTrigger: true });\n else if (newDay.length > 0 && newDay.length < 2)\n handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeDay],\n );\n\n const handleChangeYear = useCallback(\n (\n newYear: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 const onYearFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusYearInput();\n }, [trackFocusYearInput]);\n const onYearChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n const newYear = e?.target?.value;\n handleChangeYear(newYear, e);\n // auto-advance functionality:\n if (newYear.length === 4) {\n if (!hideTime) trackFocusHourInput();\n else if (withAnyRightController) {\n if (withClearBtn) trackFocusClearBtn();\n else if (withAnyPicker) trackFocusPicker();\n // pending approval from Seda, check which one should be focused first...\n }\n }\n },\n [\n handleChangeYear,\n hideTime,\n trackFocusHourInput,\n withAnyRightController,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n ],\n );\n const onYearKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n\n /* ****** New year value calculator logic ********* */\n const yearStringConvertedToInteger = Number.parseInt(year, 10);\n const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;\n let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, '0') : '';\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n let newYearInteger;\n if (key === 'ArrowUp') newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;\n else newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;\n newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);\n }\n const isAutomaticFillTrigger = newYear !== year && ['Tab', ' '].includes(key);\n const metainfo = { isAutomaticFillTrigger };\n\n /* ************* new year apply logic ************* */\n // tab/spacebar applies auto-fill\n // arrows up/down applies increment/decrement\n if (key === 'ArrowUp' || key === 'ArrowDown' || isAutomaticFillTrigger) {\n handleChangeYear(newYear, e, metainfo);\n }\n\n /* ************* focus tracking logic ************* */\n let trackNextFocus = trackFocusResetter; // if nothing after, we reset internal focus tracker to avoid re-render unexpected focus shift\n if (!hideTime) trackNextFocus = trackFocusHourInput;\n else if (withClearBtn) trackNextFocus = trackFocusClearBtn;\n else if (withAnyPicker) trackNextFocus = trackFocusPicker;\n\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n\n /* ************** auto-advance logic ************** */\n if (key === ' ') {\n // auto-advance functionality:\n trackNextFocus();\n }\n /* ********** regressive backspace logic ********** */\n if (key === 'Backspace' && year?.length === 0) {\n trackFocusDayInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n year,\n trackFocusResetter,\n hideTime,\n trackFocusHourInput,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n trackFocusDayInput,\n handleChangeYear,\n ],\n );\n const onYearBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(() => {\n // this was used before, now that we have a wrapping onBlur resetting the focus tracker, this is unused;\n }, []);\n\n return useMemo(\n () => ({\n month,\n day,\n year,\n autoFocusMonthInput,\n innerRefMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n }),\n [\n month,\n day,\n year,\n autoFocusMonthInput,\n innerRefMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/propTypes.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { WeakValidationMap } from 'react';\nimport { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\nconst defaultReturnFalse = (): false => false;\nexport declare namespace DSControlledDateTimePickerT {\n export type OnInternalValuesChangeEvent =\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLButtonElement>\n | React.KeyboardEvent\n | React.MouseEvent<HTMLInputElement>\n | React.MouseEvent<HTMLButtonElement>;\n export type ControlTypes =\n | 'full-date-time'\n | 'date-time-inputs'\n | 'date-time-picker'\n | 'date-time-picker-controller-only'\n | 'full-date'\n | 'date-inputs'\n | 'date-picker'\n | 'date-picker-controller-only'\n | 'full-time'\n | 'time-inputs'\n | 'time-picker'\n | 'time-picker-controller-only';\n export interface InternalInputsChangeMetaInfo {\n isAutomaticFillTrigger?: boolean;\n isDayPresentInMonth?: boolean;\n isOutOfRangeDay?: boolean;\n isDisabledDay?: boolean;\n isDisabledTime?: boolean;\n suggestedErrorMsg?: string;\n newDateTimeString?: string;\n newDateString?: string;\n newTimeString?: string;\n }\n\n export type OnDateChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnDateTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnInternalInputsChange = (\n val: string,\n e: OnInternalValuesChangeEvent,\n metaInfo?: InternalInputsChangeMetaInfo,\n ) => void;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ DATE CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n export interface DefaultDateProps {\n onMonthChange: OnInternalInputsChange;\n onDayChange: OnInternalInputsChange;\n onYearChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledDay: BooleanGetter<string>;\n getIsOutOfRangeDay: BooleanGetter<string>;\n getIsStartRangeDay: BooleanGetter<string>;\n getIsDayInRange: BooleanGetter<string>;\n getIsEndRangeDay: BooleanGetter<string>;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalDatePickerProps {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n pickerFooterMsg?: string;\n }\n export interface RequiredDatePickerProps {\n type: 'full-date' | 'date-inputs' | 'date-picker' | 'date-picker-controller-only';\n date: string;\n onDateChange: OnDateChange;\n }\n export type DatePickerProps = OptionalDatePickerProps & Partial<DefaultDateProps> & RequiredDatePickerProps;\n export type InternalDatePickerProps = OptionalDatePickerProps & DefaultDateProps & RequiredDatePickerProps;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ TIME CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n\n export interface DefaultTimeProps {\n onHourChange: OnInternalInputsChange;\n onMinuteChange: OnInternalInputsChange;\n onMeridiemChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledTime: BooleanGetter<string>;\n minutesInterval: number;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalTimePickerProps {\n pickerFooterMsg?: string;\n onTimeWheelOpenStartingTime?: string;\n }\n export interface RequiredTimePickerProps {\n type: 'full-time' | 'time-inputs' | 'time-picker' | 'time-picker-controller-only';\n time: string;\n onTimeChange: OnTimeChange;\n }\n export type TimePickerProps = OptionalTimePickerProps & Partial<DefaultTimeProps> & RequiredTimePickerProps;\n export type InternalTimePickerProps = OptionalTimePickerProps & DefaultTimeProps & RequiredTimePickerProps;\n\n /* -------------------- ---------------------- ------------------------*/\n /* -------------------- DATETIME CONFIGURATION ------------------------*/\n /* -------------------- ---------------------- ------------------------*/\n\n export type DefaultDateTimeProps = DefaultTimeProps &\n DefaultDateProps & {\n onDateChange: OnDateChange;\n onTimeChange: OnTimeChange;\n };\n export type OptionalDateTimeProps = OptionalTimePickerProps & OptionalDatePickerProps;\n export interface RequiredDateTimeProps {\n type: 'full-date-time' | 'date-time-inputs' | 'date-time-picker' | 'date-time-picker-controller-only';\n dateTime: string;\n onDateTimeChange: OnDateTimeChange;\n }\n\n export type DateTimePickerProps = Partial<DefaultDateTimeProps> & OptionalDateTimeProps & RequiredDateTimeProps;\n export type InternalDateTimePickerProps = DefaultDateTimeProps & OptionalDateTimeProps & RequiredDateTimeProps;\n\n /* ---------------------- ------------------- -------------------------*/\n /* ---------------------- FINAL CONFIGURATION -------------------------*/\n /* ---------------------- ------------------- -------------------------*/\n export type DefaultProps = DefaultDateTimeProps & { type: 'full-date-time' };\n export type Props = DateTimePickerProps | DatePickerProps | TimePickerProps;\n export type InternalProps = InternalDateTimePickerProps | InternalDatePickerProps | InternalTimePickerProps;\n}\n\nexport const defaultProps: DSControlledDateTimePickerT.DefaultProps = {\n type: 'full-date-time',\n onDateChange: noop,\n onMonthChange: noop,\n onDayChange: noop,\n onYearChange: noop,\n onTimeChange: noop,\n onHourChange: noop,\n onMinuteChange: noop,\n onMeridiemChange: noop,\n onPickerOpen: noop,\n onPickerClose: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n getIsStartRangeDay: defaultReturnFalse,\n getIsDayInRange: defaultReturnFalse,\n getIsEndRangeDay: defaultReturnFalse,\n getIsDisabledTime: defaultReturnFalse,\n minutesInterval: 1,\n isClearable: false,\n disabled: false,\n hasError: false,\n autoFocus: false,\n preventCloseOnSelection: false,\n};\n\nexport const propTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-time',\n 'date-time-inputs',\n 'date-time-picker',\n 'date-time-picker-controller-only',\n 'full-date',\n 'date-inputs',\n 'date-picker',\n 'date-picker-controller-only',\n 'full-time',\n 'time-inputs',\n 'time-picker',\n 'time-picker-controller-only',\n ])\n .description('Type of time form control to use')\n .defaultValue('full-date-time'),\n disabled: PropTypes.bool.description('wheter or not the input is disabled').defaultValue(false),\n isClearable: PropTypes.bool.description('with or without clearable button').defaultValue(false),\n dateTime: PropTypes.string.description('when using date-time types, this is the value of the controller'),\n date: PropTypes.string.description('when using date types, this is the value of the controller'),\n time: PropTypes.string.description('when using time types, this is the value of the controller'),\n onDateChange: PropTypes.func.description('(newDateString, metaInformations) => void'),\n onTimeChange: PropTypes.func.description('(newTimeString, metaInformations) => void'),\n onDateTimeChange: PropTypes.func.description('(newDateTimeString, metaInformations) => void'),\n onMonthChange: PropTypes.func.description('(newMonthString, event, metaInformations) => void'),\n onDayChange: PropTypes.func.description('(newDayString, event, metaInformations) => void'),\n onYearChange: PropTypes.func.description('(newYearString, event, metaInformations) => void'),\n onHourChange: PropTypes.func.description('(newHourString, event, metaInformations) => void'),\n onMinuteChange: PropTypes.func.description('(newMinuteString, event, metaInformations) => void'),\n onMeridiemChange: PropTypes.func.description('(newMeridiemString, event, metaInformations) => void'),\n getIsDisabledDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsOutOfRangeDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsDisabledTime: PropTypes.func.description(\n '(timeAsString) => true for marking as disabled, false for marking as valid',\n ),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'which month to start the calendar on open, when value is empty, string following the \"MM/__/YYYY\" pattern',\n ),\n onCalendarOpenFocusedDay: PropTypes.string\n .description('which day to focus on calendar open when value is empty, string following the \"MM/DD/YYYY\" pattern')\n .defaultValue('if value is empty current month, else current month'),\n onTimeWheelOpenStartingTime: PropTypes.string\n .description(\n 'which day to start the timewheel on picker open when value is empty, string following the HH:MM AA\" pattern',\n )\n .defaultValue('01:00 AM'),\n minutesInterval: PropTypes.number\n .description('increments/decrements of minutes in time related controllers interactions')\n .defaultValue('1'),\n 'data-testid': PropTypes.string.description('Unique id for tests.').defaultValue(''),\n} as WeakValidationMap<unknown>;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,0BAAuE;AAGvE,MAAM,OAAO,MAAY;AAAC;AAC1B,MAAM,qBAAqB,MAAa;AAqIjC,MAAM,eAAyD;AAAA,EACpE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,yBAAyB;AAC3B;AAEO,MAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,8BAAU,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACE,YAAY,kCAAkC,EAC9C,aAAa,gBAAgB;AAAA,EAChC,UAAU,8BAAU,KAAK,YAAY,qCAAqC,EAAE,aAAa,KAAK;AAAA,EAC9F,aAAa,8BAAU,KAAK,YAAY,kCAAkC,EAAE,aAAa,KAAK;AAAA,EAC9F,UAAU,8BAAU,OAAO,YAAY,iEAAiE;AAAA,EACxG,MAAM,8BAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,MAAM,8BAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,cAAc,8BAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,cAAc,8BAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,kBAAkB,8BAAU,KAAK,YAAY,+CAA+C;AAAA,EAC5F,eAAe,8BAAU,KAAK,YAAY,mDAAmD;AAAA,EAC7F,aAAa,8BAAU,KAAK,YAAY,iDAAiD;AAAA,EACzF,cAAc,8BAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,cAAc,8BAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,gBAAgB,8BAAU,KAAK,YAAY,oDAAoD;AAAA,EAC/F,kBAAkB,8BAAU,KAAK,YAAY,sDAAsD;AAAA,EACnG,kBAAkB,8BAAU,KAAK,YAC/B,2EACF;AAAA,EACA,oBAAoB,8BAAU,KAAK,YACjC,2EACF;AAAA,EACA,mBAAmB,8BAAU,KAAK,YAChC,4EACF;AAAA,EACA,0BAA0B,8BAAU,OAAO,YACzC,2GACF;AAAA,EACA,0BAA0B,8BAAU,OACjC,YAAY,oGAAoG,EAChH,aAAa,qDAAqD;AAAA,EACrE,6BAA6B,8BAAU,OACpC,YACC,6GACF,EACC,aAAa,UAAU;AAAA,EAC1B,iBAAiB,8BAAU,OACxB,YAAY,2EAA2E,EACvF,aAAa,GAAG;AAAA,EACnB,eAAe,8BAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,EAAE;AACrF;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { WeakValidationMap } from 'react';\nimport { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\nconst defaultReturnFalse = (): false => false;\nexport declare namespace DSControlledDateTimePickerT {\n export type OnInternalValuesChangeEvent =\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLButtonElement>\n | React.KeyboardEvent\n | React.MouseEvent<HTMLInputElement>\n | React.MouseEvent<HTMLButtonElement>;\n export type ControlTypes =\n | 'full-date-time'\n | 'date-time-inputs'\n | 'date-time-picker'\n | 'date-time-picker-controller-only'\n | 'full-date'\n | 'date-inputs'\n | 'date-picker'\n | 'date-picker-controller-only'\n | 'full-time'\n | 'time-inputs'\n | 'time-picker'\n | 'time-picker-controller-only';\n export interface InternalInputsChangeMetaInfo {\n isAutomaticFillTrigger?: boolean;\n isDayPresentInMonth?: boolean;\n isOutOfRangeDay?: boolean;\n isDisabledDay?: boolean;\n isDisabledTime?: boolean;\n suggestedErrorMsg?: string;\n newDateTimeString?: string;\n newDateString?: string;\n newTimeString?: string;\n }\n\n export type OnDateChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnDateTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnInternalInputsChange = (\n val: string,\n e: OnInternalValuesChangeEvent,\n metaInfo?: InternalInputsChangeMetaInfo,\n ) => void;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ DATE CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n export interface DefaultDateProps {\n onMonthChange: OnInternalInputsChange;\n onDayChange: OnInternalInputsChange;\n onYearChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledDay: BooleanGetter<string>;\n getIsOutOfRangeDay: BooleanGetter<string>;\n getIsStartRangeDay: BooleanGetter<string>;\n getIsDayInRange: BooleanGetter<string>;\n getIsEndRangeDay: BooleanGetter<string>;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalDatePickerProps {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n pickerFooterMsg?: string;\n innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement>;\n }\n export interface RequiredDatePickerProps {\n type: 'full-date' | 'date-inputs' | 'date-picker' | 'date-picker-controller-only';\n date: string;\n onDateChange: OnDateChange;\n }\n export type DatePickerProps = OptionalDatePickerProps & Partial<DefaultDateProps> & RequiredDatePickerProps;\n export type InternalDatePickerProps = OptionalDatePickerProps & DefaultDateProps & RequiredDatePickerProps;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ TIME CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n\n export interface DefaultTimeProps {\n onHourChange: OnInternalInputsChange;\n onMinuteChange: OnInternalInputsChange;\n onMeridiemChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledTime: BooleanGetter<string>;\n minutesInterval: number;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalTimePickerProps {\n pickerFooterMsg?: string;\n onTimeWheelOpenStartingTime?: string;\n innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement>;\n }\n export interface RequiredTimePickerProps {\n type: 'full-time' | 'time-inputs' | 'time-picker' | 'time-picker-controller-only';\n time: string;\n onTimeChange: OnTimeChange;\n }\n export type TimePickerProps = OptionalTimePickerProps & Partial<DefaultTimeProps> & RequiredTimePickerProps;\n export type InternalTimePickerProps = OptionalTimePickerProps & DefaultTimeProps & RequiredTimePickerProps;\n\n /* -------------------- ---------------------- ------------------------*/\n /* -------------------- DATETIME CONFIGURATION ------------------------*/\n /* -------------------- ---------------------- ------------------------*/\n\n export type DefaultDateTimeProps = DefaultTimeProps &\n DefaultDateProps & {\n onDateChange: OnDateChange;\n onTimeChange: OnTimeChange;\n };\n export type OptionalDateTimeProps = OptionalTimePickerProps & OptionalDatePickerProps;\n export interface RequiredDateTimeProps {\n type: 'full-date-time' | 'date-time-inputs' | 'date-time-picker' | 'date-time-picker-controller-only';\n dateTime: string;\n onDateTimeChange: OnDateTimeChange;\n }\n\n export type DateTimePickerProps = Partial<DefaultDateTimeProps> & OptionalDateTimeProps & RequiredDateTimeProps;\n export type InternalDateTimePickerProps = DefaultDateTimeProps & OptionalDateTimeProps & RequiredDateTimeProps;\n\n /* ---------------------- ------------------- -------------------------*/\n /* ---------------------- FINAL CONFIGURATION -------------------------*/\n /* ---------------------- ------------------- -------------------------*/\n export type DefaultProps = DefaultDateTimeProps & { type: 'full-date-time' };\n export type Props = DateTimePickerProps | DatePickerProps | TimePickerProps;\n export type InternalProps = InternalDateTimePickerProps | InternalDatePickerProps | InternalTimePickerProps;\n}\n\nexport const defaultProps: DSControlledDateTimePickerT.DefaultProps = {\n type: 'full-date-time',\n onDateChange: noop,\n onMonthChange: noop,\n onDayChange: noop,\n onYearChange: noop,\n onTimeChange: noop,\n onHourChange: noop,\n onMinuteChange: noop,\n onMeridiemChange: noop,\n onPickerOpen: noop,\n onPickerClose: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n getIsStartRangeDay: defaultReturnFalse,\n getIsDayInRange: defaultReturnFalse,\n getIsEndRangeDay: defaultReturnFalse,\n getIsDisabledTime: defaultReturnFalse,\n minutesInterval: 1,\n isClearable: false,\n disabled: false,\n hasError: false,\n autoFocus: false,\n preventCloseOnSelection: false,\n};\n\nexport const propTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-time',\n 'date-time-inputs',\n 'date-time-picker',\n 'date-time-picker-controller-only',\n 'full-date',\n 'date-inputs',\n 'date-picker',\n 'date-picker-controller-only',\n 'full-time',\n 'time-inputs',\n 'time-picker',\n 'time-picker-controller-only',\n ])\n .description('Type of time form control to use')\n .defaultValue('full-date-time'),\n disabled: PropTypes.bool.description('wheter or not the input is disabled').defaultValue(false),\n isClearable: PropTypes.bool.description('with or without clearable button').defaultValue(false),\n dateTime: PropTypes.string.description('when using date-time types, this is the value of the controller'),\n date: PropTypes.string.description('when using date types, this is the value of the controller'),\n time: PropTypes.string.description('when using time types, this is the value of the controller'),\n onDateChange: PropTypes.func.description('(newDateString, metaInformations) => void'),\n onTimeChange: PropTypes.func.description('(newTimeString, metaInformations) => void'),\n onDateTimeChange: PropTypes.func.description('(newDateTimeString, metaInformations) => void'),\n onMonthChange: PropTypes.func.description('(newMonthString, event, metaInformations) => void'),\n onDayChange: PropTypes.func.description('(newDayString, event, metaInformations) => void'),\n onYearChange: PropTypes.func.description('(newYearString, event, metaInformations) => void'),\n onHourChange: PropTypes.func.description('(newHourString, event, metaInformations) => void'),\n onMinuteChange: PropTypes.func.description('(newMinuteString, event, metaInformations) => void'),\n onMeridiemChange: PropTypes.func.description('(newMeridiemString, event, metaInformations) => void'),\n getIsDisabledDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsOutOfRangeDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsDisabledTime: PropTypes.func.description(\n '(timeAsString) => true for marking as disabled, false for marking as valid',\n ),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'which month to start the calendar on open, when value is empty, string following the \"MM/__/YYYY\" pattern',\n ),\n onCalendarOpenFocusedDay: PropTypes.string\n .description('which day to focus on calendar open when value is empty, string following the \"MM/DD/YYYY\" pattern')\n .defaultValue('if value is empty current month, else current month'),\n onTimeWheelOpenStartingTime: PropTypes.string\n .description(\n 'which day to start the timewheel on picker open when value is empty, string following the HH:MM AA\" pattern',\n )\n .defaultValue('01:00 AM'),\n minutesInterval: PropTypes.number\n .description('increments/decrements of minutes in time related controllers interactions')\n .defaultValue('1'),\n 'data-testid': PropTypes.string.description('Unique id for tests.').defaultValue(''),\n} as WeakValidationMap<unknown>;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,0BAAuE;AAGvE,MAAM,OAAO,MAAY;AAAC;AAC1B,MAAM,qBAAqB,MAAa;AAuIjC,MAAM,eAAyD;AAAA,EACpE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,yBAAyB;AAC3B;AAEO,MAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,8BAAU,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACE,YAAY,kCAAkC,EAC9C,aAAa,gBAAgB;AAAA,EAChC,UAAU,8BAAU,KAAK,YAAY,qCAAqC,EAAE,aAAa,KAAK;AAAA,EAC9F,aAAa,8BAAU,KAAK,YAAY,kCAAkC,EAAE,aAAa,KAAK;AAAA,EAC9F,UAAU,8BAAU,OAAO,YAAY,iEAAiE;AAAA,EACxG,MAAM,8BAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,MAAM,8BAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,cAAc,8BAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,cAAc,8BAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,kBAAkB,8BAAU,KAAK,YAAY,+CAA+C;AAAA,EAC5F,eAAe,8BAAU,KAAK,YAAY,mDAAmD;AAAA,EAC7F,aAAa,8BAAU,KAAK,YAAY,iDAAiD;AAAA,EACzF,cAAc,8BAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,cAAc,8BAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,gBAAgB,8BAAU,KAAK,YAAY,oDAAoD;AAAA,EAC/F,kBAAkB,8BAAU,KAAK,YAAY,sDAAsD;AAAA,EACnG,kBAAkB,8BAAU,KAAK,YAC/B,2EACF;AAAA,EACA,oBAAoB,8BAAU,KAAK,YACjC,2EACF;AAAA,EACA,mBAAmB,8BAAU,KAAK,YAChC,4EACF;AAAA,EACA,0BAA0B,8BAAU,OAAO,YACzC,2GACF;AAAA,EACA,0BAA0B,8BAAU,OACjC,YAAY,oGAAoG,EAChH,aAAa,qDAAqD;AAAA,EACrE,6BAA6B,8BAAU,OACpC,YACC,6GACF,EACC,aAAa,UAAU;AAAA,EAC1B,iBAAiB,8BAAU,OACxB,YAAY,2EAA2E,EACvF,aAAa,GAAG;AAAA,EACnB,eAAe,8BAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,EAAE;AACrF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/sharedTypes.ts", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport type { DSControlledDateTimePickerT } from './propTypes';\n\nexport declare namespace DSControlledDateTimePickerInternalsT {\n export type DateDay =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n | 26\n | 27\n | 28\n | 29\n | 30\n | 31;\n export type DateMonth = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\n export interface MetaMonthDay {\n day: Date;\n dayAsString: string;\n isPrevMonthDay: boolean;\n isNextMonthDay: boolean;\n isCurrMonthDay: boolean;\n isHidden: boolean;\n dayBtnRef: React.MutableRefObject<HTMLButtonElement>;\n }\n export type OnKeyDown<HTMLT = HTMLInputElement> = (e: React.KeyboardEvent<HTMLT>) => void;\n export type OnChangeFunc = (e: React.ChangeEvent<HTMLInputElement>) => void;\n export type OnDSBtnClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement> | React.KeyboardEvent,\n ) => void;\n export type HandleOnChangeFunc = (\n newVal: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo?: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ) => void;\n export type OnBlurFunc = (e: React.FocusEvent<HTMLInputElement>) => void;\n export type OnFocusFunc = (e: React.FocusEvent<HTMLInputElement>) => void;\n\n export interface UseDateInputsR {\n month: string;\n day: string;\n year: string;\n autoFocusMonthInput: boolean;\n disabled: boolean;\n onMonthChange: OnChangeFunc;\n onDayChange: OnChangeFunc;\n onYearChange: OnChangeFunc;\n onMonthFocus: OnFocusFunc;\n onDayFocus: OnFocusFunc;\n onYearFocus: OnFocusFunc;\n onMonthBlur: OnBlurFunc;\n onDayBlur: OnBlurFunc;\n onYearBlur: OnBlurFunc;\n onMonthKeyDown: OnKeyDown;\n onDayKeyDown: OnKeyDown;\n onYearKeyDown: OnKeyDown;\n }\n export interface InputsReferences {\n monthInputRef: React.RefObject<HTMLInputElement>;\n dayInputRef: React.RefObject<HTMLInputElement>;\n yearInputRef: React.RefObject<HTMLInputElement>;\n hourInputRef: React.RefObject<HTMLInputElement>;\n minutesInputRef: React.RefObject<HTMLInputElement>;\n meridiemInputRef: React.RefObject<HTMLInputElement>;\n clearButtonRef: React.MutableRefObject<HTMLButtonElement>;\n pickerButtonRef: React.MutableRefObject<HTMLButtonElement>;\n }\n export interface CalendarReferences {\n prevYearBtnRef: React.MutableRefObject<HTMLButtonElement>;\n prevMonthBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextMonthBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextYearBtnRef: React.MutableRefObject<HTMLButtonElement>;\n calendarDaysWrapperRef: React.MutableRefObject<HTMLDivElement>;\n }\n export interface TimewheelReferences {\n prevHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n prevMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;\n prevMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n }\n export interface InternalPrecalculatedFlags {\n isControllerOnly: boolean;\n shouldPreserveClearableSpace: boolean;\n isWithTimeWheelToo: boolean;\n isWithCalendarToo: boolean;\n isWithDateInputs: boolean;\n isWithDateInputsOnly: boolean;\n isWithTimeInputs: boolean;\n isWithTimeInputsOnly: boolean;\n autoFocusMonthInput: boolean;\n autoFocusHourInput: boolean;\n autoFocusPrevMonthArrow: boolean;\n autoFocusHourTimeWheel: boolean;\n hideDate: boolean;\n hideTime: boolean;\n hideDateTimePicker: boolean;\n hideDatePicker: boolean;\n hideTimePicker: boolean;\n withAnyInputs: boolean;\n withAnyPicker: boolean;\n withClearBtn: boolean;\n withAnyRightController: boolean;\n isDateSelector: boolean;\n isTimeSelector: boolean;\n isDateTimeSelector: boolean;\n }\n}\n", "import * as React from 'react';\nexport { React };\n"],
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport type { DSControlledDateTimePickerT } from './propTypes';\n\nexport declare namespace DSControlledDateTimePickerInternalsT {\n export type DateDay =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n | 26\n | 27\n | 28\n | 29\n | 30\n | 31;\n export type DateMonth = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\n export interface MetaMonthDay {\n day: Date;\n dayAsString: string;\n isPrevMonthDay: boolean;\n isNextMonthDay: boolean;\n isCurrMonthDay: boolean;\n isHidden: boolean;\n dayBtnRef: React.MutableRefObject<HTMLButtonElement>;\n }\n export type OnKeyDown<HTMLT = HTMLInputElement> = (e: React.KeyboardEvent<HTMLT>) => void;\n export type OnChangeFunc = (e: React.ChangeEvent<HTMLInputElement>) => void;\n export type OnDSBtnClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement> | React.KeyboardEvent,\n ) => void;\n export type HandleOnChangeFunc = (\n newVal: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo?: DSControlledDateTimePickerT.InternalInputsChangeMetaInfo,\n ) => void;\n export type OnBlurFunc = (e: React.FocusEvent<HTMLInputElement>) => void;\n export type OnFocusFunc = (e: React.FocusEvent<HTMLInputElement>) => void;\n\n export interface UseDateInputsR {\n month: string;\n day: string;\n year: string;\n autoFocusMonthInput: boolean;\n innerRefMonthInput?: false | React.MutableRefObject<HTMLInputElement | HTMLButtonElement>;\n disabled: boolean;\n onMonthChange: OnChangeFunc;\n onDayChange: OnChangeFunc;\n onYearChange: OnChangeFunc;\n onMonthFocus: OnFocusFunc;\n onDayFocus: OnFocusFunc;\n onYearFocus: OnFocusFunc;\n onMonthBlur: OnBlurFunc;\n onDayBlur: OnBlurFunc;\n onYearBlur: OnBlurFunc;\n onMonthKeyDown: OnKeyDown;\n onDayKeyDown: OnKeyDown;\n onYearKeyDown: OnKeyDown;\n }\n export interface InputsReferences {\n monthInputRef: React.RefObject<HTMLInputElement>;\n dayInputRef: React.RefObject<HTMLInputElement>;\n yearInputRef: React.RefObject<HTMLInputElement>;\n hourInputRef: React.RefObject<HTMLInputElement>;\n minutesInputRef: React.RefObject<HTMLInputElement>;\n meridiemInputRef: React.RefObject<HTMLInputElement>;\n clearButtonRef: React.MutableRefObject<HTMLButtonElement>;\n pickerButtonRef: React.MutableRefObject<HTMLButtonElement>;\n }\n export interface CalendarReferences {\n prevYearBtnRef: React.MutableRefObject<HTMLButtonElement>;\n prevMonthBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextMonthBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextYearBtnRef: React.MutableRefObject<HTMLButtonElement>;\n calendarDaysWrapperRef: React.MutableRefObject<HTMLDivElement>;\n }\n export interface TimewheelReferences {\n prevHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextHourBtnRef: React.MutableRefObject<HTMLButtonElement>;\n prevMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextMinutesBtnRef: React.MutableRefObject<HTMLButtonElement>;\n prevMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n currMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n nextMeridiemBtnRef: React.MutableRefObject<HTMLButtonElement>;\n }\n export interface InternalPrecalculatedFlags {\n isControllerOnly: boolean;\n shouldPreserveClearableSpace: boolean;\n isWithTimeWheelToo: boolean;\n isWithCalendarToo: boolean;\n isWithDateInputs: boolean;\n isWithDateInputsOnly: boolean;\n isWithTimeInputs: boolean;\n isWithTimeInputsOnly: boolean;\n autoFocusMonthInput: boolean;\n autoFocusHourInput: boolean;\n autoFocusPrevMonthArrow: boolean;\n autoFocusHourTimeWheel: boolean;\n hideDate: boolean;\n hideTime: boolean;\n hideDateTimePicker: boolean;\n hideDatePicker: boolean;\n hideTimePicker: boolean;\n withAnyInputs: boolean;\n withAnyPicker: boolean;\n withClearBtn: boolean;\n withAnyRightController: boolean;\n isDateSelector: boolean;\n isTimeSelector: boolean;\n isDateTimeSelector: boolean;\n }\n}\n", "import * as React from 'react';\nexport { React };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;ACAA,YAAuB;",
6
6
  "names": []
7
7
  }
@@ -3,7 +3,7 @@ import { useMemo } from "react";
3
3
  import { CONTROLLED_DATE_TIME_PICKER_TYPES } from "../ControlledDateTimePickerTypes";
4
4
  import { getIsDateTime, getIsDate } from "../utils/typeGuards";
5
5
  const getDateTimeFlags = (props) => {
6
- const { type, isClearable, dateTime, autoFocus } = props;
6
+ const { type, isClearable, dateTime, autoFocus, innerRef } = props;
7
7
  const constants = {
8
8
  hideDatePicker: true,
9
9
  hideTimePicker: true,
@@ -35,6 +35,8 @@ const getDateTimeFlags = (props) => {
35
35
  isWithTimeInputs: withAnyInputs,
36
36
  autoFocusMonthInput: withAnyInputs && autoFocus,
37
37
  autoFocusPrevMonthArrow: isControllerOnly && autoFocus,
38
+ innerRefMonthInput: withAnyInputs && innerRef,
39
+ innerRefPrevMonthArrow: isControllerOnly && innerRef,
38
40
  shouldPreserveClearableSpace,
39
41
  withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
40
42
  ...constants
@@ -42,7 +44,7 @@ const getDateTimeFlags = (props) => {
42
44
  return finalFlags;
43
45
  };
44
46
  const getDateFlags = (props) => {
45
- const { type, isClearable, date, autoFocus } = props;
47
+ const { type, isClearable, date, autoFocus, innerRef } = props;
46
48
  const constants = {
47
49
  isDateSelector: true,
48
50
  hideTime: true,
@@ -74,6 +76,8 @@ const getDateFlags = (props) => {
74
76
  isWithDateInputsOnly: withAnyInputs,
75
77
  autoFocusMonthInput: withAnyInputs && autoFocus,
76
78
  autoFocusPrevMonthArrow: isControllerOnly && autoFocus,
79
+ innerRefMonthInput: withAnyInputs && innerRef,
80
+ innerRefPrevMonthArrow: isControllerOnly && innerRef,
77
81
  shouldPreserveClearableSpace,
78
82
  withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
79
83
  ...constants
@@ -81,7 +85,7 @@ const getDateFlags = (props) => {
81
85
  return finalFlags;
82
86
  };
83
87
  const getTimeFlags = (props) => {
84
- const { type, isClearable, time, autoFocus } = props;
88
+ const { type, isClearable, time, autoFocus, innerRef } = props;
85
89
  const constants = {
86
90
  hideDate: true,
87
91
  hideDateTimePicker: true,
@@ -94,7 +98,9 @@ const getTimeFlags = (props) => {
94
98
  isWithTimeWheelToo: false,
95
99
  isWithCalendarToo: false,
96
100
  autoFocusMonthInput: false,
97
- autoFocusPrevMonthArrow: false
101
+ autoFocusPrevMonthArrow: false,
102
+ innerRefMonthInput: void 0,
103
+ innerRefPrevMonthArrow: void 0
98
104
  };
99
105
  const withAnyInputs = type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;
100
106
  const hideTimePicker = type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL && type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER && type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;
@@ -113,6 +119,8 @@ const getTimeFlags = (props) => {
113
119
  isWithTimeInputsOnly: withAnyInputs,
114
120
  autoFocusHourInput: withAnyInputs && autoFocus,
115
121
  autoFocusHourTimeWheel: isControllerOnly && autoFocus,
122
+ innerRefHourInput: withAnyInputs && innerRef,
123
+ innerRefHourTimeWheel: isControllerOnly && innerRef,
116
124
  shouldPreserveClearableSpace,
117
125
  withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,
118
126
  ...constants
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGetFlags.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes';\nimport { getIsDateTime, getIsDate } from '../utils/typeGuards';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\nconst getDateTimeFlags = (props: DSControlledDateTimePickerT.InternalDateTimePickerProps) => {\n const { type, isClearable, dateTime, autoFocus } = props;\n const constants = {\n hideDatePicker: true,\n hideTimePicker: true,\n isDateSelector: false,\n isTimeSelector: false,\n isDateTimeSelector: true,\n isWithDateInputsOnly: false,\n isWithTimeInputsOnly: false,\n autoFocusHourInput: false,\n autoFocusHourTimeWheel: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL ||\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS;\n const hideDateTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const withAnyPicker = !hideDateTimePicker;\n const withClearBtn = withAnyInputs && isClearable && dateTime !== '' && dateTime !== '__/__/____ __:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideTime: !withAnyInputs,\n hideDateTimePicker,\n isControllerOnly,\n isWithTimeWheelToo: !hideDateTimePicker,\n isWithCalendarToo: !hideDateTimePicker,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithTimeInputs: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getDateFlags = (props: DSControlledDateTimePickerT.InternalDatePickerProps) => {\n const { type, isClearable, date, autoFocus } = props;\n\n const constants = {\n isDateSelector: true,\n hideTime: true,\n hideDateTimePicker: true,\n hideTimePicker: true,\n isTimeSelector: false,\n isDateTimeSelector: false,\n isWithCalendarToo: false,\n isWithTimeWheelToo: false,\n isWithTimeInputs: false,\n isWithTimeInputsOnly: false,\n autoFocusHourTimeWheel: false,\n autoFocusHourInput: false,\n };\n\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS;\n const hideDatePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n\n const withAnyPicker = !hideDatePicker;\n const withClearBtn = withAnyInputs && isClearable && date !== '' && date !== '__/__/____';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideDatePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithDateInputsOnly: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getTimeFlags = (props: DSControlledDateTimePickerT.InternalTimePickerProps) => {\n const { type, isClearable, time, autoFocus } = props;\n const constants = {\n hideDate: true,\n hideDateTimePicker: true,\n hideDatePicker: true,\n isDateSelector: false,\n isDateTimeSelector: false,\n isWithDateInputs: false,\n isWithDateInputsOnly: false,\n isTimeSelector: true,\n isWithTimeWheelToo: false,\n isWithCalendarToo: false,\n autoFocusMonthInput: false,\n autoFocusPrevMonthArrow: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;\n const hideTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const withClearBtn = withAnyInputs && isClearable && time !== '' && time !== '__:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const withAnyPicker = !hideTimePicker;\n const finalFlags = {\n hideTime: !withAnyInputs,\n hideTimePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithTimeInputs: withAnyInputs,\n isWithTimeInputsOnly: withAnyInputs,\n autoFocusHourInput: withAnyInputs && autoFocus,\n autoFocusHourTimeWheel: isControllerOnly && autoFocus,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\n\nexport const useGetFlags = (props: DSControlledDateTimePickerT.InternalProps) =>\n useMemo(() => {\n if (getIsDateTime(props)) {\n return getDateTimeFlags(props);\n }\n if (getIsDate(props)) {\n return getDateFlags(props);\n }\n return getTimeFlags(props);\n }, [props]);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES } from '../ControlledDateTimePickerTypes';\nimport { getIsDateTime, getIsDate } from '../utils/typeGuards';\nimport type { DSControlledDateTimePickerT } from '../propTypes';\n\nconst getDateTimeFlags = (props: DSControlledDateTimePickerT.InternalDateTimePickerProps) => {\n const { type, isClearable, dateTime, autoFocus, innerRef } = props;\n const constants = {\n hideDatePicker: true,\n hideTimePicker: true,\n isDateSelector: false,\n isTimeSelector: false,\n isDateTimeSelector: true,\n isWithDateInputsOnly: false,\n isWithTimeInputsOnly: false,\n autoFocusHourInput: false,\n autoFocusHourTimeWheel: false,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL ||\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.INPUTS;\n const hideDateTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE_TIME.CONTROLLER_ONLY;\n const withAnyPicker = !hideDateTimePicker;\n const withClearBtn = withAnyInputs && isClearable && dateTime !== '' && dateTime !== '__/__/____ __:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideTime: !withAnyInputs,\n hideDateTimePicker,\n isControllerOnly,\n isWithTimeWheelToo: !hideDateTimePicker,\n isWithCalendarToo: !hideDateTimePicker,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithTimeInputs: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n innerRefMonthInput: withAnyInputs && innerRef,\n innerRefPrevMonthArrow: isControllerOnly && innerRef,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getDateFlags = (props: DSControlledDateTimePickerT.InternalDatePickerProps) => {\n const { type, isClearable, date, autoFocus, innerRef } = props;\n\n const constants = {\n isDateSelector: true,\n hideTime: true,\n hideDateTimePicker: true,\n hideTimePicker: true,\n isTimeSelector: false,\n isDateTimeSelector: false,\n isWithCalendarToo: false,\n isWithTimeWheelToo: false,\n isWithTimeInputs: false,\n isWithTimeInputsOnly: false,\n autoFocusHourTimeWheel: false,\n autoFocusHourInput: false,\n };\n\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS;\n const hideDatePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY;\n\n const withAnyPicker = !hideDatePicker;\n const withClearBtn = withAnyInputs && isClearable && date !== '' && date !== '__/__/____';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n\n const finalFlags = {\n hideDate: !withAnyInputs,\n hideDatePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithDateInputs: withAnyInputs,\n isWithDateInputsOnly: withAnyInputs,\n autoFocusMonthInput: withAnyInputs && autoFocus,\n autoFocusPrevMonthArrow: isControllerOnly && autoFocus,\n innerRefMonthInput: withAnyInputs && innerRef,\n innerRefPrevMonthArrow: isControllerOnly && innerRef,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\nconst getTimeFlags = (props: DSControlledDateTimePickerT.InternalTimePickerProps) => {\n const { type, isClearable, time, autoFocus, innerRef } = props;\n const constants = {\n hideDate: true,\n hideDateTimePicker: true,\n hideDatePicker: true,\n isDateSelector: false,\n isDateTimeSelector: false,\n isWithDateInputs: false,\n isWithDateInputsOnly: false,\n isTimeSelector: true,\n isWithTimeWheelToo: false,\n isWithCalendarToo: false,\n autoFocusMonthInput: false,\n autoFocusPrevMonthArrow: false,\n innerRefMonthInput: undefined,\n innerRefPrevMonthArrow: undefined,\n };\n const withAnyInputs =\n type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL || type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.INPUTS;\n const hideTimePicker =\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.FULL &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.PICKER &&\n type !== CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const isControllerOnly = type === CONTROLLED_DATE_TIME_PICKER_TYPES.TIME.CONTROLLER_ONLY;\n const withClearBtn = withAnyInputs && isClearable && time !== '' && time !== '__:__ __';\n const shouldPreserveClearableSpace = isClearable && withAnyInputs;\n const withAnyPicker = !hideTimePicker;\n const finalFlags = {\n hideTime: !withAnyInputs,\n hideTimePicker,\n isControllerOnly,\n withAnyInputs,\n withAnyPicker,\n withClearBtn,\n isWithTimeInputs: withAnyInputs,\n isWithTimeInputsOnly: withAnyInputs,\n autoFocusHourInput: withAnyInputs && autoFocus,\n autoFocusHourTimeWheel: isControllerOnly && autoFocus,\n innerRefHourInput: withAnyInputs && innerRef,\n innerRefHourTimeWheel: isControllerOnly && innerRef,\n shouldPreserveClearableSpace,\n withAnyRightController: withAnyPicker || withClearBtn || shouldPreserveClearableSpace,\n ...constants,\n };\n return finalFlags;\n};\n\nexport const useGetFlags = (props: DSControlledDateTimePickerT.InternalProps) =>\n useMemo(() => {\n if (getIsDateTime(props)) {\n return getDateTimeFlags(props);\n }\n if (getIsDate(props)) {\n return getDateFlags(props);\n }\n return getTimeFlags(props);\n }, [props]);\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -14,6 +14,7 @@ const DateInputs = () => {
14
14
  day,
15
15
  year,
16
16
  autoFocusMonthInput,
17
+ innerRefMonthInput,
17
18
  onMonthChange,
18
19
  onDayChange,
19
20
  onYearChange,
@@ -51,6 +52,7 @@ const DateInputs = () => {
51
52
  onKeyDown: onMonthKeyDown,
52
53
  value: month,
53
54
  contextRef: monthInputRef,
55
+ innerRef: innerRefMonthInput,
54
56
  autoFocusMonthInput,
55
57
  placeholder: "MM",
56
58
  ariaCurrentValueForInputs,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DateInputs/DateInputs.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { MMInput } from './MMInput';\nimport { DDInput } from './DDInput';\nimport { YYYYInput } from './YYYYInput';\nimport { StyledFocusWithIn, StyledSeparator } from '../Styleds';\nimport { useDateInputs } from './useDateInputs';\nimport { fixedValues } from '../config';\n\nexport const DateInputs = (): JSX.Element => {\n const {\n month,\n day,\n year,\n autoFocusMonthInput,\n onMonthChange,\n onDayChange,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthFocus,\n onDayFocus,\n onYearFocus,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n disabled,\n } = useDateInputs();\n // we do this here so MMInput,DDInput,YYYYInput can be pure component memoized via React.memo\n const {\n monthInputRef,\n dayInputRef,\n yearInputRef,\n ariaCurrentValueForInputs,\n latestInteractionRegion,\n currFocusDescriber,\n } = useContext(ControlledDateTimePickerContext);\n\n return (\n <Grid\n cols={[\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.largeInputWidth,\n ]}\n >\n <StyledFocusWithIn>\n <MMInput\n onChange={onMonthChange}\n onBlur={onMonthBlur}\n onFocus={onMonthFocus}\n onKeyDown={onMonthKeyDown}\n value={month}\n contextRef={monthInputRef}\n autoFocusMonthInput={autoFocusMonthInput}\n placeholder=\"MM\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'month-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <DDInput\n onChange={onDayChange}\n onBlur={onDayBlur}\n onFocus={onDayFocus}\n onKeyDown={onDayKeyDown}\n value={day}\n contextRef={dayInputRef}\n placeholder=\"DD\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'day-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <YYYYInput\n onChange={onYearChange}\n onBlur={onYearBlur}\n onFocus={onYearFocus}\n onKeyDown={onYearKeyDown}\n value={year}\n contextRef={yearInputRef}\n placeholder=\"YYYY\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'year-input'}\n />\n </StyledFocusWithIn>\n </Grid>\n );\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,aAAa,MAAmB;AAC3C,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,IACA;AAAA,IACA;AAAA,MACE,cAAc;AAElB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW,+BAA+B;AAE9C,SACE,qCAAC;AAAA,IACC,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,KAEA,qCAAC,yBACC,qCAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,qCAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,qCAAC,yBACC,qCAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,qCAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,qCAAC,yBACC,qCAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,CACF;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\n\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport { MMInput } from './MMInput';\nimport { DDInput } from './DDInput';\nimport { YYYYInput } from './YYYYInput';\nimport { StyledFocusWithIn, StyledSeparator } from '../Styleds';\nimport { useDateInputs } from './useDateInputs';\nimport { fixedValues } from '../config';\n\nexport const DateInputs = (): JSX.Element => {\n const {\n month,\n day,\n year,\n autoFocusMonthInput,\n innerRefMonthInput,\n onMonthChange,\n onDayChange,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthFocus,\n onDayFocus,\n onYearFocus,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n disabled,\n } = useDateInputs();\n // we do this here so MMInput,DDInput,YYYYInput can be pure component memoized via React.memo\n const {\n monthInputRef,\n dayInputRef,\n yearInputRef,\n ariaCurrentValueForInputs,\n latestInteractionRegion,\n currFocusDescriber,\n } = useContext(ControlledDateTimePickerContext);\n\n return (\n <Grid\n cols={[\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.smallInputWidth,\n fixedValues.separatorWidth,\n fixedValues.largeInputWidth,\n ]}\n >\n <StyledFocusWithIn>\n <MMInput\n onChange={onMonthChange}\n onBlur={onMonthBlur}\n onFocus={onMonthFocus}\n onKeyDown={onMonthKeyDown}\n value={month}\n contextRef={monthInputRef}\n innerRef={innerRefMonthInput}\n autoFocusMonthInput={autoFocusMonthInput}\n placeholder=\"MM\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'month-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <DDInput\n onChange={onDayChange}\n onBlur={onDayBlur}\n onFocus={onDayFocus}\n onKeyDown={onDayKeyDown}\n value={day}\n contextRef={dayInputRef}\n placeholder=\"DD\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'day-input'}\n />\n </StyledFocusWithIn>\n <StyledSeparator alignItems=\"center\">/</StyledSeparator>\n <StyledFocusWithIn>\n <YYYYInput\n onChange={onYearChange}\n onBlur={onYearBlur}\n onFocus={onYearFocus}\n onKeyDown={onYearKeyDown}\n value={year}\n contextRef={yearInputRef}\n placeholder=\"YYYY\"\n ariaCurrentValueForInputs={ariaCurrentValueForInputs}\n disabled={disabled}\n isFocused={latestInteractionRegion === 'date-inputs' && currFocusDescriber === 'year-input'}\n />\n </StyledFocusWithIn>\n </Grid>\n );\n};\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,aAAa,MAAmB;AAC3C,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,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,cAAc;AAElB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW,+BAA+B;AAE9C,SACE,qCAAC;AAAA,IACC,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,KAEA,qCAAC,yBACC,qCAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV;AAAA,IACA,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,qCAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,qCAAC,yBACC,qCAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,GACA,qCAAC;AAAA,IAAgB,YAAW;AAAA,KAAS,GAAC,GACtC,qCAAC,yBACC,qCAAC;AAAA,IACC,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW,4BAA4B,iBAAiB,uBAAuB;AAAA,GACjF,CACF,CACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useCallback } from "react";
2
+ import React2, { useCallback, useMemo } from "react";
3
+ import { setMultipleRefs } from "@elliemae/ds-utilities";
3
4
  import { Styled2DigitsInput } from "../Styleds";
4
5
  import { ControlledDateTimePickerDatatestid } from "../../ControlledDateTimePickerDatatestid";
5
6
  const regExpNumbers = /^[0-9]+$/;
@@ -18,6 +19,7 @@ const MMInput = React2.memo(({
18
19
  disabled,
19
20
  placeholder,
20
21
  contextRef,
22
+ innerRef,
21
23
  autoFocusMonthInput,
22
24
  ariaCurrentValueForInputs,
23
25
  isFocused
@@ -29,6 +31,17 @@ const MMInput = React2.memo(({
29
31
  }
30
32
  onChange(e);
31
33
  }, [onChange]);
34
+ const handleRef = useCallback((DomElem) => {
35
+ contextRef.current = DomElem;
36
+ if (isFocused)
37
+ DomElem?.focus?.();
38
+ }, [contextRef, isFocused]);
39
+ const currentRef = useMemo(() => {
40
+ if (innerRef) {
41
+ return setMultipleRefs([handleRef, innerRef]);
42
+ }
43
+ return handleRef;
44
+ }, [handleRef, innerRef]);
32
45
  return /* @__PURE__ */ React2.createElement(Styled2DigitsInput, {
33
46
  autoFocus: autoFocusMonthInput,
34
47
  onChange: validateOnChange,
@@ -36,11 +49,7 @@ const MMInput = React2.memo(({
36
49
  onFocus,
37
50
  onKeyDown,
38
51
  value,
39
- ref: (DomElem) => {
40
- contextRef.current = DomElem;
41
- if (isFocused)
42
- DomElem?.focus?.();
43
- },
52
+ ref: currentRef,
44
53
  placeholder,
45
54
  "aria-label": `month input field, ${ariaCurrentValueForInputs}`,
46
55
  "data-testid": ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DateInputs/MMInput.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { Styled2DigitsInput } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\n\nconst regExpNumbers = /^[0-9]+$/;\nconst isInvalidMonth = (month: string) => {\n if (month === '') return false;\n const numberOnly = regExpNumbers.test(month);\n return month.length > 2 || month === '00' || !numberOnly || Number.parseInt(month, 10) > 12;\n};\ninterface MMInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n autoFocusMonthInput: boolean;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n isFocused: boolean;\n}\nexport const MMInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n contextRef,\n autoFocusMonthInput,\n ariaCurrentValueForInputs,\n isFocused,\n }: MMInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidMonth(e?.target?.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n return (\n <Styled2DigitsInput\n autoFocus={autoFocusMonthInput}\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n ref={(DomElem: HTMLInputElement) => {\n (contextRef as React.MutableRefObject<HTMLInputElement>).current = DomElem;\n if (isFocused) DomElem?.focus?.();\n }}\n placeholder={placeholder}\n aria-label={`month input field, ${ariaCurrentValueForInputs}`}\n data-testid={ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH}\n disabled={disabled}\n aria-disabled={disabled}\n />\n );\n },\n);\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAGA,MAAM,gBAAgB;AACtB,MAAM,iBAAiB,CAAC,UAAkB;AACxC,MAAI,UAAU;AAAI,WAAO;AACzB,QAAM,aAAa,cAAc,KAAK,KAAK;AAC3C,SAAO,MAAM,SAAS,KAAK,UAAU,QAAQ,CAAC,cAAc,OAAO,SAAS,OAAO,EAAE,IAAI;AAC3F;AAcO,MAAM,UAAU,OAAM,KAC3B,CAAC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACiC;AACjC,QAAM,mBAAmB,YACvB,CAAC,MAA2C;AAC1C,QAAI,eAAe,GAAG,QAAQ,KAAK,GAAG;AACpC,QAAE,eAAe;AACjB;AAAA,IACF;AACA,aAAS,CAAC;AAAA,EACZ,GACA,CAAC,QAAQ,CACX;AACA,SACE,qCAAC;AAAA,IACC,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,CAAC,YAA8B;AAClC,MAAC,WAAwD,UAAU;AACnE,UAAI;AAAW,iBAAS,QAAQ;AAAA,IAClC;AAAA,IACA;AAAA,IACA,cAAY,sBAAsB;AAAA,IAClC,eAAa,mCAAmC,YAAY;AAAA,IAC5D;AAAA,IACA,iBAAe;AAAA,GACjB;AAEJ,CACF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useMemo } from 'react';\nimport { setMultipleRefs } from '@elliemae/ds-utilities';\nimport { Styled2DigitsInput } from '../Styleds';\nimport { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\n\nconst regExpNumbers = /^[0-9]+$/;\nconst isInvalidMonth = (month: string) => {\n if (month === '') return false;\n const numberOnly = regExpNumbers.test(month);\n return month.length > 2 || month === '00' || !numberOnly || Number.parseInt(month, 10) > 12;\n};\ninterface MMInputsPropsT {\n onChange: DSControlledDateTimePickerInternalsT.OnChangeFunc;\n onBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc;\n onFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc;\n onKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown;\n autoFocusMonthInput: boolean;\n value: string;\n disabled: boolean;\n contextRef: React.MutableRefObject<HTMLInputElement | null>;\n placeholder: string;\n ariaCurrentValueForInputs: string;\n isFocused: boolean;\n innerRef: React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>;\n}\nexport const MMInput = React.memo(\n ({\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n value,\n disabled,\n placeholder,\n contextRef,\n innerRef,\n autoFocusMonthInput,\n ariaCurrentValueForInputs,\n isFocused,\n }: MMInputsPropsT): JSX.Element => {\n const validateOnChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (isInvalidMonth(e?.target?.value)) {\n e.preventDefault();\n return;\n }\n onChange(e);\n },\n [onChange],\n );\n\n const handleRef = useCallback(\n (DomElem: HTMLInputElement) => {\n (contextRef as React.MutableRefObject<HTMLInputElement>).current = DomElem;\n if (isFocused) DomElem?.focus?.();\n },\n [contextRef, isFocused],\n );\n\n const currentRef = useMemo(() => {\n if (innerRef) {\n return setMultipleRefs([handleRef, innerRef]);\n }\n return handleRef;\n }, [handleRef, innerRef]);\n\n return (\n <Styled2DigitsInput\n autoFocus={autoFocusMonthInput}\n onChange={validateOnChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n value={value}\n ref={currentRef}\n placeholder={placeholder}\n aria-label={`month input field, ${ariaCurrentValueForInputs}`}\n data-testid={ControlledDateTimePickerDatatestid.DATE_INPUTS.MONTH}\n disabled={disabled}\n aria-disabled={disabled}\n />\n );\n },\n);\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAGA,MAAM,gBAAgB;AACtB,MAAM,iBAAiB,CAAC,UAAkB;AACxC,MAAI,UAAU;AAAI,WAAO;AACzB,QAAM,aAAa,cAAc,KAAK,KAAK;AAC3C,SAAO,MAAM,SAAS,KAAK,UAAU,QAAQ,CAAC,cAAc,OAAO,SAAS,OAAO,EAAE,IAAI;AAC3F;AAeO,MAAM,UAAU,OAAM,KAC3B,CAAC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACiC;AACjC,QAAM,mBAAmB,YACvB,CAAC,MAA2C;AAC1C,QAAI,eAAe,GAAG,QAAQ,KAAK,GAAG;AACpC,QAAE,eAAe;AACjB;AAAA,IACF;AACA,aAAS,CAAC;AAAA,EACZ,GACA,CAAC,QAAQ,CACX;AAEA,QAAM,YAAY,YAChB,CAAC,YAA8B;AAC7B,IAAC,WAAwD,UAAU;AACnE,QAAI;AAAW,eAAS,QAAQ;AAAA,EAClC,GACA,CAAC,YAAY,SAAS,CACxB;AAEA,QAAM,aAAa,QAAQ,MAAM;AAC/B,QAAI,UAAU;AACZ,aAAO,gBAAgB,CAAC,WAAW,QAAQ,CAAC;AAAA,IAC9C;AACA,WAAO;AAAA,EACT,GAAG,CAAC,WAAW,QAAQ,CAAC;AAExB,SACE,qCAAC;AAAA,IACC,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA,cAAY,sBAAsB;AAAA,IAClC,eAAa,mCAAmC,YAAY;AAAA,IAC5D;AAAA,IACA,iBAAe;AAAA,GACjB;AAEJ,CACF;",
6
6
  "names": []
7
7
  }
@@ -25,6 +25,7 @@ const useDateInputs = () => {
25
25
  withAnyPicker,
26
26
  withAnyRightController,
27
27
  autoFocusMonthInput,
28
+ innerRefMonthInput,
28
29
  trackFocusResetter,
29
30
  trackFocusFirstSegment,
30
31
  trackFocusLastSegment,
@@ -283,6 +284,7 @@ const useDateInputs = () => {
283
284
  day,
284
285
  year,
285
286
  autoFocusMonthInput,
287
+ innerRefMonthInput,
286
288
  disabled,
287
289
  onMonthFocus,
288
290
  onMonthChange,
@@ -301,6 +303,7 @@ const useDateInputs = () => {
301
303
  day,
302
304
  year,
303
305
  autoFocusMonthInput,
306
+ innerRefMonthInput,
304
307
  disabled,
305
308
  onMonthFocus,
306
309
  onMonthChange,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DateInputs/useDateInputs.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport {\n getFormattedDateString,\n prependStringWithPlaceHolders,\n fillStringWithPlaceHolders,\n} from '../../utils/stringHelpers';\nimport { getValidationDateStringMetaInfo } from '../../utils/dateHelpers';\nimport { defaultMetaInfo } from '../../utils/constants';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\nimport type { DSControlledDateTimePickerT } from '../../propTypes';\n\nexport const useDateInputs = (): DSControlledDateTimePickerInternalsT.UseDateInputsR => {\n const {\n props: { disabled },\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n month,\n day,\n year,\n hideTime,\n handleChangeComposedDateString,\n withClearBtn,\n withAnyPicker,\n withAnyRightController,\n autoFocusMonthInput,\n trackFocusResetter,\n trackFocusFirstSegment,\n trackFocusLastSegment,\n trackFocusDayInput,\n trackFocusMonthInput,\n trackFocusYearInput,\n trackFocusHourInput,\n trackFocusClearBtn,\n trackFocusPicker,\n } = useContext(ControlledDateTimePickerContext);\n\n const onHomeKeyDown = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const onEndKeyDown = useCallback(() => {\n trackFocusLastSegment();\n }, [trackFocusLastSegment]);\n\n const handleChangeMonth = useCallback(\n (\n newMonth: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onMonthFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusMonthInput();\n }, [trackFocusMonthInput]);\n const onMonthChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newMonth = e?.target?.value;\n // converts months 2~9 to 02~09\n if (Number.parseInt(newMonth, 10) > 1) newMonth = prependStringWithPlaceHolders(newMonth, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n },\n [handleChangeMonth, trackFocusDayInput],\n );\n const onMonthKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const monthStringConvertedToInteger = Number.parseInt(month, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;\n let newMonth;\n if (key === 'ArrowUp') newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;\n else newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;\n newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);\n handleChangeMonth(newMonth, e);\n }\n if (!Number.isNaN(monthStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n }\n\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth],\n );\n const onMonthBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newMonth = e?.target?.value;\n if (newMonth === '0') handleChangeMonth('01', e, { isAutomaticFillTrigger: true });\n else if (newMonth.length > 0 && newMonth.length < 2)\n handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeMonth],\n );\n\n const handleChangeDay = useCallback(\n (\n newDay: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onDayFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusDayInput();\n }, [trackFocusDayInput]);\n const onDayChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newDay = e?.target?.value;\n // converts days 4~9 to 04~09\n if (Number.parseInt(newDay, 10) > 3) newDay = prependStringWithPlaceHolders(newDay, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n },\n [handleChangeDay, trackFocusYearInput],\n );\n const onDayKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const dayStringConvertedToInteger = Number.parseInt(day, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;\n let newDay;\n if (key === 'ArrowUp') newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;\n else newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;\n newDay = prependStringWithPlaceHolders(`${newDay}`, 2);\n handleChangeDay(newDay, e);\n }\n if (!Number.isNaN(dayStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n }\n // regressive backspace functionality\n if (key === 'Backspace' && day?.length === 0) {\n trackFocusMonthInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n day,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n handleChangeDay,\n trackFocusYearInput,\n trackFocusMonthInput,\n ],\n );\n const onDayBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newDay = e?.target?.value;\n if (newDay === '0') handleChangeDay('01', e, { isAutomaticFillTrigger: true });\n else if (newDay.length > 0 && newDay.length < 2)\n handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeDay],\n );\n\n const handleChangeYear = useCallback(\n (\n newYear: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 const onYearFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusYearInput();\n }, [trackFocusYearInput]);\n const onYearChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n const newYear = e?.target?.value;\n handleChangeYear(newYear, e);\n // auto-advance functionality:\n if (newYear.length === 4) {\n if (!hideTime) trackFocusHourInput();\n else if (withAnyRightController) {\n if (withClearBtn) trackFocusClearBtn();\n else if (withAnyPicker) trackFocusPicker();\n // pending approval from Seda, check which one should be focused first...\n }\n }\n },\n [\n handleChangeYear,\n hideTime,\n trackFocusHourInput,\n withAnyRightController,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n ],\n );\n const onYearKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n\n /* ****** New year value calculator logic ********* */\n const yearStringConvertedToInteger = Number.parseInt(year, 10);\n const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;\n let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, '0') : '';\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n let newYearInteger;\n if (key === 'ArrowUp') newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;\n else newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;\n newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);\n }\n const isAutomaticFillTrigger = newYear !== year && ['Tab', ' '].includes(key);\n const metainfo = { isAutomaticFillTrigger };\n\n /* ************* new year apply logic ************* */\n // tab/spacebar applies auto-fill\n // arrows up/down applies increment/decrement\n if (key === 'ArrowUp' || key === 'ArrowDown' || isAutomaticFillTrigger) {\n handleChangeYear(newYear, e, metainfo);\n }\n\n /* ************* focus tracking logic ************* */\n let trackNextFocus = trackFocusResetter; // if nothing after, we reset internal focus tracker to avoid re-render unexpected focus shift\n if (!hideTime) trackNextFocus = trackFocusHourInput;\n else if (withClearBtn) trackNextFocus = trackFocusClearBtn;\n else if (withAnyPicker) trackNextFocus = trackFocusPicker;\n\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n\n /* ************** auto-advance logic ************** */\n if (key === ' ') {\n // auto-advance functionality:\n trackNextFocus();\n }\n /* ********** regressive backspace logic ********** */\n if (key === 'Backspace' && year?.length === 0) {\n trackFocusDayInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n year,\n trackFocusResetter,\n hideTime,\n trackFocusHourInput,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n trackFocusDayInput,\n handleChangeYear,\n ],\n );\n const onYearBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(() => {\n // this was used before, now that we have a wrapping onBlur resetting the focus tracker, this is unused;\n }, []);\n\n return useMemo(\n () => ({\n month,\n day,\n year,\n autoFocusMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n }),\n [\n month,\n day,\n year,\n autoFocusMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n ],\n );\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useCallback, useMemo, useContext } from 'react';\nimport { ControlledDateTimePickerContext } from '../../ControlledDateTimePickerCTX';\nimport {\n getFormattedDateString,\n prependStringWithPlaceHolders,\n fillStringWithPlaceHolders,\n} from '../../utils/stringHelpers';\nimport { getValidationDateStringMetaInfo } from '../../utils/dateHelpers';\nimport { defaultMetaInfo } from '../../utils/constants';\nimport type { DSControlledDateTimePickerInternalsT } from '../../sharedTypes';\nimport type { DSControlledDateTimePickerT } from '../../propTypes';\n\nexport const useDateInputs = (): DSControlledDateTimePickerInternalsT.UseDateInputsR => {\n const {\n props: { disabled },\n appOnMonthChange,\n appOnDayChange,\n appOnYearChange,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n month,\n day,\n year,\n hideTime,\n handleChangeComposedDateString,\n withClearBtn,\n withAnyPicker,\n withAnyRightController,\n autoFocusMonthInput,\n innerRefMonthInput,\n trackFocusResetter,\n trackFocusFirstSegment,\n trackFocusLastSegment,\n trackFocusDayInput,\n trackFocusMonthInput,\n trackFocusYearInput,\n trackFocusHourInput,\n trackFocusClearBtn,\n trackFocusPicker,\n } = useContext(ControlledDateTimePickerContext);\n\n const onHomeKeyDown = useCallback(() => {\n trackFocusFirstSegment();\n }, [trackFocusFirstSegment]);\n const onEndKeyDown = useCallback(() => {\n trackFocusLastSegment();\n }, [trackFocusLastSegment]);\n\n const handleChangeMonth = useCallback(\n (\n newMonth: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onMonthFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusMonthInput();\n }, [trackFocusMonthInput]);\n const onMonthChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newMonth = e?.target?.value;\n // converts months 2~9 to 02~09\n if (Number.parseInt(newMonth, 10) > 1) newMonth = prependStringWithPlaceHolders(newMonth, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n },\n [handleChangeMonth, trackFocusDayInput],\n );\n const onMonthKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const monthStringConvertedToInteger = Number.parseInt(month, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const monthInteger = Number.isNaN(monthStringConvertedToInteger) ? 0 : monthStringConvertedToInteger;\n let newMonth;\n if (key === 'ArrowUp') newMonth = monthInteger + 1 <= 12 ? monthInteger + 1 : monthInteger;\n else newMonth = monthInteger - 1 > 0 ? monthInteger - 1 : 1;\n newMonth = prependStringWithPlaceHolders(`${newMonth}`, 2);\n handleChangeMonth(newMonth, e);\n }\n if (!Number.isNaN(monthStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newMonth = prependStringWithPlaceHolders(`${monthStringConvertedToInteger}`, 2);\n handleChangeMonth(newMonth, e);\n // auto-advance functionality:\n if (newMonth.length === 2) trackFocusDayInput();\n }\n\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [month, onHomeKeyDown, onEndKeyDown, trackFocusLastSegment, trackFocusDayInput, handleChangeMonth],\n );\n const onMonthBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newMonth = e?.target?.value;\n if (newMonth === '0') handleChangeMonth('01', e, { isAutomaticFillTrigger: true });\n else if (newMonth.length > 0 && newMonth.length < 2)\n handleChangeMonth(prependStringWithPlaceHolders(newMonth, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeMonth],\n );\n\n const handleChangeDay = useCallback(\n (\n newDay: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 onDayFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusDayInput();\n }, [trackFocusDayInput]);\n const onDayChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n let newDay = e?.target?.value;\n // converts days 4~9 to 04~09\n if (Number.parseInt(newDay, 10) > 3) newDay = prependStringWithPlaceHolders(newDay, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n },\n [handleChangeDay, trackFocusYearInput],\n );\n const onDayKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n const dayStringConvertedToInteger = Number.parseInt(day, 10);\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', '-', '/', '\\\\'].includes(key)) e.stopPropagation();\n\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n const dayInteger = Number.isNaN(dayStringConvertedToInteger) ? 0 : dayStringConvertedToInteger;\n let newDay;\n if (key === 'ArrowUp') newDay = dayInteger + 1 <= 31 ? dayInteger + 1 : dayInteger;\n else newDay = dayInteger - 1 > 0 ? dayInteger - 1 : 1;\n newDay = prependStringWithPlaceHolders(`${newDay}`, 2);\n handleChangeDay(newDay, e);\n }\n if (!Number.isNaN(dayStringConvertedToInteger) && (key === '-' || key === '/' || key === '\\\\')) {\n const newDay = prependStringWithPlaceHolders(`${dayStringConvertedToInteger}`, 2);\n handleChangeDay(newDay, e);\n // auto-advance functionality:\n if (newDay.length === 2) trackFocusYearInput();\n }\n // regressive backspace functionality\n if (key === 'Backspace' && day?.length === 0) {\n trackFocusMonthInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n day,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n handleChangeDay,\n trackFocusYearInput,\n trackFocusMonthInput,\n ],\n );\n const onDayBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(\n (e) => {\n const newDay = e?.target?.value;\n if (newDay === '0') handleChangeDay('01', e, { isAutomaticFillTrigger: true });\n else if (newDay.length > 0 && newDay.length < 2)\n handleChangeDay(prependStringWithPlaceHolders(newDay, 2), e, {\n isAutomaticFillTrigger: true,\n });\n },\n [handleChangeDay],\n );\n\n const handleChangeYear = useCallback(\n (\n newYear: string,\n e: DSControlledDateTimePickerT.OnInternalValuesChangeEvent,\n metaInfo: Partial<DSControlledDateTimePickerT.InternalInputsChangeMetaInfo> = defaultMetaInfo,\n ) => {\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 const onYearFocus: DSControlledDateTimePickerInternalsT.OnFocusFunc = useCallback(() => {\n trackFocusYearInput();\n }, [trackFocusYearInput]);\n const onYearChange: DSControlledDateTimePickerInternalsT.OnChangeFunc = useCallback(\n (e) => {\n const newYear = e?.target?.value;\n handleChangeYear(newYear, e);\n // auto-advance functionality:\n if (newYear.length === 4) {\n if (!hideTime) trackFocusHourInput();\n else if (withAnyRightController) {\n if (withClearBtn) trackFocusClearBtn();\n else if (withAnyPicker) trackFocusPicker();\n // pending approval from Seda, check which one should be focused first...\n }\n }\n },\n [\n handleChangeYear,\n hideTime,\n trackFocusHourInput,\n withAnyRightController,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n ],\n );\n const onYearKeyDown: DSControlledDateTimePickerInternalsT.OnKeyDown = useCallback(\n (e) => {\n const { key, ctrlKey, metaKey } = e;\n\n /* ****** New year value calculator logic ********* */\n const yearStringConvertedToInteger = Number.parseInt(year, 10);\n const yearInteger = Number.isNaN(yearStringConvertedToInteger) ? 0 : yearStringConvertedToInteger;\n let newYear = yearInteger !== 0 ? fillStringWithPlaceHolders(`${yearInteger}`, 4, '0') : '';\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n let newYearInteger;\n if (key === 'ArrowUp') newYearInteger = yearInteger + 1 <= 9999 ? yearInteger + 1 : yearInteger;\n else newYearInteger = yearInteger - 1 > 0 ? yearInteger - 1 : 1;\n newYear = prependStringWithPlaceHolders(`${newYearInteger}`, 4);\n }\n const isAutomaticFillTrigger = newYear !== year && ['Tab', ' '].includes(key);\n const metainfo = { isAutomaticFillTrigger };\n\n /* ************* new year apply logic ************* */\n // tab/spacebar applies auto-fill\n // arrows up/down applies increment/decrement\n if (key === 'ArrowUp' || key === 'ArrowDown' || isAutomaticFillTrigger) {\n handleChangeYear(newYear, e, metainfo);\n }\n\n /* ************* focus tracking logic ************* */\n let trackNextFocus = trackFocusResetter; // if nothing after, we reset internal focus tracker to avoid re-render unexpected focus shift\n if (!hideTime) trackNextFocus = trackFocusHourInput;\n else if (withClearBtn) trackNextFocus = trackFocusClearBtn;\n else if (withAnyPicker) trackNextFocus = trackFocusPicker;\n\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.preventDefault();\n if (['Home', 'End', 'ArrowUp', 'ArrowDown', ' '].includes(key)) e.stopPropagation();\n if (key === 'Home') onHomeKeyDown();\n if (key === 'End') onEndKeyDown();\n\n /* ************** auto-advance logic ************** */\n if (key === ' ') {\n // auto-advance functionality:\n trackNextFocus();\n }\n /* ********** regressive backspace logic ********** */\n if (key === 'Backspace' && year?.length === 0) {\n trackFocusDayInput();\n }\n // focus last fragment on fill with now\n if ((ctrlKey || metaKey) && key === ';') trackFocusLastSegment();\n },\n [\n year,\n trackFocusResetter,\n hideTime,\n trackFocusHourInput,\n withClearBtn,\n trackFocusClearBtn,\n withAnyPicker,\n trackFocusPicker,\n onHomeKeyDown,\n onEndKeyDown,\n trackFocusLastSegment,\n trackFocusDayInput,\n handleChangeYear,\n ],\n );\n const onYearBlur: DSControlledDateTimePickerInternalsT.OnBlurFunc = useCallback(() => {\n // this was used before, now that we have a wrapping onBlur resetting the focus tracker, this is unused;\n }, []);\n\n return useMemo(\n () => ({\n month,\n day,\n year,\n autoFocusMonthInput,\n innerRefMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n }),\n [\n month,\n day,\n year,\n autoFocusMonthInput,\n innerRefMonthInput,\n disabled,\n onMonthFocus,\n onMonthChange,\n onDayFocus,\n onDayChange,\n onYearFocus,\n onYearChange,\n onMonthBlur,\n onDayBlur,\n onYearBlur,\n onMonthKeyDown,\n onDayKeyDown,\n onYearKeyDown,\n ],\n );\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/propTypes.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { WeakValidationMap } from 'react';\nimport { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\nconst defaultReturnFalse = (): false => false;\nexport declare namespace DSControlledDateTimePickerT {\n export type OnInternalValuesChangeEvent =\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLButtonElement>\n | React.KeyboardEvent\n | React.MouseEvent<HTMLInputElement>\n | React.MouseEvent<HTMLButtonElement>;\n export type ControlTypes =\n | 'full-date-time'\n | 'date-time-inputs'\n | 'date-time-picker'\n | 'date-time-picker-controller-only'\n | 'full-date'\n | 'date-inputs'\n | 'date-picker'\n | 'date-picker-controller-only'\n | 'full-time'\n | 'time-inputs'\n | 'time-picker'\n | 'time-picker-controller-only';\n export interface InternalInputsChangeMetaInfo {\n isAutomaticFillTrigger?: boolean;\n isDayPresentInMonth?: boolean;\n isOutOfRangeDay?: boolean;\n isDisabledDay?: boolean;\n isDisabledTime?: boolean;\n suggestedErrorMsg?: string;\n newDateTimeString?: string;\n newDateString?: string;\n newTimeString?: string;\n }\n\n export type OnDateChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnDateTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnInternalInputsChange = (\n val: string,\n e: OnInternalValuesChangeEvent,\n metaInfo?: InternalInputsChangeMetaInfo,\n ) => void;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ DATE CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n export interface DefaultDateProps {\n onMonthChange: OnInternalInputsChange;\n onDayChange: OnInternalInputsChange;\n onYearChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledDay: BooleanGetter<string>;\n getIsOutOfRangeDay: BooleanGetter<string>;\n getIsStartRangeDay: BooleanGetter<string>;\n getIsDayInRange: BooleanGetter<string>;\n getIsEndRangeDay: BooleanGetter<string>;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalDatePickerProps {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n pickerFooterMsg?: string;\n }\n export interface RequiredDatePickerProps {\n type: 'full-date' | 'date-inputs' | 'date-picker' | 'date-picker-controller-only';\n date: string;\n onDateChange: OnDateChange;\n }\n export type DatePickerProps = OptionalDatePickerProps & Partial<DefaultDateProps> & RequiredDatePickerProps;\n export type InternalDatePickerProps = OptionalDatePickerProps & DefaultDateProps & RequiredDatePickerProps;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ TIME CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n\n export interface DefaultTimeProps {\n onHourChange: OnInternalInputsChange;\n onMinuteChange: OnInternalInputsChange;\n onMeridiemChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledTime: BooleanGetter<string>;\n minutesInterval: number;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalTimePickerProps {\n pickerFooterMsg?: string;\n onTimeWheelOpenStartingTime?: string;\n }\n export interface RequiredTimePickerProps {\n type: 'full-time' | 'time-inputs' | 'time-picker' | 'time-picker-controller-only';\n time: string;\n onTimeChange: OnTimeChange;\n }\n export type TimePickerProps = OptionalTimePickerProps & Partial<DefaultTimeProps> & RequiredTimePickerProps;\n export type InternalTimePickerProps = OptionalTimePickerProps & DefaultTimeProps & RequiredTimePickerProps;\n\n /* -------------------- ---------------------- ------------------------*/\n /* -------------------- DATETIME CONFIGURATION ------------------------*/\n /* -------------------- ---------------------- ------------------------*/\n\n export type DefaultDateTimeProps = DefaultTimeProps &\n DefaultDateProps & {\n onDateChange: OnDateChange;\n onTimeChange: OnTimeChange;\n };\n export type OptionalDateTimeProps = OptionalTimePickerProps & OptionalDatePickerProps;\n export interface RequiredDateTimeProps {\n type: 'full-date-time' | 'date-time-inputs' | 'date-time-picker' | 'date-time-picker-controller-only';\n dateTime: string;\n onDateTimeChange: OnDateTimeChange;\n }\n\n export type DateTimePickerProps = Partial<DefaultDateTimeProps> & OptionalDateTimeProps & RequiredDateTimeProps;\n export type InternalDateTimePickerProps = DefaultDateTimeProps & OptionalDateTimeProps & RequiredDateTimeProps;\n\n /* ---------------------- ------------------- -------------------------*/\n /* ---------------------- FINAL CONFIGURATION -------------------------*/\n /* ---------------------- ------------------- -------------------------*/\n export type DefaultProps = DefaultDateTimeProps & { type: 'full-date-time' };\n export type Props = DateTimePickerProps | DatePickerProps | TimePickerProps;\n export type InternalProps = InternalDateTimePickerProps | InternalDatePickerProps | InternalTimePickerProps;\n}\n\nexport const defaultProps: DSControlledDateTimePickerT.DefaultProps = {\n type: 'full-date-time',\n onDateChange: noop,\n onMonthChange: noop,\n onDayChange: noop,\n onYearChange: noop,\n onTimeChange: noop,\n onHourChange: noop,\n onMinuteChange: noop,\n onMeridiemChange: noop,\n onPickerOpen: noop,\n onPickerClose: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n getIsStartRangeDay: defaultReturnFalse,\n getIsDayInRange: defaultReturnFalse,\n getIsEndRangeDay: defaultReturnFalse,\n getIsDisabledTime: defaultReturnFalse,\n minutesInterval: 1,\n isClearable: false,\n disabled: false,\n hasError: false,\n autoFocus: false,\n preventCloseOnSelection: false,\n};\n\nexport const propTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-time',\n 'date-time-inputs',\n 'date-time-picker',\n 'date-time-picker-controller-only',\n 'full-date',\n 'date-inputs',\n 'date-picker',\n 'date-picker-controller-only',\n 'full-time',\n 'time-inputs',\n 'time-picker',\n 'time-picker-controller-only',\n ])\n .description('Type of time form control to use')\n .defaultValue('full-date-time'),\n disabled: PropTypes.bool.description('wheter or not the input is disabled').defaultValue(false),\n isClearable: PropTypes.bool.description('with or without clearable button').defaultValue(false),\n dateTime: PropTypes.string.description('when using date-time types, this is the value of the controller'),\n date: PropTypes.string.description('when using date types, this is the value of the controller'),\n time: PropTypes.string.description('when using time types, this is the value of the controller'),\n onDateChange: PropTypes.func.description('(newDateString, metaInformations) => void'),\n onTimeChange: PropTypes.func.description('(newTimeString, metaInformations) => void'),\n onDateTimeChange: PropTypes.func.description('(newDateTimeString, metaInformations) => void'),\n onMonthChange: PropTypes.func.description('(newMonthString, event, metaInformations) => void'),\n onDayChange: PropTypes.func.description('(newDayString, event, metaInformations) => void'),\n onYearChange: PropTypes.func.description('(newYearString, event, metaInformations) => void'),\n onHourChange: PropTypes.func.description('(newHourString, event, metaInformations) => void'),\n onMinuteChange: PropTypes.func.description('(newMinuteString, event, metaInformations) => void'),\n onMeridiemChange: PropTypes.func.description('(newMeridiemString, event, metaInformations) => void'),\n getIsDisabledDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsOutOfRangeDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsDisabledTime: PropTypes.func.description(\n '(timeAsString) => true for marking as disabled, false for marking as valid',\n ),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'which month to start the calendar on open, when value is empty, string following the \"MM/__/YYYY\" pattern',\n ),\n onCalendarOpenFocusedDay: PropTypes.string\n .description('which day to focus on calendar open when value is empty, string following the \"MM/DD/YYYY\" pattern')\n .defaultValue('if value is empty current month, else current month'),\n onTimeWheelOpenStartingTime: PropTypes.string\n .description(\n 'which day to start the timewheel on picker open when value is empty, string following the HH:MM AA\" pattern',\n )\n .defaultValue('01:00 AM'),\n minutesInterval: PropTypes.number\n .description('increments/decrements of minutes in time related controllers interactions')\n .defaultValue('1'),\n 'data-testid': PropTypes.string.description('Unique id for tests.').defaultValue(''),\n} as WeakValidationMap<unknown>;\n"],
5
- "mappings": "AAAA;ACEA;AAGA,MAAM,OAAO,MAAY;AAAC;AAC1B,MAAM,qBAAqB,MAAa;AAqIjC,MAAM,eAAyD;AAAA,EACpE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,yBAAyB;AAC3B;AAEO,MAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,UAAU,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACE,YAAY,kCAAkC,EAC9C,aAAa,gBAAgB;AAAA,EAChC,UAAU,UAAU,KAAK,YAAY,qCAAqC,EAAE,aAAa,KAAK;AAAA,EAC9F,aAAa,UAAU,KAAK,YAAY,kCAAkC,EAAE,aAAa,KAAK;AAAA,EAC9F,UAAU,UAAU,OAAO,YAAY,iEAAiE;AAAA,EACxG,MAAM,UAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,MAAM,UAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,cAAc,UAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,cAAc,UAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,kBAAkB,UAAU,KAAK,YAAY,+CAA+C;AAAA,EAC5F,eAAe,UAAU,KAAK,YAAY,mDAAmD;AAAA,EAC7F,aAAa,UAAU,KAAK,YAAY,iDAAiD;AAAA,EACzF,cAAc,UAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,cAAc,UAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,gBAAgB,UAAU,KAAK,YAAY,oDAAoD;AAAA,EAC/F,kBAAkB,UAAU,KAAK,YAAY,sDAAsD;AAAA,EACnG,kBAAkB,UAAU,KAAK,YAC/B,2EACF;AAAA,EACA,oBAAoB,UAAU,KAAK,YACjC,2EACF;AAAA,EACA,mBAAmB,UAAU,KAAK,YAChC,4EACF;AAAA,EACA,0BAA0B,UAAU,OAAO,YACzC,2GACF;AAAA,EACA,0BAA0B,UAAU,OACjC,YAAY,oGAAoG,EAChH,aAAa,qDAAqD;AAAA,EACrE,6BAA6B,UAAU,OACpC,YACC,6GACF,EACC,aAAa,UAAU;AAAA,EAC1B,iBAAiB,UAAU,OACxB,YAAY,2EAA2E,EACvF,aAAa,GAAG;AAAA,EACnB,eAAe,UAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,EAAE;AACrF;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { WeakValidationMap } from 'react';\nimport { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\nconst defaultReturnFalse = (): false => false;\nexport declare namespace DSControlledDateTimePickerT {\n export type OnInternalValuesChangeEvent =\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLButtonElement>\n | React.KeyboardEvent\n | React.MouseEvent<HTMLInputElement>\n | React.MouseEvent<HTMLButtonElement>;\n export type ControlTypes =\n | 'full-date-time'\n | 'date-time-inputs'\n | 'date-time-picker'\n | 'date-time-picker-controller-only'\n | 'full-date'\n | 'date-inputs'\n | 'date-picker'\n | 'date-picker-controller-only'\n | 'full-time'\n | 'time-inputs'\n | 'time-picker'\n | 'time-picker-controller-only';\n export interface InternalInputsChangeMetaInfo {\n isAutomaticFillTrigger?: boolean;\n isDayPresentInMonth?: boolean;\n isOutOfRangeDay?: boolean;\n isDisabledDay?: boolean;\n isDisabledTime?: boolean;\n suggestedErrorMsg?: string;\n newDateTimeString?: string;\n newDateString?: string;\n newTimeString?: string;\n }\n\n export type OnDateChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnDateTimeChange = (val: string, metaInfo: InternalInputsChangeMetaInfo) => void;\n export type OnInternalInputsChange = (\n val: string,\n e: OnInternalValuesChangeEvent,\n metaInfo?: InternalInputsChangeMetaInfo,\n ) => void;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ DATE CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n export interface DefaultDateProps {\n onMonthChange: OnInternalInputsChange;\n onDayChange: OnInternalInputsChange;\n onYearChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledDay: BooleanGetter<string>;\n getIsOutOfRangeDay: BooleanGetter<string>;\n getIsStartRangeDay: BooleanGetter<string>;\n getIsDayInRange: BooleanGetter<string>;\n getIsEndRangeDay: BooleanGetter<string>;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalDatePickerProps {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n pickerFooterMsg?: string;\n innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement>;\n }\n export interface RequiredDatePickerProps {\n type: 'full-date' | 'date-inputs' | 'date-picker' | 'date-picker-controller-only';\n date: string;\n onDateChange: OnDateChange;\n }\n export type DatePickerProps = OptionalDatePickerProps & Partial<DefaultDateProps> & RequiredDatePickerProps;\n export type InternalDatePickerProps = OptionalDatePickerProps & DefaultDateProps & RequiredDatePickerProps;\n\n /* ------------------------ ------------------ ------------------------*/\n /* ------------------------ TIME CONFIGURATION ------------------------*/\n /* ------------------------ ------------------ ------------------------*/\n\n export interface DefaultTimeProps {\n onHourChange: OnInternalInputsChange;\n onMinuteChange: OnInternalInputsChange;\n onMeridiemChange: OnInternalInputsChange;\n onPickerOpen: NoopishFunc;\n onPickerClose: NoopishFunc;\n getIsDisabledTime: BooleanGetter<string>;\n minutesInterval: number;\n isClearable: boolean;\n disabled: boolean;\n hasError: boolean;\n autoFocus: boolean;\n preventCloseOnSelection: boolean;\n }\n export interface OptionalTimePickerProps {\n pickerFooterMsg?: string;\n onTimeWheelOpenStartingTime?: string;\n innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement>;\n }\n export interface RequiredTimePickerProps {\n type: 'full-time' | 'time-inputs' | 'time-picker' | 'time-picker-controller-only';\n time: string;\n onTimeChange: OnTimeChange;\n }\n export type TimePickerProps = OptionalTimePickerProps & Partial<DefaultTimeProps> & RequiredTimePickerProps;\n export type InternalTimePickerProps = OptionalTimePickerProps & DefaultTimeProps & RequiredTimePickerProps;\n\n /* -------------------- ---------------------- ------------------------*/\n /* -------------------- DATETIME CONFIGURATION ------------------------*/\n /* -------------------- ---------------------- ------------------------*/\n\n export type DefaultDateTimeProps = DefaultTimeProps &\n DefaultDateProps & {\n onDateChange: OnDateChange;\n onTimeChange: OnTimeChange;\n };\n export type OptionalDateTimeProps = OptionalTimePickerProps & OptionalDatePickerProps;\n export interface RequiredDateTimeProps {\n type: 'full-date-time' | 'date-time-inputs' | 'date-time-picker' | 'date-time-picker-controller-only';\n dateTime: string;\n onDateTimeChange: OnDateTimeChange;\n }\n\n export type DateTimePickerProps = Partial<DefaultDateTimeProps> & OptionalDateTimeProps & RequiredDateTimeProps;\n export type InternalDateTimePickerProps = DefaultDateTimeProps & OptionalDateTimeProps & RequiredDateTimeProps;\n\n /* ---------------------- ------------------- -------------------------*/\n /* ---------------------- FINAL CONFIGURATION -------------------------*/\n /* ---------------------- ------------------- -------------------------*/\n export type DefaultProps = DefaultDateTimeProps & { type: 'full-date-time' };\n export type Props = DateTimePickerProps | DatePickerProps | TimePickerProps;\n export type InternalProps = InternalDateTimePickerProps | InternalDatePickerProps | InternalTimePickerProps;\n}\n\nexport const defaultProps: DSControlledDateTimePickerT.DefaultProps = {\n type: 'full-date-time',\n onDateChange: noop,\n onMonthChange: noop,\n onDayChange: noop,\n onYearChange: noop,\n onTimeChange: noop,\n onHourChange: noop,\n onMinuteChange: noop,\n onMeridiemChange: noop,\n onPickerOpen: noop,\n onPickerClose: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n getIsStartRangeDay: defaultReturnFalse,\n getIsDayInRange: defaultReturnFalse,\n getIsEndRangeDay: defaultReturnFalse,\n getIsDisabledTime: defaultReturnFalse,\n minutesInterval: 1,\n isClearable: false,\n disabled: false,\n hasError: false,\n autoFocus: false,\n preventCloseOnSelection: false,\n};\n\nexport const propTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-time',\n 'date-time-inputs',\n 'date-time-picker',\n 'date-time-picker-controller-only',\n 'full-date',\n 'date-inputs',\n 'date-picker',\n 'date-picker-controller-only',\n 'full-time',\n 'time-inputs',\n 'time-picker',\n 'time-picker-controller-only',\n ])\n .description('Type of time form control to use')\n .defaultValue('full-date-time'),\n disabled: PropTypes.bool.description('wheter or not the input is disabled').defaultValue(false),\n isClearable: PropTypes.bool.description('with or without clearable button').defaultValue(false),\n dateTime: PropTypes.string.description('when using date-time types, this is the value of the controller'),\n date: PropTypes.string.description('when using date types, this is the value of the controller'),\n time: PropTypes.string.description('when using time types, this is the value of the controller'),\n onDateChange: PropTypes.func.description('(newDateString, metaInformations) => void'),\n onTimeChange: PropTypes.func.description('(newTimeString, metaInformations) => void'),\n onDateTimeChange: PropTypes.func.description('(newDateTimeString, metaInformations) => void'),\n onMonthChange: PropTypes.func.description('(newMonthString, event, metaInformations) => void'),\n onDayChange: PropTypes.func.description('(newDayString, event, metaInformations) => void'),\n onYearChange: PropTypes.func.description('(newYearString, event, metaInformations) => void'),\n onHourChange: PropTypes.func.description('(newHourString, event, metaInformations) => void'),\n onMinuteChange: PropTypes.func.description('(newMinuteString, event, metaInformations) => void'),\n onMeridiemChange: PropTypes.func.description('(newMeridiemString, event, metaInformations) => void'),\n getIsDisabledDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsOutOfRangeDay: PropTypes.func.description(\n '(dayAsString) => true for marking as disabled, false for marking as valid',\n ),\n getIsDisabledTime: PropTypes.func.description(\n '(timeAsString) => true for marking as disabled, false for marking as valid',\n ),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'which month to start the calendar on open, when value is empty, string following the \"MM/__/YYYY\" pattern',\n ),\n onCalendarOpenFocusedDay: PropTypes.string\n .description('which day to focus on calendar open when value is empty, string following the \"MM/DD/YYYY\" pattern')\n .defaultValue('if value is empty current month, else current month'),\n onTimeWheelOpenStartingTime: PropTypes.string\n .description(\n 'which day to start the timewheel on picker open when value is empty, string following the HH:MM AA\" pattern',\n )\n .defaultValue('01:00 AM'),\n minutesInterval: PropTypes.number\n .description('increments/decrements of minutes in time related controllers interactions')\n .defaultValue('1'),\n 'data-testid': PropTypes.string.description('Unique id for tests.').defaultValue(''),\n} as WeakValidationMap<unknown>;\n"],
5
+ "mappings": "AAAA;ACEA;AAGA,MAAM,OAAO,MAAY;AAAC;AAC1B,MAAM,qBAAqB,MAAa;AAuIjC,MAAM,eAAyD;AAAA,EACpE,MAAM;AAAA,EACN,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,yBAAyB;AAC3B;AAEO,MAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,UAAU,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACE,YAAY,kCAAkC,EAC9C,aAAa,gBAAgB;AAAA,EAChC,UAAU,UAAU,KAAK,YAAY,qCAAqC,EAAE,aAAa,KAAK;AAAA,EAC9F,aAAa,UAAU,KAAK,YAAY,kCAAkC,EAAE,aAAa,KAAK;AAAA,EAC9F,UAAU,UAAU,OAAO,YAAY,iEAAiE;AAAA,EACxG,MAAM,UAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,MAAM,UAAU,OAAO,YAAY,4DAA4D;AAAA,EAC/F,cAAc,UAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,cAAc,UAAU,KAAK,YAAY,2CAA2C;AAAA,EACpF,kBAAkB,UAAU,KAAK,YAAY,+CAA+C;AAAA,EAC5F,eAAe,UAAU,KAAK,YAAY,mDAAmD;AAAA,EAC7F,aAAa,UAAU,KAAK,YAAY,iDAAiD;AAAA,EACzF,cAAc,UAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,cAAc,UAAU,KAAK,YAAY,kDAAkD;AAAA,EAC3F,gBAAgB,UAAU,KAAK,YAAY,oDAAoD;AAAA,EAC/F,kBAAkB,UAAU,KAAK,YAAY,sDAAsD;AAAA,EACnG,kBAAkB,UAAU,KAAK,YAC/B,2EACF;AAAA,EACA,oBAAoB,UAAU,KAAK,YACjC,2EACF;AAAA,EACA,mBAAmB,UAAU,KAAK,YAChC,4EACF;AAAA,EACA,0BAA0B,UAAU,OAAO,YACzC,2GACF;AAAA,EACA,0BAA0B,UAAU,OACjC,YAAY,oGAAoG,EAChH,aAAa,qDAAqD;AAAA,EACrE,6BAA6B,UAAU,OACpC,YACC,6GACF,EACC,aAAa,UAAU;AAAA,EAC1B,iBAAiB,UAAU,OACxB,YAAY,2EAA2E,EACvF,aAAa,GAAG;AAAA,EACnB,eAAe,UAAU,OAAO,YAAY,sBAAsB,EAAE,aAAa,EAAE;AACrF;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-form-date-time-picker",
3
- "version": "3.5.0-rc.1",
3
+ "version": "3.5.0-rc.4",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Controlled Form Date Time Picker",
6
6
  "files": [
@@ -35,13 +35,13 @@
35
35
  "indent": 4
36
36
  },
37
37
  "dependencies": {
38
- "@elliemae/ds-button": "3.5.0-rc.1",
39
- "@elliemae/ds-grid": "3.5.0-rc.1",
40
- "@elliemae/ds-icon": "3.5.0-rc.1",
41
- "@elliemae/ds-icons": "3.5.0-rc.1",
42
- "@elliemae/ds-popperjs": "3.5.0-rc.1",
43
- "@elliemae/ds-system": "3.5.0-rc.1",
44
- "@elliemae/ds-utilities": "3.5.0-rc.1"
38
+ "@elliemae/ds-button": "3.5.0-rc.4",
39
+ "@elliemae/ds-grid": "3.5.0-rc.4",
40
+ "@elliemae/ds-icon": "3.5.0-rc.4",
41
+ "@elliemae/ds-icons": "3.5.0-rc.4",
42
+ "@elliemae/ds-popperjs": "3.5.0-rc.4",
43
+ "@elliemae/ds-system": "3.5.0-rc.4",
44
+ "@elliemae/ds-utilities": "3.5.0-rc.4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@elliemae/pui-theme": "~2.6.0",