@skbkontur/react-ui 0.0.0-3e9dfb16e9 → 0.0.0-41851c231a

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.
@@ -94,7 +94,8 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
94
94
 
95
95
  var _useState9 = (0, _react.useState)(null),hoveredDay = _useState9[0],setHoveredDay = _useState9[1];
96
96
  var _useState10 = (0, _react.useState)(false),showCalendar = _useState10[0],setShowCalendar = _useState10[1];
97
- var _useState11 = (0, _react.useState)(null),focusInput = _useState11[0],setFocusInput = _useState11[1];
97
+ var _useState11 = (0, _react.useState)(false),isFullPeriodEdited = _useState11[0],setIsFullPeriodEdited = _useState11[1];
98
+ var _useState12 = (0, _react.useState)(null),focusInput = _useState12[0],setFocusInput = _useState12[1];
98
99
 
99
100
  var dateRangePickerRef = (0, _react.useRef)(null);
100
101
  var calendarRef = (0, _react.useRef)(null);
@@ -110,6 +111,7 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
110
111
  var currentValues = {
111
112
  currentStart: startValue,
112
113
  currentEnd: endValue,
114
+ currentIsFullPeriodEdited: isFullPeriodEdited,
113
115
  minDate: minDate,
114
116
  maxDate: maxDate
115
117
  };
@@ -117,6 +119,7 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
117
119
 
118
120
  setStartValue(updatedState.start);
119
121
  setEndValue(updatedState.end);
122
+ setIsFullPeriodEdited(updatedState.isFullPeriodEdited);
120
123
 
121
124
  if (updatedState.isOpen && updatedState.focus) {
122
125
  focus(updatedState.focus);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_MobilePopup","_useLocaleForControl","_Emotion","_ThemeContext","_CommonWrapper","_Calendar","_Popup","_DateInput","_comparison","_ZIndex","_rootNode","_getMenuPositions","_Button","_ResponsiveLayout","_InternalDate","_InternalDateGetter","_ArrowAUp16Light","_NativeDateInput","_forwardRefAndName","_locale","_client","_DateRangePicker","_DateRangePickerSeparator","_DateRangePickerContext","_DateRangePickerInput","_DateRangePickerTheme","_locale2","_validateDateRangePicker","_getStateForValue","_templateObject","_templateObject2","DateRangePickerDataTids","exports","root","start","end","popup","calendar","todayButton","startOptionalButton","endOptionalButton","mobileStart","mobileEnd","rangeStart","rangeEnd","DayDateAttribute","DateRangePicker","Object","assign","Start","DateRangePickerStart","End","DateRangePickerEnd","Separator","DateRangePickerSeparator","validate","validateDateRangePicker","forwardRefAndName","props","ref","_useResponsiveLayout","useResponsiveLayout","isMobile","locale","useLocaleForControl","DateRangePickerLocaleHelper","_useState","useState","startValue","setStartValue","_useState2","startOptional","setStartOptional","_useState3","startDisabled","setStartDisabled","_useState4","endValue","setEndValue","_useState5","endOptional","setEndOptional","_useState6","endDisabled","setEndDisabled","_useState7","minDate","setMinDate","_useState8","maxDate","setMaxDate","_useState9","hoveredDay","setHoveredDay","_useState10","showCalendar","setShowCalendar","_useState11","focusInput","setFocusInput","dateRangePickerRef","useRef","calendarRef","startRef","endRef","mobileStartRef","mobileEndRef","mobileNativeStartRef","mobileNativeEndRef","isCalendarOpen","updateDateRangeValues","value","currentValues","currentStart","currentEnd","updatedState","getStateForValue","isOpen","focus","close","open","inputType","setEmpty","type","useImperativeHandle","_calendarRef$current","scrollToMonth","current","getRootNode","useLayoutEffect","setTimeout","_currentFieldRef$curr4","isStart","currentFieldRef","useMobileNativeDatePicker","isIOS","_currentFieldRef$curr","_currentFieldRef$curr2","click","_currentFieldRef$curr3","dateRangePickerContextProps","size","renderCalendar","theme","widthAuto","_cx","default","createElement","LocaleContext","Provider","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","renderDay","dayProps","renderCalendarRange","onValueChange","onMonthChange","className","cx","styles","calendarWidthAuto","renderMobileCalendar","_cx2","_cx3","MobilePopup","opened","headerChildComponent","inputWrapper","inputWrapperWidthFull","DateInput","withIcon","width","inputVisuallyFocus","disabled","onFocus","onCloseRequest","footerChildComponent","renderButtons","ThemeContext","getMobileDateRangePickerTheme","renderDesktopCalendar","Popup","hasShadow","priority","ZIndex","priorities","PopupMenu","positions","getMenuPositions","menuPos","menuAlign","anchorElement","margin","parseInt","datePickerMenuOffsetY","calendarWrapper","onMouseDown","e","preventDefault","onMouseMove","handleCalendarRangeMouseMove","today","InternalDate","setComponents","InternalDateGetter","getTodayComponents","toString","withPad","withSeparator","hasOptionalButtons","buttonWrap","Fragment","Button","onClick","startDateEmpty","endDateEmpty","enableTodayLink","icon","ArrowAUpIcon16Light","todayAriaLabel","renderMobileNativeDateInput","NativeDateInput","Consumer","getDateRangePickerTheme","CommonWrapper","role","DateRangePickerContext","inputWrapperWidth","css","_taggedTemplateLiteralLoose2","getFontSize","children","hoveredElement","target","hasAttribute","date","String","getAttribute","t","renderDayFn","_extends2","_cx4","day","isDayFirst","isDayLast","isDayInPeriod","Boolean","isBetween","hasHoveredDay","isDayInHoveredPeriod","hasLeftRoundings","hasRightRoundings","isDayBeforeFirstInPeriod","isLess","isDayAfterLastInPeriod","isGreater","isGreaterOrEqual","isLessOrEqual","isDayHovered","renderDayProps","_extends3","dataTid","rangeCalendarDay","rangeCalendarCellBg","calendarCellBorderRadius","rangeCalendarDayEnd","rangeCalendarDayHoverInPeriod","rangeCalendarDayInHoveredPeriod","CalendarDay"],"sources":["DateRangePicker.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useLayoutEffect, type AriaAttributes } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { css, cx } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { CalendarDayProps } from '../Calendar';\nimport { Calendar, CalendarDay } from '../Calendar';\nimport { Popup } from '../../internal/Popup';\nimport { DateInput } from '../DateInput';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison';\nimport type { DatePickerProps } from '../DatePicker';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getRootNode } from '../../lib/rootNode';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { Button } from '../Button';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { LocaleContext } from '../../lib/locale';\nimport { isIOS } from '../../lib/client';\n\nimport { getFontSize, styles } from './DateRangePicker.styles';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext';\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport type { DateRangePickerInputType } from './DateRangePickerInput';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme';\nimport { DateRangePickerLocaleHelper } from './locale';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker';\nimport { getStateForValue } from './helpers/getStateForValue';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n 'size' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'\n > {\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: calendarRef.current?.scrollToMonth,\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.inputWrapper(), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getRootNode(dateRangePickerRef.current)}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <CommonWrapper {...props}>\n <div\n className={styles.root(theme)}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n >\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <div\n className={cx(\n styles.inputWrapper(),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n >\n {props.children}\n </div>\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </DateRangePickerContext.Provider>\n </div>\n </CommonWrapper>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_MobilePopup","_useLocaleForControl","_Emotion","_ThemeContext","_CommonWrapper","_Calendar","_Popup","_DateInput","_comparison","_ZIndex","_rootNode","_getMenuPositions","_Button","_ResponsiveLayout","_InternalDate","_InternalDateGetter","_ArrowAUp16Light","_NativeDateInput","_forwardRefAndName","_locale","_client","_DateRangePicker","_DateRangePickerSeparator","_DateRangePickerContext","_DateRangePickerInput","_DateRangePickerTheme","_locale2","_validateDateRangePicker","_getStateForValue","_templateObject","_templateObject2","DateRangePickerDataTids","exports","root","start","end","popup","calendar","todayButton","startOptionalButton","endOptionalButton","mobileStart","mobileEnd","rangeStart","rangeEnd","DayDateAttribute","DateRangePicker","Object","assign","Start","DateRangePickerStart","End","DateRangePickerEnd","Separator","DateRangePickerSeparator","validate","validateDateRangePicker","forwardRefAndName","props","ref","_useResponsiveLayout","useResponsiveLayout","isMobile","locale","useLocaleForControl","DateRangePickerLocaleHelper","_useState","useState","startValue","setStartValue","_useState2","startOptional","setStartOptional","_useState3","startDisabled","setStartDisabled","_useState4","endValue","setEndValue","_useState5","endOptional","setEndOptional","_useState6","endDisabled","setEndDisabled","_useState7","minDate","setMinDate","_useState8","maxDate","setMaxDate","_useState9","hoveredDay","setHoveredDay","_useState10","showCalendar","setShowCalendar","_useState11","isFullPeriodEdited","setIsFullPeriodEdited","_useState12","focusInput","setFocusInput","dateRangePickerRef","useRef","calendarRef","startRef","endRef","mobileStartRef","mobileEndRef","mobileNativeStartRef","mobileNativeEndRef","isCalendarOpen","updateDateRangeValues","value","currentValues","currentStart","currentEnd","currentIsFullPeriodEdited","updatedState","getStateForValue","isOpen","focus","close","open","inputType","setEmpty","type","useImperativeHandle","_calendarRef$current","scrollToMonth","current","getRootNode","useLayoutEffect","setTimeout","_currentFieldRef$curr4","isStart","currentFieldRef","useMobileNativeDatePicker","isIOS","_currentFieldRef$curr","_currentFieldRef$curr2","click","_currentFieldRef$curr3","dateRangePickerContextProps","size","renderCalendar","theme","widthAuto","_cx","default","createElement","LocaleContext","Provider","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","renderDay","dayProps","renderCalendarRange","onValueChange","onMonthChange","className","cx","styles","calendarWidthAuto","renderMobileCalendar","_cx2","_cx3","MobilePopup","opened","headerChildComponent","inputWrapper","inputWrapperWidthFull","DateInput","withIcon","width","inputVisuallyFocus","disabled","onFocus","onCloseRequest","footerChildComponent","renderButtons","ThemeContext","getMobileDateRangePickerTheme","renderDesktopCalendar","Popup","hasShadow","priority","ZIndex","priorities","PopupMenu","positions","getMenuPositions","menuPos","menuAlign","anchorElement","margin","parseInt","datePickerMenuOffsetY","calendarWrapper","onMouseDown","e","preventDefault","onMouseMove","handleCalendarRangeMouseMove","today","InternalDate","setComponents","InternalDateGetter","getTodayComponents","toString","withPad","withSeparator","hasOptionalButtons","buttonWrap","Fragment","Button","onClick","startDateEmpty","endDateEmpty","enableTodayLink","icon","ArrowAUpIcon16Light","todayAriaLabel","renderMobileNativeDateInput","NativeDateInput","Consumer","getDateRangePickerTheme","CommonWrapper","role","DateRangePickerContext","inputWrapperWidth","css","_taggedTemplateLiteralLoose2","getFontSize","children","hoveredElement","target","hasAttribute","date","String","getAttribute","t","renderDayFn","_extends2","_cx4","day","isDayFirst","isDayLast","isDayInPeriod","Boolean","isBetween","hasHoveredDay","isDayInHoveredPeriod","hasLeftRoundings","hasRightRoundings","isDayBeforeFirstInPeriod","isLess","isDayAfterLastInPeriod","isGreater","isGreaterOrEqual","isLessOrEqual","isDayHovered","renderDayProps","_extends3","dataTid","rangeCalendarDay","rangeCalendarCellBg","calendarCellBorderRadius","rangeCalendarDayEnd","rangeCalendarDayHoverInPeriod","rangeCalendarDayInHoveredPeriod","CalendarDay"],"sources":["DateRangePicker.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useLayoutEffect, type AriaAttributes } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { css, cx } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { CalendarDayProps } from '../Calendar';\nimport { Calendar, CalendarDay } from '../Calendar';\nimport { Popup } from '../../internal/Popup';\nimport { DateInput } from '../DateInput';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison';\nimport type { DatePickerProps } from '../DatePicker';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getRootNode } from '../../lib/rootNode';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { Button } from '../Button';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { LocaleContext } from '../../lib/locale';\nimport { isIOS } from '../../lib/client';\n\nimport { getFontSize, styles } from './DateRangePicker.styles';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext';\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport type { DateRangePickerInputType } from './DateRangePickerInput';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme';\nimport { DateRangePickerLocaleHelper } from './locale';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker';\nimport { getStateForValue } from './helpers/getStateForValue';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n 'size' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'\n > {\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [isFullPeriodEdited, setIsFullPeriodEdited] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n currentIsFullPeriodEdited: isFullPeriodEdited,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n setIsFullPeriodEdited(updatedState.isFullPeriodEdited);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: calendarRef.current?.scrollToMonth,\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.inputWrapper(), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getRootNode(dateRangePickerRef.current)}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <CommonWrapper {...props}>\n <div\n className={styles.root(theme)}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n >\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <div\n className={cx(\n styles.inputWrapper(),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n >\n {props.children}\n </div>\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </DateRangePickerContext.Provider>\n </div>\n </CommonWrapper>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,14 @@ interface DateRangeState {
4
4
  end: string;
5
5
  focus: DateRangePickerInputType | null;
6
6
  isOpen: boolean;
7
+ isFullPeriodEdited: boolean;
7
8
  }
8
- export declare function getStateForValue(currentFocus: DateRangePickerInputType | null, value?: string, contextOptions?: {}): DateRangeState;
9
+ declare const defaultContextOptions: {
10
+ currentStart: string;
11
+ currentEnd: string;
12
+ currentIsFullPeriodEdited: boolean;
13
+ minDate: string;
14
+ maxDate: string;
15
+ };
16
+ export declare function getStateForValue(currentFocus: DateRangePickerInputType | null, value?: string, contextOptions?: Partial<typeof defaultContextOptions>): DateRangeState;
9
17
  export {};
@@ -9,9 +9,18 @@ var _constants = require("../../../lib/date/constants");
9
9
 
10
10
 
11
11
 
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
12
20
  var defaultContextOptions = {
13
21
  currentStart: '',
14
22
  currentEnd: '',
23
+ currentIsFullPeriodEdited: false,
15
24
  minDate: _constants.MIN_FULLDATE,
16
25
  maxDate: _constants.MAX_FULLDATE
17
26
  };
@@ -21,94 +30,177 @@ currentFocus,
21
30
  value,
22
31
  contextOptions)
23
32
  {if (value === void 0) {value = '';}if (contextOptions === void 0) {contextOptions = {};}
24
- var _defaultContextOption = (0, _extends2.default)({}, defaultContextOptions, contextOptions),currentStart = _defaultContextOption.currentStart,currentEnd = _defaultContextOption.currentEnd,minDate = _defaultContextOption.minDate,maxDate = _defaultContextOption.maxDate;
33
+ var _defaultContextOption = (0, _extends2.default)({},
34
+ defaultContextOptions,
35
+ contextOptions),currentStart = _defaultContextOption.currentStart,currentEnd = _defaultContextOption.currentEnd,currentIsFullPeriodEdited = _defaultContextOption.currentIsFullPeriodEdited,minDate = _defaultContextOption.minDate,maxDate = _defaultContextOption.maxDate;
25
36
 
26
- var start = currentStart;
27
- var end = currentEnd;
28
- var focus = currentFocus;
29
- var isOpen = true;
30
37
 
31
38
  if (minDate && (0, _comparison.isLess)(value, minDate) || maxDate && (0, _comparison.isGreater)(value, maxDate)) {
32
39
  return {
33
- start: start,
34
- end: end,
35
- focus: focus,
36
- isOpen: isOpen
40
+ start: currentStart,
41
+ end: currentEnd,
42
+ focus: currentFocus,
43
+ isOpen: true,
44
+ isFullPeriodEdited: false
37
45
  };
38
46
  }
39
47
 
40
- var handleEmptyPeriod = function handleEmptyPeriod(date) {
41
- if (currentFocus === 'start') {
42
- start = date;
43
- focus = 'end';
44
- } else {
45
- end = date;
46
- focus = 'start';
47
- }
48
+ var params = {
49
+ value: value,
50
+ currentStart: currentStart,
51
+ currentEnd: currentEnd,
52
+ currentFocus: currentFocus
53
+ };
54
+
55
+ if (!currentStart && !currentEnd) {
56
+ return getStateFromEmptyPeriod(params);
57
+ } else if (currentStart && !currentEnd || !currentStart && currentEnd) {
58
+ return getStateFromPartialPeriod(params);
59
+ } else if (currentIsFullPeriodEdited) {
60
+ return getStateFromPeriodEdited(params);
61
+ }
62
+ return getStateFromFullPeriod(params);
63
+ }
64
+
65
+ function getStateFromEmptyPeriod(_ref)
66
+
67
+
68
+
69
+
70
+ {var value = _ref.value,currentStart = _ref.currentStart,currentEnd = _ref.currentEnd,currentFocus = _ref.currentFocus;
71
+ if (currentFocus === 'start') {
72
+ return {
73
+ start: value,
74
+ end: currentEnd,
75
+ focus: 'end',
76
+ isOpen: true,
77
+ isFullPeriodEdited: false
78
+ };
79
+ }
80
+ return {
81
+ start: currentStart,
82
+ end: value,
83
+ focus: 'start',
84
+ isOpen: true,
85
+ isFullPeriodEdited: false
48
86
  };
87
+ }
88
+
89
+ function getStateFromPartialPeriod(_ref2)
90
+
49
91
 
50
- var handlePartialPeriod = function handlePartialPeriod(date) {
51
- if (currentFocus === 'start') {
52
- if (currentStart) {
53
- start = date;
54
- focus = 'end';
55
- return;
56
- }
57
-
58
- if (currentEnd && (0, _comparison.isGreater)(date, currentEnd)) {
59
- start = date;
60
- end = '';
61
- focus = 'end';
62
- return;
63
- }
64
-
65
- start = date;
92
+
93
+
94
+ {var value = _ref2.value,currentStart = _ref2.currentStart,currentEnd = _ref2.currentEnd,currentFocus = _ref2.currentFocus;
95
+ var start = currentStart;
96
+ var end = currentEnd;
97
+ var focus = currentFocus;
98
+ var isOpen = true;
99
+ var isFullPeriodEdited = false;
100
+
101
+ if (currentFocus === 'start') {
102
+ if (currentStart) {
103
+ start = value;
104
+ focus = 'end';
105
+ } else if (currentEnd && (0, _comparison.isGreater)(value, currentEnd)) {
106
+ start = value;
107
+ end = '';
108
+ focus = 'end';
109
+ } else {
110
+ start = value;
66
111
  isOpen = false;
67
- } else if (currentFocus === 'end') {
68
- if (currentEnd) {
69
- end = date;
70
- focus = 'start';
71
- return;
72
- }
73
-
74
- if (currentStart && (0, _comparison.isLess)(date, currentStart)) {
75
- start = date;
76
- end = '';
77
- focus = 'end';
78
- return;
79
- }
80
-
81
- end = date;
112
+ }
113
+ } else if (currentFocus === 'end') {
114
+ if (currentEnd) {
115
+ end = value;
116
+ focus = 'start';
117
+ } else if (currentStart && (0, _comparison.isLess)(value, currentStart)) {
118
+ start = value;
119
+ end = '';
120
+ focus = 'end';
121
+ } else {
122
+ end = value;
82
123
  isOpen = false;
83
124
  }
125
+ }
126
+
127
+ return {
128
+ start: start,
129
+ end: end,
130
+ focus: focus,
131
+ isOpen: isOpen,
132
+ isFullPeriodEdited: isFullPeriodEdited
84
133
  };
134
+ }
135
+
136
+ function getStateFromPeriodEdited(_ref3)
137
+
138
+
139
+
85
140
 
86
- var handleFullPeriod = function handleFullPeriod(date) {
87
- if (currentFocus === 'start') {
88
- start = date;
141
+ {var value = _ref3.value,currentStart = _ref3.currentStart,currentEnd = _ref3.currentEnd,currentFocus = _ref3.currentFocus;
142
+ var start = currentStart;
143
+ var end = currentEnd;
144
+ var focus = currentFocus;
145
+ var isOpen = false;
146
+ var isFullPeriodEdited = false;
147
+
148
+ if (currentFocus === 'start') {
149
+ start = value;
150
+ if ((0, _comparison.isGreater)(value, currentEnd)) {
89
151
  end = '';
90
152
  focus = 'end';
91
153
  isOpen = true;
92
- } else if (currentFocus === 'end') {
93
- end = date;
154
+ }
155
+ } else if (currentFocus === 'end') {
156
+ end = value;
157
+ if ((0, _comparison.isLess)(value, currentStart)) {
94
158
  start = '';
95
159
  focus = 'start';
96
160
  isOpen = true;
97
161
  }
162
+ }
163
+
164
+ return {
165
+ start: start,
166
+ end: end,
167
+ focus: focus,
168
+ isOpen: isOpen,
169
+ isFullPeriodEdited: isFullPeriodEdited
98
170
  };
171
+ }
99
172
 
100
- if (!currentStart && !currentEnd) {
101
- handleEmptyPeriod(value);
102
- } else if (currentStart && !currentEnd || !currentStart && currentEnd) {
103
- handlePartialPeriod(value);
104
- } else {
105
- handleFullPeriod(value);
173
+ function getStateFromFullPeriod(_ref4)
174
+
175
+
176
+
177
+
178
+ {var value = _ref4.value,currentStart = _ref4.currentStart,currentEnd = _ref4.currentEnd,currentFocus = _ref4.currentFocus;
179
+ var start = currentStart;
180
+ var end = currentEnd;
181
+ var focus = currentFocus;
182
+ var isOpen = true;
183
+ var isFullPeriodEdited = true;
184
+
185
+ if (currentFocus === 'start') {
186
+ start = value;
187
+ if ((0, _comparison.isGreater)(value, currentEnd)) {
188
+ end = '';
189
+ }
190
+ focus = 'end';
191
+ } else if (currentFocus === 'end') {
192
+ end = value;
193
+ if ((0, _comparison.isLess)(value, currentStart)) {
194
+ start = '';
195
+ }
196
+ focus = 'start';
106
197
  }
107
198
 
108
199
  return {
109
200
  start: start,
110
201
  end: end,
111
202
  focus: focus,
112
- isOpen: isOpen
203
+ isOpen: isOpen,
204
+ isFullPeriodEdited: isFullPeriodEdited
113
205
  };
114
206
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_comparison","require","_constants","defaultContextOptions","currentStart","currentEnd","minDate","MIN_FULLDATE","maxDate","MAX_FULLDATE","getStateForValue","currentFocus","value","contextOptions","_defaultContextOption","_extends2","default","start","end","focus","isOpen","isLess","isGreater","handleEmptyPeriod","date","handlePartialPeriod","handleFullPeriod"],"sources":["getStateForValue.ts"],"sourcesContent":["import type { DateRangePickerInputType } from '../DateRangePickerInput';\nimport { isLess, isGreater } from '../../../lib/date/comparison';\nimport { MIN_FULLDATE, MAX_FULLDATE } from '../../../lib/date/constants';\n\ninterface DateRangeState {\n start: string;\n end: string;\n focus: DateRangePickerInputType | null;\n isOpen: boolean;\n}\n\nconst defaultContextOptions = {\n currentStart: '',\n currentEnd: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n};\n\nexport function getStateForValue(\n currentFocus: DateRangePickerInputType | null,\n value = '',\n contextOptions = {},\n): DateRangeState {\n const { currentStart, currentEnd, minDate, maxDate } = { ...defaultContextOptions, ...contextOptions };\n\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n let isOpen = true;\n\n if ((minDate && isLess(value, minDate)) || (maxDate && isGreater(value, maxDate))) {\n return {\n start,\n end,\n focus,\n isOpen,\n };\n }\n\n const handleEmptyPeriod = (date: string) => {\n if (currentFocus === 'start') {\n start = date;\n focus = 'end';\n } else {\n end = date;\n focus = 'start';\n }\n };\n\n const handlePartialPeriod = (date: string) => {\n if (currentFocus === 'start') {\n if (currentStart) {\n start = date;\n focus = 'end';\n return;\n }\n\n if (currentEnd && isGreater(date, currentEnd)) {\n start = date;\n end = '';\n focus = 'end';\n return;\n }\n\n start = date;\n isOpen = false;\n } else if (currentFocus === 'end') {\n if (currentEnd) {\n end = date;\n focus = 'start';\n return;\n }\n\n if (currentStart && isLess(date, currentStart)) {\n start = date;\n end = '';\n focus = 'end';\n return;\n }\n\n end = date;\n isOpen = false;\n }\n };\n\n const handleFullPeriod = (date: string) => {\n if (currentFocus === 'start') {\n start = date;\n end = '';\n focus = 'end';\n isOpen = true;\n } else if (currentFocus === 'end') {\n end = date;\n start = '';\n focus = 'start';\n isOpen = true;\n }\n };\n\n if (!currentStart && !currentEnd) {\n handleEmptyPeriod(value);\n } else if ((currentStart && !currentEnd) || (!currentStart && currentEnd)) {\n handlePartialPeriod(value);\n } else {\n handleFullPeriod(value);\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_comparison","require","_constants","defaultContextOptions","currentStart","currentEnd","currentIsFullPeriodEdited","minDate","MIN_FULLDATE","maxDate","MAX_FULLDATE","getStateForValue","currentFocus","value","contextOptions","_defaultContextOption","_extends2","default","isLess","isGreater","start","end","focus","isOpen","isFullPeriodEdited","params","getStateFromEmptyPeriod","getStateFromPartialPeriod","getStateFromPeriodEdited","getStateFromFullPeriod","_ref","_ref2","_ref3","_ref4"],"sources":["getStateForValue.ts"],"sourcesContent":["import type { DateRangePickerInputType } from '../DateRangePickerInput';\nimport { isLess, isGreater } from '../../../lib/date/comparison';\nimport { MIN_FULLDATE, MAX_FULLDATE } from '../../../lib/date/constants';\n\ninterface DateRangeState {\n start: string;\n end: string;\n focus: DateRangePickerInputType | null;\n isOpen: boolean;\n isFullPeriodEdited: boolean;\n}\n\ninterface DateRangeStateGetterParams {\n value: string;\n currentStart: string;\n currentEnd: string;\n currentFocus: DateRangePickerInputType | null;\n}\n\nconst defaultContextOptions = {\n currentStart: '',\n currentEnd: '',\n currentIsFullPeriodEdited: false,\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n};\n\nexport function getStateForValue(\n currentFocus: DateRangePickerInputType | null,\n value = '',\n contextOptions: Partial<typeof defaultContextOptions> = {},\n): DateRangeState {\n const { currentStart, currentEnd, currentIsFullPeriodEdited, minDate, maxDate } = {\n ...defaultContextOptions,\n ...contextOptions,\n };\n\n if ((minDate && isLess(value, minDate)) || (maxDate && isGreater(value, maxDate))) {\n return {\n start: currentStart,\n end: currentEnd,\n focus: currentFocus,\n isOpen: true,\n isFullPeriodEdited: false,\n };\n }\n\n const params: DateRangeStateGetterParams = {\n value,\n currentStart,\n currentEnd,\n currentFocus,\n };\n\n if (!currentStart && !currentEnd) {\n return getStateFromEmptyPeriod(params);\n } else if ((currentStart && !currentEnd) || (!currentStart && currentEnd)) {\n return getStateFromPartialPeriod(params);\n } else if (currentIsFullPeriodEdited) {\n return getStateFromPeriodEdited(params);\n }\n return getStateFromFullPeriod(params);\n}\n\nfunction getStateFromEmptyPeriod({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n if (currentFocus === 'start') {\n return {\n start: value,\n end: currentEnd,\n focus: 'end',\n isOpen: true,\n isFullPeriodEdited: false,\n };\n }\n return {\n start: currentStart,\n end: value,\n focus: 'start',\n isOpen: true,\n isFullPeriodEdited: false,\n };\n}\n\nfunction getStateFromPartialPeriod({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n let isOpen = true;\n const isFullPeriodEdited = false;\n\n if (currentFocus === 'start') {\n if (currentStart) {\n start = value;\n focus = 'end';\n } else if (currentEnd && isGreater(value, currentEnd)) {\n start = value;\n end = '';\n focus = 'end';\n } else {\n start = value;\n isOpen = false;\n }\n } else if (currentFocus === 'end') {\n if (currentEnd) {\n end = value;\n focus = 'start';\n } else if (currentStart && isLess(value, currentStart)) {\n start = value;\n end = '';\n focus = 'end';\n } else {\n end = value;\n isOpen = false;\n }\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n isFullPeriodEdited,\n };\n}\n\nfunction getStateFromPeriodEdited({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n let isOpen = false;\n const isFullPeriodEdited = false;\n\n if (currentFocus === 'start') {\n start = value;\n if (isGreater(value, currentEnd)) {\n end = '';\n focus = 'end';\n isOpen = true;\n }\n } else if (currentFocus === 'end') {\n end = value;\n if (isLess(value, currentStart)) {\n start = '';\n focus = 'start';\n isOpen = true;\n }\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n isFullPeriodEdited,\n };\n}\n\nfunction getStateFromFullPeriod({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n const isOpen = true;\n const isFullPeriodEdited = true;\n\n if (currentFocus === 'start') {\n start = value;\n if (isGreater(value, currentEnd)) {\n end = '';\n }\n focus = 'end';\n } else if (currentFocus === 'end') {\n end = value;\n if (isLess(value, currentStart)) {\n start = '';\n }\n focus = 'start';\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n isFullPeriodEdited,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -85,9 +85,12 @@ export var DateRangePicker = Object.assign({
85
85
  var _useState10 = useState(false),
86
86
  showCalendar = _useState10[0],
87
87
  setShowCalendar = _useState10[1];
88
- var _useState11 = useState(null),
89
- focusInput = _useState11[0],
90
- setFocusInput = _useState11[1];
88
+ var _useState11 = useState(false),
89
+ isFullPeriodEdited = _useState11[0],
90
+ setIsFullPeriodEdited = _useState11[1];
91
+ var _useState12 = useState(null),
92
+ focusInput = _useState12[0],
93
+ setFocusInput = _useState12[1];
91
94
  var dateRangePickerRef = useRef(null);
92
95
  var calendarRef = useRef(null);
93
96
  var startRef = useRef(null);
@@ -104,12 +107,14 @@ export var DateRangePicker = Object.assign({
104
107
  var currentValues = {
105
108
  currentStart: startValue,
106
109
  currentEnd: endValue,
110
+ currentIsFullPeriodEdited: isFullPeriodEdited,
107
111
  minDate: minDate,
108
112
  maxDate: maxDate
109
113
  };
110
114
  var updatedState = getStateForValue(focusInput, value, currentValues);
111
115
  setStartValue(updatedState.start);
112
116
  setEndValue(updatedState.end);
117
+ setIsFullPeriodEdited(updatedState.isFullPeriodEdited);
113
118
  if (updatedState.isOpen && updatedState.focus) {
114
119
  focus(updatedState.focus);
115
120
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useImperativeHandle","useRef","useState","useLayoutEffect","MobilePopup","useLocaleForControl","css","cx","ThemeContext","CommonWrapper","Calendar","CalendarDay","Popup","DateInput","isBetween","isGreater","isGreaterOrEqual","isLess","isLessOrEqual","ZIndex","getRootNode","getMenuPositions","Button","useResponsiveLayout","InternalDate","InternalDateGetter","ArrowAUpIcon16Light","NativeDateInput","forwardRefAndName","LocaleContext","isIOS","getFontSize","styles","DateRangePickerSeparator","DateRangePickerContext","DateRangePickerEnd","DateRangePickerStart","getDateRangePickerTheme","getMobileDateRangePickerTheme","DateRangePickerLocaleHelper","validateDateRangePicker","getStateForValue","DateRangePickerDataTids","root","start","end","popup","calendar","todayButton","startOptionalButton","endOptionalButton","mobileStart","mobileEnd","rangeStart","rangeEnd","DayDateAttribute","DateRangePicker","Object","assign","Start","End","Separator","validate","props","ref","_useResponsiveLayout","isMobile","locale","_useState","startValue","setStartValue","_useState2","startOptional","setStartOptional","_useState3","startDisabled","setStartDisabled","_useState4","endValue","setEndValue","_useState5","endOptional","setEndOptional","_useState6","endDisabled","setEndDisabled","_useState7","minDate","setMinDate","_useState8","maxDate","setMaxDate","_useState9","hoveredDay","setHoveredDay","_useState10","showCalendar","setShowCalendar","_useState11","focusInput","setFocusInput","dateRangePickerRef","calendarRef","startRef","endRef","mobileStartRef","mobileEndRef","mobileNativeStartRef","mobileNativeEndRef","isCalendarOpen","updateDateRangeValues","value","currentValues","currentStart","currentEnd","updatedState","isOpen","focus","close","open","inputType","setEmpty","type","_calendarRef$current","scrollToMonth","current","setTimeout","_currentFieldRef$curr4","isStart","currentFieldRef","useMobileNativeDatePicker","_currentFieldRef$curr","_currentFieldRef$curr2","click","_currentFieldRef$curr3","dateRangePickerContextProps","size","renderCalendar","theme","widthAuto","_cx","createElement","Provider","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","renderDay","dayProps","renderCalendarRange","onValueChange","onMonthChange","className","calendarWidthAuto","renderMobileCalendar","_cx2","_cx3","opened","headerChildComponent","inputWrapper","inputWrapperWidthFull","withIcon","width","inputVisuallyFocus","disabled","onFocus","onCloseRequest","footerChildComponent","renderButtons","renderDesktopCalendar","hasShadow","priority","priorities","PopupMenu","positions","menuPos","menuAlign","anchorElement","margin","parseInt","datePickerMenuOffsetY","calendarWrapper","onMouseDown","e","preventDefault","onMouseMove","handleCalendarRangeMouseMove","today","setComponents","getTodayComponents","toString","withPad","withSeparator","hasOptionalButtons","buttonWrap","Fragment","onClick","startDateEmpty","endDateEmpty","enableTodayLink","icon","todayAriaLabel","renderMobileNativeDateInput","Consumer","role","inputWrapperWidth","_templateObject","_taggedTemplateLiteralLoose","children","hoveredElement","target","hasAttribute","date","String","getAttribute","t","renderDayFn","_extends2","_cx4","day","isDayFirst","isDayLast","isDayInPeriod","Boolean","hasHoveredDay","isDayInHoveredPeriod","hasLeftRoundings","hasRightRoundings","isDayBeforeFirstInPeriod","isDayAfterLastInPeriod","isDayHovered","renderDayProps","_extends","dataTid","rangeCalendarDay","_templateObject2","rangeCalendarCellBg","calendarCellBorderRadius","rangeCalendarDayEnd","rangeCalendarDayHoverInPeriod","rangeCalendarDayInHoveredPeriod"],"sources":["DateRangePicker.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useLayoutEffect, type AriaAttributes } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { css, cx } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { CalendarDayProps } from '../Calendar';\nimport { Calendar, CalendarDay } from '../Calendar';\nimport { Popup } from '../../internal/Popup';\nimport { DateInput } from '../DateInput';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison';\nimport type { DatePickerProps } from '../DatePicker';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getRootNode } from '../../lib/rootNode';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { Button } from '../Button';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { LocaleContext } from '../../lib/locale';\nimport { isIOS } from '../../lib/client';\n\nimport { getFontSize, styles } from './DateRangePicker.styles';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext';\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport type { DateRangePickerInputType } from './DateRangePickerInput';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme';\nimport { DateRangePickerLocaleHelper } from './locale';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker';\nimport { getStateForValue } from './helpers/getStateForValue';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n 'size' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'\n > {\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: calendarRef.current?.scrollToMonth,\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.inputWrapper(), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getRootNode(dateRangePickerRef.current)}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <CommonWrapper {...props}>\n <div\n className={styles.root(theme)}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n >\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <div\n className={cx(\n styles.inputWrapper(),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n >\n {props.children}\n </div>\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </DateRangePickerContext.Provider>\n </div>\n </CommonWrapper>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useImperativeHandle","useRef","useState","useLayoutEffect","MobilePopup","useLocaleForControl","css","cx","ThemeContext","CommonWrapper","Calendar","CalendarDay","Popup","DateInput","isBetween","isGreater","isGreaterOrEqual","isLess","isLessOrEqual","ZIndex","getRootNode","getMenuPositions","Button","useResponsiveLayout","InternalDate","InternalDateGetter","ArrowAUpIcon16Light","NativeDateInput","forwardRefAndName","LocaleContext","isIOS","getFontSize","styles","DateRangePickerSeparator","DateRangePickerContext","DateRangePickerEnd","DateRangePickerStart","getDateRangePickerTheme","getMobileDateRangePickerTheme","DateRangePickerLocaleHelper","validateDateRangePicker","getStateForValue","DateRangePickerDataTids","root","start","end","popup","calendar","todayButton","startOptionalButton","endOptionalButton","mobileStart","mobileEnd","rangeStart","rangeEnd","DayDateAttribute","DateRangePicker","Object","assign","Start","End","Separator","validate","props","ref","_useResponsiveLayout","isMobile","locale","_useState","startValue","setStartValue","_useState2","startOptional","setStartOptional","_useState3","startDisabled","setStartDisabled","_useState4","endValue","setEndValue","_useState5","endOptional","setEndOptional","_useState6","endDisabled","setEndDisabled","_useState7","minDate","setMinDate","_useState8","maxDate","setMaxDate","_useState9","hoveredDay","setHoveredDay","_useState10","showCalendar","setShowCalendar","_useState11","isFullPeriodEdited","setIsFullPeriodEdited","_useState12","focusInput","setFocusInput","dateRangePickerRef","calendarRef","startRef","endRef","mobileStartRef","mobileEndRef","mobileNativeStartRef","mobileNativeEndRef","isCalendarOpen","updateDateRangeValues","value","currentValues","currentStart","currentEnd","currentIsFullPeriodEdited","updatedState","isOpen","focus","close","open","inputType","setEmpty","type","_calendarRef$current","scrollToMonth","current","setTimeout","_currentFieldRef$curr4","isStart","currentFieldRef","useMobileNativeDatePicker","_currentFieldRef$curr","_currentFieldRef$curr2","click","_currentFieldRef$curr3","dateRangePickerContextProps","size","renderCalendar","theme","widthAuto","_cx","createElement","Provider","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","renderDay","dayProps","renderCalendarRange","onValueChange","onMonthChange","className","calendarWidthAuto","renderMobileCalendar","_cx2","_cx3","opened","headerChildComponent","inputWrapper","inputWrapperWidthFull","withIcon","width","inputVisuallyFocus","disabled","onFocus","onCloseRequest","footerChildComponent","renderButtons","renderDesktopCalendar","hasShadow","priority","priorities","PopupMenu","positions","menuPos","menuAlign","anchorElement","margin","parseInt","datePickerMenuOffsetY","calendarWrapper","onMouseDown","e","preventDefault","onMouseMove","handleCalendarRangeMouseMove","today","setComponents","getTodayComponents","toString","withPad","withSeparator","hasOptionalButtons","buttonWrap","Fragment","onClick","startDateEmpty","endDateEmpty","enableTodayLink","icon","todayAriaLabel","renderMobileNativeDateInput","Consumer","role","inputWrapperWidth","_templateObject","_taggedTemplateLiteralLoose","children","hoveredElement","target","hasAttribute","date","String","getAttribute","t","renderDayFn","_extends2","_cx4","day","isDayFirst","isDayLast","isDayInPeriod","Boolean","hasHoveredDay","isDayInHoveredPeriod","hasLeftRoundings","hasRightRoundings","isDayBeforeFirstInPeriod","isDayAfterLastInPeriod","isDayHovered","renderDayProps","_extends","dataTid","rangeCalendarDay","_templateObject2","rangeCalendarCellBg","calendarCellBorderRadius","rangeCalendarDayEnd","rangeCalendarDayHoverInPeriod","rangeCalendarDayInHoveredPeriod"],"sources":["DateRangePicker.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useLayoutEffect, type AriaAttributes } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { css, cx } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { CalendarDayProps } from '../Calendar';\nimport { Calendar, CalendarDay } from '../Calendar';\nimport { Popup } from '../../internal/Popup';\nimport { DateInput } from '../DateInput';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison';\nimport type { DatePickerProps } from '../DatePicker';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getRootNode } from '../../lib/rootNode';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { Button } from '../Button';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { LocaleContext } from '../../lib/locale';\nimport { isIOS } from '../../lib/client';\n\nimport { getFontSize, styles } from './DateRangePicker.styles';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext';\nimport { DateRangePickerContext } from './DateRangePickerContext';\nimport type { DateRangePickerInputType } from './DateRangePickerInput';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme';\nimport { DateRangePickerLocaleHelper } from './locale';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker';\nimport { getStateForValue } from './helpers/getStateForValue';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n 'size' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'\n > {\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [isFullPeriodEdited, setIsFullPeriodEdited] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n currentIsFullPeriodEdited: isFullPeriodEdited,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n setIsFullPeriodEdited(updatedState.isFullPeriodEdited);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: calendarRef.current?.scrollToMonth,\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.inputWrapper(), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getRootNode(dateRangePickerRef.current)}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <CommonWrapper {...props}>\n <div\n className={styles.root(theme)}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n >\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <div\n className={cx(\n styles.inputWrapper(),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n >\n {props.children}\n </div>\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </DateRangePickerContext.Provider>\n </div>\n </CommonWrapper>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"],"mappings":"gMAAA,OAAOA,KAAK,IAAIC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,eAAe,QAA6B,OAAO;;AAE1G,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,mBAAmB,QAAQ,sCAAsC;AAC1E,SAASC,GAAG,EAAEC,EAAE,QAAQ,2BAA2B;;AAEnD,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,QAAQ,EAAEC,WAAW,QAAQ,aAAa;AACnD,SAASC,KAAK,QAAQ,sBAAsB;AAC5C,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,SAAS,EAAEC,SAAS,EAAEC,gBAAgB,EAAEC,MAAM,EAAEC,aAAa,QAAQ,2BAA2B;;AAEzG,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,mBAAmB,QAAQ,qBAAqB;AACzD,SAASC,YAAY,QAAQ,6BAA6B;AAC1D,SAASC,kBAAkB,QAAQ,mCAAmC;AACtE,SAASC,mBAAmB,QAAQ,uDAAuD;AAC3F,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,KAAK,QAAQ,kBAAkB;;AAExC,SAASC,WAAW,EAAEC,MAAM,QAAQ,0BAA0B;AAC9D,SAASC,wBAAwB,QAAQ,4BAA4B;;AAErE,SAASC,sBAAsB,QAAQ,0BAA0B;;AAEjE,SAASC,kBAAkB,EAAEC,oBAAoB,QAAQ,wBAAwB;AACjF,SAASC,uBAAuB,EAAEC,6BAA6B,QAAQ,wBAAwB;AAC/F,SAASC,2BAA2B,QAAQ,UAAU;AACtD,SAASC,uBAAuB,QAAQ,mCAAmC;AAC3E,SAASC,gBAAgB,QAAQ,4BAA4B;;AAE7D,OAAO,IAAMC,uBAAuB,GAAG;EACrCC,IAAI,EAAE,uBAAuB;EAC7BC,KAAK,EAAE,wBAAwB;EAC/BC,GAAG,EAAE,sBAAsB;EAC3BC,KAAK,EAAE,wBAAwB;EAC/BC,QAAQ,EAAE,2BAA2B;EACrCC,WAAW,EAAE,8BAA8B;EAC3CC,mBAAmB,EAAE,sCAAsC;EAC3DC,iBAAiB,EAAE,oCAAoC;EACvDC,WAAW,EAAE,8BAA8B;EAC3CC,SAAS,EAAE,4BAA4B;EACvCC,UAAU,EAAE,6BAA6B;EACzCC,QAAQ,EAAE;AACZ,CAAU;;AAEV,IAAMC,gBAAgB,GAAG,4BAA4B;;;;;;;;;;;;;;;;;;AAkBrD,OAAO,IAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM;EAC1C;IACEC,KAAK,EAAEvB,oBAAoB;IAC3BwB,GAAG,EAAEzB,kBAAkB;IACvB0B,SAAS,EAAE5B,wBAAwB;IACnC6B,QAAQ,EAAEtB;EACZ,CAAC;EACDZ,iBAAiB,CAAC,iBAAiB,EAAE,UAACmC,KAA2B,EAAEC,GAAG,EAAK;IACzE,IAAAC,oBAAA,GAAqB1C,mBAAmB,CAAC,CAAC,CAAlC2C,QAAQ,GAAAD,oBAAA,CAARC,QAAQ;IAChB,IAAMC,MAAM,GAAG9D,mBAAmB,CAAC,iBAAiB,EAAEkC,2BAA2B,CAAC;;IAElF,IAAA6B,SAAA,GAAoClE,QAAQ,CAAS,CAAC,CAA/CmE,UAAU,GAAAD,SAAA,IAAEE,aAAa,GAAAF,SAAA;IAChC,IAAAG,UAAA,GAA0CrE,QAAQ,CAAC,KAAK,CAAC,CAAlDsE,aAAa,GAAAD,UAAA,IAAEE,gBAAgB,GAAAF,UAAA;IACtC,IAAAG,UAAA,GAA0CxE,QAAQ,CAAC,KAAK,CAAC,CAAlDyE,aAAa,GAAAD,UAAA,IAAEE,gBAAgB,GAAAF,UAAA;;IAEtC,IAAAG,UAAA,GAAgC3E,QAAQ,CAAS,CAAC,CAA3C4E,QAAQ,GAAAD,UAAA,IAAEE,WAAW,GAAAF,UAAA;IAC5B,IAAAG,UAAA,GAAsC9E,QAAQ,CAAC,KAAK,CAAC,CAA9C+E,WAAW,GAAAD,UAAA,IAAEE,cAAc,GAAAF,UAAA;IAClC,IAAAG,UAAA,GAAsCjF,QAAQ,CAAC,KAAK,CAAC,CAA9CkF,WAAW,GAAAD,UAAA,IAAEE,cAAc,GAAAF,UAAA;;IAElC,IAAAG,UAAA,GAA8BpF,QAAQ,CAAC,EAAE,CAAC,CAAnCqF,OAAO,GAAAD,UAAA,IAAEE,UAAU,GAAAF,UAAA;IAC1B,IAAAG,UAAA,GAA8BvF,QAAQ,CAAC,EAAE,CAAC,CAAnCwF,OAAO,GAAAD,UAAA,IAAEE,UAAU,GAAAF,UAAA;;IAE1B,IAAAG,UAAA,GAAoC1F,QAAQ,CAAgB,IAAI,CAAC,CAA1D2F,UAAU,GAAAD,UAAA,IAAEE,aAAa,GAAAF,UAAA;IAChC,IAAAG,WAAA,GAAwC7F,QAAQ,CAAU,KAAK,CAAC,CAAzD8F,YAAY,GAAAD,WAAA,IAAEE,eAAe,GAAAF,WAAA;IACpC,IAAAG,WAAA,GAAoDhG,QAAQ,CAAU,KAAK,CAAC,CAArEiG,kBAAkB,GAAAD,WAAA,IAAEE,qBAAqB,GAAAF,WAAA;IAChD,IAAAG,WAAA,GAAoCnG,QAAQ,CAAkC,IAAI,CAAC,CAA5EoG,UAAU,GAAAD,WAAA,IAAEE,aAAa,GAAAF,WAAA;;IAEhC,IAAMG,kBAAkB,GAAGvG,MAAM,CAAiB,IAAI,CAAC;IACvD,IAAMwG,WAAW,GAAGxG,MAAM,CAAW,IAAI,CAAC;IAC1C,IAAMyG,QAAQ,GAAGzG,MAAM,CAAY,IAAI,CAAC;IACxC,IAAM0G,MAAM,GAAG1G,MAAM,CAAY,IAAI,CAAC;IACtC,IAAM2G,cAAc,GAAG3G,MAAM,CAAY,IAAI,CAAC;IAC9C,IAAM4G,YAAY,GAAG5G,MAAM,CAAY,IAAI,CAAC;IAC5C,IAAM6G,oBAAoB,GAAG7G,MAAM,CAAkB,IAAI,CAAC;IAC1D,IAAM8G,kBAAkB,GAAG9G,MAAM,CAAkB,IAAI,CAAC;IACxD,IAAM+G,cAAc,GAAG,CAACrC,aAAa,IAAI,CAACS,WAAW,IAAIY,YAAY;;IAErE,IAAMiB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAK,EAAU,KAAfA,KAAK,cAALA,KAAK,GAAG,EAAE;MACvC,IAAMC,aAAa,GAAG;QACpBC,YAAY,EAAE/C,UAAU;QACxBgD,UAAU,EAAEvC,QAAQ;QACpBwC,yBAAyB,EAAEnB,kBAAkB;QAC7CZ,OAAO,EAAPA,OAAO;QACPG,OAAO,EAAPA;MACF,CAAC;MACD,IAAM6B,YAAY,GAAG9E,gBAAgB,CAAC6D,UAAU,EAAEY,KAAK,EAAEC,aAAa,CAAC;;MAEvE7C,aAAa,CAACiD,YAAY,CAAC3E,KAAK,CAAC;MACjCmC,WAAW,CAACwC,YAAY,CAAC1E,GAAG,CAAC;MAC7BuD,qBAAqB,CAACmB,YAAY,CAACpB,kBAAkB,CAAC;;MAEtD,IAAIoB,YAAY,CAACC,MAAM,IAAID,YAAY,CAACE,KAAK,EAAE;QAC7CA,KAAK,CAACF,YAAY,CAACE,KAAK,CAAC;MAC3B;;MAEA,IAAI,CAACF,YAAY,CAACC,MAAM,EAAE;QACxBE,KAAK,CAAC,CAAC;MACT;IACF,CAAC;;IAED,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAIC,SAAmC,EAAe,KAAlDA,SAAmC,cAAnCA,SAAmC,GAAG,OAAO;MACzDrB,aAAa,CAACqB,SAAS,CAAC;MACxB3B,eAAe,CAAC,IAAI,CAAC;IACvB,CAAC;;IAED,IAAMyB,KAAK,GAAG,SAARA,KAAKA,CAAA,EAAS;MAClBzB,eAAe,CAAC,KAAK,CAAC;MACtBH,aAAa,CAAC,IAAI,CAAC;IACrB,CAAC;;IAED,IAAM2B,KAAK,GAAG,SAARA,KAAKA,CAAIG,SAAmC,EAAe,KAAlDA,SAAmC,cAAnCA,SAAmC,GAAG,OAAO;MAC1DrB,aAAa,CAACqB,SAAS,CAAC;IAC1B,CAAC;;IAED,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,IAA8B,EAAK;MACnD,QAAQA,IAAI;QACV,KAAK,OAAO;UACVxD,aAAa,CAAC,EAAE,CAAC;UACjBmD,KAAK,CAAC,KAAK,CAAC;UACZ;;QAEF,KAAK,KAAK;UACR1C,WAAW,CAAC,EAAE,CAAC;UACf2C,KAAK,CAAC,CAAC;UACP;MACJ;IACF,CAAC;;IAED1H,mBAAmB;MACjBgE,GAAG;MACH,iBAAA+D,oBAAA,QAAO;UACLJ,IAAI,EAAJA,IAAI;UACJD,KAAK,EAALA,KAAK;UACLM,aAAa,GAAAD,oBAAA,GAAEtB,WAAW,CAACwB,OAAO,qBAAnBF,oBAAA,CAAqBC,aAAa;UACjD5G,WAAW,EAAE,SAAAA,YAAA,UAAMoF,kBAAkB,CAACyB,OAAO;QAC/C,CAAC,EAAC;MACF;IACF,CAAC;;IAED9H,eAAe,CAAC,YAAM;MACpB,IAAI,CAACmG,UAAU,EAAE;QACf;MACF;;MAEA;MACA4B,UAAU,CAAC,YAAM,KAAAC,sBAAA;QACf,IAAMC,OAAO,GAAG9B,UAAU,KAAK,OAAO;QACtC,IAAI+B,eAAe;;QAEnB;QACA,IAAInE,QAAQ,IAAIH,KAAK,CAACuE,yBAAyB,EAAE;UAC/CD,eAAe,GAAGD,OAAO,GAAGtB,oBAAoB,GAAGC,kBAAkB;UACrE,IAAIjF,KAAK,EAAE,KAAAyG,qBAAA;YACT,CAAAA,qBAAA,GAAAF,eAAe,CAACJ,OAAO,aAAvBM,qBAAA,CAAyBd,KAAK,CAAC,CAAC;UAClC,CAAC,MAAM,KAAAe,sBAAA;YACL;YACA,CAAAA,sBAAA,GAAAH,eAAe,CAACJ,OAAO,aAAvBO,sBAAA,CAAyBC,KAAK,CAAC,CAAC;UAClC;UACA;QACF;;QAEA;QACA,IAAIvE,QAAQ,EAAE,KAAAwE,sBAAA;UACZL,eAAe,GAAGD,OAAO,GAAGxB,cAAc,GAAGC,YAAY;UACzD,CAAA6B,sBAAA,GAAAL,eAAe,CAACJ,OAAO,aAAvBS,sBAAA,CAAyBjB,KAAK,CAAC,CAAC;UAChC;QACF;;QAEA;QACAY,eAAe,GAAGD,OAAO,GAAG1B,QAAQ,GAAGC,MAAM;QAC7C,CAAAwB,sBAAA,GAAAE,eAAe,CAACJ,OAAO,aAAvBE,sBAAA,CAAyBV,KAAK,CAAC,CAAC;MAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAACnB,UAAU,CAAC,CAAC;;IAEhB,IAAMqC,2BAAwD,GAAG;MAC/DtE,UAAU,EAAVA,UAAU;MACVG,aAAa,EAAbA,aAAa;MACbG,aAAa,EAAbA,aAAa;MACbG,QAAQ,EAARA,QAAQ;MACRG,WAAW,EAAXA,WAAW;MACXG,WAAW,EAAXA,WAAW;MACXG,OAAO,EAAPA,OAAO;MACPG,OAAO,EAAPA,OAAO;MACPkD,IAAI,EAAE7E,KAAK,CAAC6E,IAAI;MAChBtE,aAAa,EAAbA,aAAa;MACbG,gBAAgB,EAAhBA,gBAAgB;MAChBG,gBAAgB,EAAhBA,gBAAgB;MAChBG,WAAW,EAAXA,WAAW;MACXG,cAAc,EAAdA,cAAc;MACdG,cAAc,EAAdA,cAAc;MACdG,UAAU,EAAVA,UAAU;MACVG,UAAU,EAAVA,UAAU;MACVY,aAAa,EAAbA,aAAa;MACboB,IAAI,EAAJA,IAAI;MACJD,KAAK,EAALA,KAAK;MACLlB,kBAAkB,EAAlBA,kBAAkB;MAClBE,QAAQ,EAARA,QAAQ;MACRC,MAAM,EAANA;IACF,CAAC;;IAED,IAAMkC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAY,EAAEC,SAAS,OAAAC,GAAA,KAATD,SAAS,cAATA,SAAS,GAAG,KAAK;QACrDhJ,KAAA,CAAAkJ,aAAA,CAACpH,aAAa,CAACqH,QAAQ;UACrBhC,KAAK,EAAE;YACL/C,MAAM,EAAE;cACNzD,QAAQ,EAAE;gBACRyI,MAAM,EAAEhF,MAAM,CAACgF,MAAM;gBACrBC,0BAA0B,EAAEjF,MAAM,CAACiF,0BAA0B;gBAC7DC,oBAAoB,EAAElF,MAAM,CAACkF,oBAAoB;gBACjDC,mBAAmB,EAAEnF,MAAM,CAACmF,mBAAmB;gBAC/CC,qBAAqB,EAAEpF,MAAM,CAACoF;cAChC;YACF;UACF,CAAE;;QAEFxJ,KAAA,CAAAkJ,aAAA,CAACvI,QAAQ;UACPwG,KAAK,EAAEZ,UAAU,KAAK,OAAO,GAAGjC,UAAU,GAAGS,QAAS;UACtDS,OAAO,EAAEA,OAAQ;UACjBG,OAAO,EAAEA,OAAQ;UACjB8D,SAAS,EAAE,SAAAA,UAACC,QAAQ,UAAKC,mBAAmB,CAACD,QAAQ,EAAEX,KAAK,EAAE/E,KAAK,CAACyF,SAAS,CAAC,EAAC;UAC/EG,aAAa,EAAE,SAAAA,cAACzC,KAAK,UAAKD,qBAAqB,CAACC,KAAK,CAAC,EAAC;UACvDlD,GAAG,EAAEyC,WAAY;UACjBmD,aAAa,EAAE7F,KAAK,CAAC6F,aAAc;UACnCC,SAAS,EAAEtJ,EAAE,EAAAyI,GAAA,OAAAA,GAAA,CAAIhH,MAAM,CAAC8H,iBAAiB,CAAC,CAAC,IAAGf,SAAS,EAAAC,GAAA,CAAE,CAAE;QAC5D;QACqB,CAAC,GAC1B;;;IAED,IAAMe,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIjB,KAAY,OAAAkB,IAAA,EAAAC,IAAA;QACxClK,KAAA,CAAAkJ,aAAA,CAAC7I,WAAW;UACV8J,MAAM;UACNC,oBAAoB;UAClBpK,KAAA,CAAAkJ,aAAA,UAAKY,SAAS,EAAEtJ,EAAE,CAACyB,MAAM,CAACoI,YAAY,CAAC,CAAC,EAAEpI,MAAM,CAACqI,qBAAqB,CAAC,CAAC,CAAE;UACxEtK,KAAA,CAAAkJ,aAAA,CAACpI,SAAS;YACRyJ,QAAQ;YACRpD,KAAK,EAAE7C,UAAW;YAClBkG,KAAK,EAAC,MAAM;YACZ3B,IAAI,EAAC,QAAQ;YACbiB,SAAS,EAAEtJ,EAAE,EAAAyJ,IAAA,OAAAA,IAAA,CAAIhI,MAAM,CAACwI,kBAAkB,CAAC1B,KAAK,CAAC,IAAGxC,UAAU,KAAK,OAAO,EAAA0D,IAAA,CAAE,CAAE;YAC9ES,QAAQ,EAAE9F,aAAc;YACxBgF,aAAa,EAAErF,aAAc;YAC7BoG,OAAO,EAAE,SAAAA,QAAA,UAAMnE,aAAa,CAAC,OAAO,CAAC,EAAC;YACtCvC,GAAG,EAAE4C,cAAe;YACpB,YAAUlE,uBAAuB,CAACS,WAAY;UAC/C,CAAC;UACFpD,KAAA,CAAAkJ,aAAA,CAACzF,eAAe,CAACK,SAAS,MAAE,CAAC;UAC7B9D,KAAA,CAAAkJ,aAAA,CAACpI,SAAS;YACRyJ,QAAQ;YACRpD,KAAK,EAAEpC,QAAS;YAChByF,KAAK,EAAC,MAAM;YACZ3B,IAAI,EAAC,QAAQ;YACbiB,SAAS,EAAEtJ,EAAE,EAAA0J,IAAA,OAAAA,IAAA,CAAIjI,MAAM,CAACwI,kBAAkB,CAAC1B,KAAK,CAAC,IAAGxC,UAAU,KAAK,KAAK,EAAA2D,IAAA,CAAE,CAAE;YAC5EQ,QAAQ,EAAErF,WAAY;YACtBuE,aAAa,EAAE5E,WAAY;YAC3B2F,OAAO,EAAE,SAAAA,QAAA,UAAMnE,aAAa,CAAC,KAAK,CAAC,EAAC;YACpCvC,GAAG,EAAE6C,YAAa;YAClB,YAAUnE,uBAAuB,CAACU,SAAU;UAC7C;UACE,CACN;;UACDuH,cAAc,EAAE,SAAAA,eAAA,UAAMjD,KAAK,CAAC,CAAC,EAAC;UAC9BkD,oBAAoB,EAAEC,aAAa,CAAC,CAAE;;QAEtC9K,KAAA,CAAAkJ,aAAA,CAACzI,YAAY,CAAC0I,QAAQ,IAAChC,KAAK,EAAE5E,6BAA6B,CAACwG,KAAK,CAAE;QAChED,cAAc,CAACC,KAAK,EAAE,IAAI;QACN;QACZ,CAAC,GACf;;;IAED,IAAMgC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIhC,KAAY;QACzC/I,KAAA,CAAAkJ,aAAA,CAACrI,KAAK;UACJsJ,MAAM;UACNa,SAAS;UACTC,QAAQ,EAAE7J,MAAM,CAAC8J,UAAU,CAACC,SAAU;UACtCC,SAAS,EAAE9J,gBAAgB,CAAC0C,KAAK,CAACqH,OAAO,EAAErH,KAAK,CAACsH,SAAS,CAAE;UAC5D,YAAU3I,uBAAuB,CAACC,IAAK;UACvC2I,aAAa,EAAElK,WAAW,CAACoF,kBAAkB,CAACyB,OAAO,CAAE;UACvDsD,MAAM,EAAEC,QAAQ,CAAC1C,KAAK,CAAC2C,qBAAqB,CAAE;;QAE9C1L,KAAA,CAAAkJ,aAAA;UACEY,SAAS,EAAE7H,MAAM,CAAC0J,eAAe,CAAC5C,KAAK,CAAE;UACzC6C,WAAW,EAAE,SAAAA,YAACC,CAAC,UAAKA,CAAC,CAACC,cAAc,CAAC,CAAC,EAAC;UACvCC,WAAW,EAAEC,4BAA6B;;QAEzClD,cAAc,CAACC,KAAK,CAAC;QACrB+B,aAAa,CAAC;QACZ;QACA,CAAC,GACT;;;IAED,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;MAC1B,IAAMmB,KAAK,GAAG,IAAIxK,YAAY,CAAC2C,MAAM,CAAC;MACnC8H,aAAa,CAACxK,kBAAkB,CAACyK,kBAAkB,CAAC,CAAC,CAAC;MACtDC,QAAQ,CAAC,EAAEC,OAAO,EAAE,IAAI,EAAEC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEnD,IAAMC,kBAAkB,GAAG9H,aAAa,IAAIS,WAAW;MACvD;QACElF,KAAA,CAAAkJ,aAAA,UAAKY,SAAS,EAAEtJ,EAAE,CAACyB,MAAM,CAACuK,UAAU,CAAC,CAAC,CAAE;QACrCD,kBAAkB;QACjBvM,KAAA,CAAAkJ,aAAA,CAAAlJ,KAAA,CAAAyM,QAAA;QACGlG,UAAU,KAAK,OAAO,IAAI9B,aAAa;QACtCzE,KAAA,CAAAkJ,aAAA,CAAC3H,MAAM;UACLiJ,KAAK,EAAC,MAAM;UACZ,YAAU7H,uBAAuB,CAACO,mBAAoB;UACtDwJ,OAAO,EAAE,SAAAA,QAAA,UAAM5E,QAAQ,CAAC,OAAO,CAAC,EAAC;;QAEhC1D,MAAM,CAACuI;QACF,CACT;;QACApG,UAAU,KAAK,KAAK,IAAIrB,WAAW;QAClClF,KAAA,CAAAkJ,aAAA,CAAC3H,MAAM;UACLiJ,KAAK,EAAC,MAAM;UACZ,YAAU7H,uBAAuB,CAACQ,iBAAkB;UACpDuJ,OAAO,EAAE,SAAAA,QAAA,UAAM5E,QAAQ,CAAC,KAAK,CAAC,EAAC;;QAE9B1D,MAAM,CAACwI;QACF;;QAEV,CACH;;;QAEA5I,KAAK,CAAC6I,eAAe;QACpB7M,KAAA,CAAAkJ,aAAA,CAAC3H,MAAM;UACLuL,IAAI,eAAE9M,KAAA,CAAAkJ,aAAA,CAACvH,mBAAmB,MAAE,CAAE;UAC9B,cAAYyC,MAAM,CAAC2I,cAAe;UAClC,YAAUpK,uBAAuB,CAACM,WAAY;UAC9CyJ,OAAO,EAAE,SAAAA,QAAA,UAAMxF,qBAAqB,CAAC+E,KAAK,CAAC,EAAC;;QAE3C,CAACM,kBAAkB,IAAInI,MAAM,CAAC6H;QACzB;;QAEP,CAAC;;IAEV,CAAC;;IAED,IAAMe,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA;QAC/BhN,KAAA,CAAAkJ,aAAA,CAAAlJ,KAAA,CAAAyM,QAAA;QACEzM,KAAA,CAAAkJ,aAAA,CAACtH,eAAe;UACduF,KAAK,EAAE7C,UAAW;UAClBkB,OAAO,EAAEA,OAAQ;UACjBG,OAAO,EAAEA,OAAQ;UACjBiE,aAAa,EAAErF,aAAc;UAC7BmG,QAAQ,EAAE9F,aAAc;UACxBX,GAAG,EAAE8C,oBAAqB;QAC3B,CAAC;QACF/G,KAAA,CAAAkJ,aAAA,CAACtH,eAAe;UACduF,KAAK,EAAEpC,QAAS;UAChBS,OAAO,EAAEA,OAAQ;UACjBG,OAAO,EAAEA,OAAQ;UACjBiE,aAAa,EAAE5E,WAAY;UAC3B0F,QAAQ,EAAErF,WAAY;UACtBpB,GAAG,EAAE+C,kBAAmB;QACzB;QACD,CAAC,GACJ;;;IAED;MACEhH,KAAA,CAAAkJ,aAAA,CAACzI,YAAY,CAACwM,QAAQ;MACnB,UAAClE,KAAK;UACL/I,KAAA,CAAAkJ,aAAA,CAACzI,YAAY,CAAC0I,QAAQ,IAAChC,KAAK,EAAE7E,uBAAuB,CAACyG,KAAK,CAAE;UAC3D/I,KAAA,CAAAkJ,aAAA,CAACxI,aAAa,EAAKsD,KAAK;UACtBhE,KAAA,CAAAkJ,aAAA;YACEY,SAAS,EAAE7H,MAAM,CAACW,IAAI,CAACmG,KAAK,CAAE;YAC9BmE,IAAI,EAAC,OAAO;YACZ,oBAAkBlJ,KAAK,CAAC,kBAAkB,CAAE;YAC5C,cAAYA,KAAK,CAAC,YAAY,CAAE;YAChC,mBAAiBA,KAAK,CAAC,iBAAiB,CAAE;YAC1C,YAAUrB,uBAAuB,CAACC,IAAK;YACvCqB,GAAG,EAAEwC,kBAAmB;;UAExBzG,KAAA,CAAAkJ,aAAA,CAAC/G,sBAAsB,CAACgH,QAAQ,IAAChC,KAAK,EAAEyB,2BAA4B;UAClE5I,KAAA,CAAAkJ,aAAA;YACEY,SAAS,EAAEtJ,EAAE;cACXyB,MAAM,CAACoI,YAAY,CAAC,CAAC;cACrBpI,MAAM,CAACkL,iBAAiB,CAACpE,KAAK,CAAC;cAC/BxI,GAAG,CAAA6M,eAAA,KAAAA,eAAA,GAAAC,2BAAA;cACYrL,WAAW,CAAC+G,KAAK,EAAE/E,KAAK,CAAC6E,IAAI,CAAC;;YAE/C,CAAE;;UAED7E,KAAK,CAACsJ;UACJ,CAAC;;UAELtJ,KAAK,CAACuE,yBAAyB,IAAIpE,QAAQ;UACxC6I,2BAA2B,CAAC,CAAC;UAC7B/F,cAAc,KAAK9C,QAAQ,GAAG6F,oBAAoB,CAACjB,KAAK,CAAC,GAAGgC,qBAAqB,CAAChC,KAAK,CAAC;UAC7D;UAC9B;UACQ;UACM,CAAC;;MAEL,CAAC;;;IAG1B;IACA,SAASiD,4BAA4BA,CAACH,CAA+C,EAAE;MACrF,IAAI,CAACvH,UAAU,IAAI,CAACS,QAAQ,EAAE;QAC5B;MACF;;MAEA,IAAMwI,cAAc,GAAG1B,CAAC,CAAC2B,MAAqB;MAC9C,IAAI,CAACD,cAAc,CAACE,YAAY,CAACjK,gBAAgB,CAAC,IAAIsC,UAAU,KAAK,IAAI,EAAE;QACzE;MACF;;MAEA,IAAM4H,IAAI,GAAGC,MAAM,CAACJ,cAAc,oBAAdA,cAAc,CAAEK,YAAY,CAACpK,gBAAgB,CAAC,CAAC,IAAI,IAAI;MAC3EuC,aAAa,CAAC2H,IAAI,CAAC;IACrB;;IAEA,SAAS/D,mBAAmBA;IAC1B3F,KAAuB;IACvB6J,CAAQ;IACRC,WAA0E;IAC1E,KAAAC,SAAA,EAAAC,IAAA;MACA,IAAMC,GAAG,GAAGjK,KAAK,CAAC0J,IAAI;;MAEtB,IAAMQ,UAAU,GAAG5J,UAAU,KAAK2J,GAAG;MACrC,IAAME,SAAS,GAAGpJ,QAAQ,KAAKkJ,GAAG;MAClC,IAAMG,aAAa,GAAGC,OAAO,CAAC/J,UAAU,IAAIS,QAAQ,IAAIhE,SAAS,CAACkN,GAAG,EAAE3J,UAAU,EAAES,QAAQ,CAAC,CAAC;;MAE7F,IAAMuJ,aAAa,GAAGxI,UAAU,KAAK,IAAI;MACzC,IAAMyI,oBAAoB;MACxBD,aAAa;MACbD,OAAO;QACJ9H,UAAU,KAAK,OAAO,IAAIxB,QAAQ,IAAIhE,SAAS,CAACkN,GAAG,EAAEnI,UAAU,EAAEf,QAAQ,CAAC;QACxEwB,UAAU,KAAK,KAAK,IAAIjC,UAAU,IAAIvD,SAAS,CAACkN,GAAG,EAAE3J,UAAU,EAAEwB,UAAU;MAChF,CAAC;;MAEH,IAAI0I,gBAAgB;MACpB,IAAIC,iBAAiB;;MAErB,IAAIH,aAAa,EAAE;QACjB,IAAMI,wBAAwB,GAAGpK,UAAU,GAAGpD,MAAM,CAAC4E,UAAU,EAAExB,UAAU,CAAC,GAAGS,QAAQ;QACvF,IAAM4J,sBAAsB,GAAG5J,QAAQ,GAAG/D,SAAS,CAAC8E,UAAU,EAAEf,QAAQ,CAAC,GAAGT,UAAU;;QAEtF,IAAI4J,UAAU,KAAKjN,gBAAgB,CAAC6E,UAAU,EAAExB,UAAU,CAAC,IAAIiC,UAAU,KAAK,KAAK,CAAC,EAAE;UACpFiI,gBAAgB,GAAG,IAAI;QACzB;;QAEA,IAAIL,SAAS,KAAKhN,aAAa,CAAC2E,UAAU,EAAEf,QAAQ,CAAC,IAAIwB,UAAU,KAAK,OAAO,CAAC,EAAE;UAChFkI,iBAAiB,GAAG,IAAI;QAC1B;;QAEA,IAAMG,YAAY,GAAG9I,UAAU,KAAKmI,GAAG;QACvC,IAAIW,YAAY,EAAE;UAChB,IAAIF,wBAAwB,EAAE;YAC5BF,gBAAgB,GAAG,IAAI;UACzB;;UAEA,IAAIG,sBAAsB,EAAE;YAC1BF,iBAAiB,GAAG,IAAI;UAC1B;QACF;MACF,CAAC,MAAM;QACL,IAAIP,UAAU,EAAE;UACdM,gBAAgB,GAAG,IAAI;QACzB;;QAEA,IAAIL,SAAS,EAAE;UACbM,iBAAiB,GAAG,IAAI;QAC1B;MACF;;MAEA,IAAMI,cAAc,GAAAC,QAAA;MACf9K,KAAK,GAAA+J,SAAA,OAAAA,SAAA;MACPvK,gBAAgB,IAAGQ,KAAK,CAAC0J,IAAI,EAAAK,SAAA,EAC/B;;;MAED,IAAIgB,OAAO,GAAG,IAAI;MAClB,IAAIb,UAAU,EAAE;QACda,OAAO,GAAGpM,uBAAuB,CAACW,UAAU;MAC9C,CAAC,MAAM,IAAI6K,SAAS,EAAE;QACpBY,OAAO,GAAGpM,uBAAuB,CAACY,QAAQ;MAC5C;;MAEA;QACEvD,KAAA,CAAAkJ,aAAA;UACEY,SAAS,EAAEtJ,EAAE;YACXyB,MAAM,CAAC+M,gBAAgB,CAAC,CAAC;YACzBzO,GAAG,CAAA0O,gBAAA,KAAAA,gBAAA,GAAA5B,2BAAA;YACae,aAAa,IAAIP,CAAC,CAACqB,mBAAmB;YAC1BV,gBAAgB,IAAIX,CAAC,CAACsB,wBAAwB;YAC3CX,gBAAgB,IAAIX,CAAC,CAACsB,wBAAwB;YAChDV,iBAAiB,IAAIZ,CAAC,CAACsB,wBAAwB;YAC5CV,iBAAiB,IAAIZ,CAAC,CAACsB,wBAAwB,IAAAnB,IAAA,OAAAA,IAAA;;;YAG5E/L,MAAM,CAACmN,mBAAmB,CAACvB,CAAC,CAAC,IAAGK,UAAU,IAAIC,SAAS,EAAAH,IAAA;YACvD/L,MAAM,CAACoN,6BAA6B,CAACxB,CAAC,CAAC,IAAGO,aAAa,EAAAJ,IAAA;YACvD/L,MAAM,CAACqN,+BAA+B,CAACzB,CAAC,CAAC,IAAGU,oBAAoB,EAAAP,IAAA;;UAErE,CAAE;UACF,YAAUe,OAAQ;;QAEjBjB,WAAW,GAAGA,WAAW,CAACe,cAAc,CAAC,gBAAG7O,KAAA,CAAAkJ,aAAA,CAACtI,WAAW,EAAKiO,cAAiB;QAC5E,CAAC;;IAEV;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -4,6 +4,7 @@ import { MIN_FULLDATE, MAX_FULLDATE } from "../../../../lib/date/constants";
4
4
  var defaultContextOptions = {
5
5
  currentStart: '',
6
6
  currentEnd: '',
7
+ currentIsFullPeriodEdited: false,
7
8
  minDate: MIN_FULLDATE,
8
9
  maxDate: MAX_FULLDATE
9
10
  };
@@ -17,84 +18,159 @@ export function getStateForValue(currentFocus, value, contextOptions) {
17
18
  var _defaultContextOption = _extends({}, defaultContextOptions, contextOptions),
18
19
  currentStart = _defaultContextOption.currentStart,
19
20
  currentEnd = _defaultContextOption.currentEnd,
21
+ currentIsFullPeriodEdited = _defaultContextOption.currentIsFullPeriodEdited,
20
22
  minDate = _defaultContextOption.minDate,
21
23
  maxDate = _defaultContextOption.maxDate;
22
- var start = currentStart;
23
- var end = currentEnd;
24
- var focus = currentFocus;
25
- var isOpen = true;
26
24
  if (minDate && isLess(value, minDate) || maxDate && isGreater(value, maxDate)) {
27
25
  return {
28
- start: start,
29
- end: end,
30
- focus: focus,
31
- isOpen: isOpen
26
+ start: currentStart,
27
+ end: currentEnd,
28
+ focus: currentFocus,
29
+ isOpen: true,
30
+ isFullPeriodEdited: false
32
31
  };
33
32
  }
34
- var handleEmptyPeriod = function handleEmptyPeriod(date) {
35
- if (currentFocus === 'start') {
36
- start = date;
33
+ var params = {
34
+ value: value,
35
+ currentStart: currentStart,
36
+ currentEnd: currentEnd,
37
+ currentFocus: currentFocus
38
+ };
39
+ if (!currentStart && !currentEnd) {
40
+ return getStateFromEmptyPeriod(params);
41
+ } else if (currentStart && !currentEnd || !currentStart && currentEnd) {
42
+ return getStateFromPartialPeriod(params);
43
+ } else if (currentIsFullPeriodEdited) {
44
+ return getStateFromPeriodEdited(params);
45
+ }
46
+ return getStateFromFullPeriod(params);
47
+ }
48
+ function getStateFromEmptyPeriod(_ref) {
49
+ var value = _ref.value,
50
+ currentStart = _ref.currentStart,
51
+ currentEnd = _ref.currentEnd,
52
+ currentFocus = _ref.currentFocus;
53
+ if (currentFocus === 'start') {
54
+ return {
55
+ start: value,
56
+ end: currentEnd,
57
+ focus: 'end',
58
+ isOpen: true,
59
+ isFullPeriodEdited: false
60
+ };
61
+ }
62
+ return {
63
+ start: currentStart,
64
+ end: value,
65
+ focus: 'start',
66
+ isOpen: true,
67
+ isFullPeriodEdited: false
68
+ };
69
+ }
70
+ function getStateFromPartialPeriod(_ref2) {
71
+ var value = _ref2.value,
72
+ currentStart = _ref2.currentStart,
73
+ currentEnd = _ref2.currentEnd,
74
+ currentFocus = _ref2.currentFocus;
75
+ var start = currentStart;
76
+ var end = currentEnd;
77
+ var focus = currentFocus;
78
+ var isOpen = true;
79
+ var isFullPeriodEdited = false;
80
+ if (currentFocus === 'start') {
81
+ if (currentStart) {
82
+ start = value;
83
+ focus = 'end';
84
+ } else if (currentEnd && isGreater(value, currentEnd)) {
85
+ start = value;
86
+ end = '';
37
87
  focus = 'end';
38
88
  } else {
39
- end = date;
40
- focus = 'start';
41
- }
42
- };
43
- var handlePartialPeriod = function handlePartialPeriod(date) {
44
- if (currentFocus === 'start') {
45
- if (currentStart) {
46
- start = date;
47
- focus = 'end';
48
- return;
49
- }
50
- if (currentEnd && isGreater(date, currentEnd)) {
51
- start = date;
52
- end = '';
53
- focus = 'end';
54
- return;
55
- }
56
- start = date;
89
+ start = value;
57
90
  isOpen = false;
58
- } else if (currentFocus === 'end') {
59
- if (currentEnd) {
60
- end = date;
61
- focus = 'start';
62
- return;
63
- }
64
- if (currentStart && isLess(date, currentStart)) {
65
- start = date;
66
- end = '';
67
- focus = 'end';
68
- return;
69
- }
70
- end = date;
91
+ }
92
+ } else if (currentFocus === 'end') {
93
+ if (currentEnd) {
94
+ end = value;
95
+ focus = 'start';
96
+ } else if (currentStart && isLess(value, currentStart)) {
97
+ start = value;
98
+ end = '';
99
+ focus = 'end';
100
+ } else {
101
+ end = value;
71
102
  isOpen = false;
72
103
  }
104
+ }
105
+ return {
106
+ start: start,
107
+ end: end,
108
+ focus: focus,
109
+ isOpen: isOpen,
110
+ isFullPeriodEdited: isFullPeriodEdited
73
111
  };
74
- var handleFullPeriod = function handleFullPeriod(date) {
75
- if (currentFocus === 'start') {
76
- start = date;
112
+ }
113
+ function getStateFromPeriodEdited(_ref3) {
114
+ var value = _ref3.value,
115
+ currentStart = _ref3.currentStart,
116
+ currentEnd = _ref3.currentEnd,
117
+ currentFocus = _ref3.currentFocus;
118
+ var start = currentStart;
119
+ var end = currentEnd;
120
+ var focus = currentFocus;
121
+ var isOpen = false;
122
+ var isFullPeriodEdited = false;
123
+ if (currentFocus === 'start') {
124
+ start = value;
125
+ if (isGreater(value, currentEnd)) {
77
126
  end = '';
78
127
  focus = 'end';
79
128
  isOpen = true;
80
- } else if (currentFocus === 'end') {
81
- end = date;
129
+ }
130
+ } else if (currentFocus === 'end') {
131
+ end = value;
132
+ if (isLess(value, currentStart)) {
82
133
  start = '';
83
134
  focus = 'start';
84
135
  isOpen = true;
85
136
  }
137
+ }
138
+ return {
139
+ start: start,
140
+ end: end,
141
+ focus: focus,
142
+ isOpen: isOpen,
143
+ isFullPeriodEdited: isFullPeriodEdited
86
144
  };
87
- if (!currentStart && !currentEnd) {
88
- handleEmptyPeriod(value);
89
- } else if (currentStart && !currentEnd || !currentStart && currentEnd) {
90
- handlePartialPeriod(value);
91
- } else {
92
- handleFullPeriod(value);
145
+ }
146
+ function getStateFromFullPeriod(_ref4) {
147
+ var value = _ref4.value,
148
+ currentStart = _ref4.currentStart,
149
+ currentEnd = _ref4.currentEnd,
150
+ currentFocus = _ref4.currentFocus;
151
+ var start = currentStart;
152
+ var end = currentEnd;
153
+ var focus = currentFocus;
154
+ var isOpen = true;
155
+ var isFullPeriodEdited = true;
156
+ if (currentFocus === 'start') {
157
+ start = value;
158
+ if (isGreater(value, currentEnd)) {
159
+ end = '';
160
+ }
161
+ focus = 'end';
162
+ } else if (currentFocus === 'end') {
163
+ end = value;
164
+ if (isLess(value, currentStart)) {
165
+ start = '';
166
+ }
167
+ focus = 'start';
93
168
  }
94
169
  return {
95
170
  start: start,
96
171
  end: end,
97
172
  focus: focus,
98
- isOpen: isOpen
173
+ isOpen: isOpen,
174
+ isFullPeriodEdited: isFullPeriodEdited
99
175
  };
100
176
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isLess","isGreater","MIN_FULLDATE","MAX_FULLDATE","defaultContextOptions","currentStart","currentEnd","minDate","maxDate","getStateForValue","currentFocus","value","contextOptions","_defaultContextOption","_extends","start","end","focus","isOpen","handleEmptyPeriod","date","handlePartialPeriod","handleFullPeriod"],"sources":["getStateForValue.ts"],"sourcesContent":["import type { DateRangePickerInputType } from '../DateRangePickerInput';\nimport { isLess, isGreater } from '../../../lib/date/comparison';\nimport { MIN_FULLDATE, MAX_FULLDATE } from '../../../lib/date/constants';\n\ninterface DateRangeState {\n start: string;\n end: string;\n focus: DateRangePickerInputType | null;\n isOpen: boolean;\n}\n\nconst defaultContextOptions = {\n currentStart: '',\n currentEnd: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n};\n\nexport function getStateForValue(\n currentFocus: DateRangePickerInputType | null,\n value = '',\n contextOptions = {},\n): DateRangeState {\n const { currentStart, currentEnd, minDate, maxDate } = { ...defaultContextOptions, ...contextOptions };\n\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n let isOpen = true;\n\n if ((minDate && isLess(value, minDate)) || (maxDate && isGreater(value, maxDate))) {\n return {\n start,\n end,\n focus,\n isOpen,\n };\n }\n\n const handleEmptyPeriod = (date: string) => {\n if (currentFocus === 'start') {\n start = date;\n focus = 'end';\n } else {\n end = date;\n focus = 'start';\n }\n };\n\n const handlePartialPeriod = (date: string) => {\n if (currentFocus === 'start') {\n if (currentStart) {\n start = date;\n focus = 'end';\n return;\n }\n\n if (currentEnd && isGreater(date, currentEnd)) {\n start = date;\n end = '';\n focus = 'end';\n return;\n }\n\n start = date;\n isOpen = false;\n } else if (currentFocus === 'end') {\n if (currentEnd) {\n end = date;\n focus = 'start';\n return;\n }\n\n if (currentStart && isLess(date, currentStart)) {\n start = date;\n end = '';\n focus = 'end';\n return;\n }\n\n end = date;\n isOpen = false;\n }\n };\n\n const handleFullPeriod = (date: string) => {\n if (currentFocus === 'start') {\n start = date;\n end = '';\n focus = 'end';\n isOpen = true;\n } else if (currentFocus === 'end') {\n end = date;\n start = '';\n focus = 'start';\n isOpen = true;\n }\n };\n\n if (!currentStart && !currentEnd) {\n handleEmptyPeriod(value);\n } else if ((currentStart && !currentEnd) || (!currentStart && currentEnd)) {\n handlePartialPeriod(value);\n } else {\n handleFullPeriod(value);\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isLess","isGreater","MIN_FULLDATE","MAX_FULLDATE","defaultContextOptions","currentStart","currentEnd","currentIsFullPeriodEdited","minDate","maxDate","getStateForValue","currentFocus","value","contextOptions","_defaultContextOption","_extends","start","end","focus","isOpen","isFullPeriodEdited","params","getStateFromEmptyPeriod","getStateFromPartialPeriod","getStateFromPeriodEdited","getStateFromFullPeriod","_ref","_ref2","_ref3","_ref4"],"sources":["getStateForValue.ts"],"sourcesContent":["import type { DateRangePickerInputType } from '../DateRangePickerInput';\nimport { isLess, isGreater } from '../../../lib/date/comparison';\nimport { MIN_FULLDATE, MAX_FULLDATE } from '../../../lib/date/constants';\n\ninterface DateRangeState {\n start: string;\n end: string;\n focus: DateRangePickerInputType | null;\n isOpen: boolean;\n isFullPeriodEdited: boolean;\n}\n\ninterface DateRangeStateGetterParams {\n value: string;\n currentStart: string;\n currentEnd: string;\n currentFocus: DateRangePickerInputType | null;\n}\n\nconst defaultContextOptions = {\n currentStart: '',\n currentEnd: '',\n currentIsFullPeriodEdited: false,\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n};\n\nexport function getStateForValue(\n currentFocus: DateRangePickerInputType | null,\n value = '',\n contextOptions: Partial<typeof defaultContextOptions> = {},\n): DateRangeState {\n const { currentStart, currentEnd, currentIsFullPeriodEdited, minDate, maxDate } = {\n ...defaultContextOptions,\n ...contextOptions,\n };\n\n if ((minDate && isLess(value, minDate)) || (maxDate && isGreater(value, maxDate))) {\n return {\n start: currentStart,\n end: currentEnd,\n focus: currentFocus,\n isOpen: true,\n isFullPeriodEdited: false,\n };\n }\n\n const params: DateRangeStateGetterParams = {\n value,\n currentStart,\n currentEnd,\n currentFocus,\n };\n\n if (!currentStart && !currentEnd) {\n return getStateFromEmptyPeriod(params);\n } else if ((currentStart && !currentEnd) || (!currentStart && currentEnd)) {\n return getStateFromPartialPeriod(params);\n } else if (currentIsFullPeriodEdited) {\n return getStateFromPeriodEdited(params);\n }\n return getStateFromFullPeriod(params);\n}\n\nfunction getStateFromEmptyPeriod({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n if (currentFocus === 'start') {\n return {\n start: value,\n end: currentEnd,\n focus: 'end',\n isOpen: true,\n isFullPeriodEdited: false,\n };\n }\n return {\n start: currentStart,\n end: value,\n focus: 'start',\n isOpen: true,\n isFullPeriodEdited: false,\n };\n}\n\nfunction getStateFromPartialPeriod({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n let isOpen = true;\n const isFullPeriodEdited = false;\n\n if (currentFocus === 'start') {\n if (currentStart) {\n start = value;\n focus = 'end';\n } else if (currentEnd && isGreater(value, currentEnd)) {\n start = value;\n end = '';\n focus = 'end';\n } else {\n start = value;\n isOpen = false;\n }\n } else if (currentFocus === 'end') {\n if (currentEnd) {\n end = value;\n focus = 'start';\n } else if (currentStart && isLess(value, currentStart)) {\n start = value;\n end = '';\n focus = 'end';\n } else {\n end = value;\n isOpen = false;\n }\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n isFullPeriodEdited,\n };\n}\n\nfunction getStateFromPeriodEdited({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n let isOpen = false;\n const isFullPeriodEdited = false;\n\n if (currentFocus === 'start') {\n start = value;\n if (isGreater(value, currentEnd)) {\n end = '';\n focus = 'end';\n isOpen = true;\n }\n } else if (currentFocus === 'end') {\n end = value;\n if (isLess(value, currentStart)) {\n start = '';\n focus = 'start';\n isOpen = true;\n }\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n isFullPeriodEdited,\n };\n}\n\nfunction getStateFromFullPeriod({\n value,\n currentStart,\n currentEnd,\n currentFocus,\n}: DateRangeStateGetterParams): DateRangeState {\n let start = currentStart;\n let end = currentEnd;\n let focus = currentFocus;\n const isOpen = true;\n const isFullPeriodEdited = true;\n\n if (currentFocus === 'start') {\n start = value;\n if (isGreater(value, currentEnd)) {\n end = '';\n }\n focus = 'end';\n } else if (currentFocus === 'end') {\n end = value;\n if (isLess(value, currentStart)) {\n start = '';\n }\n focus = 'start';\n }\n\n return {\n start,\n end,\n focus,\n isOpen,\n isFullPeriodEdited,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,14 @@ interface DateRangeState {
4
4
  end: string;
5
5
  focus: DateRangePickerInputType | null;
6
6
  isOpen: boolean;
7
+ isFullPeriodEdited: boolean;
7
8
  }
8
- export declare function getStateForValue(currentFocus: DateRangePickerInputType | null, value?: string, contextOptions?: {}): DateRangeState;
9
+ declare const defaultContextOptions: {
10
+ currentStart: string;
11
+ currentEnd: string;
12
+ currentIsFullPeriodEdited: boolean;
13
+ minDate: string;
14
+ maxDate: string;
15
+ };
16
+ export declare function getStateForValue(currentFocus: DateRangePickerInputType | null, value?: string, contextOptions?: Partial<typeof defaultContextOptions>): DateRangeState;
9
17
  export {};
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "0.0.0-3e9dfb16e9",
3
+ "version": "0.0.0-41851c231a",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/unstable/0.0.0-3e9dfb16e9/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/unstable/0.0.0-41851c231a/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"