@hh.ru/magritte-ui-date-picker 6.1.108 → 6.1.110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/AsyncDataContext.d.ts +1 -1
  2. package/AsyncDataContext.js.map +1 -1
  3. package/AsyncDataLoader.js +35 -31
  4. package/AsyncDataLoader.js.map +1 -1
  5. package/AsyncDataStore.d.ts +1 -1
  6. package/AsyncDataStore.js +42 -44
  7. package/AsyncDataStore.js.map +1 -1
  8. package/DatePicker/DatePicker.d.ts +1 -1
  9. package/DatePicker/DatePicker.js +108 -18
  10. package/DatePicker/DatePicker.js.map +1 -1
  11. package/DatePicker/DayPicker.d.ts +1 -1
  12. package/DatePicker/DayPicker.js +92 -47
  13. package/DatePicker/DayPicker.js.map +1 -1
  14. package/DatePicker/MobileDatePickerWithScroll.d.ts +1 -1
  15. package/DatePicker/MobileDatePickerWithScroll.js +128 -32
  16. package/DatePicker/MobileDatePickerWithScroll.js.map +1 -1
  17. package/DatePicker/UncontrolledDatePicker.d.ts +1 -1
  18. package/DatePicker/UncontrolledDatePicker.js +39 -13
  19. package/DatePicker/UncontrolledDatePicker.js.map +1 -1
  20. package/Header.d.ts +1 -1
  21. package/Header.js +76 -14
  22. package/Header.js.map +1 -1
  23. package/InfiniteScroll.js +331 -361
  24. package/InfiniteScroll.js.map +1 -1
  25. package/InfoDatePicker/InfoDatePicker.d.ts +1 -1
  26. package/InfoDatePicker/InfoDatePicker.js +80 -16
  27. package/InfoDatePicker/InfoDatePicker.js.map +1 -1
  28. package/InfoDatePicker/InfoDayPicker.d.ts +1 -1
  29. package/InfoDatePicker/InfoDayPicker.js +89 -45
  30. package/InfoDatePicker/InfoDayPicker.js.map +1 -1
  31. package/InfoDatePicker/MobileInfoDatePickerWithScroll.d.ts +1 -1
  32. package/InfoDatePicker/MobileInfoDatePickerWithScroll.js +104 -17
  33. package/InfoDatePicker/MobileInfoDatePickerWithScroll.js.map +1 -1
  34. package/InfoDatePicker/UncontrolledInfoDatePicker.d.ts +1 -1
  35. package/InfoDatePicker/UncontrolledInfoDatePicker.js +18 -11
  36. package/InfoDatePicker/UncontrolledInfoDatePicker.js.map +1 -1
  37. package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.d.ts +1 -1
  38. package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.js +133 -17
  39. package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.js.map +1 -1
  40. package/IntervalDatePicker/IntervalDatePicker.d.ts +1 -1
  41. package/IntervalDatePicker/IntervalDatePicker.js +20 -16
  42. package/IntervalDatePicker/IntervalDatePicker.js.map +1 -1
  43. package/IntervalDatePicker/IntervalDayPicker.d.ts +1 -1
  44. package/IntervalDatePicker/IntervalDayPicker.js +148 -75
  45. package/IntervalDatePicker/IntervalDayPicker.js.map +1 -1
  46. package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.d.ts +1 -1
  47. package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.js +107 -33
  48. package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.js.map +1 -1
  49. package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.d.ts +1 -1
  50. package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.js +141 -34
  51. package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.js.map +1 -1
  52. package/IntervalDatePicker/SingleLayoutIntervalDatePicker.d.ts +1 -1
  53. package/IntervalDatePicker/SingleLayoutIntervalDatePicker.js +110 -15
  54. package/IntervalDatePicker/SingleLayoutIntervalDatePicker.js.map +1 -1
  55. package/IntervalDatePicker/UncontrolledIntervalDatePicker.d.ts +1 -1
  56. package/IntervalDatePicker/UncontrolledIntervalDatePicker.js +46 -18
  57. package/IntervalDatePicker/UncontrolledIntervalDatePicker.js.map +1 -1
  58. package/MonthPicker.d.ts +1 -1
  59. package/MonthPicker.js +111 -50
  60. package/MonthPicker.js.map +1 -1
  61. package/StatusDatePicker/MobileStatusDatePickerWithScroll.d.ts +1 -1
  62. package/StatusDatePicker/MobileStatusDatePickerWithScroll.js +104 -17
  63. package/StatusDatePicker/MobileStatusDatePickerWithScroll.js.map +1 -1
  64. package/StatusDatePicker/StatusDatePicker.d.ts +1 -1
  65. package/StatusDatePicker/StatusDatePicker.js +87 -16
  66. package/StatusDatePicker/StatusDatePicker.js.map +1 -1
  67. package/StatusDatePicker/StatusDayPicker.d.ts +1 -1
  68. package/StatusDatePicker/StatusDayPicker.js +87 -46
  69. package/StatusDatePicker/StatusDayPicker.js.map +1 -1
  70. package/StatusDatePicker/UncontrolledStatusDatePicker.d.ts +1 -1
  71. package/StatusDatePicker/UncontrolledStatusDatePicker.js +18 -11
  72. package/StatusDatePicker/UncontrolledStatusDatePicker.js.map +1 -1
  73. package/Weekdays.js +2 -2
  74. package/Weekdays.js.map +1 -1
  75. package/WithArrowNavigationHOC.js +19 -23
  76. package/WithArrowNavigationHOC.js.map +1 -1
  77. package/YearPicker.d.ts +1 -1
  78. package/YearPicker.js +95 -40
  79. package/YearPicker.js.map +1 -1
  80. package/date-picker-5L5YywN3.js +5 -0
  81. package/date-picker-5L5YywN3.js.map +1 -0
  82. package/index.css +329 -329
  83. package/index.d.ts +13 -13
  84. package/index.js +1 -1
  85. package/package.json +19 -18
  86. package/useDatePickerControls.d.ts +1 -1
  87. package/useDatePickerControls.js +47 -41
  88. package/useDatePickerControls.js.map +1 -1
  89. package/useIntervalPicker.d.ts +1 -1
  90. package/useIntervalPicker.js +299 -304
  91. package/useIntervalPicker.js.map +1 -1
  92. package/useMobileHorizontalScroll.d.ts +1 -1
  93. package/useMobileHorizontalScroll.js +29 -25
  94. package/useMobileHorizontalScroll.js.map +1 -1
  95. package/useModifierDates.d.ts +1 -1
  96. package/useModifierDates.js +21 -21
  97. package/useModifierDates.js.map +1 -1
  98. package/useModifierDatesFunc.d.ts +1 -1
  99. package/useModifierDatesFunc.js +48 -42
  100. package/useModifierDatesFunc.js.map +1 -1
  101. package/utils.d.ts +1 -1
  102. package/utils.js +43 -44
  103. package/utils.js.map +1 -1
  104. package/date-picker-q91q_We0.js +0 -5
  105. package/date-picker-q91q_We0.js.map +0 -1
@@ -6,60 +6,105 @@ import { isToday, format, isSameMonth, isSameDay } from 'date-fns';
6
6
  import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
7
7
  import { useModifierDatesFunc } from '../useModifierDatesFunc.js';
8
8
  import { useDayPickerDates } from '../utils.js';
9
- import { s as styles } from '../date-picker-q91q_We0.js';
9
+ import { s as styles } from '../date-picker-5L5YywN3.js';
10
10
  import '../AsyncDataContext.js';
11
11
  import '../useModifierDates.js';
12
12
  import 'date-fns/constants';
13
13
 
14
14
  const DayDefault = forwardRef((props, ref) => {
15
- const { date, disabled, indicatorCount, isFocusAvailable, isAdjacent, selected, children, additional: _, ...rest } = props;
16
- const isDisabled = isAdjacent || disabled;
17
- return (jsxs("button", { ...rest, ref: ref, type: "button", className: classnames(styles.text, {
18
- [styles.textDisabled]: isDisabled,
19
- [styles.textSelected]: selected,
20
- [styles.textToday]: isToday(date),
21
- [styles.textUnselected]: !isDisabled && !selected,
22
- }), tabIndex: isFocusAvailable ? undefined : -1, disabled: isDisabled || selected, "data-date": format(date, 'yyyy-MM-dd'), "data-qa": classnames('date-picker-day', {
23
- 'date-picker-day-disabled': isDisabled,
24
- 'date-picker-day-selected': selected,
25
- 'date-picker-day-today': isToday(date),
26
- }), children: [children, indicatorCount && (jsx("div", { className: styles.indicatorContainer, children: [...Array(Math.min(indicatorCount, 3)).keys()].map((i) => (jsx("div", { className: styles.indicator }, i))) }))] }));
15
+ const {
16
+ date,
17
+ disabled,
18
+ indicatorCount,
19
+ isFocusAvailable,
20
+ isAdjacent,
21
+ selected,
22
+ children,
23
+ additional: _,
24
+ ...rest
25
+ } = props;
26
+ const isDisabled = isAdjacent || disabled;
27
+ return /* @__PURE__ */ jsxs(
28
+ "button",
29
+ {
30
+ ...rest,
31
+ ref,
32
+ type: "button",
33
+ className: classnames(styles.text, {
34
+ [styles.textDisabled]: isDisabled,
35
+ [styles.textSelected]: selected,
36
+ [styles.textToday]: isToday(date),
37
+ [styles.textUnselected]: !isDisabled && !selected
38
+ }),
39
+ tabIndex: isFocusAvailable ? void 0 : -1,
40
+ disabled: isDisabled || selected,
41
+ "data-date": format(date, "yyyy-MM-dd"),
42
+ "data-qa": classnames("date-picker-day", {
43
+ "date-picker-day-disabled": isDisabled,
44
+ "date-picker-day-selected": selected,
45
+ "date-picker-day-today": isToday(date)
46
+ }),
47
+ children: [
48
+ children,
49
+ indicatorCount && /* @__PURE__ */ jsx("div", { className: styles.indicatorContainer, children: [...Array(Math.min(indicatorCount, 3)).keys()].map((i) => /* @__PURE__ */ jsx("div", { className: styles.indicator }, i)) })
50
+ ]
51
+ }
52
+ );
27
53
  });
28
- DayDefault.displayName = 'DayDefault';
29
- const renderDayDefault = (props) => jsx(DayDefault, { ...props });
30
- const DayPicker = ({ minDate, maxDate, displayDate, selectedDate, showAdjacentDays, onDateSelect, fixedWeeks, stretched, isFocusAvailable = true, modifierDatesMap, renderDay = renderDayDefault, }) => {
31
- const dates = useDayPickerDates(displayDate, fixedWeeks);
32
- const { disabledDatesFunc, indicatorCountFunc, additionalFunc } = useModifierDatesFunc({
33
- startDate: dates[0],
34
- endDate: dates[dates.length - 1],
35
- modifierDatesMap,
36
- minDate,
37
- maxDate,
54
+ DayDefault.displayName = "DayDefault";
55
+ const renderDayDefault = (props) => /* @__PURE__ */ jsx(DayDefault, { ...props });
56
+ const DayPicker = ({
57
+ minDate,
58
+ maxDate,
59
+ displayDate,
60
+ selectedDate,
61
+ showAdjacentDays,
62
+ onDateSelect,
63
+ fixedWeeks,
64
+ stretched,
65
+ isFocusAvailable = true,
66
+ modifierDatesMap,
67
+ renderDay = renderDayDefault
68
+ }) => {
69
+ const dates = useDayPickerDates(displayDate, fixedWeeks);
70
+ const { disabledDatesFunc, indicatorCountFunc, additionalFunc } = useModifierDatesFunc({
71
+ startDate: dates[0],
72
+ endDate: dates[dates.length - 1],
73
+ modifierDatesMap,
74
+ minDate,
75
+ maxDate
76
+ });
77
+ const forceDisabled = useDisabled();
78
+ const onClickHandlers = useMemo(() => {
79
+ return dates.map((date) => {
80
+ return () => onDateSelect?.(date);
38
81
  });
39
- const forceDisabled = useDisabled();
40
- const onClickHandlers = useMemo(() => {
41
- return dates.map((date) => {
42
- return () => onDateSelect?.(date);
43
- });
44
- }, [dates, onDateSelect]);
45
- return (jsx("div", { className: classnames(styles.calendar, styles.calendarDays, { [styles.stretched]: stretched }), "data-qa": "date-picker-days", children: dates.map((date, index) => {
46
- const isAdjacent = !isSameMonth(date, displayDate);
47
- const isDisabled = forceDisabled || disabledDatesFunc(date);
48
- const isSelected = !!selectedDate && isSameDay(date, selectedDate);
49
- const display = !isAdjacent || showAdjacentDays;
50
- const indicatorCount = indicatorCountFunc(date);
51
- return (jsx("div", { className: styles.item, children: display ? (renderDay({
52
- date,
53
- isFocusAvailable,
54
- isAdjacent,
55
- indicatorCount,
56
- disabled: isDisabled,
57
- selected: isSelected,
58
- onClick: onClickHandlers[index],
59
- children: format(date, 'd'),
60
- additional: additionalFunc(date),
61
- })) : (jsx("div", { className: styles.textEmpty })) }, `${date}`));
62
- }) }));
82
+ }, [dates, onDateSelect]);
83
+ return /* @__PURE__ */ jsx(
84
+ "div",
85
+ {
86
+ className: classnames(styles.calendar, styles.calendarDays, { [styles.stretched]: stretched }),
87
+ "data-qa": "date-picker-days",
88
+ children: dates.map((date, index) => {
89
+ const isAdjacent = !isSameMonth(date, displayDate);
90
+ const isDisabled = forceDisabled || disabledDatesFunc(date);
91
+ const isSelected = !!selectedDate && isSameDay(date, selectedDate);
92
+ const display = !isAdjacent || showAdjacentDays;
93
+ const indicatorCount = indicatorCountFunc(date);
94
+ return /* @__PURE__ */ jsx("div", { className: styles.item, children: display ? renderDay({
95
+ date,
96
+ isFocusAvailable,
97
+ isAdjacent,
98
+ indicatorCount,
99
+ disabled: isDisabled,
100
+ selected: isSelected,
101
+ onClick: onClickHandlers[index],
102
+ children: format(date, "d"),
103
+ additional: additionalFunc(date)
104
+ }) : /* @__PURE__ */ jsx("div", { className: styles.textEmpty }) }, `${date}`);
105
+ })
106
+ }
107
+ );
63
108
  };
64
109
 
65
110
  export { DayDefault, DayPicker };
@@ -1 +1 @@
1
- {"version":3,"file":"DayPicker.js","sources":["src/DatePicker/DayPicker.tsx"],"sourcesContent":["import { FC, useMemo, forwardRef, ForwardedRef, ReactNode } from 'react';\nimport classnames from 'classnames';\nimport { format, isSameDay, isSameMonth, isToday } from 'date-fns';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { DayPickerProps, DayProps } from '@hh.ru/magritte-ui-date-picker/types';\nimport { useModifierDatesFunc } from '@hh.ru/magritte-ui-date-picker/useModifierDatesFunc';\nimport { useDayPickerDates } from '@hh.ru/magritte-ui-date-picker/utils';\n\nimport styles from '../date-picker.less';\n\nexport const DayDefault = forwardRef((props: DayProps, ref: ForwardedRef<HTMLButtonElement>) => {\n const {\n date,\n disabled,\n indicatorCount,\n isFocusAvailable,\n isAdjacent,\n selected,\n children,\n additional: _,\n ...rest\n } = props;\n const isDisabled = isAdjacent || disabled;\n\n return (\n <button\n {...rest}\n ref={ref}\n type=\"button\"\n className={classnames(styles.text, {\n [styles.textDisabled]: isDisabled,\n [styles.textSelected]: selected,\n [styles.textToday]: isToday(date),\n [styles.textUnselected]: !isDisabled && !selected,\n })}\n tabIndex={isFocusAvailable ? undefined : -1}\n disabled={isDisabled || selected}\n data-date={format(date, 'yyyy-MM-dd')}\n data-qa={classnames('date-picker-day', {\n 'date-picker-day-disabled': isDisabled,\n 'date-picker-day-selected': selected,\n 'date-picker-day-today': isToday(date),\n })}\n >\n {children}\n {indicatorCount && (\n <div className={styles.indicatorContainer}>\n {[...Array(Math.min(indicatorCount, 3)).keys()].map((i) => (\n <div key={i} className={styles.indicator} />\n ))}\n </div>\n )}\n </button>\n );\n});\n\nDayDefault.displayName = 'DayDefault';\n\nconst renderDayDefault = (props: DayProps): ReactNode => <DayDefault {...props} />;\n\nexport const DayPicker: FC<DayPickerProps> = ({\n minDate,\n maxDate,\n displayDate,\n selectedDate,\n showAdjacentDays,\n onDateSelect,\n fixedWeeks,\n stretched,\n isFocusAvailable = true,\n modifierDatesMap,\n renderDay = renderDayDefault,\n}) => {\n const dates = useDayPickerDates(displayDate, fixedWeeks);\n const { disabledDatesFunc, indicatorCountFunc, additionalFunc } = useModifierDatesFunc({\n startDate: dates[0],\n endDate: dates[dates.length - 1],\n modifierDatesMap,\n minDate,\n maxDate,\n });\n const forceDisabled = useDisabled();\n\n const onClickHandlers = useMemo(() => {\n return dates.map((date) => {\n return () => onDateSelect?.(date);\n });\n }, [dates, onDateSelect]);\n\n return (\n <div\n className={classnames(styles.calendar, styles.calendarDays, { [styles.stretched]: stretched })}\n data-qa=\"date-picker-days\"\n >\n {dates.map((date, index) => {\n const isAdjacent = !isSameMonth(date, displayDate);\n const isDisabled = forceDisabled || disabledDatesFunc(date);\n const isSelected = !!selectedDate && isSameDay(date, selectedDate);\n const display = !isAdjacent || showAdjacentDays;\n const indicatorCount = indicatorCountFunc(date);\n\n return (\n <div className={styles.item} key={`${date}`}>\n {display ? (\n renderDay({\n date,\n isFocusAvailable,\n isAdjacent,\n indicatorCount,\n disabled: isDisabled,\n selected: isSelected,\n onClick: onClickHandlers[index],\n children: format(date, 'd'),\n additional: additionalFunc(date),\n })\n ) : (\n <div className={styles.textEmpty} />\n )}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"DayPicker.js","sources":["src/DatePicker/DayPicker.tsx"],"sourcesContent":["import { FC, useMemo, forwardRef, ForwardedRef, ReactNode } from 'react';\nimport classnames from 'classnames';\nimport { format, isSameDay, isSameMonth, isToday } from 'date-fns';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { DayPickerProps, DayProps } from '@hh.ru/magritte-ui-date-picker/types';\nimport { useModifierDatesFunc } from '@hh.ru/magritte-ui-date-picker/useModifierDatesFunc';\nimport { useDayPickerDates } from '@hh.ru/magritte-ui-date-picker/utils';\n\nimport styles from '../date-picker.less';\n\nexport const DayDefault = forwardRef((props: DayProps, ref: ForwardedRef<HTMLButtonElement>) => {\n const {\n date,\n disabled,\n indicatorCount,\n isFocusAvailable,\n isAdjacent,\n selected,\n children,\n additional: _,\n ...rest\n } = props;\n const isDisabled = isAdjacent || disabled;\n\n return (\n <button\n {...rest}\n ref={ref}\n type=\"button\"\n className={classnames(styles.text, {\n [styles.textDisabled]: isDisabled,\n [styles.textSelected]: selected,\n [styles.textToday]: isToday(date),\n [styles.textUnselected]: !isDisabled && !selected,\n })}\n tabIndex={isFocusAvailable ? undefined : -1}\n disabled={isDisabled || selected}\n data-date={format(date, 'yyyy-MM-dd')}\n data-qa={classnames('date-picker-day', {\n 'date-picker-day-disabled': isDisabled,\n 'date-picker-day-selected': selected,\n 'date-picker-day-today': isToday(date),\n })}\n >\n {children}\n {indicatorCount && (\n <div className={styles.indicatorContainer}>\n {[...Array(Math.min(indicatorCount, 3)).keys()].map((i) => (\n <div key={i} className={styles.indicator} />\n ))}\n </div>\n )}\n </button>\n );\n});\n\nDayDefault.displayName = 'DayDefault';\n\nconst renderDayDefault = (props: DayProps): ReactNode => <DayDefault {...props} />;\n\nexport const DayPicker: FC<DayPickerProps> = ({\n minDate,\n maxDate,\n displayDate,\n selectedDate,\n showAdjacentDays,\n onDateSelect,\n fixedWeeks,\n stretched,\n isFocusAvailable = true,\n modifierDatesMap,\n renderDay = renderDayDefault,\n}) => {\n const dates = useDayPickerDates(displayDate, fixedWeeks);\n const { disabledDatesFunc, indicatorCountFunc, additionalFunc } = useModifierDatesFunc({\n startDate: dates[0],\n endDate: dates[dates.length - 1],\n modifierDatesMap,\n minDate,\n maxDate,\n });\n const forceDisabled = useDisabled();\n\n const onClickHandlers = useMemo(() => {\n return dates.map((date) => {\n return () => onDateSelect?.(date);\n });\n }, [dates, onDateSelect]);\n\n return (\n <div\n className={classnames(styles.calendar, styles.calendarDays, { [styles.stretched]: stretched })}\n data-qa=\"date-picker-days\"\n >\n {dates.map((date, index) => {\n const isAdjacent = !isSameMonth(date, displayDate);\n const isDisabled = forceDisabled || disabledDatesFunc(date);\n const isSelected = !!selectedDate && isSameDay(date, selectedDate);\n const display = !isAdjacent || showAdjacentDays;\n const indicatorCount = indicatorCountFunc(date);\n\n return (\n <div className={styles.item} key={`${date}`}>\n {display ? (\n renderDay({\n date,\n isFocusAvailable,\n isAdjacent,\n indicatorCount,\n disabled: isDisabled,\n selected: isSelected,\n onClick: onClickHandlers[index],\n children: format(date, 'd'),\n additional: additionalFunc(date),\n })\n ) : (\n <div className={styles.textEmpty} />\n )}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DatePickerProps, DateType, ModifierDatesMap } from '@hh.ru/magritte-ui-date-picker/types';
1
+ import { DatePickerProps, DateType, ModifierDatesMap } from '../types';
2
2
  declare const MobileDatePickerWithScroll: import("react").ForwardRefExoticComponent<Omit<DatePickerProps, "displayDate" | "mobileScrollHorizontal"> & {
3
3
  displayDate: DateType;
4
4
  modifierDatesMap: ModifierDatesMap;
@@ -13,7 +13,7 @@ import { YearPicker } from '../YearPicker.js';
13
13
  import { useDatePickerControls } from '../useDatePickerControls.js';
14
14
  import { useMobileHorizontalScroll } from '../useMobileHorizontalScroll.js';
15
15
  import { Divider } from '@hh.ru/magritte-ui-divider';
16
- import { s as styles } from '../date-picker-q91q_We0.js';
16
+ import { s as styles } from '../date-picker-5L5YywN3.js';
17
17
  import 'classnames';
18
18
  import '../AsyncDataContext.js';
19
19
  import '@hh.ru/magritte-ui-loader';
@@ -30,41 +30,137 @@ import '@hh.ru/magritte-internal-custom-scroll';
30
30
  import '../useIntervalPicker.js';
31
31
 
32
32
  const MobileDatePickerWithScroll = forwardRef((props, ref) => {
33
- const { modifierDatesFunc, displayDate, enabledCalendars, minDate, maxDate, selectedDate,
33
+ const {
34
+ modifierDatesFunc,
35
+ displayDate,
36
+ enabledCalendars,
37
+ minDate,
38
+ maxDate,
39
+ selectedDate,
34
40
  // колбеки
35
- onDisplayDateChange, onDateSelect,
41
+ onDisplayDateChange,
42
+ onDateSelect,
36
43
  // настройки внешнего вида
37
- activeHeader, alignHeader, headerMonthFormat, locale, showAdjacentDays = true, showControls, showHeader = true, showHeaderDate, showDivider = true, showWeekdays = true, modifierDatesMap, renderDay, } = props;
38
- const { visibleDate, changeDate, onVisibleItemChange, onTouchEnd } = useMobileHorizontalScroll(displayDate, onDisplayDateChange);
39
- const { calendar, switchCalendar, zoomIntoMonth, zoomIntoYear, goToNextPeriod, goToPrevPeriod } = useDatePickerControls(enabledCalendars, visibleDate, changeDate);
40
- const makeDate = useCallback((index) => {
41
- if (calendar === 'day') {
42
- return add(displayDate, { months: index });
43
- }
44
- if (calendar === 'month') {
45
- return add(displayDate, { years: index });
46
- }
47
- return add(displayDate, { years: 12 * index });
48
- }, [displayDate, calendar]);
49
- const renderDate = useCallback((date, isFocusAvailable) => {
50
- return (jsxs(AsyncDataLoader, { children: [calendar === 'day' && (jsx(DayPicker, { displayDate: date, selectedDate: selectedDate, onDateSelect: onDateSelect, showAdjacentDays: showAdjacentDays, minDate: minDate, maxDate: maxDate, isFocusAvailable: isFocusAvailable, modifierDatesMap: modifierDatesMap, renderDay: renderDay, fixedWeeks: true })), calendar === 'month' && (jsx(MonthPicker, { locale: locale, displayDate: date, selectedDate: selectedDate, onDateSelect: enabledCalendars.startsWith('dd') ? zoomIntoMonth : onDateSelect, isFocusAvailable: isFocusAvailable })), calendar === 'year' && (jsx(YearPicker, { displayDate: date, selectedDate: selectedDate, onDateSelect: zoomIntoYear, isFocusAvailable: isFocusAvailable }))] }));
51
- }, [
52
- modifierDatesMap,
53
- onDateSelect,
54
- showAdjacentDays,
55
- selectedDate,
44
+ activeHeader,
45
+ alignHeader,
46
+ headerMonthFormat,
47
+ locale,
48
+ showAdjacentDays = true,
49
+ showControls,
50
+ showHeader = true,
51
+ showHeaderDate,
52
+ showDivider = true,
53
+ showWeekdays = true,
54
+ modifierDatesMap,
55
+ renderDay
56
+ } = props;
57
+ const { visibleDate, changeDate, onVisibleItemChange, onTouchEnd } = useMobileHorizontalScroll(
58
+ displayDate,
59
+ onDisplayDateChange
60
+ );
61
+ const { calendar, switchCalendar, zoomIntoMonth, zoomIntoYear, goToNextPeriod, goToPrevPeriod } = useDatePickerControls(enabledCalendars, visibleDate, changeDate);
62
+ const makeDate = useCallback(
63
+ (index) => {
64
+ if (calendar === "day") {
65
+ return add(displayDate, { months: index });
66
+ }
67
+ if (calendar === "month") {
68
+ return add(displayDate, { years: index });
69
+ }
70
+ return add(displayDate, { years: 12 * index });
71
+ },
72
+ [displayDate, calendar]
73
+ );
74
+ const renderDate = useCallback(
75
+ (date, isFocusAvailable) => {
76
+ return /* @__PURE__ */ jsxs(AsyncDataLoader, { children: [
77
+ calendar === "day" && /* @__PURE__ */ jsx(
78
+ DayPicker,
79
+ {
80
+ displayDate: date,
81
+ selectedDate,
82
+ onDateSelect,
83
+ showAdjacentDays,
84
+ minDate,
85
+ maxDate,
86
+ isFocusAvailable,
87
+ modifierDatesMap,
88
+ renderDay,
89
+ fixedWeeks: true
90
+ }
91
+ ),
92
+ calendar === "month" && /* @__PURE__ */ jsx(
93
+ MonthPicker,
94
+ {
95
+ locale,
96
+ displayDate: date,
97
+ selectedDate,
98
+ onDateSelect: enabledCalendars.startsWith("dd") ? zoomIntoMonth : onDateSelect,
99
+ isFocusAvailable
100
+ }
101
+ ),
102
+ calendar === "year" && /* @__PURE__ */ jsx(
103
+ YearPicker,
104
+ {
105
+ displayDate: date,
106
+ selectedDate,
107
+ onDateSelect: zoomIntoYear,
108
+ isFocusAvailable
109
+ }
110
+ )
111
+ ] });
112
+ },
113
+ [
114
+ modifierDatesMap,
115
+ onDateSelect,
116
+ showAdjacentDays,
117
+ selectedDate,
118
+ calendar,
119
+ zoomIntoMonth,
120
+ zoomIntoYear,
121
+ enabledCalendars,
122
+ locale,
123
+ minDate,
124
+ maxDate,
125
+ renderDay
126
+ ]
127
+ );
128
+ return /* @__PURE__ */ jsxs("div", { className: styles.layoutVertical, ref, children: [
129
+ showHeader && /* @__PURE__ */ jsx(
130
+ Header,
131
+ {
56
132
  calendar,
57
- zoomIntoMonth,
58
- zoomIntoYear,
59
- enabledCalendars,
133
+ displayDate: visibleDate,
134
+ activeHeader,
135
+ alignHeader,
136
+ goToNextPeriod,
137
+ goToPrevPeriod,
138
+ headerMonthFormat,
60
139
  locale,
61
- minDate,
62
- maxDate,
63
- renderDay,
64
- ]);
65
- return (jsxs("div", { className: styles.layoutVertical, ref: ref, children: [showHeader && (jsx(Header, { calendar: calendar, displayDate: visibleDate, activeHeader: activeHeader, alignHeader: alignHeader, goToNextPeriod: goToNextPeriod, goToPrevPeriod: goToPrevPeriod, headerMonthFormat: headerMonthFormat, locale: locale, showControls: showControls, showHeaderDate: showHeaderDate, switchCalendar: switchCalendar })), showWeekdays && calendar === 'day' && jsx(Weekdays, { locale: locale }), showDivider && (showHeader || showWeekdays) && jsx(Divider, {}), jsx(AsyncDataStore, { modifierDatesFunc: modifierDatesFunc, parallelLoadersLimit: 1, children: jsx(InfiniteScroll, { axis: "horizontal", initialRenderedItems: 5, invisibleThreshold: 100, visibleThreshold: 50, makeItemFunc: makeDate, renderItemFunc: renderDate, onTouchEnd: onTouchEnd, onVisibleItemChange: onVisibleItemChange }) })] }));
140
+ showControls,
141
+ showHeaderDate,
142
+ switchCalendar
143
+ }
144
+ ),
145
+ showWeekdays && calendar === "day" && /* @__PURE__ */ jsx(Weekdays, { locale }),
146
+ showDivider && (showHeader || showWeekdays) && /* @__PURE__ */ jsx(Divider, {}),
147
+ /* @__PURE__ */ jsx(AsyncDataStore, { modifierDatesFunc, parallelLoadersLimit: 1, children: /* @__PURE__ */ jsx(
148
+ InfiniteScroll,
149
+ {
150
+ axis: "horizontal",
151
+ initialRenderedItems: 5,
152
+ invisibleThreshold: 100,
153
+ visibleThreshold: 50,
154
+ makeItemFunc: makeDate,
155
+ renderItemFunc: renderDate,
156
+ onTouchEnd,
157
+ onVisibleItemChange
158
+ }
159
+ ) })
160
+ ] });
66
161
  });
67
- MobileDatePickerWithScroll.displayName = 'MobileDatePickerWithScroll';
162
+ MobileDatePickerWithScroll.displayName = "MobileDatePickerWithScroll";
163
+ var MobileDatePickerWithScroll_default = MobileDatePickerWithScroll;
68
164
 
69
- export { MobileDatePickerWithScroll as default };
165
+ export { MobileDatePickerWithScroll_default as default };
70
166
  //# sourceMappingURL=MobileDatePickerWithScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileDatePickerWithScroll.js","sources":["src/DatePicker/MobileDatePickerWithScroll.tsx"],"sourcesContent":["import { forwardRef, useCallback } from 'react';\nimport { add } from 'date-fns';\n\nimport { AsyncDataLoader } from '@hh.ru/magritte-ui-date-picker/AsyncDataLoader';\nimport { AsyncDataStore } from '@hh.ru/magritte-ui-date-picker/AsyncDataStore';\nimport { DayPicker } from '@hh.ru/magritte-ui-date-picker/DatePicker/DayPicker';\nimport { Header } from '@hh.ru/magritte-ui-date-picker/Header';\nimport { InfiniteScroll } from '@hh.ru/magritte-ui-date-picker/InfiniteScroll';\nimport { MonthPicker } from '@hh.ru/magritte-ui-date-picker/MonthPicker';\nimport { Weekdays } from '@hh.ru/magritte-ui-date-picker/Weekdays';\nimport { YearPicker } from '@hh.ru/magritte-ui-date-picker/YearPicker';\nimport { DatePickerProps, DateType, ModifierDatesMap } from '@hh.ru/magritte-ui-date-picker/types';\nimport { useDatePickerControls } from '@hh.ru/magritte-ui-date-picker/useDatePickerControls';\nimport { useMobileHorizontalScroll } from '@hh.ru/magritte-ui-date-picker/useMobileHorizontalScroll';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\n\nimport styles from '../date-picker.less';\n\ntype MobileDatePickerWithScrollProps = Omit<DatePickerProps, 'mobileScrollHorizontal' | 'displayDate'> & {\n displayDate: DateType;\n modifierDatesMap: ModifierDatesMap;\n};\n\nconst MobileDatePickerWithScroll = forwardRef<HTMLDivElement, MobileDatePickerWithScrollProps>((props, ref) => {\n const {\n modifierDatesFunc,\n displayDate,\n enabledCalendars,\n minDate,\n maxDate,\n selectedDate,\n // колбеки\n onDisplayDateChange,\n onDateSelect,\n // настройки внешнего вида\n activeHeader,\n alignHeader,\n headerMonthFormat,\n locale,\n showAdjacentDays = true,\n showControls,\n showHeader = true,\n showHeaderDate,\n showDivider = true,\n showWeekdays = true,\n modifierDatesMap,\n renderDay,\n } = props;\n\n const { visibleDate, changeDate, onVisibleItemChange, onTouchEnd } = useMobileHorizontalScroll(\n displayDate,\n onDisplayDateChange\n );\n\n const { calendar, switchCalendar, zoomIntoMonth, zoomIntoYear, goToNextPeriod, goToPrevPeriod } =\n useDatePickerControls(enabledCalendars, visibleDate, changeDate);\n\n const makeDate = useCallback(\n (index: number) => {\n if (calendar === 'day') {\n return add(displayDate, { months: index });\n }\n if (calendar === 'month') {\n return add(displayDate, { years: index });\n }\n\n return add(displayDate, { years: 12 * index });\n },\n [displayDate, calendar]\n );\n\n const renderDate = useCallback(\n (date: DateType, isFocusAvailable?: boolean) => {\n return (\n <AsyncDataLoader>\n {calendar === 'day' && (\n <DayPicker\n displayDate={date}\n selectedDate={selectedDate}\n onDateSelect={onDateSelect}\n showAdjacentDays={showAdjacentDays}\n minDate={minDate}\n maxDate={maxDate}\n isFocusAvailable={isFocusAvailable}\n modifierDatesMap={modifierDatesMap}\n renderDay={renderDay}\n fixedWeeks\n />\n )}\n {calendar === 'month' && (\n <MonthPicker\n locale={locale}\n displayDate={date}\n selectedDate={selectedDate}\n onDateSelect={enabledCalendars.startsWith('dd') ? zoomIntoMonth : onDateSelect}\n isFocusAvailable={isFocusAvailable}\n />\n )}\n {calendar === 'year' && (\n <YearPicker\n displayDate={date}\n selectedDate={selectedDate}\n onDateSelect={zoomIntoYear}\n isFocusAvailable={isFocusAvailable}\n />\n )}\n </AsyncDataLoader>\n );\n },\n [\n modifierDatesMap,\n onDateSelect,\n showAdjacentDays,\n selectedDate,\n calendar,\n zoomIntoMonth,\n zoomIntoYear,\n enabledCalendars,\n locale,\n minDate,\n maxDate,\n renderDay,\n ]\n );\n\n return (\n <div className={styles.layoutVertical} ref={ref}>\n {showHeader && (\n <Header\n calendar={calendar}\n displayDate={visibleDate}\n activeHeader={activeHeader}\n alignHeader={alignHeader}\n goToNextPeriod={goToNextPeriod}\n goToPrevPeriod={goToPrevPeriod}\n headerMonthFormat={headerMonthFormat}\n locale={locale}\n showControls={showControls}\n showHeaderDate={showHeaderDate}\n switchCalendar={switchCalendar}\n />\n )}\n {showWeekdays && calendar === 'day' && <Weekdays locale={locale} />}\n {showDivider && (showHeader || showWeekdays) && <Divider />}\n <AsyncDataStore modifierDatesFunc={modifierDatesFunc} parallelLoadersLimit={1}>\n <InfiniteScroll\n axis=\"horizontal\"\n initialRenderedItems={5}\n invisibleThreshold={100}\n visibleThreshold={50}\n makeItemFunc={makeDate}\n renderItemFunc={renderDate}\n onTouchEnd={onTouchEnd}\n onVisibleItemChange={onVisibleItemChange}\n />\n </AsyncDataStore>\n </div>\n );\n});\n\nMobileDatePickerWithScroll.displayName = 'MobileDatePickerWithScroll';\n\nexport default MobileDatePickerWithScroll;\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"MobileDatePickerWithScroll.js","sources":["src/DatePicker/MobileDatePickerWithScroll.tsx"],"sourcesContent":["import { forwardRef, useCallback } from 'react';\nimport { add } from 'date-fns';\n\nimport { AsyncDataLoader } from '@hh.ru/magritte-ui-date-picker/AsyncDataLoader';\nimport { AsyncDataStore } from '@hh.ru/magritte-ui-date-picker/AsyncDataStore';\nimport { DayPicker } from '@hh.ru/magritte-ui-date-picker/DatePicker/DayPicker';\nimport { Header } from '@hh.ru/magritte-ui-date-picker/Header';\nimport { InfiniteScroll } from '@hh.ru/magritte-ui-date-picker/InfiniteScroll';\nimport { MonthPicker } from '@hh.ru/magritte-ui-date-picker/MonthPicker';\nimport { Weekdays } from '@hh.ru/magritte-ui-date-picker/Weekdays';\nimport { YearPicker } from '@hh.ru/magritte-ui-date-picker/YearPicker';\nimport { DatePickerProps, DateType, ModifierDatesMap } from '@hh.ru/magritte-ui-date-picker/types';\nimport { useDatePickerControls } from '@hh.ru/magritte-ui-date-picker/useDatePickerControls';\nimport { useMobileHorizontalScroll } from '@hh.ru/magritte-ui-date-picker/useMobileHorizontalScroll';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\n\nimport styles from '../date-picker.less';\n\ntype MobileDatePickerWithScrollProps = Omit<DatePickerProps, 'mobileScrollHorizontal' | 'displayDate'> & {\n displayDate: DateType;\n modifierDatesMap: ModifierDatesMap;\n};\n\nconst MobileDatePickerWithScroll = forwardRef<HTMLDivElement, MobileDatePickerWithScrollProps>((props, ref) => {\n const {\n modifierDatesFunc,\n displayDate,\n enabledCalendars,\n minDate,\n maxDate,\n selectedDate,\n // колбеки\n onDisplayDateChange,\n onDateSelect,\n // настройки внешнего вида\n activeHeader,\n alignHeader,\n headerMonthFormat,\n locale,\n showAdjacentDays = true,\n showControls,\n showHeader = true,\n showHeaderDate,\n showDivider = true,\n showWeekdays = true,\n modifierDatesMap,\n renderDay,\n } = props;\n\n const { visibleDate, changeDate, onVisibleItemChange, onTouchEnd } = useMobileHorizontalScroll(\n displayDate,\n onDisplayDateChange\n );\n\n const { calendar, switchCalendar, zoomIntoMonth, zoomIntoYear, goToNextPeriod, goToPrevPeriod } =\n useDatePickerControls(enabledCalendars, visibleDate, changeDate);\n\n const makeDate = useCallback(\n (index: number) => {\n if (calendar === 'day') {\n return add(displayDate, { months: index });\n }\n if (calendar === 'month') {\n return add(displayDate, { years: index });\n }\n\n return add(displayDate, { years: 12 * index });\n },\n [displayDate, calendar]\n );\n\n const renderDate = useCallback(\n (date: DateType, isFocusAvailable?: boolean) => {\n return (\n <AsyncDataLoader>\n {calendar === 'day' && (\n <DayPicker\n displayDate={date}\n selectedDate={selectedDate}\n onDateSelect={onDateSelect}\n showAdjacentDays={showAdjacentDays}\n minDate={minDate}\n maxDate={maxDate}\n isFocusAvailable={isFocusAvailable}\n modifierDatesMap={modifierDatesMap}\n renderDay={renderDay}\n fixedWeeks\n />\n )}\n {calendar === 'month' && (\n <MonthPicker\n locale={locale}\n displayDate={date}\n selectedDate={selectedDate}\n onDateSelect={enabledCalendars.startsWith('dd') ? zoomIntoMonth : onDateSelect}\n isFocusAvailable={isFocusAvailable}\n />\n )}\n {calendar === 'year' && (\n <YearPicker\n displayDate={date}\n selectedDate={selectedDate}\n onDateSelect={zoomIntoYear}\n isFocusAvailable={isFocusAvailable}\n />\n )}\n </AsyncDataLoader>\n );\n },\n [\n modifierDatesMap,\n onDateSelect,\n showAdjacentDays,\n selectedDate,\n calendar,\n zoomIntoMonth,\n zoomIntoYear,\n enabledCalendars,\n locale,\n minDate,\n maxDate,\n renderDay,\n ]\n );\n\n return (\n <div className={styles.layoutVertical} ref={ref}>\n {showHeader && (\n <Header\n calendar={calendar}\n displayDate={visibleDate}\n activeHeader={activeHeader}\n alignHeader={alignHeader}\n goToNextPeriod={goToNextPeriod}\n goToPrevPeriod={goToPrevPeriod}\n headerMonthFormat={headerMonthFormat}\n locale={locale}\n showControls={showControls}\n showHeaderDate={showHeaderDate}\n switchCalendar={switchCalendar}\n />\n )}\n {showWeekdays && calendar === 'day' && <Weekdays locale={locale} />}\n {showDivider && (showHeader || showWeekdays) && <Divider />}\n <AsyncDataStore modifierDatesFunc={modifierDatesFunc} parallelLoadersLimit={1}>\n <InfiniteScroll\n axis=\"horizontal\"\n initialRenderedItems={5}\n invisibleThreshold={100}\n visibleThreshold={50}\n makeItemFunc={makeDate}\n renderItemFunc={renderDate}\n onTouchEnd={onTouchEnd}\n onVisibleItemChange={onVisibleItemChange}\n />\n </AsyncDataStore>\n </div>\n );\n});\n\nMobileDatePickerWithScroll.displayName = 'MobileDatePickerWithScroll';\n\nexport default MobileDatePickerWithScroll;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,0BAA6B,GAAA,UAAA,CAA4D,CAAC,KAAA,EAAO,GAAQ,KAAA;AAC3G,EAAM,MAAA;AAAA,IACF,iBAAA;AAAA,IACA,WAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA;AAAA,IAEA,mBAAA;AAAA,IACA,YAAA;AAAA;AAAA,IAEA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,iBAAA;AAAA,IACA,MAAA;AAAA,IACA,gBAAmB,GAAA,IAAA;AAAA,IACnB,YAAA;AAAA,IACA,UAAa,GAAA,IAAA;AAAA,IACb,cAAA;AAAA,IACA,WAAc,GAAA,IAAA;AAAA,IACd,YAAe,GAAA,IAAA;AAAA,IACf,gBAAA;AAAA,IACA,SAAA;AAAA,GACA,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,EAAE,WAAA,EAAa,UAAY,EAAA,mBAAA,EAAqB,YAAe,GAAA,yBAAA;AAAA,IACjE,WAAA;AAAA,IACA,mBAAA;AAAA,GACJ,CAAA;AAEA,EAAM,MAAA,EAAE,QAAU,EAAA,cAAA,EAAgB,aAAe,EAAA,YAAA,EAAc,cAAgB,EAAA,cAAA,EAC3E,GAAA,qBAAA,CAAsB,gBAAkB,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;AAEnE,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACb,CAAC,KAAkB,KAAA;AACf,MAAA,IAAI,aAAa,KAAO,EAAA;AACpB,QAAA,OAAO,GAAI,CAAA,WAAA,EAAa,EAAE,MAAA,EAAQ,OAAO,CAAA,CAAA;AAAA,OAC7C;AACA,MAAA,IAAI,aAAa,OAAS,EAAA;AACtB,QAAA,OAAO,GAAI,CAAA,WAAA,EAAa,EAAE,KAAA,EAAO,OAAO,CAAA,CAAA;AAAA,OAC5C;AAEA,MAAA,OAAO,IAAI,WAAa,EAAA,EAAE,KAAO,EAAA,EAAA,GAAK,OAAO,CAAA,CAAA;AAAA,KACjD;AAAA,IACA,CAAC,aAAa,QAAQ,CAAA;AAAA,GAC1B,CAAA;AAEA,EAAA,MAAM,UAAa,GAAA,WAAA;AAAA,IACf,CAAC,MAAgB,gBAA+B,KAAA;AAC5C,MAAA,4BACK,eACI,EAAA,EAAA,QAAA,EAAA;AAAA,QAAA,QAAA,KAAa,KACV,oBAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACG,WAAa,EAAA,IAAA;AAAA,YACb,YAAA;AAAA,YACA,YAAA;AAAA,YACA,gBAAA;AAAA,YACA,OAAA;AAAA,YACA,OAAA;AAAA,YACA,gBAAA;AAAA,YACA,gBAAA;AAAA,YACA,SAAA;AAAA,YACA,UAAU,EAAA,IAAA;AAAA,WAAA;AAAA,SACd;AAAA,QAEH,aAAa,OACV,oBAAA,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACG,MAAA;AAAA,YACA,WAAa,EAAA,IAAA;AAAA,YACb,YAAA;AAAA,YACA,YAAc,EAAA,gBAAA,CAAiB,UAAW,CAAA,IAAI,IAAI,aAAgB,GAAA,YAAA;AAAA,YAClE,gBAAA;AAAA,WAAA;AAAA,SACJ;AAAA,QAEH,aAAa,MACV,oBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACG,WAAa,EAAA,IAAA;AAAA,YACb,YAAA;AAAA,YACA,YAAc,EAAA,YAAA;AAAA,YACd,gBAAA;AAAA,WAAA;AAAA,SACJ;AAAA,OAER,EAAA,CAAA,CAAA;AAAA,KAER;AAAA,IACA;AAAA,MACI,gBAAA;AAAA,MACA,YAAA;AAAA,MACA,gBAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,KACJ;AAAA,GACJ,CAAA;AAEA,EAAA,uBACK,IAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,gBAAgB,GAClC,EAAA,QAAA,EAAA;AAAA,IACG,UAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACG,QAAA;AAAA,QACA,WAAa,EAAA,WAAA;AAAA,QACb,YAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA;AAAA,QACA,cAAA;AAAA,QACA,iBAAA;AAAA,QACA,MAAA;AAAA,QACA,YAAA;AAAA,QACA,cAAA;AAAA,QACA,cAAA;AAAA,OAAA;AAAA,KACJ;AAAA,IAEH,YAAgB,IAAA,QAAA,KAAa,KAAS,oBAAA,GAAA,CAAC,YAAS,MAAgB,EAAA,CAAA;AAAA,IAChE,WAAgB,KAAA,UAAA,IAAc,YAAiB,CAAA,oBAAA,GAAA,CAAC,OAAQ,EAAA,EAAA,CAAA;AAAA,oBACxD,GAAA,CAAA,cAAA,EAAA,EAAe,iBAAsC,EAAA,oBAAA,EAAsB,CACxE,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACG,IAAK,EAAA,YAAA;AAAA,QACL,oBAAsB,EAAA,CAAA;AAAA,QACtB,kBAAoB,EAAA,GAAA;AAAA,QACpB,gBAAkB,EAAA,EAAA;AAAA,QAClB,YAAc,EAAA,QAAA;AAAA,QACd,cAAgB,EAAA,UAAA;AAAA,QAChB,UAAA;AAAA,QACA,mBAAA;AAAA,OAAA;AAAA,KAER,EAAA,CAAA;AAAA,GACJ,EAAA,CAAA,CAAA;AAER,CAAC,CAAA,CAAA;AAED,0BAAA,CAA2B,WAAc,GAAA,4BAAA,CAAA;AAEzC,IAAO,kCAAQ,GAAA;;;;"}
@@ -1,2 +1,2 @@
1
- import { DatePickerProps } from '@hh.ru/magritte-ui-date-picker';
1
+ import { DatePickerProps } from '../index';
2
2
  export declare const UncontrolledDatePicker: import("react").ForwardRefExoticComponent<DatePickerProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,18 +1,17 @@
1
1
  import './../index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useState, useCallback } from 'react';
4
- import { useDisplayDate } from '../utils.js';
5
4
  import { DatePicker } from './DatePicker.js';
6
- import 'date-fns';
7
- import 'date-fns/constants';
5
+ import { useDisplayDate } from '../utils.js';
8
6
  import 'classnames';
9
7
  import '@hh.ru/magritte-ui-breakpoint';
10
8
  import '../AsyncDataLoader.js';
11
9
  import '../AsyncDataContext.js';
12
10
  import '@hh.ru/magritte-ui-loader';
13
- import '../date-picker-q91q_We0.js';
11
+ import '../date-picker-5L5YywN3.js';
14
12
  import '../AsyncDataStore.js';
15
13
  import '../useModifierDates.js';
14
+ import 'date-fns';
16
15
  import './DayPicker.js';
17
16
  import '@hh.ru/magritte-common-use-disabled';
18
17
  import '../useModifierDatesFunc.js';
@@ -34,21 +33,48 @@ import '@hh.ru/magritte-ui-divider';
34
33
  import '../WithArrowNavigationHOC.js';
35
34
  import '@hh.ru/magritte-common-keyboard';
36
35
  import '@hh.ru/magritte-common-use-multiple-refs';
36
+ import 'date-fns/constants';
37
37
 
38
- const UncontrolledDatePicker = forwardRef(({ displayDate: initialDisplayDate, selectedDate: initialSelectedDate, onDisplayDateChange, onDateSelect, ...props }, ref) => {
39
- const [displayDate, setDisplayDate] = useState(useDisplayDate(initialDisplayDate, initialSelectedDate));
38
+ const UncontrolledDatePicker = forwardRef(
39
+ ({
40
+ displayDate: initialDisplayDate,
41
+ selectedDate: initialSelectedDate,
42
+ onDisplayDateChange,
43
+ onDateSelect,
44
+ ...props
45
+ }, ref) => {
46
+ const [displayDate, setDisplayDate] = useState(
47
+ useDisplayDate(initialDisplayDate, initialSelectedDate)
48
+ );
40
49
  const [selectedDate, setSelectedDate] = useState(initialSelectedDate ?? null);
41
- const handleDisplayDateChange = useCallback((value) => {
50
+ const handleDisplayDateChange = useCallback(
51
+ (value) => {
42
52
  onDisplayDateChange?.(value);
43
53
  setDisplayDate(value);
44
- }, [onDisplayDateChange, setDisplayDate]);
45
- const handleDateSelect = useCallback((value) => {
54
+ },
55
+ [onDisplayDateChange, setDisplayDate]
56
+ );
57
+ const handleDateSelect = useCallback(
58
+ (value) => {
46
59
  onDateSelect?.(value);
47
60
  setSelectedDate(value);
48
- }, [onDateSelect, setSelectedDate]);
49
- return (jsx(DatePicker, { ...props, displayDate: displayDate, selectedDate: selectedDate, onDisplayDateChange: handleDisplayDateChange, onDateSelect: handleDateSelect, ref: ref }));
50
- });
51
- UncontrolledDatePicker.displayName = 'UncontrolledDatePicker';
61
+ },
62
+ [onDateSelect, setSelectedDate]
63
+ );
64
+ return /* @__PURE__ */ jsx(
65
+ DatePicker,
66
+ {
67
+ ...props,
68
+ displayDate,
69
+ selectedDate,
70
+ onDisplayDateChange: handleDisplayDateChange,
71
+ onDateSelect: handleDateSelect,
72
+ ref
73
+ }
74
+ );
75
+ }
76
+ );
77
+ UncontrolledDatePicker.displayName = "UncontrolledDatePicker";
52
78
 
53
79
  export { UncontrolledDatePicker };
54
80
  //# sourceMappingURL=UncontrolledDatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UncontrolledDatePicker.js","sources":["src/DatePicker/UncontrolledDatePicker.tsx"],"sourcesContent":["import { useCallback, useState, forwardRef } from 'react';\n\nimport { DatePicker, DatePickerProps, DateType } from '@hh.ru/magritte-ui-date-picker';\nimport { useDisplayDate } from '@hh.ru/magritte-ui-date-picker/utils';\n\nexport const UncontrolledDatePicker = forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n displayDate: initialDisplayDate,\n selectedDate: initialSelectedDate,\n onDisplayDateChange,\n onDateSelect,\n ...props\n },\n ref\n ) => {\n const [displayDate, setDisplayDate] = useState<DateType>(\n useDisplayDate(initialDisplayDate, initialSelectedDate)\n );\n const [selectedDate, setSelectedDate] = useState<DateType | null>(initialSelectedDate ?? null);\n\n const handleDisplayDateChange = useCallback(\n (value: DateType) => {\n onDisplayDateChange?.(value);\n setDisplayDate(value);\n },\n [onDisplayDateChange, setDisplayDate]\n );\n\n const handleDateSelect = useCallback(\n (value: DateType) => {\n onDateSelect?.(value);\n setSelectedDate(value);\n },\n [onDateSelect, setSelectedDate]\n );\n\n return (\n <DatePicker\n {...props}\n displayDate={displayDate}\n selectedDate={selectedDate}\n onDisplayDateChange={handleDisplayDateChange}\n onDateSelect={handleDateSelect}\n ref={ref}\n />\n );\n }\n);\n\nUncontrolledDatePicker.displayName = 'UncontrolledDatePicker';\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKa,MAAA,sBAAsB,GAAG,UAAU,CAC5C,CACI,EACI,WAAW,EAAE,kBAAkB,EAC/B,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,EACnB,YAAY,EACZ,GAAG,KAAK,EACX,EACD,GAAG,KACH;AACA,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC1C,cAAc,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAC1D,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAkB,mBAAmB,IAAI,IAAI,CAAC,CAAC;AAE/F,IAAA,MAAM,uBAAuB,GAAG,WAAW,CACvC,CAAC,KAAe,KAAI;AAChB,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC;QAC7B,cAAc,CAAC,KAAK,CAAC,CAAC;AAC1B,KAAC,EACD,CAAC,mBAAmB,EAAE,cAAc,CAAC,CACxC,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAG,WAAW,CAChC,CAAC,KAAe,KAAI;AAChB,QAAA,YAAY,GAAG,KAAK,CAAC,CAAC;QACtB,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAC,EACD,CAAC,YAAY,EAAE,eAAe,CAAC,CAClC,CAAC;IAEF,QACIA,GAAC,CAAA,UAAU,EACH,EAAA,GAAA,KAAK,EACT,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,uBAAuB,EAC5C,YAAY,EAAE,gBAAgB,EAC9B,GAAG,EAAE,GAAG,EACV,CAAA,EACJ;AACN,CAAC,EACH;AAEF,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;;;;"}
1
+ {"version":3,"file":"UncontrolledDatePicker.js","sources":["src/DatePicker/UncontrolledDatePicker.tsx"],"sourcesContent":["import { useCallback, useState, forwardRef } from 'react';\n\nimport { DatePicker, DatePickerProps, DateType } from '@hh.ru/magritte-ui-date-picker';\nimport { useDisplayDate } from '@hh.ru/magritte-ui-date-picker/utils';\n\nexport const UncontrolledDatePicker = forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n displayDate: initialDisplayDate,\n selectedDate: initialSelectedDate,\n onDisplayDateChange,\n onDateSelect,\n ...props\n },\n ref\n ) => {\n const [displayDate, setDisplayDate] = useState<DateType>(\n useDisplayDate(initialDisplayDate, initialSelectedDate)\n );\n const [selectedDate, setSelectedDate] = useState<DateType | null>(initialSelectedDate ?? null);\n\n const handleDisplayDateChange = useCallback(\n (value: DateType) => {\n onDisplayDateChange?.(value);\n setDisplayDate(value);\n },\n [onDisplayDateChange, setDisplayDate]\n );\n\n const handleDateSelect = useCallback(\n (value: DateType) => {\n onDateSelect?.(value);\n setSelectedDate(value);\n },\n [onDateSelect, setSelectedDate]\n );\n\n return (\n <DatePicker\n {...props}\n displayDate={displayDate}\n selectedDate={selectedDate}\n onDisplayDateChange={handleDisplayDateChange}\n onDateSelect={handleDateSelect}\n ref={ref}\n />\n );\n }\n);\n\nUncontrolledDatePicker.displayName = 'UncontrolledDatePicker';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,sBAAyB,GAAA,UAAA;AAAA,EAClC,CACI;AAAA,IACI,WAAa,EAAA,kBAAA;AAAA,IACb,YAAc,EAAA,mBAAA;AAAA,IACd,mBAAA;AAAA,IACA,YAAA;AAAA,IACA,GAAG,KAAA;AAAA,KAEP,GACC,KAAA;AACD,IAAM,MAAA,CAAC,WAAa,EAAA,cAAc,CAAI,GAAA,QAAA;AAAA,MAClC,cAAA,CAAe,oBAAoB,mBAAmB,CAAA;AAAA,KAC1D,CAAA;AACA,IAAA,MAAM,CAAC,YAAc,EAAA,eAAe,CAAI,GAAA,QAAA,CAA0B,uBAAuB,IAAI,CAAA,CAAA;AAE7F,IAAA,MAAM,uBAA0B,GAAA,WAAA;AAAA,MAC5B,CAAC,KAAoB,KAAA;AACjB,QAAA,mBAAA,GAAsB,KAAK,CAAA,CAAA;AAC3B,QAAA,cAAA,CAAe,KAAK,CAAA,CAAA;AAAA,OACxB;AAAA,MACA,CAAC,qBAAqB,cAAc,CAAA;AAAA,KACxC,CAAA;AAEA,IAAA,MAAM,gBAAmB,GAAA,WAAA;AAAA,MACrB,CAAC,KAAoB,KAAA;AACjB,QAAA,YAAA,GAAe,KAAK,CAAA,CAAA;AACpB,QAAA,eAAA,CAAgB,KAAK,CAAA,CAAA;AAAA,OACzB;AAAA,MACA,CAAC,cAAc,eAAe,CAAA;AAAA,KAClC,CAAA;AAEA,IACI,uBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACI,GAAG,KAAA;AAAA,QACJ,WAAA;AAAA,QACA,YAAA;AAAA,QACA,mBAAqB,EAAA,uBAAA;AAAA,QACrB,YAAc,EAAA,gBAAA;AAAA,QACd,GAAA;AAAA,OAAA;AAAA,KACJ,CAAA;AAAA,GAER;AACJ,EAAA;AAEA,sBAAA,CAAuB,WAAc,GAAA,wBAAA;;;;"}
package/Header.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FC } from 'react';
2
- import { DateType, Calendar, BaseDatePickerProps } from '@hh.ru/magritte-ui-date-picker/types';
2
+ import { DateType, Calendar, BaseDatePickerProps } from './types';
3
3
  export declare const Header: FC<Pick<BaseDatePickerProps, 'stretched' | 'activeHeader' | 'alignHeader' | 'headerMonthFormat' | 'locale' | 'showControls' | 'showHeaderDate'> & {
4
4
  calendar: Calendar;
5
5
  displayDate: DateType;