@elliemae/ds-form-date-range-picker 3.60.0-next.57 → 3.60.0-next.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config/useControlledDateRangePicker.js +1 -1
- package/dist/cjs/config/useControlledDateRangePicker.js.map +2 -2
- package/dist/cjs/config/useRangePickerLogic.js +2 -0
- package/dist/cjs/config/useRangePickerLogic.js.map +2 -2
- package/dist/cjs/parts/ControlledDateRangeCalendar.js +72 -31
- package/dist/cjs/parts/ControlledDateRangeCalendar.js.map +3 -3
- package/dist/esm/config/useControlledDateRangePicker.js +1 -1
- package/dist/esm/config/useControlledDateRangePicker.js.map +2 -2
- package/dist/esm/config/useRangePickerLogic.js +2 -0
- package/dist/esm/config/useRangePickerLogic.js.map +2 -2
- package/dist/esm/parts/ControlledDateRangeCalendar.js +78 -33
- package/dist/esm/parts/ControlledDateRangeCalendar.js.map +3 -3
- package/dist/types/config/useControlledDateRangePicker.d.ts +1 -0
- package/package.json +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)
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAwB;AACxB,iBAAoB;AACpB,8BAA0E;AAC1E,oCAAuD;AACvD,8BAAiC;AACjC,iCAAoC;AACpC,4CAAmD;
|
|
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAA0D;AAC1D,sCAAqC;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,QAAI,uBAAS,IAAI;AACrE,QAAM,CAAC,mBAAmB,oBAAoB,QAAI,uBAAS,QAAQ;AACnE,8BAAU,MAAM;AACd,yBAAqB,QAAQ;AAAA,EAC/B,GAAG,CAAC,QAAQ,CAAC;AACb,8BAAU,MAAM;AACd,yBAAqB,MAAM;AAAA,EAC7B,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,gCAA4B;AAAA,IAChC,CAAC,eAAuB;AAEtB,YAAM,iBAAiB,uBAAuB,aAAa;AAC3D,YAAM,eAAW,sDAAqB,cAAc;AACpD,YAAM,eAAe,uBAAuB,SAAS;AACrD,YAAM,aAAS,sDAAqB,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,kCACJ;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,gCACJ;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,iCACJ;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,qBAA0F,0BAAY,MAAM;AAChH,4BAAwB,IAAI;AAAA,EAC9B,GAAG,CAAC,CAAC;AACL,QAAM,sBAA4F,0BAAY,MAAM;AAClH,4BAAwB,IAAI;AAAA,EAC9B,GAAG,CAAC,CAAC;AACL,QAAM,6BACJ;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,yBAAkG;AAAA,IACtG,CAAC,cAAc,cAAc;AAAA,IAC7B,CAAC,QAAQ;AAAA,EACX;AACA,QAAM,sBAA4F;AAAA,IAChG,CAAC,cAAc;AACb,YAAM,cAAU,sDAAqB,QAAQ;AAC7C,YAAM,YAAQ,sDAAqB,MAAM;AACzC,UAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAW,QAAO;AAC7C,YAAM,iBAAa,sDAAqB,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,uBAA8F;AAAA,IAClG,CAAC,cAAc,cAAc;AAAA,IAC7B,CAAC,MAAM;AAAA,EACT;AAEA,QAAM,wBAAoB,0BAAY,CAAC,YAAoB,aAAqB;AAC9E,UAAM,eAAW,sDAAqB,UAAU;AAChD,UAAM,aAAS,sDAAqB,QAAQ;AAC5C,WAAO,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,QAAQ,QAAQ,IAAI,UAAU,QAAQ;AAAA,EACzE,GAAG,CAAC,CAAC;AACL,QAAM,2BACJ;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,yBAAkG;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,aAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,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,IACF;AAAA,EACF;AACF;",
|
|
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
|
}
|
|
@@ -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,
|
|
@@ -55,6 +56,7 @@ const ControlledDateRangeCalendar = () => {
|
|
|
55
56
|
lastElementRef
|
|
56
57
|
},
|
|
57
58
|
rangePickerLogic: {
|
|
59
|
+
calendarChangeIsFrom,
|
|
58
60
|
latestChangedDate,
|
|
59
61
|
onCalendarOpen,
|
|
60
62
|
onCalendarClose,
|
|
@@ -68,36 +70,75 @@ const ControlledDateRangeCalendar = () => {
|
|
|
68
70
|
},
|
|
69
71
|
isControllerOnly
|
|
70
72
|
} = (0, import_react.useContext)(import_ControlledDateRangePickerCTX.ControlledDateRangePickerContext);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
emptyPickerStartingMonth,
|
|
89
|
-
onCalendarOpenFocusedDay,
|
|
90
|
-
preventCloseOnSelection: true,
|
|
91
|
-
hasError,
|
|
92
|
-
pickerFooterMsg,
|
|
93
|
-
autoFocus,
|
|
94
|
-
fromDate,
|
|
95
|
-
toDate,
|
|
96
|
-
disabled,
|
|
97
|
-
readOnly,
|
|
98
|
-
applyAriaDisabled,
|
|
99
|
-
lastElementRef
|
|
100
|
-
}
|
|
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]
|
|
101
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
|
+
] });
|
|
102
143
|
};
|
|
103
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 {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
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
|
}
|
|
@@ -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)
|
|
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;
|
|
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": "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,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,IACF;AAAA,EACF;AACF;",
|
|
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": "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",
|
|
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 {
|
|
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,
|
|
@@ -22,6 +27,7 @@ const ControlledDateRangeCalendar = () => {
|
|
|
22
27
|
lastElementRef
|
|
23
28
|
},
|
|
24
29
|
rangePickerLogic: {
|
|
30
|
+
calendarChangeIsFrom,
|
|
25
31
|
latestChangedDate,
|
|
26
32
|
onCalendarOpen,
|
|
27
33
|
onCalendarClose,
|
|
@@ -35,37 +41,76 @@ const ControlledDateRangeCalendar = () => {
|
|
|
35
41
|
},
|
|
36
42
|
isControllerOnly
|
|
37
43
|
} = useContext(ControlledDateRangePickerContext);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
emptyPickerStartingMonth,
|
|
56
|
-
onCalendarOpenFocusedDay,
|
|
57
|
-
preventCloseOnSelection: true,
|
|
58
|
-
hasError,
|
|
59
|
-
pickerFooterMsg,
|
|
60
|
-
autoFocus,
|
|
61
|
-
fromDate,
|
|
62
|
-
toDate,
|
|
63
|
-
disabled,
|
|
64
|
-
readOnly,
|
|
65
|
-
applyAriaDisabled,
|
|
66
|
-
lastElementRef
|
|
67
|
-
}
|
|
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]
|
|
68
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
|
+
] });
|
|
69
114
|
};
|
|
70
115
|
export {
|
|
71
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 {
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
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
|
}
|
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.
|
|
3
|
+
"version": "3.60.0-next.59",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Controlled Form Date Range Picker",
|
|
6
6
|
"files": [
|
|
@@ -38,18 +38,18 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"styled-components": "~5.3.9",
|
|
40
40
|
"uid": "^2.0.2",
|
|
41
|
-
"@elliemae/ds-form-date-time-picker": "3.60.0-next.
|
|
42
|
-
"@elliemae/ds-
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-system": "3.60.0-next.
|
|
41
|
+
"@elliemae/ds-form-date-time-picker": "3.60.0-next.59",
|
|
42
|
+
"@elliemae/ds-props-helpers": "3.60.0-next.59",
|
|
43
|
+
"@elliemae/ds-typescript-helpers": "3.60.0-next.59",
|
|
44
|
+
"@elliemae/ds-system": "3.60.0-next.59"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@elliemae/pui-theme": "~2.13.0",
|
|
48
48
|
"jest": "^30.0.0",
|
|
49
49
|
"styled-components": "~5.3.9",
|
|
50
50
|
"styled-system": "^5.1.5",
|
|
51
|
-
"@elliemae/ds-test-utils": "3.60.0-next.
|
|
52
|
-
"@elliemae/ds-monorepo-devops": "3.60.0-next.
|
|
51
|
+
"@elliemae/ds-test-utils": "3.60.0-next.59",
|
|
52
|
+
"@elliemae/ds-monorepo-devops": "3.60.0-next.59"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@elliemae/pui-theme": "~2.13.0",
|