@skbkontur/react-ui 5.1.6 → 5.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/cjs/components/Calendar/CalendarDay.js +18 -2
- package/cjs/components/Calendar/CalendarDay.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +7 -15
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/__creevey__/Calendar.creevey.mts +39 -0
- package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.mts +4 -0
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +19 -15
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
- package/cjs/components/DateRangePicker/DateRangePicker.styles.js +13 -18
- package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/__creevey__/DateRangePicker.creevey.mts +1 -1
- package/cjs/components/Link/__creevey__/Link.creevey.mts +2 -2
- package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +8 -3
- package/cjs/components/Select/Select.d.ts +3 -0
- package/cjs/components/Select/Select.js +4 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Toggle/__creevey__/Toggle.creevey.mts +6 -2
- package/cjs/internal/DateSelect/DateSelect.js +13 -2
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/lib/getMenuPositions.d.ts +21 -1
- package/cjs/lib/getMenuPositions.js +45 -8
- package/cjs/lib/getMenuPositions.js.map +1 -1
- package/components/Calendar/CalendarDay/CalendarDay.js +9 -2
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +6 -10
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/__creevey__/Calendar.creevey.mts +39 -0
- package/components/ComboBox/__creevey__/ComboBox.creevey.mts +4 -0
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +10 -11
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +12 -15
- package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
- package/components/DateRangePicker/__creevey__/DateRangePicker.creevey.mts +1 -1
- package/components/Link/__creevey__/Link.creevey.mts +2 -2
- package/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +8 -3
- package/components/Select/Select/Select.js +3 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +3 -0
- package/components/Toggle/__creevey__/Toggle.creevey.mts +6 -2
- package/internal/DateSelect/DateSelect/DateSelect.js +2 -0
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/lib/getMenuPositions/getMenuPositions.js +33 -4
- package/lib/getMenuPositions/getMenuPositions.js.map +1 -1
- package/lib/getMenuPositions.d.ts +21 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.1.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.6...@skbkontur/react-ui@5.1.7) (2025-07-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Calendar,DateSelect:** always show Select in the viewport ([67f8925](https://github.com/skbkontur/retail-ui/commit/67f8925117913159c13865078828679d7a086711))
|
|
12
|
+
* **CalendarDay:** fix day click handler ([6082b4d](https://github.com/skbkontur/retail-ui/commit/6082b4d38621f3a9fe435594c067167d193df715))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **DateRangePicker:** add width prop, remove extra wrap ([6bfd6c3](https://github.com/skbkontur/retail-ui/commit/6bfd6c3ab8781b76d3bbdf836c85a4d2f843bb4f))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
6
23
|
## [5.1.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.5...@skbkontur/react-ui@5.1.6) (2025-07-02)
|
|
7
24
|
|
|
8
25
|
|
|
@@ -11,7 +11,12 @@ var _getVisualStateDataAttributes = require("../../internal/CommonWrapper/utils/
|
|
|
11
11
|
var _forwardRefAndName = require("../../lib/forwardRefAndName");
|
|
12
12
|
|
|
13
13
|
var _DayCellView = require("./DayCellView.styles");
|
|
14
|
-
var _Calendar = require("./Calendar");var _excluded = ["isToday", "isSelected", "isDisabled", "isWeekend", "date", "children", "className"];
|
|
14
|
+
var _Calendar = require("./Calendar");var _excluded = ["isToday", "isSelected", "isDisabled", "isWeekend", "date", "onDayClick", "onClick", "children", "className"];
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
15
20
|
|
|
16
21
|
|
|
17
22
|
|
|
@@ -49,8 +54,10 @@ var CalendarDay = exports.CalendarDay = /*#__PURE__*/(0, _react.memo)(
|
|
|
49
54
|
|
|
50
55
|
|
|
51
56
|
|
|
57
|
+
|
|
58
|
+
|
|
52
59
|
ref)
|
|
53
|
-
{var _cx, _cx2;var isToday = _ref.isToday,isSelected = _ref.isSelected,isDisabled = _ref.isDisabled,isWeekend = _ref.isWeekend,date = _ref.date,children = _ref.children,className = _ref.className,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
60
|
+
{var _cx, _cx2;var isToday = _ref.isToday,isSelected = _ref.isSelected,isDisabled = _ref.isDisabled,isWeekend = _ref.isWeekend,date = _ref.date,onDayClick = _ref.onDayClick,onClick = _ref.onClick,children = _ref.children,className = _ref.className,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
54
61
|
var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
|
|
55
62
|
|
|
56
63
|
var _useContext = (0, _react.useContext)(_locale2.LocaleContext),langCode = _useContext.langCode;
|
|
@@ -59,6 +66,14 @@ var CalendarDay = exports.CalendarDay = /*#__PURE__*/(0, _react.memo)(
|
|
|
59
66
|
var locale = (0, _useLocaleForControl.useLocaleForControl)('Calendar', _locale.DatePickerLocaleHelper);
|
|
60
67
|
var ariaLabel = locale.dayCellChooseDateAriaLabel + ": " + internalDate.toA11YFormat();
|
|
61
68
|
|
|
69
|
+
var handleClick = (0, _react.useCallback)(
|
|
70
|
+
function (e) {
|
|
71
|
+
onDayClick();
|
|
72
|
+
onClick == null || onClick(e);
|
|
73
|
+
},
|
|
74
|
+
[onDayClick, onClick]
|
|
75
|
+
);
|
|
76
|
+
|
|
62
77
|
var _internalDate$getComp = internalDate.getComponentsLikeNumber(),day = _internalDate$getComp.date;
|
|
63
78
|
var caption = children != null ? children : day;
|
|
64
79
|
|
|
@@ -69,6 +84,7 @@ var CalendarDay = exports.CalendarDay = /*#__PURE__*/(0, _react.memo)(
|
|
|
69
84
|
"aria-label": ariaLabel,
|
|
70
85
|
tabIndex: -1,
|
|
71
86
|
disabled: isDisabled,
|
|
87
|
+
onClick: handleClick,
|
|
72
88
|
className: (0, _Emotion.cx)((_cx = {}, _cx[
|
|
73
89
|
|
|
74
90
|
_DayCellView.styles.day(theme)] = true, _cx[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_useLocaleForControl","_ThemeContext","_Emotion","_locale","_InternalDate","_locale2","_getVisualStateDataAttributes","_forwardRefAndName","_DayCellView","_Calendar","_excluded","CalendarDay","exports","memo","forwardRefAndName","_ref","ref","_cx","_cx2","isToday","isSelected","isDisabled","isWeekend","date","children","className","rest","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","_useContext","LocaleContext","langCode","internalDate","InternalDate","value","locale","useLocaleForControl","DatePickerLocaleHelper","ariaLabel","dayCellChooseDateAriaLabel","toA11YFormat","_internalDate$getComp","getComponentsLikeNumber","day","caption","createElement","_extends2","CalendarDataTids","dayCell","tabIndex","disabled","cx","styles","selected","weekend","getVisualStateDataAttributes","todayCaption"],"sources":["CalendarDay.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { useContext, memo } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { LocaleContext } from '../../lib/locale';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarDataTids } from './Calendar';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задает день. */\n date: string;\n}\n\n/**\n * Компонент дня `CalendarDay` из Calendar.\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.selected(theme)]: isSelected,\n [styles.weekend(theme)]: isWeekend,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,6BAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAR,OAAA;;AAEA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA,eAA8C,IAAAW,SAAA
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_useLocaleForControl","_ThemeContext","_Emotion","_locale","_InternalDate","_locale2","_getVisualStateDataAttributes","_forwardRefAndName","_DayCellView","_Calendar","_excluded","CalendarDay","exports","memo","forwardRefAndName","_ref","ref","_cx","_cx2","isToday","isSelected","isDisabled","isWeekend","date","onDayClick","onClick","children","className","rest","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","_useContext","LocaleContext","langCode","internalDate","InternalDate","value","locale","useLocaleForControl","DatePickerLocaleHelper","ariaLabel","dayCellChooseDateAriaLabel","toA11YFormat","handleClick","useCallback","e","_internalDate$getComp","getComponentsLikeNumber","day","caption","createElement","_extends2","CalendarDataTids","dayCell","tabIndex","disabled","cx","styles","selected","weekend","getVisualStateDataAttributes","todayCaption"],"sources":["CalendarDay.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { useContext, memo, useCallback } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { LocaleContext } from '../../lib/locale';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarDataTids } from './Calendar';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задает день. */\n date: string;\n\n /** Задает функцию, которая вызывается при клике на день. Необходима для внутренней работы Calendar. Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня `CalendarDay` из Calendar.\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.selected(theme)]: isSelected,\n [styles.weekend(theme)]: isWeekend,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,28 +24,20 @@ var DayCellView = exports.DayCellView = function DayCellView(props) {var _isHoli
|
|
|
24
24
|
|
|
25
25
|
var humanDateString = _InternalDateTransformer.InternalDateTransformer.dateToHumanString(date);
|
|
26
26
|
|
|
27
|
+
var dayClickHandler = (0, _react.useCallback)(function () {
|
|
28
|
+
onDateClick == null || onDateClick(date);
|
|
29
|
+
}, [onDateClick, date]);
|
|
30
|
+
|
|
27
31
|
var dayProps = {
|
|
28
32
|
isToday: Boolean(today && CDS.isEqual(date, today)),
|
|
29
33
|
isSelected: Boolean(value && CDS.isEqual(date, value)),
|
|
30
34
|
isDisabled: isDisabled,
|
|
31
35
|
isWeekend: (_isHoliday = isHoliday == null ? void 0 : isHoliday(humanDateString, date.isWeekend)) != null ? _isHoliday : date.isWeekend,
|
|
32
|
-
date: humanDateString
|
|
36
|
+
date: humanDateString,
|
|
37
|
+
onDayClick: dayClickHandler
|
|
33
38
|
};
|
|
34
39
|
|
|
35
40
|
var dayElement = (_renderDay = renderDay == null ? void 0 : renderDay(dayProps)) != null ? _renderDay : /*#__PURE__*/_react.default.createElement(_CalendarDay.CalendarDay, dayProps);
|
|
36
|
-
var customDayClickHandler = dayElement.props.onClick;
|
|
37
|
-
|
|
38
|
-
var dayClickHandler = (0, _react.useCallback)(
|
|
39
|
-
function (e) {
|
|
40
|
-
customDayClickHandler == null || customDayClickHandler(e);
|
|
41
|
-
onDateClick == null || onDateClick(date);
|
|
42
|
-
},
|
|
43
|
-
[customDayClickHandler, onDateClick, date]
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
var dayElementWithClickHandler = /*#__PURE__*/_react.default.cloneElement(dayElement, {
|
|
47
|
-
onClick: dayClickHandler
|
|
48
|
-
});
|
|
49
41
|
|
|
50
|
-
return /*#__PURE__*/_react.default.createElement("div", { className: _DayCellView.styles.cell(theme) },
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement("div", { className: _DayCellView.styles.cell(theme) }, dayElement);
|
|
51
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_ThemeContext","_InternalDateTransformer","_DayCellView","_CalendarContext","CDS","_CalendarDay","DayCellView","exports","props","_isHoliday","_renderDay","date","_useContext","useContext","CalendarContext","value","minDate","maxDate","isHoliday","renderDay","today","onDateClick","theme","ThemeContext","isDisabled","isBetween","humanDateString","InternalDateTransformer","dateToHumanString","dayProps","isToday","Boolean","isEqual","isSelected","isWeekend","dayElement","default","createElement","CalendarDay","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_ThemeContext","_InternalDateTransformer","_DayCellView","_CalendarContext","CDS","_CalendarDay","DayCellView","exports","props","_isHoliday","_renderDay","date","_useContext","useContext","CalendarContext","value","minDate","maxDate","isHoliday","renderDay","today","onDateClick","theme","ThemeContext","isDisabled","isBetween","humanDateString","InternalDateTransformer","dateToHumanString","dayClickHandler","useCallback","dayProps","isToday","Boolean","isEqual","isSelected","isWeekend","onDayClick","dayElement","default","createElement","CalendarDay","className","styles","cell"],"sources":["DayCellView.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React, { useCallback, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarContext } from './CalendarContext';\nimport type { DayCellViewModel } from './DayCellViewModel';\nimport * as CDS from './CalendarDateShape';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface DayCellViewProps {\n date: DayCellViewModel;\n}\n\nexport const DayCellView = (props: DayCellViewProps) => {\n const { date } = props;\n const { value, minDate, maxDate, isHoliday, renderDay, today, onDateClick } = useContext(CalendarContext);\n const theme = useContext(ThemeContext);\n\n const isDisabled = !CDS.isBetween(date, minDate, maxDate);\n\n const humanDateString = InternalDateTransformer.dateToHumanString(date);\n\n const dayClickHandler = useCallback(() => {\n onDateClick?.(date);\n }, [onDateClick, date]);\n\n const dayProps: CalendarDayProps = {\n isToday: Boolean(today && CDS.isEqual(date, today)),\n isSelected: Boolean(value && CDS.isEqual(date, value)),\n isDisabled,\n isWeekend: isHoliday?.(humanDateString, date.isWeekend) ?? date.isWeekend,\n date: humanDateString,\n onDayClick: dayClickHandler,\n };\n\n const dayElement: ReactElement<CalendarDayProps> = renderDay?.(dayProps) ?? <CalendarDay {...dayProps} />;\n\n return <div className={styles.cell(theme)}>{dayElement}</div>;\n};\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;;AAEA,IAAAK,GAAA,GAAAN,uBAAA,CAAAC,OAAA;;AAEA,IAAAM,YAAA,GAAAN,OAAA;;;;;;AAMO,IAAMO,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAIE,KAAuB,EAAK,KAAAC,UAAA,EAAAC,UAAA;EACtD,IAAQC,IAAI,GAAKH,KAAK,CAAdG,IAAI;EACZ,IAAAC,WAAA,GAA8E,IAAAC,iBAAU,EAACC,gCAAe,CAAC,CAAjGC,KAAK,GAAAH,WAAA,CAALG,KAAK,CAAEC,OAAO,GAAAJ,WAAA,CAAPI,OAAO,CAAEC,OAAO,GAAAL,WAAA,CAAPK,OAAO,CAAEC,SAAS,GAAAN,WAAA,CAATM,SAAS,CAAEC,SAAS,GAAAP,WAAA,CAATO,SAAS,CAAEC,KAAK,GAAAR,WAAA,CAALQ,KAAK,CAAEC,WAAW,GAAAT,WAAA,CAAXS,WAAW;EACzE,IAAMC,KAAK,GAAG,IAAAT,iBAAU,EAACU,0BAAY,CAAC;;EAEtC,IAAMC,UAAU,GAAG,CAACpB,GAAG,CAACqB,SAAS,CAACd,IAAI,EAAEK,OAAO,EAAEC,OAAO,CAAC;;EAEzD,IAAMS,eAAe,GAAGC,gDAAuB,CAACC,iBAAiB,CAACjB,IAAI,CAAC;;EAEvE,IAAMkB,eAAe,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACxCT,WAAW,YAAXA,WAAW,CAAGV,IAAI,CAAC;EACrB,CAAC,EAAE,CAACU,WAAW,EAAEV,IAAI,CAAC,CAAC;;EAEvB,IAAMoB,QAA0B,GAAG;IACjCC,OAAO,EAAEC,OAAO,CAACb,KAAK,IAAIhB,GAAG,CAAC8B,OAAO,CAACvB,IAAI,EAAES,KAAK,CAAC,CAAC;IACnDe,UAAU,EAAEF,OAAO,CAAClB,KAAK,IAAIX,GAAG,CAAC8B,OAAO,CAACvB,IAAI,EAAEI,KAAK,CAAC,CAAC;IACtDS,UAAU,EAAVA,UAAU;IACVY,SAAS,GAAA3B,UAAA,GAAES,SAAS,oBAATA,SAAS,CAAGQ,eAAe,EAAEf,IAAI,CAACyB,SAAS,CAAC,YAAA3B,UAAA,GAAIE,IAAI,CAACyB,SAAS;IACzEzB,IAAI,EAAEe,eAAe;IACrBW,UAAU,EAAER;EACd,CAAC;;EAED,IAAMS,UAA0C,IAAA5B,UAAA,GAAGS,SAAS,oBAATA,SAAS,CAAGY,QAAQ,CAAC,YAAArB,UAAA,gBAAIb,MAAA,CAAA0C,OAAA,CAAAC,aAAA,CAACnC,YAAA,CAAAoC,WAAW,EAAKV,QAAW,CAAC;;EAEzG,oBAAOlC,MAAA,CAAA0C,OAAA,CAAAC,aAAA,UAAKE,SAAS,EAAEC,mBAAM,CAACC,IAAI,CAACtB,KAAK,CAAE,IAAEgB,UAAgB,CAAC;AAC/D,CAAC","ignoreList":[]}
|
|
@@ -71,4 +71,43 @@ kind('Calendar', () => {
|
|
|
71
71
|
},
|
|
72
72
|
});
|
|
73
73
|
});
|
|
74
|
+
|
|
75
|
+
story('CalendarWithDateSelectMiddlePosition', ({ setStoryParameters }) => {
|
|
76
|
+
setStoryParameters({
|
|
77
|
+
skip: { "themes don't affect logic": { in: /^(?!\b(chrome2022|firefox2022)\b)/ } },
|
|
78
|
+
});
|
|
79
|
+
test('DateSelect months', async (context) => {
|
|
80
|
+
await delay(1000);
|
|
81
|
+
await context.webdriver
|
|
82
|
+
.actions({
|
|
83
|
+
bridge: true,
|
|
84
|
+
})
|
|
85
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Calendar"]' }))
|
|
86
|
+
.pause(1000)
|
|
87
|
+
.click(
|
|
88
|
+
context.webdriver.findElement({
|
|
89
|
+
css: '[data-tid="MonthView__month"]:first-child [data-tid="MonthView__headerMonth"] [data-tid="DateSelect__caption"]',
|
|
90
|
+
}),
|
|
91
|
+
)
|
|
92
|
+
.perform();
|
|
93
|
+
await context.matchImage(await context.takeScreenshot(), 'months');
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
test('DateSelect years', async (context) => {
|
|
97
|
+
await delay(1000);
|
|
98
|
+
await context.webdriver
|
|
99
|
+
.actions({
|
|
100
|
+
bridge: true,
|
|
101
|
+
})
|
|
102
|
+
.click(context.webdriver.findElement({ css: '[data-comp-name~="Calendar"]' }))
|
|
103
|
+
.pause(1000)
|
|
104
|
+
.click(
|
|
105
|
+
context.webdriver.findElement({
|
|
106
|
+
css: '[data-comp-name~="MonthView"]:first-child [data-tid="MonthView__headerYear"] [data-tid="DateSelect__caption"]',
|
|
107
|
+
}),
|
|
108
|
+
)
|
|
109
|
+
.perform();
|
|
110
|
+
await context.matchImage(await context.takeScreenshot(), 'years');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
74
113
|
});
|
|
@@ -17,7 +17,7 @@ export declare const DateRangePickerDataTids: {
|
|
|
17
17
|
readonly rangeStart: "DateRangePicker__rangeStart";
|
|
18
18
|
readonly rangeEnd: "DateRangePicker__rangeEnd";
|
|
19
19
|
};
|
|
20
|
-
export interface DateRangePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<DatePickerProps, 'size' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'> {
|
|
20
|
+
export interface DateRangePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<DatePickerProps, 'size' | 'width' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'> {
|
|
21
21
|
/**
|
|
22
22
|
* Элементы DateRangePicker:
|
|
23
23
|
* `<DateRangePicker.Start />`
|
|
@@ -66,6 +66,13 @@ var DayDateAttribute = 'data-date-range-picker-day';
|
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
69
76
|
|
|
70
77
|
|
|
71
78
|
|
|
@@ -258,7 +265,7 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
|
|
|
258
265
|
_react.default.createElement(_MobilePopup.MobilePopup, {
|
|
259
266
|
opened: true,
|
|
260
267
|
headerChildComponent: /*#__PURE__*/
|
|
261
|
-
_react.default.createElement("div", { className: (0, _Emotion.cx)(_DateRangePicker.styles.
|
|
268
|
+
_react.default.createElement("div", { className: (0, _Emotion.cx)(_DateRangePicker.styles.root(theme), _DateRangePicker.styles.inputWrapperWidthFull()) }, /*#__PURE__*/
|
|
262
269
|
_react.default.createElement(_DateInput.DateInput, {
|
|
263
270
|
withIcon: true,
|
|
264
271
|
value: startValue,
|
|
@@ -386,28 +393,25 @@ var DateRangePicker = exports.DateRangePicker = Object.assign(
|
|
|
386
393
|
_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null,
|
|
387
394
|
function (theme) {return /*#__PURE__*/(
|
|
388
395
|
_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: (0, _DateRangePickerTheme.getDateRangePickerTheme)(theme) }, /*#__PURE__*/
|
|
396
|
+
_react.default.createElement(_DateRangePickerContext.DateRangePickerContext.Provider, { value: dateRangePickerContextProps }, /*#__PURE__*/
|
|
389
397
|
_react.default.createElement(_CommonWrapper.CommonWrapper, props, /*#__PURE__*/
|
|
390
398
|
_react.default.createElement("div", {
|
|
391
|
-
className:
|
|
399
|
+
className: (0, _Emotion.cx)(
|
|
400
|
+
_DateRangePicker.styles.root(theme),
|
|
401
|
+
_DateRangePicker.styles.inputWrapperWidth(theme), (0,
|
|
402
|
+
_Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n font-size: ", ";\n "])),
|
|
403
|
+
(0, _DateRangePicker.getFontSize)(theme, props.size))
|
|
404
|
+
|
|
405
|
+
),
|
|
392
406
|
role: "group",
|
|
393
407
|
"aria-describedby": props['aria-describedby'],
|
|
394
408
|
"aria-label": props['aria-label'],
|
|
395
409
|
"aria-labelledby": props['aria-labelledby'],
|
|
396
410
|
"data-tid": DateRangePickerDataTids.root,
|
|
397
|
-
ref: dateRangePickerRef
|
|
398
|
-
|
|
399
|
-
_react.default.createElement(_DateRangePickerContext.DateRangePickerContext.Provider, { value: dateRangePickerContextProps }, /*#__PURE__*/
|
|
400
|
-
_react.default.createElement("div", {
|
|
401
|
-
className: (0, _Emotion.cx)(
|
|
402
|
-
_DateRangePicker.styles.inputWrapper(),
|
|
403
|
-
_DateRangePicker.styles.inputWrapperWidth(theme), (0,
|
|
404
|
-
_Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n font-size: ", ";\n "])),
|
|
405
|
-
(0, _DateRangePicker.getFontSize)(theme, props.size))
|
|
411
|
+
ref: dateRangePickerRef,
|
|
412
|
+
style: { width: props.width } },
|
|
406
413
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
props.children
|
|
410
|
-
),
|
|
414
|
+
props.children,
|
|
411
415
|
|
|
412
416
|
props.useMobileNativeDatePicker && isMobile ?
|
|
413
417
|
renderMobileNativeDateInput() :
|
|
@@ -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","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","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","DateRangePickerContext","CommonWrapper","inputWrapperWidth","css","_taggedTemplateLiteralLoose2","getFontSize","role","style","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'\n | 'width'\n | 'renderDay'\n | 'menuPos'\n | 'menuAlign'\n | 'useMobileNativeDatePicker'\n | 'enableTodayLink'\n | '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.root(theme), 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 <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <CommonWrapper {...props}>\n <div\n className={cx(\n styles.root(theme),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\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 style={{ width: props.width }}\n >\n {props.children}\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </div>\n </CommonWrapper>\n </DateRangePickerContext.Provider>\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":[]}
|
|
@@ -2,7 +2,6 @@ import type { SizeProp } from '../../lib/types/props';
|
|
|
2
2
|
import type { Theme } from '../../lib/theming/Theme';
|
|
3
3
|
export declare const styles: {
|
|
4
4
|
root(t: Theme): string;
|
|
5
|
-
inputWrapper(): string;
|
|
6
5
|
inputWrapperWidth(t: Theme): string;
|
|
7
6
|
inputWrapperWidthFull(): string;
|
|
8
7
|
inputVisuallyFocus(t: Theme): string;
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.getFontSize = getFontSize;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
2
2
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
3
3
|
|
|
4
|
-
var _Calendar = require("../Calendar");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11
|
|
4
|
+
var _Calendar = require("../Calendar");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
|
5
5
|
|
|
6
6
|
var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
7
7
|
root: function root(t) {
|
|
8
|
-
return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-
|
|
9
|
-
|
|
10
|
-
t.textColorDefault);
|
|
11
|
-
|
|
12
|
-
},
|
|
13
|
-
inputWrapper: function inputWrapper() {
|
|
14
|
-
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-flex;\n align-items: center;\n\n & > * {\n flex: 1 1 50%;\n }\n "])));
|
|
8
|
+
return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-flex;\n align-items: center;\n color: ", ";\n\n & > * {\n flex: 1 1 50%;\n }\n "])),
|
|
15
9
|
|
|
16
10
|
|
|
11
|
+
t.textColorDefault);
|
|
17
12
|
|
|
18
13
|
|
|
19
14
|
|
|
@@ -21,22 +16,22 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
21
16
|
|
|
22
17
|
},
|
|
23
18
|
inputWrapperWidth: function inputWrapperWidth(t) {
|
|
24
|
-
return (0, _Emotion.css)(
|
|
19
|
+
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: ", "px;\n "])),
|
|
25
20
|
parseInt(t.calendarCellWidth) * 7 + parseInt(t.calendarPaddingX) * 2);
|
|
26
21
|
|
|
27
22
|
},
|
|
28
23
|
inputWrapperWidthFull: function inputWrapperWidthFull() {
|
|
29
|
-
return (0, _Emotion.css)(
|
|
24
|
+
return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: 100%;\n "])));
|
|
30
25
|
|
|
31
26
|
|
|
32
27
|
},
|
|
33
28
|
inputVisuallyFocus: function inputVisuallyFocus(t) {
|
|
34
|
-
return (0, _Emotion.css)(
|
|
29
|
+
return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: ", ";\n "])),
|
|
35
30
|
t.inputFocusShadow);
|
|
36
31
|
|
|
37
32
|
},
|
|
38
33
|
calendarWrapper: function calendarWrapper(t) {
|
|
39
|
-
return (0, _Emotion.css)(
|
|
34
|
+
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n box-shadow: ", ";\n display: inline-block;\n font-size: 0;\n z-index: 1000;\n touch-action: none;\n "])),
|
|
40
35
|
t.pickerShadow);
|
|
41
36
|
|
|
42
37
|
|
|
@@ -45,18 +40,18 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
45
40
|
|
|
46
41
|
},
|
|
47
42
|
calendarWidthAuto: function calendarWidthAuto() {
|
|
48
|
-
return (0, _Emotion.css)(
|
|
43
|
+
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: auto;\n "])));
|
|
49
44
|
|
|
50
45
|
|
|
51
46
|
},
|
|
52
47
|
rangeCalendarDay: function rangeCalendarDay() {
|
|
53
|
-
return (0, _Emotion.css)(
|
|
48
|
+
return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n width: 100%;\n height: 100%;\n "])));
|
|
54
49
|
|
|
55
50
|
|
|
56
51
|
|
|
57
52
|
},
|
|
58
53
|
rangeCalendarDayEnd: function rangeCalendarDayEnd(t) {
|
|
59
|
-
return (0, _Emotion.css)(
|
|
54
|
+
return (0, _Emotion.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: relative;\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: ", ";\n border-radius: ", ";\n }\n\n [data-tid=", "] {\n color: ", ";\n\n @media (hover: hover) {\n &:hover {\n color: ", ";\n background: none;\n }\n }\n }\n "])),
|
|
60
55
|
|
|
61
56
|
|
|
62
57
|
|
|
@@ -83,12 +78,12 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
83
78
|
|
|
84
79
|
},
|
|
85
80
|
rangeCalendarDayInHoveredPeriod: function rangeCalendarDayInHoveredPeriod(t) {
|
|
86
|
-
return (0, _Emotion.css)(
|
|
81
|
+
return (0, _Emotion.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n "])),
|
|
87
82
|
t.rangeCalendarCellBg);
|
|
88
83
|
|
|
89
84
|
},
|
|
90
85
|
rangeCalendarDayHoverInPeriod: function rangeCalendarDayHoverInPeriod(t) {
|
|
91
|
-
return (0, _Emotion.css)(
|
|
86
|
+
return (0, _Emotion.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteralLoose2.default)(["\n @media (hover: hover) {\n &:hover [data-tid=", "] {\n background: ", ";\n }\n }\n "])),
|
|
92
87
|
|
|
93
88
|
_Calendar.CalendarDataTids.dayCell,
|
|
94
89
|
t.rangeCalendarCellHoverBg);
|
|
@@ -97,7 +92,7 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
97
92
|
|
|
98
93
|
},
|
|
99
94
|
buttonWrap: function buttonWrap() {
|
|
100
|
-
return (0, _Emotion.css)(
|
|
95
|
+
return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n margin: 8px;\n\n > * {\n flex-grow: 1;\n }\n\n > *:not(:first-child) {\n margin-left: 8px;\n }\n "])));
|
|
101
96
|
|
|
102
97
|
|
|
103
98
|
|