@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.
- package/AsyncDataContext.d.ts +1 -1
- package/AsyncDataContext.js.map +1 -1
- package/AsyncDataLoader.js +35 -31
- package/AsyncDataLoader.js.map +1 -1
- package/AsyncDataStore.d.ts +1 -1
- package/AsyncDataStore.js +42 -44
- package/AsyncDataStore.js.map +1 -1
- package/DatePicker/DatePicker.d.ts +1 -1
- package/DatePicker/DatePicker.js +108 -18
- package/DatePicker/DatePicker.js.map +1 -1
- package/DatePicker/DayPicker.d.ts +1 -1
- package/DatePicker/DayPicker.js +92 -47
- package/DatePicker/DayPicker.js.map +1 -1
- package/DatePicker/MobileDatePickerWithScroll.d.ts +1 -1
- package/DatePicker/MobileDatePickerWithScroll.js +128 -32
- package/DatePicker/MobileDatePickerWithScroll.js.map +1 -1
- package/DatePicker/UncontrolledDatePicker.d.ts +1 -1
- package/DatePicker/UncontrolledDatePicker.js +39 -13
- package/DatePicker/UncontrolledDatePicker.js.map +1 -1
- package/Header.d.ts +1 -1
- package/Header.js +76 -14
- package/Header.js.map +1 -1
- package/InfiniteScroll.js +331 -361
- package/InfiniteScroll.js.map +1 -1
- package/InfoDatePicker/InfoDatePicker.d.ts +1 -1
- package/InfoDatePicker/InfoDatePicker.js +80 -16
- package/InfoDatePicker/InfoDatePicker.js.map +1 -1
- package/InfoDatePicker/InfoDayPicker.d.ts +1 -1
- package/InfoDatePicker/InfoDayPicker.js +89 -45
- package/InfoDatePicker/InfoDayPicker.js.map +1 -1
- package/InfoDatePicker/MobileInfoDatePickerWithScroll.d.ts +1 -1
- package/InfoDatePicker/MobileInfoDatePickerWithScroll.js +104 -17
- package/InfoDatePicker/MobileInfoDatePickerWithScroll.js.map +1 -1
- package/InfoDatePicker/UncontrolledInfoDatePicker.d.ts +1 -1
- package/InfoDatePicker/UncontrolledInfoDatePicker.js +18 -11
- package/InfoDatePicker/UncontrolledInfoDatePicker.js.map +1 -1
- package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.d.ts +1 -1
- package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.js +133 -17
- package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.js.map +1 -1
- package/IntervalDatePicker/IntervalDatePicker.d.ts +1 -1
- package/IntervalDatePicker/IntervalDatePicker.js +20 -16
- package/IntervalDatePicker/IntervalDatePicker.js.map +1 -1
- package/IntervalDatePicker/IntervalDayPicker.d.ts +1 -1
- package/IntervalDatePicker/IntervalDayPicker.js +148 -75
- package/IntervalDatePicker/IntervalDayPicker.js.map +1 -1
- package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.d.ts +1 -1
- package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.js +107 -33
- package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.js.map +1 -1
- package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.d.ts +1 -1
- package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.js +141 -34
- package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.js.map +1 -1
- package/IntervalDatePicker/SingleLayoutIntervalDatePicker.d.ts +1 -1
- package/IntervalDatePicker/SingleLayoutIntervalDatePicker.js +110 -15
- package/IntervalDatePicker/SingleLayoutIntervalDatePicker.js.map +1 -1
- package/IntervalDatePicker/UncontrolledIntervalDatePicker.d.ts +1 -1
- package/IntervalDatePicker/UncontrolledIntervalDatePicker.js +46 -18
- package/IntervalDatePicker/UncontrolledIntervalDatePicker.js.map +1 -1
- package/MonthPicker.d.ts +1 -1
- package/MonthPicker.js +111 -50
- package/MonthPicker.js.map +1 -1
- package/StatusDatePicker/MobileStatusDatePickerWithScroll.d.ts +1 -1
- package/StatusDatePicker/MobileStatusDatePickerWithScroll.js +104 -17
- package/StatusDatePicker/MobileStatusDatePickerWithScroll.js.map +1 -1
- package/StatusDatePicker/StatusDatePicker.d.ts +1 -1
- package/StatusDatePicker/StatusDatePicker.js +87 -16
- package/StatusDatePicker/StatusDatePicker.js.map +1 -1
- package/StatusDatePicker/StatusDayPicker.d.ts +1 -1
- package/StatusDatePicker/StatusDayPicker.js +87 -46
- package/StatusDatePicker/StatusDayPicker.js.map +1 -1
- package/StatusDatePicker/UncontrolledStatusDatePicker.d.ts +1 -1
- package/StatusDatePicker/UncontrolledStatusDatePicker.js +18 -11
- package/StatusDatePicker/UncontrolledStatusDatePicker.js.map +1 -1
- package/Weekdays.js +2 -2
- package/Weekdays.js.map +1 -1
- package/WithArrowNavigationHOC.js +19 -23
- package/WithArrowNavigationHOC.js.map +1 -1
- package/YearPicker.d.ts +1 -1
- package/YearPicker.js +95 -40
- package/YearPicker.js.map +1 -1
- package/date-picker-5L5YywN3.js +5 -0
- package/date-picker-5L5YywN3.js.map +1 -0
- package/index.css +329 -329
- package/index.d.ts +13 -13
- package/index.js +1 -1
- package/package.json +19 -18
- package/useDatePickerControls.d.ts +1 -1
- package/useDatePickerControls.js +47 -41
- package/useDatePickerControls.js.map +1 -1
- package/useIntervalPicker.d.ts +1 -1
- package/useIntervalPicker.js +299 -304
- package/useIntervalPicker.js.map +1 -1
- package/useMobileHorizontalScroll.d.ts +1 -1
- package/useMobileHorizontalScroll.js +29 -25
- package/useMobileHorizontalScroll.js.map +1 -1
- package/useModifierDates.d.ts +1 -1
- package/useModifierDates.js +21 -21
- package/useModifierDates.js.map +1 -1
- package/useModifierDatesFunc.d.ts +1 -1
- package/useModifierDatesFunc.js +48 -42
- package/useModifierDatesFunc.js.map +1 -1
- package/utils.d.ts +1 -1
- package/utils.js +43 -44
- package/utils.js.map +1 -1
- package/date-picker-q91q_We0.js +0 -5
- package/date-picker-q91q_We0.js.map +0 -1
package/DatePicker/DayPicker.js
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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 =
|
|
29
|
-
const renderDayDefault = (props) => jsx(DayDefault, { ...props });
|
|
30
|
-
const DayPicker = ({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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":[
|
|
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":";;;;;;;;;;;;AAWO,MAAM,UAAa,GAAA,UAAA,CAAW,CAAC,KAAA,EAAiB,GAAyC,KAAA;AAC5F,EAAM,MAAA;AAAA,IACF,IAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA;AAAA,IACA,gBAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAY,EAAA,CAAA;AAAA,IACZ,GAAG,IAAA;AAAA,GACH,GAAA,KAAA,CAAA;AACJ,EAAA,MAAM,aAAa,UAAc,IAAA,QAAA,CAAA;AAEjC,EACI,uBAAA,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACI,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,IAAM,EAAA;AAAA,QAC/B,CAAC,MAAO,CAAA,YAAY,GAAG,UAAA;AAAA,QACvB,CAAC,MAAO,CAAA,YAAY,GAAG,QAAA;AAAA,QACvB,CAAC,MAAA,CAAO,SAAS,GAAG,QAAQ,IAAI,CAAA;AAAA,QAChC,CAAC,MAAO,CAAA,cAAc,GAAG,CAAC,cAAc,CAAC,QAAA;AAAA,OAC5C,CAAA;AAAA,MACD,QAAA,EAAU,mBAAmB,KAAY,CAAA,GAAA,CAAA,CAAA;AAAA,MACzC,UAAU,UAAc,IAAA,QAAA;AAAA,MACxB,WAAA,EAAW,MAAO,CAAA,IAAA,EAAM,YAAY,CAAA;AAAA,MACpC,SAAA,EAAS,WAAW,iBAAmB,EAAA;AAAA,QACnC,0BAA4B,EAAA,UAAA;AAAA,QAC5B,0BAA4B,EAAA,QAAA;AAAA,QAC5B,uBAAA,EAAyB,QAAQ,IAAI,CAAA;AAAA,OACxC,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,cACG,oBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,kBAAA,EAClB,QAAC,EAAA,CAAA,GAAG,KAAM,CAAA,IAAA,CAAK,GAAI,CAAA,cAAA,EAAgB,CAAC,CAAC,CAAE,CAAA,IAAA,EAAM,CAAA,CAAE,GAAI,CAAA,CAAC,CACjD,qBAAA,GAAA,CAAC,KAAY,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,SAAA,EAAA,EAArB,CAAgC,CAC7C,CACL,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAER,CAAA;AAER,CAAC,EAAA;AAED,UAAA,CAAW,WAAc,GAAA,YAAA,CAAA;AAEzB,MAAM,mBAAmB,CAAC,KAAA,qBAAgC,GAAA,CAAA,UAAA,EAAA,EAAY,GAAG,KAAO,EAAA,CAAA,CAAA;AAEzE,MAAM,YAAgC,CAAC;AAAA,EAC1C,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAmB,GAAA,IAAA;AAAA,EACnB,gBAAA;AAAA,EACA,SAAY,GAAA,gBAAA;AAChB,CAAM,KAAA;AACF,EAAM,MAAA,KAAA,GAAQ,iBAAkB,CAAA,WAAA,EAAa,UAAU,CAAA,CAAA;AACvD,EAAA,MAAM,EAAE,iBAAA,EAAmB,kBAAoB,EAAA,cAAA,KAAmB,oBAAqB,CAAA;AAAA,IACnF,SAAA,EAAW,MAAM,CAAC,CAAA;AAAA,IAClB,OAAS,EAAA,KAAA,CAAM,KAAM,CAAA,MAAA,GAAS,CAAC,CAAA;AAAA,IAC/B,gBAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,GACH,CAAA,CAAA;AACD,EAAA,MAAM,gBAAgB,WAAY,EAAA,CAAA;AAElC,EAAM,MAAA,eAAA,GAAkB,QAAQ,MAAM;AAClC,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AACvB,MAAO,OAAA,MAAM,eAAe,IAAI,CAAA,CAAA;AAAA,KACnC,CAAA,CAAA;AAAA,GACF,EAAA,CAAC,KAAO,EAAA,YAAY,CAAC,CAAA,CAAA;AAExB,EACI,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,SAAW,EAAA,UAAA,CAAW,MAAO,CAAA,QAAA,EAAU,MAAO,CAAA,YAAA,EAAc,EAAE,CAAC,MAAO,CAAA,SAAS,GAAG,SAAA,EAAW,CAAA;AAAA,MAC7F,SAAQ,EAAA,kBAAA;AAAA,MAEP,QAAM,EAAA,KAAA,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,KAAU,KAAA;AACxB,QAAA,MAAM,UAAa,GAAA,CAAC,WAAY,CAAA,IAAA,EAAM,WAAW,CAAA,CAAA;AACjD,QAAM,MAAA,UAAA,GAAa,aAAiB,IAAA,iBAAA,CAAkB,IAAI,CAAA,CAAA;AAC1D,QAAA,MAAM,aAAa,CAAC,CAAC,YAAgB,IAAA,SAAA,CAAU,MAAM,YAAY,CAAA,CAAA;AACjE,QAAM,MAAA,OAAA,GAAU,CAAC,UAAc,IAAA,gBAAA,CAAA;AAC/B,QAAM,MAAA,cAAA,GAAiB,mBAAmB,IAAI,CAAA,CAAA;AAE9C,QAAA,2BACK,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,IAAA,EAClB,oBACG,SAAU,CAAA;AAAA,UACN,IAAA;AAAA,UACA,gBAAA;AAAA,UACA,UAAA;AAAA,UACA,cAAA;AAAA,UACA,QAAU,EAAA,UAAA;AAAA,UACV,QAAU,EAAA,UAAA;AAAA,UACV,OAAA,EAAS,gBAAgB,KAAK,CAAA;AAAA,UAC9B,QAAA,EAAU,MAAO,CAAA,IAAA,EAAM,GAAG,CAAA;AAAA,UAC1B,UAAA,EAAY,eAAe,IAAI,CAAA;AAAA,SAClC,CAED,mBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,OAAO,SAAW,EAAA,CAAA,EAAA,EAdR,CAAG,EAAA,IAAI,CAgBzC,CAAA,CAAA,CAAA;AAAA,OAEP,CAAA;AAAA,KAAA;AAAA,GACL,CAAA;AAER;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatePickerProps, DateType, ModifierDatesMap } from '
|
|
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-
|
|
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
|
-
|
|
33
|
+
const {
|
|
34
|
+
modifierDatesFunc,
|
|
35
|
+
displayDate,
|
|
36
|
+
enabledCalendars,
|
|
37
|
+
minDate,
|
|
38
|
+
maxDate,
|
|
39
|
+
selectedDate,
|
|
34
40
|
// колбеки
|
|
35
|
-
onDisplayDateChange,
|
|
41
|
+
onDisplayDateChange,
|
|
42
|
+
onDateSelect,
|
|
36
43
|
// настройки внешнего вида
|
|
37
|
-
activeHeader,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
133
|
+
displayDate: visibleDate,
|
|
134
|
+
activeHeader,
|
|
135
|
+
alignHeader,
|
|
136
|
+
goToNextPeriod,
|
|
137
|
+
goToPrevPeriod,
|
|
138
|
+
headerMonthFormat,
|
|
60
139
|
locale,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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 =
|
|
162
|
+
MobileDatePickerWithScroll.displayName = "MobileDatePickerWithScroll";
|
|
163
|
+
var MobileDatePickerWithScroll_default = MobileDatePickerWithScroll;
|
|
68
164
|
|
|
69
|
-
export {
|
|
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":[
|
|
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":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DatePickerProps } from '
|
|
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 '
|
|
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-
|
|
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(
|
|
39
|
-
|
|
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(
|
|
50
|
+
const handleDisplayDateChange = useCallback(
|
|
51
|
+
(value) => {
|
|
42
52
|
onDisplayDateChange?.(value);
|
|
43
53
|
setDisplayDate(value);
|
|
44
|
-
|
|
45
|
-
|
|
54
|
+
},
|
|
55
|
+
[onDisplayDateChange, setDisplayDate]
|
|
56
|
+
);
|
|
57
|
+
const handleDateSelect = useCallback(
|
|
58
|
+
(value) => {
|
|
46
59
|
onDateSelect?.(value);
|
|
47
60
|
setSelectedDate(value);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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":[
|
|
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 '
|
|
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;
|