@elliemae/ds-form-date-range-picker 3.60.0-next.6 → 3.60.0-next.60

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.
Files changed (37) hide show
  1. package/dist/cjs/ControlledDateRangePicker.js +2 -2
  2. package/dist/cjs/ControlledDateRangePicker.js.map +2 -2
  3. package/dist/cjs/config/useControlledDateRangePicker.js +1 -1
  4. package/dist/cjs/config/useControlledDateRangePicker.js.map +2 -2
  5. package/dist/cjs/config/useRangePickerLogic.js +2 -0
  6. package/dist/cjs/config/useRangePickerLogic.js.map +2 -2
  7. package/dist/cjs/index.js +2 -2
  8. package/dist/cjs/index.js.map +2 -2
  9. package/dist/cjs/parts/ControlledDateRangeCalendar.js +74 -31
  10. package/dist/cjs/parts/ControlledDateRangeCalendar.js.map +3 -3
  11. package/dist/cjs/parts/ControlledDateRangeFromDate.js +5 -1
  12. package/dist/cjs/parts/ControlledDateRangeFromDate.js.map +2 -2
  13. package/dist/cjs/parts/ControlledDateRangeToDate.js +5 -1
  14. package/dist/cjs/parts/ControlledDateRangeToDate.js.map +2 -2
  15. package/dist/cjs/react-desc-prop-types.js +4 -0
  16. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  17. package/dist/esm/ControlledDateRangePicker.js +2 -2
  18. package/dist/esm/ControlledDateRangePicker.js.map +2 -2
  19. package/dist/esm/config/useControlledDateRangePicker.js +1 -1
  20. package/dist/esm/config/useControlledDateRangePicker.js.map +2 -2
  21. package/dist/esm/config/useRangePickerLogic.js +2 -0
  22. package/dist/esm/config/useRangePickerLogic.js.map +2 -2
  23. package/dist/esm/index.js +7 -7
  24. package/dist/esm/index.js.map +2 -2
  25. package/dist/esm/parts/ControlledDateRangeCalendar.js +80 -33
  26. package/dist/esm/parts/ControlledDateRangeCalendar.js.map +3 -3
  27. package/dist/esm/parts/ControlledDateRangeFromDate.js +5 -1
  28. package/dist/esm/parts/ControlledDateRangeFromDate.js.map +2 -2
  29. package/dist/esm/parts/ControlledDateRangeToDate.js +5 -1
  30. package/dist/esm/parts/ControlledDateRangeToDate.js.map +2 -2
  31. package/dist/esm/react-desc-prop-types.js +4 -0
  32. package/dist/esm/react-desc-prop-types.js.map +2 -2
  33. package/dist/types/ControlledDateRangePicker.d.ts +1 -1
  34. package/dist/types/config/useControlledDateRangePicker.d.ts +1 -0
  35. package/dist/types/index.d.ts +3 -3
  36. package/dist/types/react-desc-prop-types.d.ts +1 -0
  37. package/package.json +27 -30
@@ -36,10 +36,10 @@ var React = __toESM(require("react"));
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
37
37
  var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
38
38
  var import_useControlledDateRangePicker = require("./config/useControlledDateRangePicker.js");
39
- var import_ControlledDateRangeContent = require("./parts/ControlledDateRangeContent.js");
40
- var import_react_desc_prop_types = require("./react-desc-prop-types.js");
41
39
  var import_ControlledDateRangePickerCTX = require("./ControlledDateRangePickerCTX.js");
42
40
  var import_theming = require("./exported-related/theming.js");
41
+ var import_ControlledDateRangeContent = require("./parts/ControlledDateRangeContent.js");
42
+ var import_react_desc_prop_types = require("./react-desc-prop-types.js");
43
43
  const DSControlledDateRangePicker = (props) => {
44
44
  const ctx = (0, import_useControlledDateRangePicker.useControlledDateRangePicker)(props);
45
45
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ControlledDateRangePickerCTX.ControlledDateRangePickerContext.Provider, { value: ctx, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ControlledDateRangeContent.ControlledDateRangeContent, {}) });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ControlledDateRangePicker.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { useControlledDateRangePicker } from './config/useControlledDateRangePicker.js';\nimport { ControlledDateRangeContent } from './parts/ControlledDateRangeContent.js';\nimport { DSControlledDateRangePickerPropTypesWithSchema } from './react-desc-prop-types.js';\nimport { ControlledDateRangePickerContext } from './ControlledDateRangePickerCTX.js';\nimport type { DSControlledDateRangePickerT } from './react-desc-prop-types.js';\nimport { DSControlledDateRangePickerName } from './exported-related/theming.js';\n\nconst DSControlledDateRangePicker = (props: DSControlledDateRangePickerT.Props): JSX.Element => {\n const ctx = useControlledDateRangePicker(props);\n return (\n <ControlledDateRangePickerContext.Provider value={ctx}>\n <ControlledDateRangeContent />\n </ControlledDateRangePickerContext.Provider>\n );\n};\n\nDSControlledDateRangePicker.displayName = DSControlledDateRangePickerName;\nconst DSControlledDateRangePickerWithSchema = describe(DSControlledDateRangePicker);\nDSControlledDateRangePickerWithSchema.propTypes = DSControlledDateRangePickerPropTypesWithSchema;\n\nexport { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADcjB;AAZN,8BAAyB;AACzB,0CAA6C;AAC7C,wCAA2C;AAC3C,mCAA+D;AAC/D,0CAAiD;AAEjD,qBAAgD;AAEhD,MAAM,8BAA8B,CAAC,UAA2D;AAC9F,QAAM,UAAM,kEAA6B,KAAK;AAC9C,SACE,4CAAC,qEAAiC,UAAjC,EAA0C,OAAO,KAChD,sDAAC,gEAA2B,GAC9B;AAEJ;AAEA,4BAA4B,cAAc;AAC1C,MAAM,4CAAwC,kCAAS,2BAA2B;AAClF,sCAAsC,YAAY;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { useControlledDateRangePicker } from './config/useControlledDateRangePicker.js';\nimport { ControlledDateRangePickerContext } from './ControlledDateRangePickerCTX.js';\nimport { DSControlledDateRangePickerName } from './exported-related/theming.js';\nimport { ControlledDateRangeContent } from './parts/ControlledDateRangeContent.js';\nimport type { DSControlledDateRangePickerT } from './react-desc-prop-types.js';\nimport { DSControlledDateRangePickerPropTypesWithSchema } from './react-desc-prop-types.js';\n\nconst DSControlledDateRangePicker = (props: DSControlledDateRangePickerT.Props): JSX.Element => {\n const ctx = useControlledDateRangePicker(props);\n return (\n <ControlledDateRangePickerContext.Provider value={ctx}>\n <ControlledDateRangeContent />\n </ControlledDateRangePickerContext.Provider>\n );\n};\n\nDSControlledDateRangePicker.displayName = DSControlledDateRangePickerName;\nconst DSControlledDateRangePickerWithSchema = describe(DSControlledDateRangePicker);\nDSControlledDateRangePickerWithSchema.propTypes = DSControlledDateRangePickerPropTypesWithSchema;\n\nexport { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADajB;AAZN,8BAAyB;AACzB,0CAA6C;AAC7C,0CAAiD;AACjD,qBAAgD;AAChD,wCAA2C;AAE3C,mCAA+D;AAE/D,MAAM,8BAA8B,CAAC,UAA2D;AAC9F,QAAM,UAAM,kEAA6B,KAAK;AAC9C,SACE,4CAAC,qEAAiC,UAAjC,EAA0C,OAAO,KAChD,sDAAC,gEAA2B,GAC9B;AAEJ;AAEA,4BAA4B,cAAc;AAC1C,MAAM,4CAAwC,kCAAS,2BAA2B;AAClF,sCAAsC,YAAY;",
6
6
  "names": []
7
7
  }
@@ -41,7 +41,7 @@ var import_useRangePickerLogic = require("./useRangePickerLogic.js");
41
41
  var import_ControlledDateRangePickerTypes = require("../ControlledDateRangePickerTypes.js");
42
42
  const useControlledDateRangePicker = (props) => {
43
43
  (0, import_useValidateProps.useValidateProps)(props);
44
- const instanceUID = (0, import_react.useMemo)(() => (0, import_uid.uid)(6), []);
44
+ const instanceUID = (0, import_react.useMemo)(() => `ds-date-range-picker-uid-${(0, import_uid.uid)(6)}`, []);
45
45
  const propsWithDefaults = (0, import_useGetPropsWithDefault.useGetDateRangePickerWithDefaultsProps)(props);
46
46
  const ownerPropsConfig = (0, import_ds_props_helpers.useOwnerProps)(propsWithDefaults, { ...props });
47
47
  const xstyledAttrs = (0, import_ds_props_helpers.useGetXstyledProps)(propsWithDefaults);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/config/useControlledDateRangePicker.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable import/prefer-default-export */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { uid } from 'uid';\nimport { useGetGlobalAttributes, useGetXstyledProps, useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { useGetDateRangePickerWithDefaultsProps } from './useGetPropsWithDefault.js';\nimport { useValidateProps } from './useValidateProps.js';\nimport { useRangePickerLogic } from './useRangePickerLogic.js';\nimport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from '../ControlledDateRangePickerTypes.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\ninterface RangePickerLogicT {\n latestChangedDate: string;\n\n onCalendarOpen: () => void;\n onCalendarClose: () => void;\n\n handleFromDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handleToDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n\n handlePickerDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handlePickerMonthDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerDayDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerYearDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n\n getIsStartRangeDay: (day: string) => boolean;\n getIsDayInRange: (day: string) => boolean;\n getIsEndRangeDay: (day: string) => boolean;\n}\n\nexport interface ControlledDateRangePickerContextT {\n props: DSControlledDateRangePickerT.InternalProps;\n instanceUID: string;\n rangePickerLogic: RangePickerLogicT;\n withInputs: boolean;\n withIcon: boolean;\n isControllerOnly: boolean;\n isPickerOnly: boolean;\n xstyledAttrs: Record<string, unknown>;\n globalAttrs: Record<string, unknown>;\n ownerPropsConfig: Record<string, unknown>;\n}\n\nexport const useControlledDateRangePicker = (\n props: DSControlledDateRangePickerT.Props,\n): ControlledDateRangePickerContextT => {\n // if we detect wrong props configuration we throw meaningful errors\n useValidateProps(props);\n const instanceUID = useMemo(() => uid(6), []);\n const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);\n\n const ownerPropsConfig = useOwnerProps(propsWithDefaults, { ...props });\n\n const xstyledAttrs = useGetXstyledProps(propsWithDefaults) as Record<string, unknown>;\n\n const globalAttrs = useGetGlobalAttributes(propsWithDefaults) as Record<string, unknown>;\n\n const { type } = propsWithDefaults;\n\n const withInputs =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.INPUTS;\n const withIcon =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n const isControllerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.CONTROLLER_ONLY;\n const isPickerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n\n const rangePickerLogic = useRangePickerLogic(propsWithDefaults);\n\n const ctx = useMemo(\n () => ({\n props: { ...propsWithDefaults },\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n }),\n [\n propsWithDefaults,\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n ],\n );\n\n return ctx;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAwB;AACxB,iBAAoB;AACpB,8BAA0E;AAC1E,oCAAuD;AACvD,8BAAiC;AACjC,iCAAoC;AACpC,4CAAmD;AAmC5C,MAAM,+BAA+B,CAC1C,UACsC;AAEtC,gDAAiB,KAAK;AACtB,QAAM,kBAAc,sBAAQ,UAAM,gBAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAM,wBAAoB,sEAAuC,KAAK;AAEtE,QAAM,uBAAmB,uCAAc,mBAAmB,EAAE,GAAG,MAAM,CAAC;AAEtE,QAAM,mBAAe,4CAAmB,iBAAiB;AAEzD,QAAM,kBAAc,gDAAuB,iBAAiB;AAE5D,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,aACJ,SAAS,yEAAmC,QAAQ,SAAS,yEAAmC;AAClG,QAAM,WACJ,SAAS,yEAAmC,QAAQ,SAAS,yEAAmC;AAClG,QAAM,mBAAmB,SAAS,yEAAmC;AACrE,QAAM,eAAe,SAAS,yEAAmC;AAEjE,QAAM,uBAAmB,gDAAoB,iBAAiB;AAE9D,QAAM,UAAM;AAAA,IACV,OAAO;AAAA,MACL,OAAO,EAAE,GAAG,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable import/prefer-default-export */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { uid } from 'uid';\nimport { useGetGlobalAttributes, useGetXstyledProps, useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { useGetDateRangePickerWithDefaultsProps } from './useGetPropsWithDefault.js';\nimport { useValidateProps } from './useValidateProps.js';\nimport { useRangePickerLogic } from './useRangePickerLogic.js';\nimport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from '../ControlledDateRangePickerTypes.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\ninterface RangePickerLogicT {\n calendarChangeIsFrom: boolean;\n latestChangedDate: string;\n\n onCalendarOpen: () => void;\n onCalendarClose: () => void;\n\n handleFromDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handleToDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n\n handlePickerDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handlePickerMonthDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerDayDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerYearDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n\n getIsStartRangeDay: (day: string) => boolean;\n getIsDayInRange: (day: string) => boolean;\n getIsEndRangeDay: (day: string) => boolean;\n}\n\nexport interface ControlledDateRangePickerContextT {\n props: DSControlledDateRangePickerT.InternalProps;\n instanceUID: string;\n rangePickerLogic: RangePickerLogicT;\n withInputs: boolean;\n withIcon: boolean;\n isControllerOnly: boolean;\n isPickerOnly: boolean;\n xstyledAttrs: Record<string, unknown>;\n globalAttrs: Record<string, unknown>;\n ownerPropsConfig: Record<string, unknown>;\n}\n\nexport const useControlledDateRangePicker = (\n props: DSControlledDateRangePickerT.Props,\n): ControlledDateRangePickerContextT => {\n // if we detect wrong props configuration we throw meaningful errors\n useValidateProps(props);\n const instanceUID = useMemo(() => `ds-date-range-picker-uid-${uid(6)}`, []);\n const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);\n\n const ownerPropsConfig = useOwnerProps(propsWithDefaults, { ...props });\n\n const xstyledAttrs = useGetXstyledProps(propsWithDefaults) as Record<string, unknown>;\n\n const globalAttrs = useGetGlobalAttributes(propsWithDefaults) as Record<string, unknown>;\n\n const { type } = propsWithDefaults;\n\n const withInputs =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.INPUTS;\n const withIcon =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n const isControllerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.CONTROLLER_ONLY;\n const isPickerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n\n const rangePickerLogic = useRangePickerLogic(propsWithDefaults);\n\n const ctx = useMemo(\n () => ({\n props: { ...propsWithDefaults },\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n }),\n [\n propsWithDefaults,\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n ],\n );\n\n return ctx;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAwB;AACxB,iBAAoB;AACpB,8BAA0E;AAC1E,oCAAuD;AACvD,8BAAiC;AACjC,iCAAoC;AACpC,4CAAmD;AAoC5C,MAAM,+BAA+B,CAC1C,UACsC;AAEtC,gDAAiB,KAAK;AACtB,QAAM,kBAAc,sBAAQ,MAAM,gCAA4B,gBAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1E,QAAM,wBAAoB,sEAAuC,KAAK;AAEtE,QAAM,uBAAmB,uCAAc,mBAAmB,EAAE,GAAG,MAAM,CAAC;AAEtE,QAAM,mBAAe,4CAAmB,iBAAiB;AAEzD,QAAM,kBAAc,gDAAuB,iBAAiB;AAE5D,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,aACJ,SAAS,yEAAmC,QAAQ,SAAS,yEAAmC;AAClG,QAAM,WACJ,SAAS,yEAAmC,QAAQ,SAAS,yEAAmC;AAClG,QAAM,mBAAmB,SAAS,yEAAmC;AACrE,QAAM,eAAe,SAAS,yEAAmC;AAEjE,QAAM,uBAAmB,gDAAoB,iBAAiB;AAE9D,QAAM,UAAM;AAAA,IACV,OAAO;AAAA,MACL,OAAO,EAAE,GAAG,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -161,6 +161,7 @@ const useRangePickerLogic = ({
161
161
  );
162
162
  return (0, import_react.useMemo)(
163
163
  () => ({
164
+ calendarChangeIsFrom,
164
165
  latestChangedDate,
165
166
  onCalendarOpen,
166
167
  onCalendarClose,
@@ -175,6 +176,7 @@ const useRangePickerLogic = ({
175
176
  getIsEndRangeDay
176
177
  }),
177
178
  [
179
+ calendarChangeIsFrom,
178
180
  latestChangedDate,
179
181
  onCalendarOpen,
180
182
  onCalendarClose,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/config/useRangePickerLogic.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport { useCallback, useState, useMemo, useEffect } from 'react';\nimport { getDayFromDateString } from '@elliemae/ds-form-date-time-picker';\nimport type { ControlledDateRangePickerContextT } from './useControlledDateRangePicker.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\nexport const useRangePickerLogic = ({\n fromDate,\n onFromDateChange,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n onToDateChange,\n}: DSControlledDateRangePickerT.InternalProps): ControlledDateRangePickerContextT['rangePickerLogic'] => {\n // the implementation is based on controlled-date-time-picker that is not meant to \"understand\"\n // the \"from\" - \"to\" logic on click, we are \"overloading\" the \"from\" - \"to\" logic here\n // we track wheter we are going to set the \"from\" OR \"to\" controlled date based on this toggle\n const [calendarChangeIsFrom, setCalendarChangeIsFrom] = useState(true);\n const [latestChangedDate, setLatestChangedDate] = useState(fromDate);\n useEffect(() => {\n setLatestChangedDate(fromDate);\n }, [fromDate]);\n useEffect(() => {\n setLatestChangedDate(toDate);\n }, [toDate]);\n\n const getChangedDayStringValues = useCallback(\n (changedDay: string) => {\n // based on wheter we are handling a \"from\"/\"to\" change, we calculate some values\n const dateFromString = calendarChangeIsFrom ? changedDay : fromDate;\n const dateFrom = getDayFromDateString(dateFromString);\n const dateToString = calendarChangeIsFrom ? toDate : changedDay;\n const dateTo = getDayFromDateString(dateToString);\n // we force the \"from\" to ALWAYS be before the \"to\" date\n const isToBeforeFrom = !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n const newDateFromString = isToBeforeFrom ? dateToString : dateFromString;\n const forcingFromDatePick = isToBeforeFrom ? !calendarChangeIsFrom : false;\n const newDateToString = isToBeforeFrom ? dateFromString : dateToString;\n const forcingToDatePick = isToBeforeFrom ? calendarChangeIsFrom : false;\n\n // next change should be based on\n // the force pick next interactions\n // toggle between from/to if we didn't force any pick\n let nextToggleStateIsFrom = !calendarChangeIsFrom;\n if (forcingFromDatePick) nextToggleStateIsFrom = false;\n if (forcingToDatePick) nextToggleStateIsFrom = true;\n\n return {\n newDateFromString,\n forcingFromDatePick,\n newDateToString,\n forcingToDatePick,\n isToBeforeFrom,\n nextToggleStateIsFrom,\n currentClickCountAsFrom: !nextToggleStateIsFrom,\n };\n },\n [fromDate, calendarChangeIsFrom, toDate],\n );\n const handlePickerMonthDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerMonthDateChange'] =\n useCallback(\n (newMonth, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onMonthFromChange(newMonth, e, metaInfo);\n else onMonthToChange(newMonth, e, metaInfo);\n },\n [getChangedDayStringValues, onMonthFromChange, onMonthToChange],\n );\n const handlePickerDayDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDayDateChange'] =\n useCallback(\n (newDay, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onDayFromChange(newDay, e, metaInfo);\n else onDayToChange(newDay, e, metaInfo);\n },\n [getChangedDayStringValues, onDayFromChange, onDayToChange],\n );\n const handlePickerYearDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerYearDateChange'] =\n useCallback(\n (newYear, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onYearFromChange(newYear, e, metaInfo);\n else onYearToChange(newYear, e, metaInfo);\n },\n [getChangedDayStringValues, onYearFromChange, onYearToChange],\n );\n\n // every time the calendar opens/closes, we assume first click is \"from\"\n const onCalendarOpen: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarOpen'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const onCalendarClose: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarClose'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const handlePickerDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDateChange'] =\n useCallback(\n (changedDay, metaInfo) => {\n const { newDateFromString, newDateToString, nextToggleStateIsFrom, isToBeforeFrom } =\n getChangedDayStringValues(changedDay);\n\n // every \"change\" on the picker range we calculate it as a new \"onChange\" for both values\n // and we pass over the correct \"new\" from/to value\n onFromDateChange(newDateFromString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n onToDateChange(newDateToString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n\n // and we notify what the next change type should be\n setCalendarChangeIsFrom(nextToggleStateIsFrom);\n },\n [getChangedDayStringValues, onFromDateChange, onToDateChange],\n );\n\n const getIsStartRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsStartRangeDay'] = useCallback(\n (dayString) => dayString === fromDate,\n [fromDate],\n );\n const getIsDayInRange: ControlledDateRangePickerContextT['rangePickerLogic']['getIsDayInRange'] = useCallback(\n (dayString) => {\n const dayFrom = getDayFromDateString(fromDate);\n const dayTo = getDayFromDateString(toDate);\n if (!dayFrom || !dayTo || !dayString) return false;\n const newDayTime = getDayFromDateString(dayString)?.getTime();\n return !!newDayTime && newDayTime <= dayTo.getTime() && newDayTime >= dayFrom.getTime();\n },\n [fromDate, toDate],\n );\n const getIsEndRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsEndRangeDay'] = useCallback(\n (dayString) => dayString === toDate,\n [toDate],\n );\n\n const getIsToBeforeFrom = useCallback((fromString: string, toString: string) => {\n const dateFrom = getDayFromDateString(fromString);\n const dateTo = getDayFromDateString(toString);\n return !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n }, []);\n const handleFromDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleFromDateChange'] =\n useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(newVal, toDate);\n onFromDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'from', isIncorrectOrder });\n },\n [getIsToBeforeFrom, onFromDateChange, toDate],\n );\n const handleToDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleToDateChange'] = useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(fromDate, newVal);\n onToDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'to', isIncorrectOrder });\n },\n [fromDate, getIsToBeforeFrom, onToDateChange],\n );\n\n return useMemo(\n () => ({\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n }),\n [\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport { useCallback, useState, useMemo, useEffect } from 'react';\nimport { getDayFromDateString } from '@elliemae/ds-form-date-time-picker';\nimport type { ControlledDateRangePickerContextT } from './useControlledDateRangePicker.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\nexport const useRangePickerLogic = ({\n fromDate,\n onFromDateChange,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n onToDateChange,\n}: DSControlledDateRangePickerT.InternalProps): ControlledDateRangePickerContextT['rangePickerLogic'] => {\n // the implementation is based on controlled-date-time-picker that is not meant to \"understand\"\n // the \"from\" - \"to\" logic on click, we are \"overloading\" the \"from\" - \"to\" logic here\n // we track wheter we are going to set the \"from\" OR \"to\" controlled date based on this toggle\n const [calendarChangeIsFrom, setCalendarChangeIsFrom] = useState(true);\n const [latestChangedDate, setLatestChangedDate] = useState(fromDate);\n useEffect(() => {\n setLatestChangedDate(fromDate);\n }, [fromDate]);\n useEffect(() => {\n setLatestChangedDate(toDate);\n }, [toDate]);\n\n const getChangedDayStringValues = useCallback(\n (changedDay: string) => {\n // based on wheter we are handling a \"from\"/\"to\" change, we calculate some values\n const dateFromString = calendarChangeIsFrom ? changedDay : fromDate;\n const dateFrom = getDayFromDateString(dateFromString);\n const dateToString = calendarChangeIsFrom ? toDate : changedDay;\n const dateTo = getDayFromDateString(dateToString);\n // we force the \"from\" to ALWAYS be before the \"to\" date\n const isToBeforeFrom = !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n const newDateFromString = isToBeforeFrom ? dateToString : dateFromString;\n const forcingFromDatePick = isToBeforeFrom ? !calendarChangeIsFrom : false;\n const newDateToString = isToBeforeFrom ? dateFromString : dateToString;\n const forcingToDatePick = isToBeforeFrom ? calendarChangeIsFrom : false;\n\n // next change should be based on\n // the force pick next interactions\n // toggle between from/to if we didn't force any pick\n let nextToggleStateIsFrom = !calendarChangeIsFrom;\n if (forcingFromDatePick) nextToggleStateIsFrom = false;\n if (forcingToDatePick) nextToggleStateIsFrom = true;\n\n return {\n newDateFromString,\n forcingFromDatePick,\n newDateToString,\n forcingToDatePick,\n isToBeforeFrom,\n nextToggleStateIsFrom,\n currentClickCountAsFrom: !nextToggleStateIsFrom,\n };\n },\n [fromDate, calendarChangeIsFrom, toDate],\n );\n const handlePickerMonthDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerMonthDateChange'] =\n useCallback(\n (newMonth, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onMonthFromChange(newMonth, e, metaInfo);\n else onMonthToChange(newMonth, e, metaInfo);\n },\n [getChangedDayStringValues, onMonthFromChange, onMonthToChange],\n );\n const handlePickerDayDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDayDateChange'] =\n useCallback(\n (newDay, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onDayFromChange(newDay, e, metaInfo);\n else onDayToChange(newDay, e, metaInfo);\n },\n [getChangedDayStringValues, onDayFromChange, onDayToChange],\n );\n const handlePickerYearDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerYearDateChange'] =\n useCallback(\n (newYear, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onYearFromChange(newYear, e, metaInfo);\n else onYearToChange(newYear, e, metaInfo);\n },\n [getChangedDayStringValues, onYearFromChange, onYearToChange],\n );\n\n // every time the calendar opens/closes, we assume first click is \"from\"\n const onCalendarOpen: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarOpen'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const onCalendarClose: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarClose'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const handlePickerDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDateChange'] =\n useCallback(\n (changedDay, metaInfo) => {\n const { newDateFromString, newDateToString, nextToggleStateIsFrom, isToBeforeFrom } =\n getChangedDayStringValues(changedDay);\n\n // every \"change\" on the picker range we calculate it as a new \"onChange\" for both values\n // and we pass over the correct \"new\" from/to value\n onFromDateChange(newDateFromString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n onToDateChange(newDateToString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n\n // and we notify what the next change type should be\n setCalendarChangeIsFrom(nextToggleStateIsFrom);\n },\n [getChangedDayStringValues, onFromDateChange, onToDateChange],\n );\n\n const getIsStartRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsStartRangeDay'] = useCallback(\n (dayString) => dayString === fromDate,\n [fromDate],\n );\n const getIsDayInRange: ControlledDateRangePickerContextT['rangePickerLogic']['getIsDayInRange'] = useCallback(\n (dayString) => {\n const dayFrom = getDayFromDateString(fromDate);\n const dayTo = getDayFromDateString(toDate);\n if (!dayFrom || !dayTo || !dayString) return false;\n const newDayTime = getDayFromDateString(dayString)?.getTime();\n return !!newDayTime && newDayTime <= dayTo.getTime() && newDayTime >= dayFrom.getTime();\n },\n [fromDate, toDate],\n );\n const getIsEndRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsEndRangeDay'] = useCallback(\n (dayString) => dayString === toDate,\n [toDate],\n );\n\n const getIsToBeforeFrom = useCallback((fromString: string, toString: string) => {\n const dateFrom = getDayFromDateString(fromString);\n const dateTo = getDayFromDateString(toString);\n return !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n }, []);\n const handleFromDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleFromDateChange'] =\n useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(newVal, toDate);\n onFromDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'from', isIncorrectOrder });\n },\n [getIsToBeforeFrom, onFromDateChange, toDate],\n );\n const handleToDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleToDateChange'] = useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(fromDate, newVal);\n onToDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'to', isIncorrectOrder });\n },\n [fromDate, getIsToBeforeFrom, onToDateChange],\n );\n\n return useMemo(\n () => ({\n calendarChangeIsFrom,\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n }),\n [\n calendarChangeIsFrom,\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -43,8 +43,8 @@ __export(index_exports, {
43
43
  });
44
44
  module.exports = __toCommonJS(index_exports);
45
45
  var React = __toESM(require("react"));
46
+ var import_ds_form_date_time_picker = require("@elliemae/ds-form-date-time-picker");
46
47
  var import_ControlledDateRangePicker = require("./ControlledDateRangePicker.js");
47
- var import_theming = require("./exported-related/theming.js");
48
48
  var import_ControlledDateRangePickerTypes = require("./ControlledDateRangePickerTypes.js");
49
- var import_ds_form_date_time_picker = require("@elliemae/ds-form-date-time-picker");
49
+ var import_theming = require("./exported-related/theming.js");
50
50
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["export { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker } from './ControlledDateRangePicker.js';\nexport {\n DSControlledDateRangePickerName,\n DSControlledDateRangePickerSlots,\n ControlledDateRangePickerDatatestid,\n} from './exported-related/theming.js';\n// export { ControlledDateRangePickerDatatestid } from './ControlledDateRangePickerDatatestid.js';\nexport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from './ControlledDateRangePickerTypes.js';\nexport {\n getDateStringFromDay,\n getDateValuesFromDate,\n getDayFromDateString,\n getValidationDateStringMetaInfo,\n getValidationDateTimeStringMetaInfo,\n getValidationTimeStringMetaInfo,\n} from '@elliemae/ds-form-date-time-picker';\nexport { type DSControlledDateRangePickerT } from './react-desc-prop-types.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uCAAmF;AACnF,qBAIO;AAEP,4CAAmD;AACnD,sCAOO;",
4
+ "sourcesContent": ["export {\n getDateStringFromDay,\n getDateValuesFromDate,\n getDayFromDateString,\n getValidationDateStringMetaInfo,\n getValidationDateTimeStringMetaInfo,\n getValidationTimeStringMetaInfo,\n} from '@elliemae/ds-form-date-time-picker';\n\nexport { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema } from './ControlledDateRangePicker.js';\nexport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from './ControlledDateRangePickerTypes.js';\nexport {\n ControlledDateRangePickerDatatestid,\n DSControlledDateRangePickerName,\n DSControlledDateRangePickerSlots,\n} from './exported-related/theming.js';\nexport { type DSControlledDateRangePickerT } from './react-desc-prop-types.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,sCAOO;AAEP,uCAAmF;AACnF,4CAAmD;AACnD,qBAIO;",
6
6
  "names": []
7
7
  }
@@ -33,11 +33,12 @@ __export(ControlledDateRangeCalendar_exports, {
33
33
  module.exports = __toCommonJS(ControlledDateRangeCalendar_exports);
34
34
  var React = __toESM(require("react"));
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
- var import_react = require("react");
36
+ var import_react = __toESM(require("react"));
37
37
  var import_ds_form_date_time_picker = require("@elliemae/ds-form-date-time-picker");
38
38
  var import_ControlledDateRangePickerCTX = require("../ControlledDateRangePickerCTX.js");
39
39
  const ControlledDateRangeCalendar = () => {
40
40
  const {
41
+ instanceUID,
41
42
  props: {
42
43
  emptyPickerStartingMonth,
43
44
  onCalendarOpenFocusedDay,
@@ -51,9 +52,11 @@ const ControlledDateRangeCalendar = () => {
51
52
  toDate,
52
53
  disabled,
53
54
  readOnly,
54
- applyAriaDisabled
55
+ applyAriaDisabled,
56
+ lastElementRef
55
57
  },
56
58
  rangePickerLogic: {
59
+ calendarChangeIsFrom,
57
60
  latestChangedDate,
58
61
  onCalendarOpen,
59
62
  onCalendarClose,
@@ -67,35 +70,75 @@ const ControlledDateRangeCalendar = () => {
67
70
  },
68
71
  isControllerOnly
69
72
  } = (0, import_react.useContext)(import_ControlledDateRangePickerCTX.ControlledDateRangePickerContext);
70
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
71
- import_ds_form_date_time_picker.DSControlledDateTimePicker,
72
- {
73
- type: isControllerOnly ? import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY : import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER,
74
- date: latestChangedDate,
75
- onDateChange: handlePickerDateChange,
76
- onMonthChange: handlePickerMonthDateChange,
77
- onDayChange: handlePickerDayDateChange,
78
- onYearChange: handlePickerYearDateChange,
79
- getIsStartRangeDay,
80
- getIsDayInRange,
81
- getIsEndRangeDay,
82
- onPickerOpen: onCalendarOpen,
83
- onPickerClose: onCalendarClose,
84
- isClearable,
85
- getIsDisabledDay,
86
- getIsOutOfRangeDay,
87
- emptyPickerStartingMonth,
88
- onCalendarOpenFocusedDay,
89
- preventCloseOnSelection: true,
90
- hasError,
91
- pickerFooterMsg,
92
- autoFocus,
93
- fromDate,
94
- toDate,
95
- disabled,
96
- readOnly,
97
- applyAriaDisabled
98
- }
73
+ const nextInteractionDescriptionId = `${instanceUID}-next-interaction-explanation`;
74
+ const nextInteractionDescription = calendarChangeIsFrom ? "Select a start date. If later than the current end date, the dates will swap automatically." : "Select an end date. If earlier than the current start date, the dates will swap automatically.";
75
+ const handleCalendarDayA11ySlotsArgs = import_react.default.useCallback(
76
+ ({
77
+ isDayInRangeImproper,
78
+ isDisabled,
79
+ isOutOfRange,
80
+ metaDay
81
+ }) => {
82
+ const rangeProps = isDayInRangeImproper ? {
83
+ "aria-pressed": true,
84
+ "aria-label": `${(0, import_ds_form_date_time_picker.getAriaDayFromDateString)(metaDay.dayAsString)}, range from ${(0, import_ds_form_date_time_picker.getAriaDayFromDateString)(fromDate)} to ${(0, import_ds_form_date_time_picker.getAriaDayFromDateString)(toDate)} selected.`
85
+ } : {};
86
+ const isActivatable = !isDisabled && !isOutOfRange;
87
+ return { ...rangeProps, ...isActivatable && { "aria-describedby": nextInteractionDescriptionId } };
88
+ },
89
+ [fromDate, toDate, nextInteractionDescriptionId]
99
90
  );
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
92
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
93
+ "span",
94
+ {
95
+ id: nextInteractionDescriptionId,
96
+ style: {
97
+ position: "absolute",
98
+ width: 1,
99
+ height: 1,
100
+ padding: 0,
101
+ margin: -1,
102
+ overflow: "hidden",
103
+ clip: "rect(0,0,0,0)",
104
+ whiteSpace: "nowrap",
105
+ borderWidth: 0
106
+ },
107
+ children: nextInteractionDescription
108
+ }
109
+ ),
110
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
111
+ import_ds_form_date_time_picker.DSControlledDateTimePicker,
112
+ {
113
+ dsControlleddatetimepickerCalendarDay: handleCalendarDayA11ySlotsArgs,
114
+ type: isControllerOnly ? import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY : import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER,
115
+ date: latestChangedDate,
116
+ onDateChange: handlePickerDateChange,
117
+ onMonthChange: handlePickerMonthDateChange,
118
+ onDayChange: handlePickerDayDateChange,
119
+ onYearChange: handlePickerYearDateChange,
120
+ getIsStartRangeDay,
121
+ getIsDayInRange,
122
+ getIsEndRangeDay,
123
+ onPickerOpen: onCalendarOpen,
124
+ onPickerClose: onCalendarClose,
125
+ isClearable,
126
+ getIsDisabledDay,
127
+ getIsOutOfRangeDay,
128
+ emptyPickerStartingMonth,
129
+ onCalendarOpenFocusedDay,
130
+ preventCloseOnSelection: true,
131
+ hasError,
132
+ pickerFooterMsg,
133
+ autoFocus,
134
+ fromDate,
135
+ toDate,
136
+ disabled,
137
+ readOnly,
138
+ applyAriaDisabled,
139
+ lastElementRef
140
+ }
141
+ )
142
+ ] });
100
143
  };
101
144
  //# sourceMappingURL=ControlledDateRangeCalendar.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/parts/ControlledDateRangeCalendar.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeCalendar = (): JSX.Element => {\n const {\n props: {\n emptyPickerStartingMonth,\n onCalendarOpenFocusedDay,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n pickerFooterMsg,\n fromDate,\n toDate,\n disabled,\n readOnly,\n applyAriaDisabled,\n },\n rangePickerLogic: {\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n },\n isControllerOnly,\n } = useContext(ControlledDateRangePickerContext);\n\n return (\n <DSControlledDateTimePicker\n type={\n isControllerOnly\n ? CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY\n : CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER\n }\n date={latestChangedDate}\n onDateChange={handlePickerDateChange}\n onMonthChange={handlePickerMonthDateChange}\n onDayChange={handlePickerDayDateChange}\n onYearChange={handlePickerYearDateChange}\n getIsStartRangeDay={getIsStartRangeDay}\n getIsDayInRange={getIsDayInRange}\n getIsEndRangeDay={getIsEndRangeDay}\n onPickerOpen={onCalendarOpen}\n onPickerClose={onCalendarClose}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n emptyPickerStartingMonth={emptyPickerStartingMonth}\n onCalendarOpenFocusedDay={onCalendarOpenFocusedDay}\n preventCloseOnSelection\n hasError={hasError}\n pickerFooterMsg={pickerFooterMsg}\n autoFocus={autoFocus}\n fromDate={fromDate}\n toDate={toDate}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADqCnB;AArCJ,mBAAkC;AAClC,sCAA8E;AAC9E,0CAAiD;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,oEAAgC;AAE/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MACE,mBACI,kEAAkC,KAAK,kBACvC,kEAAkC,KAAK;AAAA,MAE7C,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,yBAAuB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;",
6
- "names": []
4
+ "sourcesContent": ["import React, { useContext } from 'react';\nimport {\n CONTROLLED_DATE_TIME_PICKER_TYPES,\n DSControlledDateTimePicker,\n type DSControlledDateTimePickerT,\n getAriaDayFromDateString,\n} from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeCalendar = (): JSX.Element => {\n const {\n instanceUID,\n props: {\n emptyPickerStartingMonth,\n onCalendarOpenFocusedDay,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n pickerFooterMsg,\n fromDate,\n toDate,\n disabled,\n readOnly,\n applyAriaDisabled,\n lastElementRef,\n },\n rangePickerLogic: {\n calendarChangeIsFrom,\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n },\n isControllerOnly,\n } = useContext(ControlledDateRangePickerContext);\n\n const nextInteractionDescriptionId = `${instanceUID}-next-interaction-explanation`;\n const nextInteractionDescription = calendarChangeIsFrom\n ? 'Select a start date. If later than the current end date, the dates will swap automatically.'\n : 'Select an end date. If earlier than the current start date, the dates will swap automatically.';\n\n const handleCalendarDayA11ySlotsArgs = React.useCallback(\n ({\n isDayInRangeImproper,\n isDisabled,\n isOutOfRange,\n metaDay,\n }: DSControlledDateTimePickerT.CalendarDaySlotArguments) => {\n const rangeProps = isDayInRangeImproper\n ? {\n 'aria-pressed': true as const,\n 'aria-label': `${getAriaDayFromDateString(metaDay.dayAsString)}, range from ${getAriaDayFromDateString(fromDate)} to ${getAriaDayFromDateString(toDate)} selected.`,\n }\n : {};\n const isActivatable = !isDisabled && !isOutOfRange;\n return { ...rangeProps, ...(isActivatable && { 'aria-describedby': nextInteractionDescriptionId }) };\n },\n [fromDate, toDate, nextInteractionDescriptionId],\n );\n\n return (\n <>\n <span\n id={nextInteractionDescriptionId}\n style={{\n position: 'absolute',\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n }}\n >\n {nextInteractionDescription}\n </span>\n <DSControlledDateTimePicker\n dsControlleddatetimepickerCalendarDay={handleCalendarDayA11ySlotsArgs}\n type={\n isControllerOnly\n ? CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY\n : CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER\n }\n date={latestChangedDate}\n onDateChange={handlePickerDateChange}\n onMonthChange={handlePickerMonthDateChange}\n onDayChange={handlePickerDayDateChange}\n onYearChange={handlePickerYearDateChange}\n getIsStartRangeDay={getIsStartRangeDay}\n getIsDayInRange={getIsDayInRange}\n getIsEndRangeDay={getIsEndRangeDay}\n onPickerOpen={onCalendarOpen}\n onPickerClose={onCalendarClose}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n emptyPickerStartingMonth={emptyPickerStartingMonth}\n onCalendarOpenFocusedDay={onCalendarOpenFocusedDay}\n preventCloseOnSelection\n hasError={hasError}\n pickerFooterMsg={pickerFooterMsg}\n autoFocus={autoFocus}\n fromDate={fromDate}\n toDate={toDate}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n lastElementRef={lastElementRef}\n />\n </>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADqEnB;AArEJ,mBAAkC;AAClC,sCAKO;AACP,0CAAiD;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,oEAAgC;AAE/C,QAAM,+BAA+B,GAAG,WAAW;AACnD,QAAM,6BAA6B,uBAC/B,gGACA;AAEJ,QAAM,iCAAiC,aAAAA,QAAM;AAAA,IAC3C,CAAC;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAA4D;AAC1D,YAAM,aAAa,uBACf;AAAA,QACE,gBAAgB;AAAA,QAChB,cAAc,OAAG,0DAAyB,QAAQ,WAAW,CAAC,oBAAgB,0DAAyB,QAAQ,CAAC,WAAO,0DAAyB,MAAM,CAAC;AAAA,MACzJ,IACA,CAAC;AACL,YAAM,gBAAgB,CAAC,cAAc,CAAC;AACtC,aAAO,EAAE,GAAG,YAAY,GAAI,iBAAiB,EAAE,oBAAoB,6BAA6B,EAAG;AAAA,IACrG;AAAA,IACA,CAAC,UAAU,QAAQ,4BAA4B;AAAA,EACjD;AAEA,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACJ,OAAO;AAAA,UACL,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,uCAAuC;AAAA,QACvC,MACE,mBACI,kEAAkC,KAAK,kBACvC,kEAAkC,KAAK;AAAA,QAE7C,MAAM;AAAA,QACN,cAAc;AAAA,QACd,eAAe;AAAA,QACf,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd,eAAe;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,yBAAuB;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
6
+ "names": ["React"]
7
7
  }
@@ -76,7 +76,11 @@ const ControlledDateRangeFromDate = () => {
76
76
  readOnly,
77
77
  applyAriaDisabled,
78
78
  ...dateTimePickerFromProps,
79
- type: import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS
79
+ type: import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS,
80
+ dsControlleddatetimepickerRoot: {
81
+ role: "group",
82
+ "aria-label": "Start date"
83
+ }
80
84
  }
81
85
  );
82
86
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/parts/ControlledDateRangeFromDate.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeFromDate = (): JSX.Element => {\n const {\n props: {\n fromDate,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n innerRef,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerFromProps,\n },\n rangePickerLogic: { handleFromDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={fromDate}\n onDateChange={handleFromDateChange}\n onMonthChange={onMonthFromChange}\n onDayChange={onDayFromChange}\n onYearChange={onYearFromChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n autoFocus={autoFocus}\n innerRef={innerRef}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerFromProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD0BnB;AA1BJ,mBAAkC;AAClC,sCAA8E;AAC9E,0CAAiD;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,qBAAqB;AAAA,EAC3C,QAAI,yBAAW,oEAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kEAAkC,KAAK;AAAA;AAAA,EAC/C;AAEJ;",
4
+ "sourcesContent": ["import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeFromDate = (): JSX.Element => {\n const {\n props: {\n fromDate,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n innerRef,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerFromProps,\n },\n rangePickerLogic: { handleFromDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={fromDate}\n onDateChange={handleFromDateChange}\n onMonthChange={onMonthFromChange}\n onDayChange={onDayFromChange}\n onYearChange={onYearFromChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n autoFocus={autoFocus}\n innerRef={innerRef}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerFromProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n dsControlleddatetimepickerRoot={{\n role: 'group',\n 'aria-label': 'Start date',\n }}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD0BnB;AA1BJ,mBAAkC;AAClC,sCAA8E;AAC9E,0CAAiD;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,qBAAqB;AAAA,EAC3C,QAAI,yBAAW,oEAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kEAAkC,KAAK;AAAA,MAC7C,gCAAgC;AAAA,QAC9B,MAAM;AAAA,QACN,cAAc;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -72,7 +72,11 @@ const ControlledDateRangeToDate = () => {
72
72
  readOnly,
73
73
  applyAriaDisabled,
74
74
  ...dateTimePickerToProps,
75
- type: import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS
75
+ type: import_ds_form_date_time_picker.CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS,
76
+ dsControlleddatetimepickerRoot: {
77
+ role: "group",
78
+ "aria-label": "End date"
79
+ }
76
80
  }
77
81
  );
78
82
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/parts/ControlledDateRangeToDate.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeToDate = (): JSX.Element => {\n const {\n props: {\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerToProps,\n },\n rangePickerLogic: { handleToDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={toDate}\n onDateChange={handleToDateChange}\n onMonthChange={onMonthToChange}\n onDayChange={onDayToChange}\n onYearChange={onYearToChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerToProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwBnB;AAxBJ,mBAAkC;AAClC,sCAA8E;AAC9E,0CAAiD;AAE1C,MAAM,4BAA4B,MAAmB;AAC1D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,mBAAmB;AAAA,EACzC,QAAI,yBAAW,oEAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kEAAkC,KAAK;AAAA;AAAA,EAC/C;AAEJ;",
4
+ "sourcesContent": ["import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeToDate = (): JSX.Element => {\n const {\n props: {\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerToProps,\n },\n rangePickerLogic: { handleToDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={toDate}\n onDateChange={handleToDateChange}\n onMonthChange={onMonthToChange}\n onDayChange={onDayToChange}\n onYearChange={onYearToChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerToProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n dsControlleddatetimepickerRoot={{\n role: 'group',\n 'aria-label': 'End date',\n }}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwBnB;AAxBJ,mBAAkC;AAClC,sCAA8E;AAC9E,0CAAiD;AAE1C,MAAM,4BAA4B,MAAmB;AAC1D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,mBAAmB;AAAA,EACzC,QAAI,yBAAW,oEAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kEAAkC,KAAK;AAAA,MAC7C,gCAAgC;AAAA,QAC9B,MAAM;AAAA,QACN,cAAc;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -100,6 +100,10 @@ const DSControlledDateRangePickerPropTypes = {
100
100
  innerRef: import_ds_props_helpers.PropTypes.oneOfType([import_ds_props_helpers.PropTypes.func, import_ds_props_helpers.PropTypes.object]).description(
101
101
  '"from" month input html node reference'
102
102
  ),
103
+ lastElementRef: import_ds_props_helpers.PropTypes.oneOfType([import_ds_props_helpers.PropTypes.func, import_ds_props_helpers.PropTypes.object]).description(
104
+ "ref for the last focusable element in the component based on its configuration, used for focus management in focus trap logic"
105
+ ),
106
+ tabIndex: import_ds_props_helpers.PropTypes.string.description('tabIndex to be applied to the "from" month input'),
103
107
  readOnly: import_ds_props_helpers.PropTypes.bool.description("Makes the component non-editable while remaining accessible").defaultValue(false),
104
108
  applyAriaDisabled: import_ds_props_helpers.PropTypes.bool.description(
105
109
  "Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION."
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/react-desc-prop-types.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import {\n PropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n getPropsPerSlotPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport type { ValidationMap, GlobalAttributesT, DSPropTypesSchema, XstyledProps } from '@elliemae/ds-props-helpers';\nimport { type DSControlledDateTimePickerT } from '@elliemae/ds-form-date-time-picker';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSControlledDateRangePickerName, DSControlledDateRangePickerSlots } from './exported-related/theming.js';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\nconst defaultReturnFalse = (): boolean => false;\n\nexport declare namespace DSControlledDateRangePickerT {\n export interface RangePickerMetaInfoT extends DSControlledDateTimePickerT.InternalInputsChangeMetaInfo {\n rangeDateChangeType?: 'from' | 'to';\n automaticSwitchedDates?: boolean;\n isIncorrectOrder?: boolean;\n }\n\n export type RangeOnDateChange = (val: string, metaInfo: RangePickerMetaInfoT) => void;\n\n export type AppOnInputChange = DSControlledDateTimePickerT.AppOnInputChange;\n\n export type ControlledDateRangeType =\n | 'full-date-range'\n | 'date-range-picker-controller-only'\n | 'date-range-picker'\n | 'date-range-inputs';\n\n export interface RequiredProps {}\n\n export interface DefaultProps {\n type: ControlledDateRangeType;\n fromDate: string;\n onFromDateChange: RangeOnDateChange;\n onMonthFromChange: AppOnInputChange;\n onDayFromChange: AppOnInputChange;\n onYearFromChange: AppOnInputChange;\n hasError: boolean;\n pickerFooterMsg: string;\n\n toDate: string;\n onToDateChange: RangeOnDateChange;\n onMonthToChange: AppOnInputChange;\n onDayToChange: AppOnInputChange;\n onYearToChange: AppOnInputChange;\n\n isClearable: boolean;\n getIsDisabledDay: (day: string) => boolean;\n getIsOutOfRangeDay: (day: string) => boolean;\n autoFocus: boolean;\n readOnly: boolean;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSControlledDateRangePickerName,\n typeof DSControlledDateRangePickerSlots\n > {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n innerRef?:\n | React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>\n | ((ref: HTMLInputElement | HTMLButtonElement | null) => void);\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n applyAriaDisabled?: boolean;\n dateTimePickerFromProps?: Partial<DSControlledDateTimePickerT.Props>;\n dateTimePickerToProps?: Partial<DSControlledDateTimePickerT.Props>;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n OptionalProps,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n Omit<OptionalProps, `dsControlleddaterangepicker${Capitalize<string>}`>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSControlledDateRangePickerT.DefaultProps = {\n type: 'full-date-range',\n fromDate: '',\n onFromDateChange: noop,\n onMonthFromChange: noop,\n onDayFromChange: noop,\n onYearFromChange: noop,\n pickerFooterMsg: '',\n toDate: '',\n onToDateChange: noop,\n onMonthToChange: noop,\n onDayToChange: noop,\n onYearToChange: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n hasError: false,\n isClearable: false,\n autoFocus: false,\n readOnly: false,\n};\n\nexport const DSControlledDateRangePickerPropTypes: DSPropTypesSchema<DSControlledDateRangePickerT.Props> = {\n ...getPropsPerSlotPropTypes(DSControlledDateRangePickerName, DSControlledDateRangePickerSlots),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-range',\n 'date-range-picker-controller-only',\n 'date-range-picker',\n 'date-range-inputs',\n ])\n .description('Type of date range form control to use')\n .defaultValue('full-date-range'),\n fromDate: PropTypes.string.description(`strictly formatted string representing user's selected \"from\" date`)\n .isRequired,\n onFromDateChange: PropTypes.func\n .description('function to react to \"from\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthFromChange: PropTypes.func\n .description('function to react to \"from\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayFromChange: PropTypes.func\n .description('function to react to \"from\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearFromChange: PropTypes.func\n .description('function to react to \"from\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n toDate: PropTypes.string.description(`strictly formatted string representing user's selected \"to\" date`).isRequired,\n onToDateChange: PropTypes.func\n .description('function to react to \"to\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthToChange: PropTypes.func\n .description('function to react to \"to\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayToChange: PropTypes.func\n .description('function to react to \"to\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearToChange: PropTypes.func\n .description('function to react to \"to\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n getIsDisabledDay: PropTypes.func\n .description('function used to mark day as \"disable\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n getIsOutOfRangeDay: PropTypes.func\n .description('function used to mark day as \"out of range\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n pickerFooterMsg: PropTypes.string.description(''),\n hasError: PropTypes.bool\n .description('boolean indicating wheter the selected range is to be marked as wrong')\n .defaultValue(false),\n isClearable: PropTypes.bool\n .description('boolean to optionally activate \"clearable\" icons in the inputs')\n .defaultValue(false),\n autoFocus: PropTypes.bool\n .description('boolean to auto-focus the \"from\" date month on render as per html auto-focus propriety')\n .defaultValue(false),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'strictly formatted string representing the starting month to be displayed when calendar context menu is invoked without any selected dates',\n ),\n onCalendarOpenFocusedDay: PropTypes.string.description(\n 'strictly formatted string representing the day to be focused when calendar context menu is invoked without any selected dates',\n ),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(\n '\"from\" month input html node reference',\n ),\n readOnly: PropTypes.bool\n .description('Makes the component non-editable while remaining accessible')\n .defaultValue(false),\n applyAriaDisabled: PropTypes.bool.description(\n 'Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION.',\n ),\n dateTimePickerFromProps: PropTypes.object.description('props to pass to the \"from\" date picker'),\n dateTimePickerToProps: PropTypes.object.description('props to pass to the \"to\" date picker'),\n};\n\nexport const DSControlledDateRangePickerPropTypesWithSchema =\n DSControlledDateRangePickerPropTypes as unknown as ValidationMap<DSControlledDateRangePickerT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n PropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n getPropsPerSlotPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport type { ValidationMap, GlobalAttributesT, DSPropTypesSchema, XstyledProps } from '@elliemae/ds-props-helpers';\nimport { type DSControlledDateTimePickerT } from '@elliemae/ds-form-date-time-picker';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSControlledDateRangePickerName, DSControlledDateRangePickerSlots } from './exported-related/theming.js';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\nconst defaultReturnFalse = (): boolean => false;\n\nexport declare namespace DSControlledDateRangePickerT {\n export interface RangePickerMetaInfoT extends DSControlledDateTimePickerT.InternalInputsChangeMetaInfo {\n rangeDateChangeType?: 'from' | 'to';\n automaticSwitchedDates?: boolean;\n isIncorrectOrder?: boolean;\n }\n\n export type RangeOnDateChange = (val: string, metaInfo: RangePickerMetaInfoT) => void;\n\n export type AppOnInputChange = DSControlledDateTimePickerT.AppOnInputChange;\n\n export type ControlledDateRangeType =\n | 'full-date-range'\n | 'date-range-picker-controller-only'\n | 'date-range-picker'\n | 'date-range-inputs';\n\n export interface RequiredProps {}\n\n export interface DefaultProps {\n type: ControlledDateRangeType;\n fromDate: string;\n onFromDateChange: RangeOnDateChange;\n onMonthFromChange: AppOnInputChange;\n onDayFromChange: AppOnInputChange;\n onYearFromChange: AppOnInputChange;\n hasError: boolean;\n pickerFooterMsg: string;\n\n toDate: string;\n onToDateChange: RangeOnDateChange;\n onMonthToChange: AppOnInputChange;\n onDayToChange: AppOnInputChange;\n onYearToChange: AppOnInputChange;\n\n isClearable: boolean;\n getIsDisabledDay: (day: string) => boolean;\n getIsOutOfRangeDay: (day: string) => boolean;\n autoFocus: boolean;\n readOnly: boolean;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSControlledDateRangePickerName,\n typeof DSControlledDateRangePickerSlots\n > {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n innerRef?:\n | React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>\n | ((ref: HTMLInputElement | HTMLButtonElement | null) => void);\n lastElementRef?: React.MutableRefObject<HTMLElement | null>;\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n applyAriaDisabled?: boolean;\n dateTimePickerFromProps?: Partial<DSControlledDateTimePickerT.Props>;\n dateTimePickerToProps?: Partial<DSControlledDateTimePickerT.Props>;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n OptionalProps,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n Omit<OptionalProps, `dsControlleddaterangepicker${Capitalize<string>}`>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSControlledDateRangePickerT.DefaultProps = {\n type: 'full-date-range',\n fromDate: '',\n onFromDateChange: noop,\n onMonthFromChange: noop,\n onDayFromChange: noop,\n onYearFromChange: noop,\n pickerFooterMsg: '',\n toDate: '',\n onToDateChange: noop,\n onMonthToChange: noop,\n onDayToChange: noop,\n onYearToChange: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n hasError: false,\n isClearable: false,\n autoFocus: false,\n readOnly: false,\n};\n\nexport const DSControlledDateRangePickerPropTypes: DSPropTypesSchema<DSControlledDateRangePickerT.Props> = {\n ...getPropsPerSlotPropTypes(DSControlledDateRangePickerName, DSControlledDateRangePickerSlots),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-range',\n 'date-range-picker-controller-only',\n 'date-range-picker',\n 'date-range-inputs',\n ])\n .description('Type of date range form control to use')\n .defaultValue('full-date-range'),\n fromDate: PropTypes.string.description(`strictly formatted string representing user's selected \"from\" date`)\n .isRequired,\n onFromDateChange: PropTypes.func\n .description('function to react to \"from\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthFromChange: PropTypes.func\n .description('function to react to \"from\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayFromChange: PropTypes.func\n .description('function to react to \"from\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearFromChange: PropTypes.func\n .description('function to react to \"from\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n toDate: PropTypes.string.description(`strictly formatted string representing user's selected \"to\" date`).isRequired,\n onToDateChange: PropTypes.func\n .description('function to react to \"to\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthToChange: PropTypes.func\n .description('function to react to \"to\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayToChange: PropTypes.func\n .description('function to react to \"to\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearToChange: PropTypes.func\n .description('function to react to \"to\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n getIsDisabledDay: PropTypes.func\n .description('function used to mark day as \"disable\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n getIsOutOfRangeDay: PropTypes.func\n .description('function used to mark day as \"out of range\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n pickerFooterMsg: PropTypes.string.description(''),\n hasError: PropTypes.bool\n .description('boolean indicating wheter the selected range is to be marked as wrong')\n .defaultValue(false),\n isClearable: PropTypes.bool\n .description('boolean to optionally activate \"clearable\" icons in the inputs')\n .defaultValue(false),\n autoFocus: PropTypes.bool\n .description('boolean to auto-focus the \"from\" date month on render as per html auto-focus propriety')\n .defaultValue(false),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'strictly formatted string representing the starting month to be displayed when calendar context menu is invoked without any selected dates',\n ),\n onCalendarOpenFocusedDay: PropTypes.string.description(\n 'strictly formatted string representing the day to be focused when calendar context menu is invoked without any selected dates',\n ),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(\n '\"from\" month input html node reference',\n ),\n lastElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(\n 'ref for the last focusable element in the component based on its configuration, used for focus management in focus trap logic',\n ),\n tabIndex: PropTypes.string.description('tabIndex to be applied to the \"from\" month input'),\n readOnly: PropTypes.bool\n .description('Makes the component non-editable while remaining accessible')\n .defaultValue(false),\n applyAriaDisabled: PropTypes.bool.description(\n 'Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION.',\n ),\n dateTimePickerFromProps: PropTypes.object.description('props to pass to the \"from\" date picker'),\n dateTimePickerToProps: PropTypes.object.description('props to pass to the \"to\" date picker'),\n};\n\nexport const DSControlledDateRangePickerPropTypesWithSchema =\n DSControlledDateRangePickerPropTypes as unknown as ValidationMap<DSControlledDateRangePickerT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,10 +2,10 @@ import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { describe } from "@elliemae/ds-props-helpers";
4
4
  import { useControlledDateRangePicker } from "./config/useControlledDateRangePicker.js";
5
- import { ControlledDateRangeContent } from "./parts/ControlledDateRangeContent.js";
6
- import { DSControlledDateRangePickerPropTypesWithSchema } from "./react-desc-prop-types.js";
7
5
  import { ControlledDateRangePickerContext } from "./ControlledDateRangePickerCTX.js";
8
6
  import { DSControlledDateRangePickerName } from "./exported-related/theming.js";
7
+ import { ControlledDateRangeContent } from "./parts/ControlledDateRangeContent.js";
8
+ import { DSControlledDateRangePickerPropTypesWithSchema } from "./react-desc-prop-types.js";
9
9
  const DSControlledDateRangePicker = (props) => {
10
10
  const ctx = useControlledDateRangePicker(props);
11
11
  return /* @__PURE__ */ jsx(ControlledDateRangePickerContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(ControlledDateRangeContent, {}) });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/ControlledDateRangePicker.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React from 'react';\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { useControlledDateRangePicker } from './config/useControlledDateRangePicker.js';\nimport { ControlledDateRangeContent } from './parts/ControlledDateRangeContent.js';\nimport { DSControlledDateRangePickerPropTypesWithSchema } from './react-desc-prop-types.js';\nimport { ControlledDateRangePickerContext } from './ControlledDateRangePickerCTX.js';\nimport type { DSControlledDateRangePickerT } from './react-desc-prop-types.js';\nimport { DSControlledDateRangePickerName } from './exported-related/theming.js';\n\nconst DSControlledDateRangePicker = (props: DSControlledDateRangePickerT.Props): JSX.Element => {\n const ctx = useControlledDateRangePicker(props);\n return (\n <ControlledDateRangePickerContext.Provider value={ctx}>\n <ControlledDateRangeContent />\n </ControlledDateRangePickerContext.Provider>\n );\n};\n\nDSControlledDateRangePicker.displayName = DSControlledDateRangePickerName;\nconst DSControlledDateRangePickerWithSchema = describe(DSControlledDateRangePicker);\nDSControlledDateRangePickerWithSchema.propTypes = DSControlledDateRangePickerPropTypesWithSchema;\n\nexport { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker };\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACcjB;AAZN,SAAS,gBAAgB;AACzB,SAAS,oCAAoC;AAC7C,SAAS,kCAAkC;AAC3C,SAAS,sDAAsD;AAC/D,SAAS,wCAAwC;AAEjD,SAAS,uCAAuC;AAEhD,MAAM,8BAA8B,CAAC,UAA2D;AAC9F,QAAM,MAAM,6BAA6B,KAAK;AAC9C,SACE,oBAAC,iCAAiC,UAAjC,EAA0C,OAAO,KAChD,8BAAC,8BAA2B,GAC9B;AAEJ;AAEA,4BAA4B,cAAc;AAC1C,MAAM,wCAAwC,SAAS,2BAA2B;AAClF,sCAAsC,YAAY;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport { describe } from '@elliemae/ds-props-helpers';\nimport { useControlledDateRangePicker } from './config/useControlledDateRangePicker.js';\nimport { ControlledDateRangePickerContext } from './ControlledDateRangePickerCTX.js';\nimport { DSControlledDateRangePickerName } from './exported-related/theming.js';\nimport { ControlledDateRangeContent } from './parts/ControlledDateRangeContent.js';\nimport type { DSControlledDateRangePickerT } from './react-desc-prop-types.js';\nimport { DSControlledDateRangePickerPropTypesWithSchema } from './react-desc-prop-types.js';\n\nconst DSControlledDateRangePicker = (props: DSControlledDateRangePickerT.Props): JSX.Element => {\n const ctx = useControlledDateRangePicker(props);\n return (\n <ControlledDateRangePickerContext.Provider value={ctx}>\n <ControlledDateRangeContent />\n </ControlledDateRangePickerContext.Provider>\n );\n};\n\nDSControlledDateRangePicker.displayName = DSControlledDateRangePickerName;\nconst DSControlledDateRangePickerWithSchema = describe(DSControlledDateRangePicker);\nDSControlledDateRangePickerWithSchema.propTypes = DSControlledDateRangePickerPropTypesWithSchema;\n\nexport { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema };\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACajB;AAZN,SAAS,gBAAgB;AACzB,SAAS,oCAAoC;AAC7C,SAAS,wCAAwC;AACjD,SAAS,uCAAuC;AAChD,SAAS,kCAAkC;AAE3C,SAAS,sDAAsD;AAE/D,MAAM,8BAA8B,CAAC,UAA2D;AAC9F,QAAM,MAAM,6BAA6B,KAAK;AAC9C,SACE,oBAAC,iCAAiC,UAAjC,EAA0C,OAAO,KAChD,8BAAC,8BAA2B,GAC9B;AAEJ;AAEA,4BAA4B,cAAc;AAC1C,MAAM,wCAAwC,SAAS,2BAA2B;AAClF,sCAAsC,YAAY;",
6
6
  "names": []
7
7
  }
@@ -8,7 +8,7 @@ import { useRangePickerLogic } from "./useRangePickerLogic.js";
8
8
  import { CONTROLLED_DATE_RANGE_PICKER_TYPES } from "../ControlledDateRangePickerTypes.js";
9
9
  const useControlledDateRangePicker = (props) => {
10
10
  useValidateProps(props);
11
- const instanceUID = useMemo(() => uid(6), []);
11
+ const instanceUID = useMemo(() => `ds-date-range-picker-uid-${uid(6)}`, []);
12
12
  const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);
13
13
  const ownerPropsConfig = useOwnerProps(propsWithDefaults, { ...props });
14
14
  const xstyledAttrs = useGetXstyledProps(propsWithDefaults);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useControlledDateRangePicker.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable import/prefer-default-export */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { uid } from 'uid';\nimport { useGetGlobalAttributes, useGetXstyledProps, useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { useGetDateRangePickerWithDefaultsProps } from './useGetPropsWithDefault.js';\nimport { useValidateProps } from './useValidateProps.js';\nimport { useRangePickerLogic } from './useRangePickerLogic.js';\nimport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from '../ControlledDateRangePickerTypes.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\ninterface RangePickerLogicT {\n latestChangedDate: string;\n\n onCalendarOpen: () => void;\n onCalendarClose: () => void;\n\n handleFromDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handleToDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n\n handlePickerDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handlePickerMonthDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerDayDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerYearDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n\n getIsStartRangeDay: (day: string) => boolean;\n getIsDayInRange: (day: string) => boolean;\n getIsEndRangeDay: (day: string) => boolean;\n}\n\nexport interface ControlledDateRangePickerContextT {\n props: DSControlledDateRangePickerT.InternalProps;\n instanceUID: string;\n rangePickerLogic: RangePickerLogicT;\n withInputs: boolean;\n withIcon: boolean;\n isControllerOnly: boolean;\n isPickerOnly: boolean;\n xstyledAttrs: Record<string, unknown>;\n globalAttrs: Record<string, unknown>;\n ownerPropsConfig: Record<string, unknown>;\n}\n\nexport const useControlledDateRangePicker = (\n props: DSControlledDateRangePickerT.Props,\n): ControlledDateRangePickerContextT => {\n // if we detect wrong props configuration we throw meaningful errors\n useValidateProps(props);\n const instanceUID = useMemo(() => uid(6), []);\n const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);\n\n const ownerPropsConfig = useOwnerProps(propsWithDefaults, { ...props });\n\n const xstyledAttrs = useGetXstyledProps(propsWithDefaults) as Record<string, unknown>;\n\n const globalAttrs = useGetGlobalAttributes(propsWithDefaults) as Record<string, unknown>;\n\n const { type } = propsWithDefaults;\n\n const withInputs =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.INPUTS;\n const withIcon =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n const isControllerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.CONTROLLER_ONLY;\n const isPickerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n\n const rangePickerLogic = useRangePickerLogic(propsWithDefaults);\n\n const ctx = useMemo(\n () => ({\n props: { ...propsWithDefaults },\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n }),\n [\n propsWithDefaults,\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n ],\n );\n\n return ctx;\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACIvB,SAAS,eAAe;AACxB,SAAS,WAAW;AACpB,SAAS,wBAAwB,oBAAoB,qBAAqB;AAC1E,SAAS,8CAA8C;AACvD,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,0CAA0C;AAmC5C,MAAM,+BAA+B,CAC1C,UACsC;AAEtC,mBAAiB,KAAK;AACtB,QAAM,cAAc,QAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAM,oBAAoB,uCAAuC,KAAK;AAEtE,QAAM,mBAAmB,cAAc,mBAAmB,EAAE,GAAG,MAAM,CAAC;AAEtE,QAAM,eAAe,mBAAmB,iBAAiB;AAEzD,QAAM,cAAc,uBAAuB,iBAAiB;AAE5D,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,aACJ,SAAS,mCAAmC,QAAQ,SAAS,mCAAmC;AAClG,QAAM,WACJ,SAAS,mCAAmC,QAAQ,SAAS,mCAAmC;AAClG,QAAM,mBAAmB,SAAS,mCAAmC;AACrE,QAAM,eAAe,SAAS,mCAAmC;AAEjE,QAAM,mBAAmB,oBAAoB,iBAAiB;AAE9D,QAAM,MAAM;AAAA,IACV,OAAO;AAAA,MACL,OAAO,EAAE,GAAG,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable import/prefer-default-export */\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { useMemo } from 'react';\nimport { uid } from 'uid';\nimport { useGetGlobalAttributes, useGetXstyledProps, useOwnerProps } from '@elliemae/ds-props-helpers';\nimport { useGetDateRangePickerWithDefaultsProps } from './useGetPropsWithDefault.js';\nimport { useValidateProps } from './useValidateProps.js';\nimport { useRangePickerLogic } from './useRangePickerLogic.js';\nimport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from '../ControlledDateRangePickerTypes.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\ninterface RangePickerLogicT {\n calendarChangeIsFrom: boolean;\n latestChangedDate: string;\n\n onCalendarOpen: () => void;\n onCalendarClose: () => void;\n\n handleFromDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handleToDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n\n handlePickerDateChange: DSControlledDateRangePickerT.RangeOnDateChange;\n handlePickerMonthDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerDayDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n handlePickerYearDateChange: DSControlledDateRangePickerT.AppOnInputChange;\n\n getIsStartRangeDay: (day: string) => boolean;\n getIsDayInRange: (day: string) => boolean;\n getIsEndRangeDay: (day: string) => boolean;\n}\n\nexport interface ControlledDateRangePickerContextT {\n props: DSControlledDateRangePickerT.InternalProps;\n instanceUID: string;\n rangePickerLogic: RangePickerLogicT;\n withInputs: boolean;\n withIcon: boolean;\n isControllerOnly: boolean;\n isPickerOnly: boolean;\n xstyledAttrs: Record<string, unknown>;\n globalAttrs: Record<string, unknown>;\n ownerPropsConfig: Record<string, unknown>;\n}\n\nexport const useControlledDateRangePicker = (\n props: DSControlledDateRangePickerT.Props,\n): ControlledDateRangePickerContextT => {\n // if we detect wrong props configuration we throw meaningful errors\n useValidateProps(props);\n const instanceUID = useMemo(() => `ds-date-range-picker-uid-${uid(6)}`, []);\n const propsWithDefaults = useGetDateRangePickerWithDefaultsProps(props);\n\n const ownerPropsConfig = useOwnerProps(propsWithDefaults, { ...props });\n\n const xstyledAttrs = useGetXstyledProps(propsWithDefaults) as Record<string, unknown>;\n\n const globalAttrs = useGetGlobalAttributes(propsWithDefaults) as Record<string, unknown>;\n\n const { type } = propsWithDefaults;\n\n const withInputs =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.INPUTS;\n const withIcon =\n type === CONTROLLED_DATE_RANGE_PICKER_TYPES.FULL || type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n const isControllerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.CONTROLLER_ONLY;\n const isPickerOnly = type === CONTROLLED_DATE_RANGE_PICKER_TYPES.PICKER;\n\n const rangePickerLogic = useRangePickerLogic(propsWithDefaults);\n\n const ctx = useMemo(\n () => ({\n props: { ...propsWithDefaults },\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n }),\n [\n propsWithDefaults,\n xstyledAttrs,\n globalAttrs,\n instanceUID,\n rangePickerLogic,\n withInputs,\n withIcon,\n isControllerOnly,\n isPickerOnly,\n ownerPropsConfig,\n ],\n );\n\n return ctx;\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACIvB,SAAS,eAAe;AACxB,SAAS,WAAW;AACpB,SAAS,wBAAwB,oBAAoB,qBAAqB;AAC1E,SAAS,8CAA8C;AACvD,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,0CAA0C;AAoC5C,MAAM,+BAA+B,CAC1C,UACsC;AAEtC,mBAAiB,KAAK;AACtB,QAAM,cAAc,QAAQ,MAAM,4BAA4B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1E,QAAM,oBAAoB,uCAAuC,KAAK;AAEtE,QAAM,mBAAmB,cAAc,mBAAmB,EAAE,GAAG,MAAM,CAAC;AAEtE,QAAM,eAAe,mBAAmB,iBAAiB;AAEzD,QAAM,cAAc,uBAAuB,iBAAiB;AAE5D,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,aACJ,SAAS,mCAAmC,QAAQ,SAAS,mCAAmC;AAClG,QAAM,WACJ,SAAS,mCAAmC,QAAQ,SAAS,mCAAmC;AAClG,QAAM,mBAAmB,SAAS,mCAAmC;AACrE,QAAM,eAAe,SAAS,mCAAmC;AAEjE,QAAM,mBAAmB,oBAAoB,iBAAiB;AAE9D,QAAM,MAAM;AAAA,IACV,OAAO;AAAA,MACL,OAAO,EAAE,GAAG,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -128,6 +128,7 @@ const useRangePickerLogic = ({
128
128
  );
129
129
  return useMemo(
130
130
  () => ({
131
+ calendarChangeIsFrom,
131
132
  latestChangedDate,
132
133
  onCalendarOpen,
133
134
  onCalendarClose,
@@ -142,6 +143,7 @@ const useRangePickerLogic = ({
142
143
  getIsEndRangeDay
143
144
  }),
144
145
  [
146
+ calendarChangeIsFrom,
145
147
  latestChangedDate,
146
148
  onCalendarOpen,
147
149
  onCalendarClose,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useRangePickerLogic.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport { useCallback, useState, useMemo, useEffect } from 'react';\nimport { getDayFromDateString } from '@elliemae/ds-form-date-time-picker';\nimport type { ControlledDateRangePickerContextT } from './useControlledDateRangePicker.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\nexport const useRangePickerLogic = ({\n fromDate,\n onFromDateChange,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n onToDateChange,\n}: DSControlledDateRangePickerT.InternalProps): ControlledDateRangePickerContextT['rangePickerLogic'] => {\n // the implementation is based on controlled-date-time-picker that is not meant to \"understand\"\n // the \"from\" - \"to\" logic on click, we are \"overloading\" the \"from\" - \"to\" logic here\n // we track wheter we are going to set the \"from\" OR \"to\" controlled date based on this toggle\n const [calendarChangeIsFrom, setCalendarChangeIsFrom] = useState(true);\n const [latestChangedDate, setLatestChangedDate] = useState(fromDate);\n useEffect(() => {\n setLatestChangedDate(fromDate);\n }, [fromDate]);\n useEffect(() => {\n setLatestChangedDate(toDate);\n }, [toDate]);\n\n const getChangedDayStringValues = useCallback(\n (changedDay: string) => {\n // based on wheter we are handling a \"from\"/\"to\" change, we calculate some values\n const dateFromString = calendarChangeIsFrom ? changedDay : fromDate;\n const dateFrom = getDayFromDateString(dateFromString);\n const dateToString = calendarChangeIsFrom ? toDate : changedDay;\n const dateTo = getDayFromDateString(dateToString);\n // we force the \"from\" to ALWAYS be before the \"to\" date\n const isToBeforeFrom = !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n const newDateFromString = isToBeforeFrom ? dateToString : dateFromString;\n const forcingFromDatePick = isToBeforeFrom ? !calendarChangeIsFrom : false;\n const newDateToString = isToBeforeFrom ? dateFromString : dateToString;\n const forcingToDatePick = isToBeforeFrom ? calendarChangeIsFrom : false;\n\n // next change should be based on\n // the force pick next interactions\n // toggle between from/to if we didn't force any pick\n let nextToggleStateIsFrom = !calendarChangeIsFrom;\n if (forcingFromDatePick) nextToggleStateIsFrom = false;\n if (forcingToDatePick) nextToggleStateIsFrom = true;\n\n return {\n newDateFromString,\n forcingFromDatePick,\n newDateToString,\n forcingToDatePick,\n isToBeforeFrom,\n nextToggleStateIsFrom,\n currentClickCountAsFrom: !nextToggleStateIsFrom,\n };\n },\n [fromDate, calendarChangeIsFrom, toDate],\n );\n const handlePickerMonthDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerMonthDateChange'] =\n useCallback(\n (newMonth, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onMonthFromChange(newMonth, e, metaInfo);\n else onMonthToChange(newMonth, e, metaInfo);\n },\n [getChangedDayStringValues, onMonthFromChange, onMonthToChange],\n );\n const handlePickerDayDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDayDateChange'] =\n useCallback(\n (newDay, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onDayFromChange(newDay, e, metaInfo);\n else onDayToChange(newDay, e, metaInfo);\n },\n [getChangedDayStringValues, onDayFromChange, onDayToChange],\n );\n const handlePickerYearDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerYearDateChange'] =\n useCallback(\n (newYear, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onYearFromChange(newYear, e, metaInfo);\n else onYearToChange(newYear, e, metaInfo);\n },\n [getChangedDayStringValues, onYearFromChange, onYearToChange],\n );\n\n // every time the calendar opens/closes, we assume first click is \"from\"\n const onCalendarOpen: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarOpen'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const onCalendarClose: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarClose'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const handlePickerDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDateChange'] =\n useCallback(\n (changedDay, metaInfo) => {\n const { newDateFromString, newDateToString, nextToggleStateIsFrom, isToBeforeFrom } =\n getChangedDayStringValues(changedDay);\n\n // every \"change\" on the picker range we calculate it as a new \"onChange\" for both values\n // and we pass over the correct \"new\" from/to value\n onFromDateChange(newDateFromString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n onToDateChange(newDateToString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n\n // and we notify what the next change type should be\n setCalendarChangeIsFrom(nextToggleStateIsFrom);\n },\n [getChangedDayStringValues, onFromDateChange, onToDateChange],\n );\n\n const getIsStartRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsStartRangeDay'] = useCallback(\n (dayString) => dayString === fromDate,\n [fromDate],\n );\n const getIsDayInRange: ControlledDateRangePickerContextT['rangePickerLogic']['getIsDayInRange'] = useCallback(\n (dayString) => {\n const dayFrom = getDayFromDateString(fromDate);\n const dayTo = getDayFromDateString(toDate);\n if (!dayFrom || !dayTo || !dayString) return false;\n const newDayTime = getDayFromDateString(dayString)?.getTime();\n return !!newDayTime && newDayTime <= dayTo.getTime() && newDayTime >= dayFrom.getTime();\n },\n [fromDate, toDate],\n );\n const getIsEndRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsEndRangeDay'] = useCallback(\n (dayString) => dayString === toDate,\n [toDate],\n );\n\n const getIsToBeforeFrom = useCallback((fromString: string, toString: string) => {\n const dateFrom = getDayFromDateString(fromString);\n const dateTo = getDayFromDateString(toString);\n return !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n }, []);\n const handleFromDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleFromDateChange'] =\n useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(newVal, toDate);\n onFromDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'from', isIncorrectOrder });\n },\n [getIsToBeforeFrom, onFromDateChange, toDate],\n );\n const handleToDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleToDateChange'] = useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(fromDate, newVal);\n onToDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'to', isIncorrectOrder });\n },\n [fromDate, getIsToBeforeFrom, onToDateChange],\n );\n\n return useMemo(\n () => ({\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n }),\n [\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n ],\n );\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport { useCallback, useState, useMemo, useEffect } from 'react';\nimport { getDayFromDateString } from '@elliemae/ds-form-date-time-picker';\nimport type { ControlledDateRangePickerContextT } from './useControlledDateRangePicker.js';\nimport type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';\n\nexport const useRangePickerLogic = ({\n fromDate,\n onFromDateChange,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n onToDateChange,\n}: DSControlledDateRangePickerT.InternalProps): ControlledDateRangePickerContextT['rangePickerLogic'] => {\n // the implementation is based on controlled-date-time-picker that is not meant to \"understand\"\n // the \"from\" - \"to\" logic on click, we are \"overloading\" the \"from\" - \"to\" logic here\n // we track wheter we are going to set the \"from\" OR \"to\" controlled date based on this toggle\n const [calendarChangeIsFrom, setCalendarChangeIsFrom] = useState(true);\n const [latestChangedDate, setLatestChangedDate] = useState(fromDate);\n useEffect(() => {\n setLatestChangedDate(fromDate);\n }, [fromDate]);\n useEffect(() => {\n setLatestChangedDate(toDate);\n }, [toDate]);\n\n const getChangedDayStringValues = useCallback(\n (changedDay: string) => {\n // based on wheter we are handling a \"from\"/\"to\" change, we calculate some values\n const dateFromString = calendarChangeIsFrom ? changedDay : fromDate;\n const dateFrom = getDayFromDateString(dateFromString);\n const dateToString = calendarChangeIsFrom ? toDate : changedDay;\n const dateTo = getDayFromDateString(dateToString);\n // we force the \"from\" to ALWAYS be before the \"to\" date\n const isToBeforeFrom = !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n const newDateFromString = isToBeforeFrom ? dateToString : dateFromString;\n const forcingFromDatePick = isToBeforeFrom ? !calendarChangeIsFrom : false;\n const newDateToString = isToBeforeFrom ? dateFromString : dateToString;\n const forcingToDatePick = isToBeforeFrom ? calendarChangeIsFrom : false;\n\n // next change should be based on\n // the force pick next interactions\n // toggle between from/to if we didn't force any pick\n let nextToggleStateIsFrom = !calendarChangeIsFrom;\n if (forcingFromDatePick) nextToggleStateIsFrom = false;\n if (forcingToDatePick) nextToggleStateIsFrom = true;\n\n return {\n newDateFromString,\n forcingFromDatePick,\n newDateToString,\n forcingToDatePick,\n isToBeforeFrom,\n nextToggleStateIsFrom,\n currentClickCountAsFrom: !nextToggleStateIsFrom,\n };\n },\n [fromDate, calendarChangeIsFrom, toDate],\n );\n const handlePickerMonthDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerMonthDateChange'] =\n useCallback(\n (newMonth, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onMonthFromChange(newMonth, e, metaInfo);\n else onMonthToChange(newMonth, e, metaInfo);\n },\n [getChangedDayStringValues, onMonthFromChange, onMonthToChange],\n );\n const handlePickerDayDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDayDateChange'] =\n useCallback(\n (newDay, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onDayFromChange(newDay, e, metaInfo);\n else onDayToChange(newDay, e, metaInfo);\n },\n [getChangedDayStringValues, onDayFromChange, onDayToChange],\n );\n const handlePickerYearDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerYearDateChange'] =\n useCallback(\n (newYear, e, metaInfo) => {\n const { newDateString = '' } = metaInfo;\n const { currentClickCountAsFrom } = getChangedDayStringValues(newDateString);\n if (currentClickCountAsFrom) onYearFromChange(newYear, e, metaInfo);\n else onYearToChange(newYear, e, metaInfo);\n },\n [getChangedDayStringValues, onYearFromChange, onYearToChange],\n );\n\n // every time the calendar opens/closes, we assume first click is \"from\"\n const onCalendarOpen: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarOpen'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const onCalendarClose: ControlledDateRangePickerContextT['rangePickerLogic']['onCalendarClose'] = useCallback(() => {\n setCalendarChangeIsFrom(true);\n }, []);\n const handlePickerDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handlePickerDateChange'] =\n useCallback(\n (changedDay, metaInfo) => {\n const { newDateFromString, newDateToString, nextToggleStateIsFrom, isToBeforeFrom } =\n getChangedDayStringValues(changedDay);\n\n // every \"change\" on the picker range we calculate it as a new \"onChange\" for both values\n // and we pass over the correct \"new\" from/to value\n onFromDateChange(newDateFromString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n onToDateChange(newDateToString, { ...metaInfo, automaticSwitchedDates: isToBeforeFrom });\n\n // and we notify what the next change type should be\n setCalendarChangeIsFrom(nextToggleStateIsFrom);\n },\n [getChangedDayStringValues, onFromDateChange, onToDateChange],\n );\n\n const getIsStartRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsStartRangeDay'] = useCallback(\n (dayString) => dayString === fromDate,\n [fromDate],\n );\n const getIsDayInRange: ControlledDateRangePickerContextT['rangePickerLogic']['getIsDayInRange'] = useCallback(\n (dayString) => {\n const dayFrom = getDayFromDateString(fromDate);\n const dayTo = getDayFromDateString(toDate);\n if (!dayFrom || !dayTo || !dayString) return false;\n const newDayTime = getDayFromDateString(dayString)?.getTime();\n return !!newDayTime && newDayTime <= dayTo.getTime() && newDayTime >= dayFrom.getTime();\n },\n [fromDate, toDate],\n );\n const getIsEndRangeDay: ControlledDateRangePickerContextT['rangePickerLogic']['getIsEndRangeDay'] = useCallback(\n (dayString) => dayString === toDate,\n [toDate],\n );\n\n const getIsToBeforeFrom = useCallback((fromString: string, toString: string) => {\n const dateFrom = getDayFromDateString(fromString);\n const dateTo = getDayFromDateString(toString);\n return !!dateTo && !!dateFrom && dateTo?.getTime() < dateFrom?.getTime();\n }, []);\n const handleFromDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleFromDateChange'] =\n useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(newVal, toDate);\n onFromDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'from', isIncorrectOrder });\n },\n [getIsToBeforeFrom, onFromDateChange, toDate],\n );\n const handleToDateChange: ControlledDateRangePickerContextT['rangePickerLogic']['handleToDateChange'] = useCallback(\n (newVal, metaInfo) => {\n const isIncorrectOrder = getIsToBeforeFrom(fromDate, newVal);\n onToDateChange(newVal, { ...metaInfo, rangeDateChangeType: 'to', isIncorrectOrder });\n },\n [fromDate, getIsToBeforeFrom, onToDateChange],\n );\n\n return useMemo(\n () => ({\n calendarChangeIsFrom,\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n }),\n [\n calendarChangeIsFrom,\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handleFromDateChange,\n handleToDateChange,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n ],\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACEvB,SAAS,aAAa,UAAU,SAAS,iBAAiB;AAC1D,SAAS,4BAA4B;AAI9B,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyG;AAIvG,QAAM,CAAC,sBAAsB,uBAAuB,IAAI,SAAS,IAAI;AACrE,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,QAAQ;AACnE,YAAU,MAAM;AACd,yBAAqB,QAAQ;AAAA,EAC/B,GAAG,CAAC,QAAQ,CAAC;AACb,YAAU,MAAM;AACd,yBAAqB,MAAM;AAAA,EAC7B,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,4BAA4B;AAAA,IAChC,CAAC,eAAuB;AAEtB,YAAM,iBAAiB,uBAAuB,aAAa;AAC3D,YAAM,WAAW,qBAAqB,cAAc;AACpD,YAAM,eAAe,uBAAuB,SAAS;AACrD,YAAM,SAAS,qBAAqB,YAAY;AAEhD,YAAM,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,QAAQ,QAAQ,IAAI,UAAU,QAAQ;AACvF,YAAM,oBAAoB,iBAAiB,eAAe;AAC1D,YAAM,sBAAsB,iBAAiB,CAAC,uBAAuB;AACrE,YAAM,kBAAkB,iBAAiB,iBAAiB;AAC1D,YAAM,oBAAoB,iBAAiB,uBAAuB;AAKlE,UAAI,wBAAwB,CAAC;AAC7B,UAAI,oBAAqB,yBAAwB;AACjD,UAAI,kBAAmB,yBAAwB;AAE/C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,yBAAyB,CAAC;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,CAAC,UAAU,sBAAsB,MAAM;AAAA,EACzC;AACA,QAAM,8BACJ;AAAA,IACE,CAAC,UAAU,GAAG,aAAa;AACzB,YAAM,EAAE,gBAAgB,GAAG,IAAI;AAC/B,YAAM,EAAE,wBAAwB,IAAI,0BAA0B,aAAa;AAC3E,UAAI,wBAAyB,mBAAkB,UAAU,GAAG,QAAQ;AAAA,UAC/D,iBAAgB,UAAU,GAAG,QAAQ;AAAA,IAC5C;AAAA,IACA,CAAC,2BAA2B,mBAAmB,eAAe;AAAA,EAChE;AACF,QAAM,4BACJ;AAAA,IACE,CAAC,QAAQ,GAAG,aAAa;AACvB,YAAM,EAAE,gBAAgB,GAAG,IAAI;AAC/B,YAAM,EAAE,wBAAwB,IAAI,0BAA0B,aAAa;AAC3E,UAAI,wBAAyB,iBAAgB,QAAQ,GAAG,QAAQ;AAAA,UAC3D,eAAc,QAAQ,GAAG,QAAQ;AAAA,IACxC;AAAA,IACA,CAAC,2BAA2B,iBAAiB,aAAa;AAAA,EAC5D;AACF,QAAM,6BACJ;AAAA,IACE,CAAC,SAAS,GAAG,aAAa;AACxB,YAAM,EAAE,gBAAgB,GAAG,IAAI;AAC/B,YAAM,EAAE,wBAAwB,IAAI,0BAA0B,aAAa;AAC3E,UAAI,wBAAyB,kBAAiB,SAAS,GAAG,QAAQ;AAAA,UAC7D,gBAAe,SAAS,GAAG,QAAQ;AAAA,IAC1C;AAAA,IACA,CAAC,2BAA2B,kBAAkB,cAAc;AAAA,EAC9D;AAGF,QAAM,iBAA0F,YAAY,MAAM;AAChH,4BAAwB,IAAI;AAAA,EAC9B,GAAG,CAAC,CAAC;AACL,QAAM,kBAA4F,YAAY,MAAM;AAClH,4BAAwB,IAAI;AAAA,EAC9B,GAAG,CAAC,CAAC;AACL,QAAM,yBACJ;AAAA,IACE,CAAC,YAAY,aAAa;AACxB,YAAM,EAAE,mBAAmB,iBAAiB,uBAAuB,eAAe,IAChF,0BAA0B,UAAU;AAItC,uBAAiB,mBAAmB,EAAE,GAAG,UAAU,wBAAwB,eAAe,CAAC;AAC3F,qBAAe,iBAAiB,EAAE,GAAG,UAAU,wBAAwB,eAAe,CAAC;AAGvF,8BAAwB,qBAAqB;AAAA,IAC/C;AAAA,IACA,CAAC,2BAA2B,kBAAkB,cAAc;AAAA,EAC9D;AAEF,QAAM,qBAAkG;AAAA,IACtG,CAAC,cAAc,cAAc;AAAA,IAC7B,CAAC,QAAQ;AAAA,EACX;AACA,QAAM,kBAA4F;AAAA,IAChG,CAAC,cAAc;AACb,YAAM,UAAU,qBAAqB,QAAQ;AAC7C,YAAM,QAAQ,qBAAqB,MAAM;AACzC,UAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAW,QAAO;AAC7C,YAAM,aAAa,qBAAqB,SAAS,GAAG,QAAQ;AAC5D,aAAO,CAAC,CAAC,cAAc,cAAc,MAAM,QAAQ,KAAK,cAAc,QAAQ,QAAQ;AAAA,IACxF;AAAA,IACA,CAAC,UAAU,MAAM;AAAA,EACnB;AACA,QAAM,mBAA8F;AAAA,IAClG,CAAC,cAAc,cAAc;AAAA,IAC7B,CAAC,MAAM;AAAA,EACT;AAEA,QAAM,oBAAoB,YAAY,CAAC,YAAoB,aAAqB;AAC9E,UAAM,WAAW,qBAAqB,UAAU;AAChD,UAAM,SAAS,qBAAqB,QAAQ;AAC5C,WAAO,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,QAAQ,QAAQ,IAAI,UAAU,QAAQ;AAAA,EACzE,GAAG,CAAC,CAAC;AACL,QAAM,uBACJ;AAAA,IACE,CAAC,QAAQ,aAAa;AACpB,YAAM,mBAAmB,kBAAkB,QAAQ,MAAM;AACzD,uBAAiB,QAAQ,EAAE,GAAG,UAAU,qBAAqB,QAAQ,iBAAiB,CAAC;AAAA,IACzF;AAAA,IACA,CAAC,mBAAmB,kBAAkB,MAAM;AAAA,EAC9C;AACF,QAAM,qBAAkG;AAAA,IACtG,CAAC,QAAQ,aAAa;AACpB,YAAM,mBAAmB,kBAAkB,UAAU,MAAM;AAC3D,qBAAe,QAAQ,EAAE,GAAG,UAAU,qBAAqB,MAAM,iBAAiB,CAAC;AAAA,IACrF;AAAA,IACA,CAAC,UAAU,mBAAmB,cAAc;AAAA,EAC9C;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,11 +1,4 @@
1
1
  import * as React from "react";
2
- import { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker } from "./ControlledDateRangePicker.js";
3
- import {
4
- DSControlledDateRangePickerName,
5
- DSControlledDateRangePickerSlots,
6
- ControlledDateRangePickerDatatestid
7
- } from "./exported-related/theming.js";
8
- import { CONTROLLED_DATE_RANGE_PICKER_TYPES } from "./ControlledDateRangePickerTypes.js";
9
2
  import {
10
3
  getDateStringFromDay,
11
4
  getDateValuesFromDate,
@@ -14,6 +7,13 @@ import {
14
7
  getValidationDateTimeStringMetaInfo,
15
8
  getValidationTimeStringMetaInfo
16
9
  } from "@elliemae/ds-form-date-time-picker";
10
+ import { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema } from "./ControlledDateRangePicker.js";
11
+ import { CONTROLLED_DATE_RANGE_PICKER_TYPES } from "./ControlledDateRangePickerTypes.js";
12
+ import {
13
+ ControlledDateRangePickerDatatestid,
14
+ DSControlledDateRangePickerName,
15
+ DSControlledDateRangePickerSlots
16
+ } from "./exported-related/theming.js";
17
17
  export {
18
18
  CONTROLLED_DATE_RANGE_PICKER_TYPES,
19
19
  ControlledDateRangePickerDatatestid,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/index.ts"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker } from './ControlledDateRangePicker.js';\nexport {\n DSControlledDateRangePickerName,\n DSControlledDateRangePickerSlots,\n ControlledDateRangePickerDatatestid,\n} from './exported-related/theming.js';\n// export { ControlledDateRangePickerDatatestid } from './ControlledDateRangePickerDatatestid.js';\nexport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from './ControlledDateRangePickerTypes.js';\nexport {\n getDateStringFromDay,\n getDateValuesFromDate,\n getDayFromDateString,\n getValidationDateStringMetaInfo,\n getValidationDateTimeStringMetaInfo,\n getValidationTimeStringMetaInfo,\n} from '@elliemae/ds-form-date-time-picker';\nexport { type DSControlledDateRangePickerT } from './react-desc-prop-types.js';\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,uCAAuC,mCAAmC;AACnF;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,0CAA0C;AACnD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export {\n getDateStringFromDay,\n getDateValuesFromDate,\n getDayFromDateString,\n getValidationDateStringMetaInfo,\n getValidationDateTimeStringMetaInfo,\n getValidationTimeStringMetaInfo,\n} from '@elliemae/ds-form-date-time-picker';\n\nexport { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema } from './ControlledDateRangePicker.js';\nexport { CONTROLLED_DATE_RANGE_PICKER_TYPES } from './ControlledDateRangePickerTypes.js';\nexport {\n ControlledDateRangePickerDatatestid,\n DSControlledDateRangePickerName,\n DSControlledDateRangePickerSlots,\n} from './exported-related/theming.js';\nexport { type DSControlledDateRangePickerT } from './react-desc-prop-types.js';\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,6BAA6B,6CAA6C;AACnF,SAAS,0CAA0C;AACnD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
6
6
  "names": []
7
7
  }
@@ -1,10 +1,15 @@
1
1
  import * as React from "react";
2
- import { jsx } from "react/jsx-runtime";
3
- import { useContext } from "react";
4
- import { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from "@elliemae/ds-form-date-time-picker";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import React2, { useContext } from "react";
4
+ import {
5
+ CONTROLLED_DATE_TIME_PICKER_TYPES,
6
+ DSControlledDateTimePicker,
7
+ getAriaDayFromDateString
8
+ } from "@elliemae/ds-form-date-time-picker";
5
9
  import { ControlledDateRangePickerContext } from "../ControlledDateRangePickerCTX.js";
6
10
  const ControlledDateRangeCalendar = () => {
7
11
  const {
12
+ instanceUID,
8
13
  props: {
9
14
  emptyPickerStartingMonth,
10
15
  onCalendarOpenFocusedDay,
@@ -18,9 +23,11 @@ const ControlledDateRangeCalendar = () => {
18
23
  toDate,
19
24
  disabled,
20
25
  readOnly,
21
- applyAriaDisabled
26
+ applyAriaDisabled,
27
+ lastElementRef
22
28
  },
23
29
  rangePickerLogic: {
30
+ calendarChangeIsFrom,
24
31
  latestChangedDate,
25
32
  onCalendarOpen,
26
33
  onCalendarClose,
@@ -34,36 +41,76 @@ const ControlledDateRangeCalendar = () => {
34
41
  },
35
42
  isControllerOnly
36
43
  } = useContext(ControlledDateRangePickerContext);
37
- return /* @__PURE__ */ jsx(
38
- DSControlledDateTimePicker,
39
- {
40
- type: isControllerOnly ? CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY : CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER,
41
- date: latestChangedDate,
42
- onDateChange: handlePickerDateChange,
43
- onMonthChange: handlePickerMonthDateChange,
44
- onDayChange: handlePickerDayDateChange,
45
- onYearChange: handlePickerYearDateChange,
46
- getIsStartRangeDay,
47
- getIsDayInRange,
48
- getIsEndRangeDay,
49
- onPickerOpen: onCalendarOpen,
50
- onPickerClose: onCalendarClose,
51
- isClearable,
52
- getIsDisabledDay,
53
- getIsOutOfRangeDay,
54
- emptyPickerStartingMonth,
55
- onCalendarOpenFocusedDay,
56
- preventCloseOnSelection: true,
57
- hasError,
58
- pickerFooterMsg,
59
- autoFocus,
60
- fromDate,
61
- toDate,
62
- disabled,
63
- readOnly,
64
- applyAriaDisabled
65
- }
44
+ const nextInteractionDescriptionId = `${instanceUID}-next-interaction-explanation`;
45
+ const nextInteractionDescription = calendarChangeIsFrom ? "Select a start date. If later than the current end date, the dates will swap automatically." : "Select an end date. If earlier than the current start date, the dates will swap automatically.";
46
+ const handleCalendarDayA11ySlotsArgs = React2.useCallback(
47
+ ({
48
+ isDayInRangeImproper,
49
+ isDisabled,
50
+ isOutOfRange,
51
+ metaDay
52
+ }) => {
53
+ const rangeProps = isDayInRangeImproper ? {
54
+ "aria-pressed": true,
55
+ "aria-label": `${getAriaDayFromDateString(metaDay.dayAsString)}, range from ${getAriaDayFromDateString(fromDate)} to ${getAriaDayFromDateString(toDate)} selected.`
56
+ } : {};
57
+ const isActivatable = !isDisabled && !isOutOfRange;
58
+ return { ...rangeProps, ...isActivatable && { "aria-describedby": nextInteractionDescriptionId } };
59
+ },
60
+ [fromDate, toDate, nextInteractionDescriptionId]
66
61
  );
62
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
63
+ /* @__PURE__ */ jsx(
64
+ "span",
65
+ {
66
+ id: nextInteractionDescriptionId,
67
+ style: {
68
+ position: "absolute",
69
+ width: 1,
70
+ height: 1,
71
+ padding: 0,
72
+ margin: -1,
73
+ overflow: "hidden",
74
+ clip: "rect(0,0,0,0)",
75
+ whiteSpace: "nowrap",
76
+ borderWidth: 0
77
+ },
78
+ children: nextInteractionDescription
79
+ }
80
+ ),
81
+ /* @__PURE__ */ jsx(
82
+ DSControlledDateTimePicker,
83
+ {
84
+ dsControlleddatetimepickerCalendarDay: handleCalendarDayA11ySlotsArgs,
85
+ type: isControllerOnly ? CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY : CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER,
86
+ date: latestChangedDate,
87
+ onDateChange: handlePickerDateChange,
88
+ onMonthChange: handlePickerMonthDateChange,
89
+ onDayChange: handlePickerDayDateChange,
90
+ onYearChange: handlePickerYearDateChange,
91
+ getIsStartRangeDay,
92
+ getIsDayInRange,
93
+ getIsEndRangeDay,
94
+ onPickerOpen: onCalendarOpen,
95
+ onPickerClose: onCalendarClose,
96
+ isClearable,
97
+ getIsDisabledDay,
98
+ getIsOutOfRangeDay,
99
+ emptyPickerStartingMonth,
100
+ onCalendarOpenFocusedDay,
101
+ preventCloseOnSelection: true,
102
+ hasError,
103
+ pickerFooterMsg,
104
+ autoFocus,
105
+ fromDate,
106
+ toDate,
107
+ disabled,
108
+ readOnly,
109
+ applyAriaDisabled,
110
+ lastElementRef
111
+ }
112
+ )
113
+ ] });
67
114
  };
68
115
  export {
69
116
  ControlledDateRangeCalendar
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/ControlledDateRangeCalendar.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeCalendar = (): JSX.Element => {\n const {\n props: {\n emptyPickerStartingMonth,\n onCalendarOpenFocusedDay,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n pickerFooterMsg,\n fromDate,\n toDate,\n disabled,\n readOnly,\n applyAriaDisabled,\n },\n rangePickerLogic: {\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n },\n isControllerOnly,\n } = useContext(ControlledDateRangePickerContext);\n\n return (\n <DSControlledDateTimePicker\n type={\n isControllerOnly\n ? CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY\n : CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER\n }\n date={latestChangedDate}\n onDateChange={handlePickerDateChange}\n onMonthChange={handlePickerMonthDateChange}\n onDayChange={handlePickerDayDateChange}\n onYearChange={handlePickerYearDateChange}\n getIsStartRangeDay={getIsStartRangeDay}\n getIsDayInRange={getIsDayInRange}\n getIsEndRangeDay={getIsEndRangeDay}\n onPickerOpen={onCalendarOpen}\n onPickerClose={onCalendarClose}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n emptyPickerStartingMonth={emptyPickerStartingMonth}\n onCalendarOpenFocusedDay={onCalendarOpenFocusedDay}\n preventCloseOnSelection\n hasError={hasError}\n pickerFooterMsg={pickerFooterMsg}\n autoFocus={autoFocus}\n fromDate={fromDate}\n toDate={toDate}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n />\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACqCnB;AArCJ,SAAgB,kBAAkB;AAClC,SAAS,mCAAmC,kCAAkC;AAC9E,SAAS,wCAAwC;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF,IAAI,WAAW,gCAAgC;AAE/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MACE,mBACI,kCAAkC,KAAK,kBACvC,kCAAkC,KAAK;AAAA,MAE7C,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,yBAAuB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;",
6
- "names": []
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport {\n CONTROLLED_DATE_TIME_PICKER_TYPES,\n DSControlledDateTimePicker,\n type DSControlledDateTimePickerT,\n getAriaDayFromDateString,\n} from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeCalendar = (): JSX.Element => {\n const {\n instanceUID,\n props: {\n emptyPickerStartingMonth,\n onCalendarOpenFocusedDay,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n pickerFooterMsg,\n fromDate,\n toDate,\n disabled,\n readOnly,\n applyAriaDisabled,\n lastElementRef,\n },\n rangePickerLogic: {\n calendarChangeIsFrom,\n latestChangedDate,\n onCalendarOpen,\n onCalendarClose,\n handlePickerDateChange,\n handlePickerMonthDateChange,\n handlePickerDayDateChange,\n handlePickerYearDateChange,\n getIsStartRangeDay,\n getIsDayInRange,\n getIsEndRangeDay,\n },\n isControllerOnly,\n } = useContext(ControlledDateRangePickerContext);\n\n const nextInteractionDescriptionId = `${instanceUID}-next-interaction-explanation`;\n const nextInteractionDescription = calendarChangeIsFrom\n ? 'Select a start date. If later than the current end date, the dates will swap automatically.'\n : 'Select an end date. If earlier than the current start date, the dates will swap automatically.';\n\n const handleCalendarDayA11ySlotsArgs = React.useCallback(\n ({\n isDayInRangeImproper,\n isDisabled,\n isOutOfRange,\n metaDay,\n }: DSControlledDateTimePickerT.CalendarDaySlotArguments) => {\n const rangeProps = isDayInRangeImproper\n ? {\n 'aria-pressed': true as const,\n 'aria-label': `${getAriaDayFromDateString(metaDay.dayAsString)}, range from ${getAriaDayFromDateString(fromDate)} to ${getAriaDayFromDateString(toDate)} selected.`,\n }\n : {};\n const isActivatable = !isDisabled && !isOutOfRange;\n return { ...rangeProps, ...(isActivatable && { 'aria-describedby': nextInteractionDescriptionId }) };\n },\n [fromDate, toDate, nextInteractionDescriptionId],\n );\n\n return (\n <>\n <span\n id={nextInteractionDescriptionId}\n style={{\n position: 'absolute',\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n }}\n >\n {nextInteractionDescription}\n </span>\n <DSControlledDateTimePicker\n dsControlleddatetimepickerCalendarDay={handleCalendarDayA11ySlotsArgs}\n type={\n isControllerOnly\n ? CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.CONTROLLER_ONLY\n : CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.PICKER\n }\n date={latestChangedDate}\n onDateChange={handlePickerDateChange}\n onMonthChange={handlePickerMonthDateChange}\n onDayChange={handlePickerDayDateChange}\n onYearChange={handlePickerYearDateChange}\n getIsStartRangeDay={getIsStartRangeDay}\n getIsDayInRange={getIsDayInRange}\n getIsEndRangeDay={getIsEndRangeDay}\n onPickerOpen={onCalendarOpen}\n onPickerClose={onCalendarClose}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n emptyPickerStartingMonth={emptyPickerStartingMonth}\n onCalendarOpenFocusedDay={onCalendarOpenFocusedDay}\n preventCloseOnSelection\n hasError={hasError}\n pickerFooterMsg={pickerFooterMsg}\n autoFocus={autoFocus}\n fromDate={fromDate}\n toDate={toDate}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n lastElementRef={lastElementRef}\n />\n </>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACqEnB,mBACE,KADF;AArEJ,OAAOA,UAAS,kBAAkB;AAClC;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,wCAAwC;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF,IAAI,WAAW,gCAAgC;AAE/C,QAAM,+BAA+B,GAAG,WAAW;AACnD,QAAM,6BAA6B,uBAC/B,gGACA;AAEJ,QAAM,iCAAiCA,OAAM;AAAA,IAC3C,CAAC;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAA4D;AAC1D,YAAM,aAAa,uBACf;AAAA,QACE,gBAAgB;AAAA,QAChB,cAAc,GAAG,yBAAyB,QAAQ,WAAW,CAAC,gBAAgB,yBAAyB,QAAQ,CAAC,OAAO,yBAAyB,MAAM,CAAC;AAAA,MACzJ,IACA,CAAC;AACL,YAAM,gBAAgB,CAAC,cAAc,CAAC;AACtC,aAAO,EAAE,GAAG,YAAY,GAAI,iBAAiB,EAAE,oBAAoB,6BAA6B,EAAG;AAAA,IACrG;AAAA,IACA,CAAC,UAAU,QAAQ,4BAA4B;AAAA,EACjD;AAEA,SACE,iCACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACJ,OAAO;AAAA,UACL,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,uCAAuC;AAAA,QACvC,MACE,mBACI,kCAAkC,KAAK,kBACvC,kCAAkC,KAAK;AAAA,QAE7C,MAAM;AAAA,QACN,cAAc;AAAA,QACd,eAAe;AAAA,QACf,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd,eAAe;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,yBAAuB;AAAA,QACvB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
6
+ "names": ["React"]
7
7
  }
@@ -43,7 +43,11 @@ const ControlledDateRangeFromDate = () => {
43
43
  readOnly,
44
44
  applyAriaDisabled,
45
45
  ...dateTimePickerFromProps,
46
- type: CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS
46
+ type: CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS,
47
+ dsControlleddatetimepickerRoot: {
48
+ role: "group",
49
+ "aria-label": "Start date"
50
+ }
47
51
  }
48
52
  );
49
53
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/ControlledDateRangeFromDate.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeFromDate = (): JSX.Element => {\n const {\n props: {\n fromDate,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n innerRef,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerFromProps,\n },\n rangePickerLogic: { handleFromDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={fromDate}\n onDateChange={handleFromDateChange}\n onMonthChange={onMonthFromChange}\n onDayChange={onDayFromChange}\n onYearChange={onYearFromChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n autoFocus={autoFocus}\n innerRef={innerRef}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerFromProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n />\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC0BnB;AA1BJ,SAAgB,kBAAkB;AAClC,SAAS,mCAAmC,kCAAkC;AAC9E,SAAS,wCAAwC;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,qBAAqB;AAAA,EAC3C,IAAI,WAAW,gCAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kCAAkC,KAAK;AAAA;AAAA,EAC/C;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeFromDate = (): JSX.Element => {\n const {\n props: {\n fromDate,\n onMonthFromChange,\n onDayFromChange,\n onYearFromChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n autoFocus,\n innerRef,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerFromProps,\n },\n rangePickerLogic: { handleFromDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={fromDate}\n onDateChange={handleFromDateChange}\n onMonthChange={onMonthFromChange}\n onDayChange={onDayFromChange}\n onYearChange={onYearFromChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n autoFocus={autoFocus}\n innerRef={innerRef}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerFromProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n dsControlleddatetimepickerRoot={{\n role: 'group',\n 'aria-label': 'Start date',\n }}\n />\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC0BnB;AA1BJ,SAAgB,kBAAkB;AAClC,SAAS,mCAAmC,kCAAkC;AAC9E,SAAS,wCAAwC;AAE1C,MAAM,8BAA8B,MAAmB;AAC5D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,qBAAqB;AAAA,EAC3C,IAAI,WAAW,gCAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kCAAkC,KAAK;AAAA,MAC7C,gCAAgC;AAAA,QAC9B,MAAM;AAAA,QACN,cAAc;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -39,7 +39,11 @@ const ControlledDateRangeToDate = () => {
39
39
  readOnly,
40
40
  applyAriaDisabled,
41
41
  ...dateTimePickerToProps,
42
- type: CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS
42
+ type: CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS,
43
+ dsControlleddatetimepickerRoot: {
44
+ role: "group",
45
+ "aria-label": "End date"
46
+ }
43
47
  }
44
48
  );
45
49
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/ControlledDateRangeToDate.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeToDate = (): JSX.Element => {\n const {\n props: {\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerToProps,\n },\n rangePickerLogic: { handleToDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={toDate}\n onDateChange={handleToDateChange}\n onMonthChange={onMonthToChange}\n onDayChange={onDayToChange}\n onYearChange={onYearToChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerToProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n />\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACwBnB;AAxBJ,SAAgB,kBAAkB;AAClC,SAAS,mCAAmC,kCAAkC;AAC9E,SAAS,wCAAwC;AAE1C,MAAM,4BAA4B,MAAmB;AAC1D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,mBAAmB;AAAA,EACzC,IAAI,WAAW,gCAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kCAAkC,KAAK;AAAA;AAAA,EAC/C;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { CONTROLLED_DATE_TIME_PICKER_TYPES, DSControlledDateTimePicker } from '@elliemae/ds-form-date-time-picker';\nimport { ControlledDateRangePickerContext } from '../ControlledDateRangePickerCTX.js';\n\nexport const ControlledDateRangeToDate = (): JSX.Element => {\n const {\n props: {\n toDate,\n onMonthToChange,\n onDayToChange,\n onYearToChange,\n isClearable,\n getIsDisabledDay,\n getIsOutOfRangeDay,\n hasError,\n tabIndex,\n disabled,\n readOnly,\n applyAriaDisabled,\n dateTimePickerToProps,\n },\n rangePickerLogic: { handleToDateChange },\n } = useContext(ControlledDateRangePickerContext);\n return (\n <DSControlledDateTimePicker\n date={toDate}\n onDateChange={handleToDateChange}\n onMonthChange={onMonthToChange}\n onDayChange={onDayToChange}\n onYearChange={onYearToChange}\n isClearable={isClearable}\n getIsDisabledDay={getIsDisabledDay}\n getIsOutOfRangeDay={getIsOutOfRangeDay}\n hasError={hasError}\n tabIndex={tabIndex}\n disabled={disabled}\n readOnly={readOnly}\n applyAriaDisabled={applyAriaDisabled}\n {...dateTimePickerToProps}\n type={CONTROLLED_DATE_TIME_PICKER_TYPES.DATE.INPUTS}\n dsControlleddatetimepickerRoot={{\n role: 'group',\n 'aria-label': 'End date',\n }}\n />\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACwBnB;AAxBJ,SAAgB,kBAAkB;AAClC,SAAS,mCAAmC,kCAAkC;AAC9E,SAAS,wCAAwC;AAE1C,MAAM,4BAA4B,MAAmB;AAC1D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,kBAAkB,EAAE,mBAAmB;AAAA,EACzC,IAAI,WAAW,gCAAgC;AAC/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ,MAAM,kCAAkC,KAAK;AAAA,MAC7C,gCAAgC;AAAA,QAC9B,MAAM;AAAA,QACN,cAAc;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -70,6 +70,10 @@ const DSControlledDateRangePickerPropTypes = {
70
70
  innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(
71
71
  '"from" month input html node reference'
72
72
  ),
73
+ lastElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(
74
+ "ref for the last focusable element in the component based on its configuration, used for focus management in focus trap logic"
75
+ ),
76
+ tabIndex: PropTypes.string.description('tabIndex to be applied to the "from" month input'),
73
77
  readOnly: PropTypes.bool.description("Makes the component non-editable while remaining accessible").defaultValue(false),
74
78
  applyAriaDisabled: PropTypes.bool.description(
75
79
  "Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION."
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/react-desc-prop-types.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n PropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n getPropsPerSlotPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport type { ValidationMap, GlobalAttributesT, DSPropTypesSchema, XstyledProps } from '@elliemae/ds-props-helpers';\nimport { type DSControlledDateTimePickerT } from '@elliemae/ds-form-date-time-picker';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSControlledDateRangePickerName, DSControlledDateRangePickerSlots } from './exported-related/theming.js';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\nconst defaultReturnFalse = (): boolean => false;\n\nexport declare namespace DSControlledDateRangePickerT {\n export interface RangePickerMetaInfoT extends DSControlledDateTimePickerT.InternalInputsChangeMetaInfo {\n rangeDateChangeType?: 'from' | 'to';\n automaticSwitchedDates?: boolean;\n isIncorrectOrder?: boolean;\n }\n\n export type RangeOnDateChange = (val: string, metaInfo: RangePickerMetaInfoT) => void;\n\n export type AppOnInputChange = DSControlledDateTimePickerT.AppOnInputChange;\n\n export type ControlledDateRangeType =\n | 'full-date-range'\n | 'date-range-picker-controller-only'\n | 'date-range-picker'\n | 'date-range-inputs';\n\n export interface RequiredProps {}\n\n export interface DefaultProps {\n type: ControlledDateRangeType;\n fromDate: string;\n onFromDateChange: RangeOnDateChange;\n onMonthFromChange: AppOnInputChange;\n onDayFromChange: AppOnInputChange;\n onYearFromChange: AppOnInputChange;\n hasError: boolean;\n pickerFooterMsg: string;\n\n toDate: string;\n onToDateChange: RangeOnDateChange;\n onMonthToChange: AppOnInputChange;\n onDayToChange: AppOnInputChange;\n onYearToChange: AppOnInputChange;\n\n isClearable: boolean;\n getIsDisabledDay: (day: string) => boolean;\n getIsOutOfRangeDay: (day: string) => boolean;\n autoFocus: boolean;\n readOnly: boolean;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSControlledDateRangePickerName,\n typeof DSControlledDateRangePickerSlots\n > {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n innerRef?:\n | React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>\n | ((ref: HTMLInputElement | HTMLButtonElement | null) => void);\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n applyAriaDisabled?: boolean;\n dateTimePickerFromProps?: Partial<DSControlledDateTimePickerT.Props>;\n dateTimePickerToProps?: Partial<DSControlledDateTimePickerT.Props>;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n OptionalProps,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n Omit<OptionalProps, `dsControlleddaterangepicker${Capitalize<string>}`>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSControlledDateRangePickerT.DefaultProps = {\n type: 'full-date-range',\n fromDate: '',\n onFromDateChange: noop,\n onMonthFromChange: noop,\n onDayFromChange: noop,\n onYearFromChange: noop,\n pickerFooterMsg: '',\n toDate: '',\n onToDateChange: noop,\n onMonthToChange: noop,\n onDayToChange: noop,\n onYearToChange: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n hasError: false,\n isClearable: false,\n autoFocus: false,\n readOnly: false,\n};\n\nexport const DSControlledDateRangePickerPropTypes: DSPropTypesSchema<DSControlledDateRangePickerT.Props> = {\n ...getPropsPerSlotPropTypes(DSControlledDateRangePickerName, DSControlledDateRangePickerSlots),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-range',\n 'date-range-picker-controller-only',\n 'date-range-picker',\n 'date-range-inputs',\n ])\n .description('Type of date range form control to use')\n .defaultValue('full-date-range'),\n fromDate: PropTypes.string.description(`strictly formatted string representing user's selected \"from\" date`)\n .isRequired,\n onFromDateChange: PropTypes.func\n .description('function to react to \"from\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthFromChange: PropTypes.func\n .description('function to react to \"from\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayFromChange: PropTypes.func\n .description('function to react to \"from\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearFromChange: PropTypes.func\n .description('function to react to \"from\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n toDate: PropTypes.string.description(`strictly formatted string representing user's selected \"to\" date`).isRequired,\n onToDateChange: PropTypes.func\n .description('function to react to \"to\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthToChange: PropTypes.func\n .description('function to react to \"to\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayToChange: PropTypes.func\n .description('function to react to \"to\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearToChange: PropTypes.func\n .description('function to react to \"to\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n getIsDisabledDay: PropTypes.func\n .description('function used to mark day as \"disable\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n getIsOutOfRangeDay: PropTypes.func\n .description('function used to mark day as \"out of range\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n pickerFooterMsg: PropTypes.string.description(''),\n hasError: PropTypes.bool\n .description('boolean indicating wheter the selected range is to be marked as wrong')\n .defaultValue(false),\n isClearable: PropTypes.bool\n .description('boolean to optionally activate \"clearable\" icons in the inputs')\n .defaultValue(false),\n autoFocus: PropTypes.bool\n .description('boolean to auto-focus the \"from\" date month on render as per html auto-focus propriety')\n .defaultValue(false),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'strictly formatted string representing the starting month to be displayed when calendar context menu is invoked without any selected dates',\n ),\n onCalendarOpenFocusedDay: PropTypes.string.description(\n 'strictly formatted string representing the day to be focused when calendar context menu is invoked without any selected dates',\n ),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(\n '\"from\" month input html node reference',\n ),\n readOnly: PropTypes.bool\n .description('Makes the component non-editable while remaining accessible')\n .defaultValue(false),\n applyAriaDisabled: PropTypes.bool.description(\n 'Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION.',\n ),\n dateTimePickerFromProps: PropTypes.object.description('props to pass to the \"from\" date picker'),\n dateTimePickerToProps: PropTypes.object.description('props to pass to the \"to\" date picker'),\n};\n\nexport const DSControlledDateRangePickerPropTypesWithSchema =\n DSControlledDateRangePickerPropTypes as unknown as ValidationMap<DSControlledDateRangePickerT.Props>;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n PropTypes,\n globalAttributesPropTypes,\n xstyledPropTypes,\n getPropsPerSlotPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport type { ValidationMap, GlobalAttributesT, DSPropTypesSchema, XstyledProps } from '@elliemae/ds-props-helpers';\nimport { type DSControlledDateTimePickerT } from '@elliemae/ds-form-date-time-picker';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport { DSControlledDateRangePickerName, DSControlledDateRangePickerSlots } from './exported-related/theming.js';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\nconst defaultReturnFalse = (): boolean => false;\n\nexport declare namespace DSControlledDateRangePickerT {\n export interface RangePickerMetaInfoT extends DSControlledDateTimePickerT.InternalInputsChangeMetaInfo {\n rangeDateChangeType?: 'from' | 'to';\n automaticSwitchedDates?: boolean;\n isIncorrectOrder?: boolean;\n }\n\n export type RangeOnDateChange = (val: string, metaInfo: RangePickerMetaInfoT) => void;\n\n export type AppOnInputChange = DSControlledDateTimePickerT.AppOnInputChange;\n\n export type ControlledDateRangeType =\n | 'full-date-range'\n | 'date-range-picker-controller-only'\n | 'date-range-picker'\n | 'date-range-inputs';\n\n export interface RequiredProps {}\n\n export interface DefaultProps {\n type: ControlledDateRangeType;\n fromDate: string;\n onFromDateChange: RangeOnDateChange;\n onMonthFromChange: AppOnInputChange;\n onDayFromChange: AppOnInputChange;\n onYearFromChange: AppOnInputChange;\n hasError: boolean;\n pickerFooterMsg: string;\n\n toDate: string;\n onToDateChange: RangeOnDateChange;\n onMonthToChange: AppOnInputChange;\n onDayToChange: AppOnInputChange;\n onYearToChange: AppOnInputChange;\n\n isClearable: boolean;\n getIsDisabledDay: (day: string) => boolean;\n getIsOutOfRangeDay: (day: string) => boolean;\n autoFocus: boolean;\n readOnly: boolean;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<\n typeof DSControlledDateRangePickerName,\n typeof DSControlledDateRangePickerSlots\n > {\n emptyPickerStartingMonth?: string;\n onCalendarOpenFocusedDay?: string;\n innerRef?:\n | React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null>\n | ((ref: HTMLInputElement | HTMLButtonElement | null) => void);\n lastElementRef?: React.MutableRefObject<HTMLElement | null>;\n tabIndex?: TypescriptHelpersT.WCAGTabIndex;\n applyAriaDisabled?: boolean;\n dateTimePickerFromProps?: Partial<DSControlledDateTimePickerT.Props>;\n dateTimePickerToProps?: Partial<DSControlledDateTimePickerT.Props>;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n OptionalProps,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n Omit<GlobalAttributesT<HTMLDivElement>, keyof DefaultProps | keyof OptionalProps>,\n Omit<OptionalProps, `dsControlleddaterangepicker${Capitalize<string>}`>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSControlledDateRangePickerT.DefaultProps = {\n type: 'full-date-range',\n fromDate: '',\n onFromDateChange: noop,\n onMonthFromChange: noop,\n onDayFromChange: noop,\n onYearFromChange: noop,\n pickerFooterMsg: '',\n toDate: '',\n onToDateChange: noop,\n onMonthToChange: noop,\n onDayToChange: noop,\n onYearToChange: noop,\n getIsDisabledDay: defaultReturnFalse,\n getIsOutOfRangeDay: defaultReturnFalse,\n hasError: false,\n isClearable: false,\n autoFocus: false,\n readOnly: false,\n};\n\nexport const DSControlledDateRangePickerPropTypes: DSPropTypesSchema<DSControlledDateRangePickerT.Props> = {\n ...getPropsPerSlotPropTypes(DSControlledDateRangePickerName, DSControlledDateRangePickerSlots),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n type: PropTypes.oneOf([\n 'full-date-range',\n 'date-range-picker-controller-only',\n 'date-range-picker',\n 'date-range-inputs',\n ])\n .description('Type of date range form control to use')\n .defaultValue('full-date-range'),\n fromDate: PropTypes.string.description(`strictly formatted string representing user's selected \"from\" date`)\n .isRequired,\n onFromDateChange: PropTypes.func\n .description('function to react to \"from\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthFromChange: PropTypes.func\n .description('function to react to \"from\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayFromChange: PropTypes.func\n .description('function to react to \"from\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearFromChange: PropTypes.func\n .description('function to react to \"from\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n toDate: PropTypes.string.description(`strictly formatted string representing user's selected \"to\" date`).isRequired,\n onToDateChange: PropTypes.func\n .description('function to react to \"to\" date changing')\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )').isRequired,\n onMonthToChange: PropTypes.func\n .description('function to react to \"to\" month changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onDayToChange: PropTypes.func\n .description('function to react to \"to\" day changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n onYearToChange: PropTypes.func\n .description('function to react to \"to\" year changing')\n .defaultValue(() => {})\n .signature('(( newVal: string, e: React.SyntheticEvent, metaInfo: Record<string,unknown> ) => void )'),\n getIsDisabledDay: PropTypes.func\n .description('function used to mark day as \"disable\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n getIsOutOfRangeDay: PropTypes.func\n .description('function used to mark day as \"out of range\"')\n .defaultValue(() => false)\n .signature('(( day: string ) => boolean )'),\n pickerFooterMsg: PropTypes.string.description(''),\n hasError: PropTypes.bool\n .description('boolean indicating wheter the selected range is to be marked as wrong')\n .defaultValue(false),\n isClearable: PropTypes.bool\n .description('boolean to optionally activate \"clearable\" icons in the inputs')\n .defaultValue(false),\n autoFocus: PropTypes.bool\n .description('boolean to auto-focus the \"from\" date month on render as per html auto-focus propriety')\n .defaultValue(false),\n emptyPickerStartingMonth: PropTypes.string.description(\n 'strictly formatted string representing the starting month to be displayed when calendar context menu is invoked without any selected dates',\n ),\n onCalendarOpenFocusedDay: PropTypes.string.description(\n 'strictly formatted string representing the day to be focused when calendar context menu is invoked without any selected dates',\n ),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(\n '\"from\" month input html node reference',\n ),\n lastElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).description(\n 'ref for the last focusable element in the component based on its configuration, used for focus management in focus trap logic',\n ),\n tabIndex: PropTypes.string.description('tabIndex to be applied to the \"from\" month input'),\n readOnly: PropTypes.bool\n .description('Makes the component non-editable while remaining accessible')\n .defaultValue(false),\n applyAriaDisabled: PropTypes.bool.description(\n 'Whether to apply disabled styling and announce as disabled in SR. CAN STILL RECEIVE FOCUS. PREVENTS ONLY MAIN ACTION.',\n ),\n dateTimePickerFromProps: PropTypes.object.description('props to pass to the \"from\" date picker'),\n dateTimePickerToProps: PropTypes.object.description('props to pass to the \"to\" date picker'),\n};\n\nexport const DSControlledDateRangePickerPropTypesWithSchema =\n DSControlledDateRangePickerPropTypes as unknown as ValidationMap<DSControlledDateRangePickerT.Props>;\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -4,4 +4,4 @@ declare const DSControlledDateRangePicker: {
4
4
  displayName: string;
5
5
  };
6
6
  declare const DSControlledDateRangePickerWithSchema: import("@elliemae/ds-props-helpers/dist/types/propTypes/types.js").DocumentedReactComponent<DSControlledDateRangePickerT.Props>;
7
- export { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker };
7
+ export { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema };
@@ -1,5 +1,6 @@
1
1
  import type { DSControlledDateRangePickerT } from '../react-desc-prop-types.js';
2
2
  interface RangePickerLogicT {
3
+ calendarChangeIsFrom: boolean;
3
4
  latestChangedDate: string;
4
5
  onCalendarOpen: () => void;
5
6
  onCalendarClose: () => void;
@@ -1,5 +1,5 @@
1
- export { DSControlledDateRangePickerWithSchema, DSControlledDateRangePicker } from './ControlledDateRangePicker.js';
2
- export { DSControlledDateRangePickerName, DSControlledDateRangePickerSlots, ControlledDateRangePickerDatatestid, } from './exported-related/theming.js';
3
- export { CONTROLLED_DATE_RANGE_PICKER_TYPES } from './ControlledDateRangePickerTypes.js';
4
1
  export { getDateStringFromDay, getDateValuesFromDate, getDayFromDateString, getValidationDateStringMetaInfo, getValidationDateTimeStringMetaInfo, getValidationTimeStringMetaInfo, } from '@elliemae/ds-form-date-time-picker';
2
+ export { DSControlledDateRangePicker, DSControlledDateRangePickerWithSchema } from './ControlledDateRangePicker.js';
3
+ export { CONTROLLED_DATE_RANGE_PICKER_TYPES } from './ControlledDateRangePickerTypes.js';
4
+ export { ControlledDateRangePickerDatatestid, DSControlledDateRangePickerName, DSControlledDateRangePickerSlots, } from './exported-related/theming.js';
5
5
  export { type DSControlledDateRangePickerT } from './react-desc-prop-types.js';
@@ -37,6 +37,7 @@ export declare namespace DSControlledDateRangePickerT {
37
37
  emptyPickerStartingMonth?: string;
38
38
  onCalendarOpenFocusedDay?: string;
39
39
  innerRef?: React.MutableRefObject<HTMLInputElement | HTMLButtonElement | null> | ((ref: HTMLInputElement | HTMLButtonElement | null) => void);
40
+ lastElementRef?: React.MutableRefObject<HTMLElement | null>;
40
41
  tabIndex?: TypescriptHelpersT.WCAGTabIndex;
41
42
  applyAriaDisabled?: boolean;
42
43
  dateTimePickerFromProps?: Partial<DSControlledDateTimePickerT.Props>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-form-date-range-picker",
3
- "version": "3.60.0-next.6",
3
+ "version": "3.60.0-next.60",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Controlled Form Date Range Picker",
6
6
  "files": [
@@ -35,42 +35,39 @@
35
35
  "reportFile": "tests.xml",
36
36
  "indent": 4
37
37
  },
38
- "scripts": {
39
- "dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch",
40
- "test": "pui-cli test --passWithNoTests --coverage=\"false\"",
41
- "lint": "node ../../../scripts/lint.mjs --fix",
42
- "lint:strict": "node ../../../scripts/lint-strict.mjs",
43
- "dts": "node ../../../scripts/dts.mjs",
44
- "build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
45
- "checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
46
- },
47
38
  "dependencies": {
48
- "@elliemae/ds-form-date-time-picker": "3.60.0-next.6",
49
- "@elliemae/ds-props-helpers": "3.60.0-next.6",
50
- "@elliemae/ds-system": "3.60.0-next.6",
51
- "@elliemae/ds-typescript-helpers": "3.60.0-next.6",
52
- "styled-components": "catalog:",
53
- "uid": "catalog:"
39
+ "uid": "^2.0.2",
40
+ "@elliemae/ds-form-date-time-picker": "3.60.0-next.60",
41
+ "@elliemae/ds-props-helpers": "3.60.0-next.60",
42
+ "@elliemae/ds-system": "3.60.0-next.60",
43
+ "@elliemae/ds-typescript-helpers": "3.60.0-next.60"
54
44
  },
55
45
  "devDependencies": {
56
- "@elliemae/ds-monorepo-devops": "3.60.0-next.6",
57
- "@elliemae/ds-test-utils": "3.60.0-next.6",
58
- "@elliemae/pui-cli": "catalog:",
59
- "@elliemae/pui-theme": "catalog:",
60
- "jest": "catalog:",
61
- "styled-components": "catalog:",
62
- "styled-system": "catalog:"
46
+ "@elliemae/pui-theme": "~2.13.0",
47
+ "jest": "^30.0.0",
48
+ "styled-components": "~5.3.9",
49
+ "styled-system": "^5.1.5",
50
+ "@elliemae/ds-monorepo-devops": "3.60.0-next.60",
51
+ "@elliemae/ds-test-utils": "3.60.0-next.60"
63
52
  },
64
53
  "peerDependencies": {
65
- "@elliemae/pui-theme": "catalog:",
66
- "react": "catalog:",
67
- "react-dom": "catalog:",
68
- "styled-components": "catalog:",
69
- "styled-system": "catalog:"
54
+ "@elliemae/pui-theme": "~2.13.0",
55
+ "react": "^18.3.1",
56
+ "react-dom": "^18.3.1",
57
+ "styled-components": "~5.3.9",
58
+ "styled-system": "^5.1.5"
70
59
  },
71
60
  "publishConfig": {
72
61
  "access": "public",
73
62
  "typeSafety": true
74
63
  },
75
- "gitHead": "7b66efa164f4c1e3849a1107f3e1f72e63387b32"
76
- }
64
+ "scripts": {
65
+ "dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch",
66
+ "test": "ds-monorepo-devops test --passWithNoTests --coverage=\"false\"",
67
+ "lint": "node ../../../scripts/lint.mjs --fix",
68
+ "lint:strict": "node ../../../scripts/lint-strict.mjs",
69
+ "dts": "node ../../../scripts/dts.mjs",
70
+ "build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
71
+ "checkDeps": "npx -yes ../../util/ds-codemods check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
72
+ }
73
+ }