@hh.ru/magritte-ui-date-picker 6.1.106 → 6.1.108
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/AsyncDataLoader.js +1 -1
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DayPicker.js +1 -1
- package/DatePicker/MobileDatePickerWithScroll.js +1 -1
- package/DatePicker/UncontrolledDatePicker.js +1 -1
- package/Header.js +1 -1
- package/InfiniteScroll.js +4 -4
- package/InfiniteScroll.js.map +1 -1
- package/InfoDatePicker/InfoDatePicker.js +1 -1
- package/InfoDatePicker/InfoDayPicker.js +1 -1
- package/InfoDatePicker/MobileInfoDatePickerWithScroll.js +1 -1
- package/InfoDatePicker/UncontrolledInfoDatePicker.js +1 -1
- package/IntervalDatePicker/DesktopMultiLayoutIntervalDatePicker.js +1 -1
- package/IntervalDatePicker/IntervalDatePicker.js +1 -1
- package/IntervalDatePicker/IntervalDayPicker.js +1 -1
- package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.js +2 -2
- package/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.js.map +1 -1
- package/IntervalDatePicker/MobileSingleLayoutIntervalDatePicker.js +1 -1
- package/IntervalDatePicker/SingleLayoutIntervalDatePicker.js +1 -1
- package/IntervalDatePicker/UncontrolledIntervalDatePicker.js +1 -1
- package/MonthPicker.js +1 -1
- package/StatusDatePicker/MobileStatusDatePickerWithScroll.js +1 -1
- package/StatusDatePicker/StatusDatePicker.js +1 -1
- package/StatusDatePicker/StatusDayPicker.js +1 -1
- package/StatusDatePicker/UncontrolledStatusDatePicker.js +1 -1
- package/Weekdays.js +1 -1
- package/YearPicker.js +1 -1
- package/date-picker-q91q_We0.js +5 -0
- package/date-picker-q91q_We0.js.map +1 -0
- package/index.css +329 -329
- package/index.js +1 -1
- package/package.json +19 -19
- package/date-picker-4ouHm3er.js +0 -5
- package/date-picker-4ouHm3er.js.map +0 -1
package/AsyncDataLoader.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useContext, useState, useMemo } from 'react';
|
|
|
4
4
|
import classnames from 'classnames';
|
|
5
5
|
import { AsyncDataContext } from './AsyncDataContext.js';
|
|
6
6
|
import { Loader } from '@hh.ru/magritte-ui-loader';
|
|
7
|
-
import { s as styles } from './date-picker-
|
|
7
|
+
import { s as styles } from './date-picker-q91q_We0.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Отображает лоадер поверх контента во время загрузки асинхронных данных.
|
package/DatePicker/DatePicker.js
CHANGED
|
@@ -16,7 +16,7 @@ import { useDatePickerControls } from '../useDatePickerControls.js';
|
|
|
16
16
|
import { useModifierDates } from '../useModifierDates.js';
|
|
17
17
|
import { useDisplayDate } from '../utils.js';
|
|
18
18
|
import { Divider } from '@hh.ru/magritte-ui-divider';
|
|
19
|
-
import { s as styles } from '../date-picker-
|
|
19
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
20
20
|
import '../AsyncDataContext.js';
|
|
21
21
|
import '@hh.ru/magritte-ui-loader';
|
|
22
22
|
import 'date-fns';
|
package/DatePicker/DayPicker.js
CHANGED
|
@@ -6,7 +6,7 @@ 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-q91q_We0.js';
|
|
10
10
|
import '../AsyncDataContext.js';
|
|
11
11
|
import '../useModifierDates.js';
|
|
12
12
|
import 'date-fns/constants';
|
|
@@ -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-q91q_We0.js';
|
|
17
17
|
import 'classnames';
|
|
18
18
|
import '../AsyncDataContext.js';
|
|
19
19
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -10,7 +10,7 @@ import '@hh.ru/magritte-ui-breakpoint';
|
|
|
10
10
|
import '../AsyncDataLoader.js';
|
|
11
11
|
import '../AsyncDataContext.js';
|
|
12
12
|
import '@hh.ru/magritte-ui-loader';
|
|
13
|
-
import '../date-picker-
|
|
13
|
+
import '../date-picker-q91q_We0.js';
|
|
14
14
|
import '../AsyncDataStore.js';
|
|
15
15
|
import '../useModifierDates.js';
|
|
16
16
|
import './DayPicker.js';
|
package/Header.js
CHANGED
|
@@ -8,7 +8,7 @@ import { makeYearsInterval } from './utils.js';
|
|
|
8
8
|
import { IconDynamic } from '@hh.ru/magritte-ui-icon';
|
|
9
9
|
import { ChevronLeftOutlinedSize24, ChevronDownOutlinedSize16, ChevronRightOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
|
|
10
10
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
11
|
-
import { s as styles } from './date-picker-
|
|
11
|
+
import { s as styles } from './date-picker-q91q_We0.js';
|
|
12
12
|
import 'date-fns/constants';
|
|
13
13
|
|
|
14
14
|
const Header = ({ calendar, displayDate, stretched, activeHeader: _activeHeader = true, alignHeader = 'center', goToNextPeriod, goToPrevPeriod, headerMonthFormat = 'mm', locale, showControls = true, showHeaderDate = true, showNextControl = true, showPrevControl = true, switchCalendar, }) => {
|
package/InfiniteScroll.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useRef, useState, useContext, useMemo, useCallback, useLayoutEffect, us
|
|
|
4
4
|
import { debounce } from '@hh.ru/magritte-common-func-utils';
|
|
5
5
|
import { initScrollHandlers } from '@hh.ru/magritte-internal-custom-scroll';
|
|
6
6
|
import { AsyncDataContext } from './AsyncDataContext.js';
|
|
7
|
-
import { s as styles } from './date-picker-
|
|
7
|
+
import { s as styles } from './date-picker-q91q_We0.js';
|
|
8
8
|
|
|
9
9
|
const InfiniteScroll = ({ initialRenderedItems, invisibleThreshold, visibleThreshold, makeItemFunc, renderItemFunc, onVisibleItemChange, axis = 'vertical', onTouchEnd, }) => {
|
|
10
10
|
const stateRef = useRef({
|
|
@@ -34,7 +34,7 @@ const InfiniteScroll = ({ initialRenderedItems, invisibleThreshold, visibleThres
|
|
|
34
34
|
});
|
|
35
35
|
return [key, callback];
|
|
36
36
|
}));
|
|
37
|
-
}, [stateKey]); // eslint-disable-line
|
|
37
|
+
}, [stateKey]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
38
38
|
const addItemsIfNeeded = useCallback((scrollDirection) => {
|
|
39
39
|
if (!visibleAreaMetricsRef.current) {
|
|
40
40
|
return;
|
|
@@ -320,7 +320,7 @@ const InfiniteScroll = ({ initialRenderedItems, invisibleThreshold, visibleThres
|
|
|
320
320
|
debouncedCallback();
|
|
321
321
|
},
|
|
322
322
|
});
|
|
323
|
-
}, [addItemsIfNeeded, axis]); // eslint-disable-line
|
|
323
|
+
}, [addItemsIfNeeded, axis]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
324
324
|
useLayoutEffect(() => {
|
|
325
325
|
if (!visualViewport || !wrapperRef.current) {
|
|
326
326
|
return;
|
|
@@ -377,7 +377,7 @@ const InfiniteScroll = ({ initialRenderedItems, invisibleThreshold, visibleThres
|
|
|
377
377
|
}
|
|
378
378
|
}
|
|
379
379
|
}
|
|
380
|
-
}, [stateKey, axis]); // eslint-disable-line
|
|
380
|
+
}, [stateKey, axis]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
381
381
|
return (jsxs("div", { className: styles.infiniteScrollWrapper, ref: wrapperRef, "data-qa": "date-picker-infinite-container", children: [axis === 'vertical' &&
|
|
382
382
|
[...stateRef.current.items.entries()].map(([key, item]) => (jsx(Fragment, { children: key >= stateRef.current.firstRenderedKey && key <= stateRef.current.lastRenderedKey ? (jsx("div", { ref: itemRefCallbacks.get(key), children: renderItemFunc(item, false) })) : (jsx("div", { style: { height: `${itemElementsRef.current.get(key)?.clientHeight}px` } })) }, `${item}`))), axis === 'horizontal' && (jsx("div", { style: { display: 'flex', flexWrap: 'nowrap' }, children: [...stateRef.current.items.entries()].map(([key, item]) => (jsx(Fragment, { children: key >= stateRef.current.firstRenderedKey && key <= stateRef.current.lastRenderedKey ? (jsx("div", { ref: itemRefCallbacks.get(key), className: styles.infiniteScrollItemHorizontal, children: renderItemFunc(item, key === visibleItemKeyRef.current) })) : (jsx("div", { style: {
|
|
383
383
|
width: `${itemElementsRef.current.get(key)?.clientWidth}px`,
|
package/InfiniteScroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfiniteScroll.js","sources":["src/InfiniteScroll.tsx"],"sourcesContent":["import {\n Fragment,\n ReactElement,\n RefCallback,\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { debounce } from '@hh.ru/magritte-common-func-utils';\nimport { initScrollHandlers } from '@hh.ru/magritte-internal-custom-scroll';\nimport { AsyncDataContext } from '@hh.ru/magritte-ui-date-picker/AsyncDataContext';\n\nimport styles from './date-picker.less';\n\ninterface InfiniteScrollState<ItemType> {\n items: Map<number, ItemType>;\n firstRenderedKey: number;\n lastRenderedKey: number;\n needScrollCorrection: boolean;\n}\n\ninterface InfiniteScrollProps<ItemType> {\n initialRenderedItems: number;\n /** Высота невидимой части айтема, при достижении которой нужно рендерить еще один айтем за ним */\n invisibleThreshold: number;\n /** Высота видимой части айтема, при достижении которой вызывается колбек onVisibleItemChange с этим айтемом в параметрах */\n visibleThreshold: number;\n makeItemFunc: (key: number) => ItemType;\n renderItemFunc: (item: ItemType, isFocusAvailable: boolean) => ReactElement;\n onVisibleItemChange: (item: ItemType, key: number) => void;\n axis?: 'horizontal' | 'vertical';\n onTouchEnd?: (item: ItemType) => void;\n}\n\nexport const InfiniteScroll = <ItemType,>({\n initialRenderedItems,\n invisibleThreshold,\n visibleThreshold,\n makeItemFunc,\n renderItemFunc,\n onVisibleItemChange,\n axis = 'vertical',\n onTouchEnd,\n}: InfiniteScrollProps<ItemType>): ReactElement => {\n const stateRef = useRef<InfiniteScrollState<ItemType>>({\n items: new Map([...Array(initialRenderedItems).keys()].map((index) => [index, makeItemFunc(index)])),\n firstRenderedKey: 0,\n lastRenderedKey: initialRenderedItems - 1,\n needScrollCorrection: false,\n });\n const touchEndRefCallback = useRef(onTouchEnd);\n touchEndRefCallback.current = onTouchEnd;\n const [stateKey, setStateKey] = useState(0);\n\n const asyncDataContext = useContext(AsyncDataContext);\n const boundariesRef = useRef<{ top: number; bottom: number; left: number; right: number } | null>(null);\n const itemElementsRef = useRef<Map<number, HTMLDivElement>>(new Map());\n const translateCoordRef = useRef(0);\n const visibleAreaMetricsRef = useRef<{ top: number; bottom: number; left: number; right: number } | null>(null);\n const visibleItemKeyRef = useRef(0);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const prevScrollDirectionRef = useRef<string | null>(null);\n const animatedState = useRef<boolean>(false);\n\n const itemRefCallbacks = useMemo<Map<number, RefCallback<HTMLDivElement>>>(() => {\n return new Map(\n [...stateRef.current.items.entries()].map(([key]) => {\n const callback = ((ref) => {\n if (ref !== null) {\n itemElementsRef.current.set(key, ref);\n }\n }) as RefCallback<HTMLDivElement>;\n return [key, callback];\n })\n );\n }, [stateKey]); // eslint-disable-line disable-autofix/react-hooks/exhaustive-deps\n\n const addItemsIfNeeded = useCallback(\n (scrollDirection: 'up' | 'down' | 'left' | 'right') => {\n if (!visibleAreaMetricsRef.current) {\n return;\n }\n\n const { items, firstRenderedKey, lastRenderedKey } = stateRef.current;\n\n // скролл вверх\n if (scrollDirection === 'up') {\n // самый верхний видимый айтем близко к верхнему краю экрана — нужно рендерить еще один сверху\n const firstRenderedItemElement = itemElementsRef.current.get(firstRenderedKey);\n if (firstRenderedItemElement) {\n const firstRenderedItemMetrics = firstRenderedItemElement.getBoundingClientRect();\n if (visibleAreaMetricsRef.current.top - firstRenderedItemMetrics.top < invisibleThreshold) {\n if (!items.has(firstRenderedKey - 1)) {\n stateRef.current.items = new Map([\n [firstRenderedKey - 1, makeItemFunc(firstRenderedKey - 1)],\n ...items.entries(),\n ]);\n stateRef.current.needScrollCorrection = true;\n }\n stateRef.current.firstRenderedKey = firstRenderedKey - 1;\n stateRef.current.lastRenderedKey = lastRenderedKey - 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший верхнюю границу видимой области запоминаем как visible item\n for (let key = firstRenderedKey; key < lastRenderedKey; key += 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n itemElement.getBoundingClientRect().bottom - visibleAreaMetricsRef.current.top >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n\n // скролл вниз\n if (scrollDirection === 'down') {\n // самый нижний видимый айтем близко к нижнему краю экрана — нужно рендерить еще один снизу\n const lastRenderedItemElement = itemElementsRef.current.get(lastRenderedKey);\n if (lastRenderedItemElement) {\n const lastRenderedItemMetrics = lastRenderedItemElement.getBoundingClientRect();\n if (lastRenderedItemMetrics.bottom - visibleAreaMetricsRef.current.bottom < invisibleThreshold) {\n if (!items.has(lastRenderedKey + 1)) {\n stateRef.current.items = new Map([\n ...items.entries(),\n [lastRenderedKey + 1, makeItemFunc(lastRenderedKey + 1)],\n ]);\n }\n stateRef.current.firstRenderedKey = firstRenderedKey + 1;\n stateRef.current.lastRenderedKey = lastRenderedKey + 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший нижнюю границу видимой области запоминаем как visible item\n for (let key = lastRenderedKey; key > firstRenderedKey; key -= 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n visibleAreaMetricsRef.current.bottom - itemElement.getBoundingClientRect().top >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n\n // скролл влево\n if (scrollDirection === 'left') {\n if (!prevScrollDirectionRef.current || prevScrollDirectionRef.current === 'left') {\n // самый левый видимый айтем близко к левому краю экрана — нужно рендерить еще один слева\n const firstRenderedItemElement = itemElementsRef.current.get(firstRenderedKey);\n if (firstRenderedItemElement) {\n const firstRenderedItemMetrics = firstRenderedItemElement.getBoundingClientRect();\n if (visibleAreaMetricsRef.current.left - firstRenderedItemMetrics.left < invisibleThreshold) {\n if (!items.has(firstRenderedKey - 1)) {\n stateRef.current.items = new Map([\n [firstRenderedKey - 1, makeItemFunc(firstRenderedKey - 1)],\n ...items.entries(),\n ]);\n stateRef.current.needScrollCorrection = true;\n }\n stateRef.current.firstRenderedKey = firstRenderedKey - 1;\n stateRef.current.lastRenderedKey = lastRenderedKey - 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший левую границу видимой области запоминаем как visible item\n for (let key = firstRenderedKey; key < lastRenderedKey; key += 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n itemElement.getBoundingClientRect().right - visibleAreaMetricsRef.current.left >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n prevScrollDirectionRef.current = 'left';\n }\n\n // скролл вправо\n if (scrollDirection === 'right') {\n if (!prevScrollDirectionRef.current || prevScrollDirectionRef.current === 'right') {\n // самый правый видимый айтем близко к правому краю экрана — нужно рендерить еще один снизу\n const lastRenderedItemElement = itemElementsRef.current.get(lastRenderedKey);\n if (lastRenderedItemElement) {\n const lastRenderedItemMetrics = lastRenderedItemElement.getBoundingClientRect();\n if (lastRenderedItemMetrics.right - visibleAreaMetricsRef.current.right < invisibleThreshold) {\n if (!items.has(lastRenderedKey + 1)) {\n stateRef.current.items = new Map([\n ...items.entries(),\n [lastRenderedKey + 1, makeItemFunc(lastRenderedKey + 1)],\n ]);\n }\n stateRef.current.firstRenderedKey = firstRenderedKey + 1;\n stateRef.current.lastRenderedKey = lastRenderedKey + 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший правую границу видимой области запоминаем как visible item\n for (let key = lastRenderedKey; key > firstRenderedKey; key -= 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n visibleAreaMetricsRef.current.right - itemElement.getBoundingClientRect().left >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n\n prevScrollDirectionRef.current = 'right';\n }\n },\n [invisibleThreshold, visibleThreshold, makeItemFunc, onVisibleItemChange, setStateKey]\n );\n\n useLayoutEffect(() => {\n // сбрасываем стейты\n if (stateRef.current && wrapperRef.current) {\n stateRef.current.items = new Map(\n [...Array(initialRenderedItems).keys()].map((index) => [index, makeItemFunc(index)])\n );\n stateRef.current.firstRenderedKey = 0;\n stateRef.current.lastRenderedKey = initialRenderedItems - 1;\n stateRef.current.needScrollCorrection = false;\n visibleItemKeyRef.current = 0;\n translateCoordRef.current = 0;\n prevScrollDirectionRef.current = null;\n wrapperRef.current.style.transform =\n axis === 'vertical'\n ? `translateY(${translateCoordRef.current}px)`\n : `translateX(${translateCoordRef.current}px)`;\n\n setStateKey(Math.random());\n }\n }, [makeItemFunc, initialRenderedItems, axis]);\n\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) {\n return void 0;\n }\n\n const handleTouchMove = (event: TouchEvent) => {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n const handleTransitionEnd = () => {\n wrapper.classList.remove(styles.animated);\n animatedState.current = false;\n touchEndRefCallback.current?.(stateRef.current.items.get(visibleItemKeyRef.current) as ItemType);\n };\n\n wrapper.addEventListener('touchmove', handleTouchMove);\n wrapper.addEventListener('transitionend', handleTransitionEnd);\n return () => {\n wrapper.removeEventListener('touchmove', handleTouchMove);\n wrapper.removeEventListener('transitionend', handleTransitionEnd);\n };\n }, []);\n\n useEffect(() => {\n const animateScrollEnd = () => {\n if (!wrapperRef.current || !wrapperRef.current.parentElement) {\n return;\n }\n\n const itemElement = itemElementsRef.current.get(visibleItemKeyRef.current) as HTMLElement;\n const dif =\n wrapperRef.current.parentElement.getBoundingClientRect().left -\n itemElement.getBoundingClientRect().left;\n\n if (dif !== 0) {\n translateCoordRef.current += dif;\n wrapperRef.current?.classList.add(styles.animated);\n\n animatedState.current = true;\n wrapperRef.current.style.transform = `translateX(${translateCoordRef.current}px)`;\n }\n };\n\n const debouncedCallback = debounce(() => {\n if (axis === 'horizontal') {\n animateScrollEnd();\n return;\n }\n\n touchEndRefCallback.current?.(stateRef.current.items.get(visibleItemKeyRef.current) as ItemType);\n }, 60);\n return initScrollHandlers({\n axis,\n wrapperRef,\n onTouchMove: (event) => {\n if (!wrapperRef.current || animatedState.current) {\n return;\n }\n\n // если достигнут лимит лоадеров, не даем скроллить за границы первого и последнего айтема\n if (asyncDataContext !== null && asyncDataContext.isLimitExceeded() && boundariesRef.current !== null) {\n const translate = translateCoordRef.current + event.delta;\n if (\n axis === 'vertical' &&\n translate > boundariesRef.current.bottom &&\n translate < boundariesRef.current.top\n ) {\n translateCoordRef.current = translate;\n }\n if (\n axis === 'horizontal' &&\n translate > boundariesRef.current.right &&\n translate < boundariesRef.current.left\n ) {\n translateCoordRef.current = translate;\n }\n } else {\n translateCoordRef.current += event.delta;\n }\n\n wrapperRef.current.style.transform =\n axis === 'vertical'\n ? `translateY(${translateCoordRef.current}px)`\n : `translateX(${translateCoordRef.current}px)`;\n\n if (axis === 'vertical') {\n addItemsIfNeeded(event.delta > 0 ? 'up' : 'down');\n } else {\n event.delta !== 0 && addItemsIfNeeded(event.delta > 0 ? 'left' : 'right');\n }\n },\n onTouchEnd: () => {\n if (axis === 'horizontal') {\n animateScrollEnd();\n return;\n }\n touchEndRefCallback.current?.(stateRef.current.items.get(visibleItemKeyRef.current) as ItemType);\n },\n onWheelMove: (event) => {\n if (!wrapperRef.current || animatedState.current) {\n return;\n }\n\n event.preventDefault();\n\n // если достигнут лимит лоадеров, не даем скроллить за границы первого и последнего айтема\n if (asyncDataContext !== null && asyncDataContext.isLimitExceeded() && boundariesRef.current !== null) {\n const translate = translateCoordRef.current + event.delta;\n if (\n axis === 'vertical' &&\n translate > boundariesRef.current.bottom &&\n translate < boundariesRef.current.top\n ) {\n translateCoordRef.current = translate;\n }\n if (\n axis === 'horizontal' &&\n translate > boundariesRef.current.right &&\n translate < boundariesRef.current.left\n ) {\n translateCoordRef.current = translate;\n }\n } else {\n translateCoordRef.current += event.delta;\n }\n\n wrapperRef.current.style.transform =\n axis === 'vertical'\n ? `translateY(${translateCoordRef.current}px)`\n : `translateX(${translateCoordRef.current}px)`;\n\n if (axis === 'vertical') {\n addItemsIfNeeded(event.delta > 0 ? 'up' : 'down');\n } else {\n event.delta !== 0 && addItemsIfNeeded(event.delta > 0 ? 'left' : 'right');\n }\n debouncedCallback();\n },\n });\n }, [addItemsIfNeeded, axis]); // eslint-disable-line disable-autofix/react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (!visualViewport || !wrapperRef.current) {\n return;\n }\n\n if (!visibleAreaMetricsRef.current) {\n visibleAreaMetricsRef.current = {\n top: wrapperRef.current.offsetTop,\n bottom: visualViewport.height,\n left: wrapperRef.current.offsetLeft,\n right: visualViewport.width,\n };\n }\n\n const { firstRenderedKey, lastRenderedKey, needScrollCorrection } = stateRef.current;\n const firstRenderedItemElement = itemElementsRef.current.get(firstRenderedKey);\n const lastRenderedItemElement = itemElementsRef.current.get(lastRenderedKey);\n if (firstRenderedItemElement && lastRenderedItemElement) {\n // если мы добавили айтем сверху, чтобы скролл не прыгал, компенсируем его на высоту самого верхнего айтема\n if (needScrollCorrection) {\n stateRef.current.needScrollCorrection = false;\n if (axis === 'vertical') {\n translateCoordRef.current -= firstRenderedItemElement.clientHeight;\n if (boundariesRef.current !== null) {\n boundariesRef.current.top -= firstRenderedItemElement.clientHeight;\n }\n wrapperRef.current.style.transform = `translateY(${translateCoordRef.current}px)`;\n } else {\n translateCoordRef.current -= firstRenderedItemElement.clientWidth;\n if (boundariesRef.current !== null) {\n boundariesRef.current.left -= firstRenderedItemElement.clientWidth;\n }\n wrapperRef.current.style.transform = `translateX(${translateCoordRef.current}px)`;\n }\n }\n\n // если достигнут лимит лоадеров, запоминаем границы первого и последнего айтема и не даем скроллить за них\n if (asyncDataContext !== null && !asyncDataContext.isLimitExceeded()) {\n if (axis === 'vertical') {\n const top =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.top -\n firstRenderedItemElement.getBoundingClientRect().top;\n const bottom =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.bottom -\n lastRenderedItemElement.getBoundingClientRect().bottom;\n boundariesRef.current = { top, bottom, left: 0, right: 0 };\n } else {\n const left =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.left -\n firstRenderedItemElement.getBoundingClientRect().left;\n\n const right =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.right -\n lastRenderedItemElement.getBoundingClientRect().right;\n\n boundariesRef.current = { left, right, top: 0, bottom: 0 };\n }\n }\n }\n }, [stateKey, axis]); // eslint-disable-line disable-autofix/react-hooks/exhaustive-deps\n\n return (\n <div className={styles.infiniteScrollWrapper} ref={wrapperRef} data-qa=\"date-picker-infinite-container\">\n {axis === 'vertical' &&\n [...stateRef.current.items.entries()].map(([key, item]) => (\n <Fragment key={`${item}`}>\n {key >= stateRef.current.firstRenderedKey && key <= stateRef.current.lastRenderedKey ? (\n <div ref={itemRefCallbacks.get(key)}>{renderItemFunc(item, false)}</div>\n ) : (\n <div style={{ height: `${itemElementsRef.current.get(key)?.clientHeight}px` }} />\n )}\n </Fragment>\n ))}\n\n {axis === 'horizontal' && (\n <div style={{ display: 'flex', flexWrap: 'nowrap' }}>\n {[...stateRef.current.items.entries()].map(([key, item]) => (\n <Fragment key={`${item}`}>\n {key >= stateRef.current.firstRenderedKey && key <= stateRef.current.lastRenderedKey ? (\n <div ref={itemRefCallbacks.get(key)} className={styles.infiniteScrollItemHorizontal}>\n {renderItemFunc(item, key === visibleItemKeyRef.current)}\n </div>\n ) : (\n <div\n style={{\n width: `${itemElementsRef.current.get(key)?.clientWidth}px`,\n flexShrink: 0,\n }}\n />\n )}\n </Fragment>\n ))}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAuCa,MAAA,cAAc,GAAG,CAAY,EACtC,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,IAAI,GAAG,UAAU,EACjB,UAAU,GACkB,KAAkB;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAgC;AACnD,QAAA,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpG,QAAA,gBAAgB,EAAE,CAAC;QACnB,eAAe,EAAE,oBAAoB,GAAG,CAAC;AACzC,QAAA,oBAAoB,EAAE,KAAK;AAC9B,KAAA,CAAC,CAAC;AACH,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAA,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE5C,IAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtD,IAAA,MAAM,aAAa,GAAG,MAAM,CAAsE,IAAI,CAAC,CAAC;IACxG,MAAM,eAAe,GAAG,MAAM,CAA8B,IAAI,GAAG,EAAE,CAAC,CAAC;AACvE,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,IAAA,MAAM,qBAAqB,GAAG,MAAM,CAAsE,IAAI,CAAC,CAAC;AAChH,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;AACvD,IAAA,MAAM,sBAAsB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAC3D,IAAA,MAAM,aAAa,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;AAE7C,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAA2C,MAAK;QAC5E,OAAO,IAAI,GAAG,CACV,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAI;AAChD,YAAA,MAAM,QAAQ,IAAI,CAAC,GAAG,KAAI;AACtB,gBAAA,IAAI,GAAG,KAAK,IAAI,EAAE;oBACd,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACzC;AACL,aAAC,CAAgC,CAAC;AAClC,YAAA,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC1B,CAAC,CACL,CAAC;AACN,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEf,IAAA,MAAM,gBAAgB,GAAG,WAAW,CAChC,CAAC,eAAiD,KAAI;AAClD,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;YAChC,OAAO;SACV;QAED,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;;AAGtE,QAAA,IAAI,eAAe,KAAK,IAAI,EAAE;;YAE1B,MAAM,wBAAwB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC/E,IAAI,wBAAwB,EAAE;AAC1B,gBAAA,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,qBAAqB,EAAE,CAAC;AAClF,gBAAA,IAAI,qBAAqB,CAAC,OAAO,CAAC,GAAG,GAAG,wBAAwB,CAAC,GAAG,GAAG,kBAAkB,EAAE;oBACvF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE;AAClC,wBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC;4BAC7B,CAAC,gBAAgB,GAAG,CAAC,EAAE,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;4BAC1D,GAAG,KAAK,CAAC,OAAO,EAAE;AACrB,yBAAA,CAAC,CAAC;AACH,wBAAA,QAAQ,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;qBAChD;oBACD,QAAQ,CAAC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,CAAC;oBACzD,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;AACvD,oBAAA,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;iBAC9B;aACJ;;AAGD,YAAA,KAAK,IAAI,GAAG,GAAG,gBAAgB,EAAE,GAAG,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC9D,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACrE,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAgB,CAAC;oBACpE,IACI,WAAW,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG;AAC9E,wBAAA,gBAAgB,EAClB;AACE,wBAAA,IAAI,GAAG,KAAK,iBAAiB,CAAC,OAAO,EAAE;AACnC,4BAAA,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAa,EAAE,GAAG,CAAC,CAAC;AACtE,4BAAA,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;yBACnC;wBACD,MAAM;qBACT;iBACJ;aACJ;SACJ;;AAGD,QAAA,IAAI,eAAe,KAAK,MAAM,EAAE;;YAE5B,MAAM,uBAAuB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,uBAAuB,EAAE;AACzB,gBAAA,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;AAChF,gBAAA,IAAI,uBAAuB,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE;oBAC5F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE;AACjC,wBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC;4BAC7B,GAAG,KAAK,CAAC,OAAO,EAAE;4BAClB,CAAC,eAAe,GAAG,CAAC,EAAE,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC3D,yBAAA,CAAC,CAAC;qBACN;oBACD,QAAQ,CAAC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,CAAC;oBACzD,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;AACvD,oBAAA,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;iBAC9B;aACJ;;AAGD,YAAA,KAAK,IAAI,GAAG,GAAG,eAAe,EAAE,GAAG,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC9D,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACrE,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAgB,CAAC;oBACpE,IACI,qBAAqB,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,GAAG;AAC9E,wBAAA,gBAAgB,EAClB;AACE,wBAAA,IAAI,GAAG,KAAK,iBAAiB,CAAC,OAAO,EAAE;AACnC,4BAAA,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAa,EAAE,GAAG,CAAC,CAAC;AACtE,4BAAA,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;yBACnC;wBACD,MAAM;qBACT;iBACJ;aACJ;SACJ;;AAGD,QAAA,IAAI,eAAe,KAAK,MAAM,EAAE;YAC5B,IAAI,CAAC,sBAAsB,CAAC,OAAO,IAAI,sBAAsB,CAAC,OAAO,KAAK,MAAM,EAAE;;gBAE9E,MAAM,wBAAwB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC/E,IAAI,wBAAwB,EAAE;AAC1B,oBAAA,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,qBAAqB,EAAE,CAAC;AAClF,oBAAA,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC,IAAI,GAAG,kBAAkB,EAAE;wBACzF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE;AAClC,4BAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC;gCAC7B,CAAC,gBAAgB,GAAG,CAAC,EAAE,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;gCAC1D,GAAG,KAAK,CAAC,OAAO,EAAE;AACrB,6BAAA,CAAC,CAAC;AACH,4BAAA,QAAQ,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;yBAChD;wBACD,QAAQ,CAAC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,CAAC;wBACzD,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;AACvD,wBAAA,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;qBAC9B;iBACJ;;AAGD,gBAAA,KAAK,IAAI,GAAG,GAAG,gBAAgB,EAAE,GAAG,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,EAAE;oBAC9D,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACrE,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAgB,CAAC;wBACpE,IACI,WAAW,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI;AAC9E,4BAAA,gBAAgB,EAClB;AACE,4BAAA,IAAI,GAAG,KAAK,iBAAiB,CAAC,OAAO,EAAE;AACnC,gCAAA,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAa,EAAE,GAAG,CAAC,CAAC;AACtE,gCAAA,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;6BACnC;4BACD,MAAM;yBACT;qBACJ;iBACJ;aACJ;AACD,YAAA,sBAAsB,CAAC,OAAO,GAAG,MAAM,CAAC;SAC3C;;AAGD,QAAA,IAAI,eAAe,KAAK,OAAO,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,OAAO,IAAI,sBAAsB,CAAC,OAAO,KAAK,OAAO,EAAE;;gBAE/E,MAAM,uBAAuB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7E,IAAI,uBAAuB,EAAE;AACzB,oBAAA,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;AAChF,oBAAA,IAAI,uBAAuB,CAAC,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,GAAG,kBAAkB,EAAE;wBAC1F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE;AACjC,4BAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC;gCAC7B,GAAG,KAAK,CAAC,OAAO,EAAE;gCAClB,CAAC,eAAe,GAAG,CAAC,EAAE,YAAY,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC3D,6BAAA,CAAC,CAAC;yBACN;wBACD,QAAQ,CAAC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,CAAC;wBACzD,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;AACvD,wBAAA,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;qBAC9B;iBACJ;;AAGD,gBAAA,KAAK,IAAI,GAAG,GAAG,eAAe,EAAE,GAAG,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE;oBAC9D,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACrE,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAgB,CAAC;wBACpE,IACI,qBAAqB,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,IAAI;AAC9E,4BAAA,gBAAgB,EAClB;AACE,4BAAA,IAAI,GAAG,KAAK,iBAAiB,CAAC,OAAO,EAAE;AACnC,gCAAA,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAa,EAAE,GAAG,CAAC,CAAC;AACtE,gCAAA,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC;6BACnC;4BACD,MAAM;yBACT;qBACJ;iBACJ;aACJ;AAED,YAAA,sBAAsB,CAAC,OAAO,GAAG,OAAO,CAAC;SAC5C;AACL,KAAC,EACD,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,CAAC,CACzF,CAAC;IAEF,eAAe,CAAC,MAAK;;QAEjB,IAAI,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE;AACxC,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,CAC5B,CAAC,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CACvF,CAAC;AACF,YAAA,QAAQ,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;YACtC,QAAQ,CAAC,OAAO,CAAC,eAAe,GAAG,oBAAoB,GAAG,CAAC,CAAC;AAC5D,YAAA,QAAQ,CAAC,OAAO,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAC9C,YAAA,iBAAiB,CAAC,OAAO,GAAG,CAAC,CAAC;AAC9B,YAAA,iBAAiB,CAAC,OAAO,GAAG,CAAC,CAAC;AAC9B,YAAA,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;AACtC,YAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;AAC9B,gBAAA,IAAI,KAAK,UAAU;AACf,sBAAE,CAAA,WAAA,EAAc,iBAAiB,CAAC,OAAO,CAAK,GAAA,CAAA;AAC9C,sBAAE,CAAc,WAAA,EAAA,iBAAiB,CAAC,OAAO,KAAK,CAAC;AAEvD,YAAA,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC9B;KACJ,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/C,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,KAAK,CAAC,CAAC;SACjB;AAED,QAAA,MAAM,eAAe,GAAG,CAAC,KAAiB,KAAI;AAC1C,YAAA,IAAI,KAAK,CAAC,UAAU,EAAE;gBAClB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;aAC3B;AACL,SAAC,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAK;YAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAA,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,YAAA,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAa,CAAC,CAAC;AACrG,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACvD,QAAA,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAC/D,QAAA,OAAO,MAAK;AACR,YAAA,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAC1D,YAAA,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AACtE,SAAC,CAAC;KACL,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,MAAK;QACX,MAAM,gBAAgB,GAAG,MAAK;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC1D,OAAO;aACV;AAED,YAAA,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAgB,CAAC;YAC1F,MAAM,GAAG,GACL,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI;AAC7D,gBAAA,WAAW,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;AAE7C,YAAA,IAAI,GAAG,KAAK,CAAC,EAAE;AACX,gBAAA,iBAAiB,CAAC,OAAO,IAAI,GAAG,CAAC;gBACjC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEnD,gBAAA,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7B,gBAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,iBAAiB,CAAC,OAAO,CAAA,GAAA,CAAK,CAAC;aACrF;AACL,SAAC,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACpC,YAAA,IAAI,IAAI,KAAK,YAAY,EAAE;AACvB,gBAAA,gBAAgB,EAAE,CAAC;gBACnB,OAAO;aACV;AAED,YAAA,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAa,CAAC,CAAC;SACpG,EAAE,EAAE,CAAC,CAAC;AACP,QAAA,OAAO,kBAAkB,CAAC;YACtB,IAAI;YACJ,UAAU;AACV,YAAA,WAAW,EAAE,CAAC,KAAK,KAAI;gBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE;oBAC9C,OAAO;iBACV;;AAGD,gBAAA,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,CAAC,eAAe,EAAE,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE;oBACnG,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1D,IACI,IAAI,KAAK,UAAU;AACnB,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM;AACxC,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EACvC;AACE,wBAAA,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;qBACzC;oBACD,IACI,IAAI,KAAK,YAAY;AACrB,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK;AACvC,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EACxC;AACE,wBAAA,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;qBACzC;iBACJ;qBAAM;AACH,oBAAA,iBAAiB,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;iBAC5C;AAED,gBAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;AAC9B,oBAAA,IAAI,KAAK,UAAU;AACf,0BAAE,CAAA,WAAA,EAAc,iBAAiB,CAAC,OAAO,CAAK,GAAA,CAAA;AAC9C,0BAAE,CAAc,WAAA,EAAA,iBAAiB,CAAC,OAAO,KAAK,CAAC;AAEvD,gBAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,oBAAA,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;iBACrD;qBAAM;oBACH,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;iBAC7E;aACJ;YACD,UAAU,EAAE,MAAK;AACb,gBAAA,IAAI,IAAI,KAAK,YAAY,EAAE;AACvB,oBAAA,gBAAgB,EAAE,CAAC;oBACnB,OAAO;iBACV;AACD,gBAAA,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAa,CAAC,CAAC;aACpG;AACD,YAAA,WAAW,EAAE,CAAC,KAAK,KAAI;gBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE;oBAC9C,OAAO;iBACV;gBAED,KAAK,CAAC,cAAc,EAAE,CAAC;;AAGvB,gBAAA,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,CAAC,eAAe,EAAE,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE;oBACnG,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1D,IACI,IAAI,KAAK,UAAU;AACnB,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM;AACxC,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EACvC;AACE,wBAAA,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;qBACzC;oBACD,IACI,IAAI,KAAK,YAAY;AACrB,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK;AACvC,wBAAA,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EACxC;AACE,wBAAA,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;qBACzC;iBACJ;qBAAM;AACH,oBAAA,iBAAiB,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;iBAC5C;AAED,gBAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;AAC9B,oBAAA,IAAI,KAAK,UAAU;AACf,0BAAE,CAAA,WAAA,EAAc,iBAAiB,CAAC,OAAO,CAAK,GAAA,CAAA;AAC9C,0BAAE,CAAc,WAAA,EAAA,iBAAiB,CAAC,OAAO,KAAK,CAAC;AAEvD,gBAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,oBAAA,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;iBACrD;qBAAM;oBACH,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;iBAC7E;AACD,gBAAA,iBAAiB,EAAE,CAAC;aACvB;AACJ,SAAA,CAAC,CAAC;KACN,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7B,eAAe,CAAC,MAAK;QACjB,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACxC,OAAO;SACV;AAED,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;YAChC,qBAAqB,CAAC,OAAO,GAAG;AAC5B,gBAAA,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;gBACjC,MAAM,EAAE,cAAc,CAAC,MAAM;AAC7B,gBAAA,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU;gBACnC,KAAK,EAAE,cAAc,CAAC,KAAK;aAC9B,CAAC;SACL;QAED,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QACrF,MAAM,wBAAwB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/E,MAAM,uBAAuB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7E,QAAA,IAAI,wBAAwB,IAAI,uBAAuB,EAAE;;YAErD,IAAI,oBAAoB,EAAE;AACtB,gBAAA,QAAQ,CAAC,OAAO,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAC9C,gBAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,oBAAA,iBAAiB,CAAC,OAAO,IAAI,wBAAwB,CAAC,YAAY,CAAC;AACnE,oBAAA,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE;wBAChC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,YAAY,CAAC;qBACtE;AACD,oBAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,iBAAiB,CAAC,OAAO,CAAA,GAAA,CAAK,CAAC;iBACrF;qBAAM;AACH,oBAAA,iBAAiB,CAAC,OAAO,IAAI,wBAAwB,CAAC,WAAW,CAAC;AAClE,oBAAA,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE;wBAChC,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,wBAAwB,CAAC,WAAW,CAAC;qBACtE;AACD,oBAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,WAAA,EAAc,iBAAiB,CAAC,OAAO,CAAA,GAAA,CAAK,CAAC;iBACrF;aACJ;;YAGD,IAAI,gBAAgB,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE;AAClE,gBAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,oBAAA,MAAM,GAAG,GACL,iBAAiB,CAAC,OAAO;wBACzB,qBAAqB,CAAC,OAAO,CAAC,GAAG;AACjC,wBAAA,wBAAwB,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;AACzD,oBAAA,MAAM,MAAM,GACR,iBAAiB,CAAC,OAAO;wBACzB,qBAAqB,CAAC,OAAO,CAAC,MAAM;AACpC,wBAAA,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;AAC3D,oBAAA,aAAa,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;iBAC9D;qBAAM;AACH,oBAAA,MAAM,IAAI,GACN,iBAAiB,CAAC,OAAO;wBACzB,qBAAqB,CAAC,OAAO,CAAC,IAAI;AAClC,wBAAA,wBAAwB,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;AAE1D,oBAAA,MAAM,KAAK,GACP,iBAAiB,CAAC,OAAO;wBACzB,qBAAqB,CAAC,OAAO,CAAC,KAAK;AACnC,wBAAA,uBAAuB,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAE1D,oBAAA,aAAa,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;iBAC9D;aACJ;SACJ;KACJ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAErB,IAAA,QACIA,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,UAAU,EAAU,SAAA,EAAA,gCAAgC,EAClG,QAAA,EAAA,CAAA,IAAI,KAAK,UAAU;gBAChB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,MAClDC,GAAC,CAAA,QAAQ,cACJ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,gBAAgB,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,IAChFA,GAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAG,QAAA,EAAA,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,EAAA,CAAO,KAExEA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,MAAM,EAAE,CAAG,EAAA,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,IAAI,EAAE,EAAA,CAAI,CACpF,EALU,EAAA,CAAA,EAAG,IAAI,CAAE,CAAA,CAMb,CACd,CAAC,EAEL,IAAI,KAAK,YAAY,KAClBA,GAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9C,QAAA,EAAA,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,MACnDA,GAAA,CAAC,QAAQ,EACJ,EAAA,QAAA,EAAA,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,gBAAgB,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,IAChFA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,4BAA4B,EAC9E,QAAA,EAAA,cAAc,CAAC,IAAI,EAAE,GAAG,KAAK,iBAAiB,CAAC,OAAO,CAAC,GACtD,KAENA,GACI,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE;AACH,4BAAA,KAAK,EAAE,CAAA,EAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAI,EAAA,CAAA;AAC3D,4BAAA,UAAU,EAAE,CAAC;AAChB,yBAAA,EAAA,CACH,CACL,EAAA,EAZU,CAAG,EAAA,IAAI,CAAE,CAAA,CAab,CACd,CAAC,EACA,CAAA,CACT,CACC,EAAA,CAAA,EACR;AACN;;;;"}
|
|
1
|
+
{"version":3,"file":"InfiniteScroll.js","sources":["src/InfiniteScroll.tsx"],"sourcesContent":["import {\n Fragment,\n ReactElement,\n RefCallback,\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { debounce } from '@hh.ru/magritte-common-func-utils';\nimport { initScrollHandlers } from '@hh.ru/magritte-internal-custom-scroll';\nimport { AsyncDataContext } from '@hh.ru/magritte-ui-date-picker/AsyncDataContext';\n\nimport styles from './date-picker.less';\n\ninterface InfiniteScrollState<ItemType> {\n items: Map<number, ItemType>;\n firstRenderedKey: number;\n lastRenderedKey: number;\n needScrollCorrection: boolean;\n}\n\ninterface InfiniteScrollProps<ItemType> {\n initialRenderedItems: number;\n /** Высота невидимой части айтема, при достижении которой нужно рендерить еще один айтем за ним */\n invisibleThreshold: number;\n /** Высота видимой части айтема, при достижении которой вызывается колбек onVisibleItemChange с этим айтемом в параметрах */\n visibleThreshold: number;\n makeItemFunc: (key: number) => ItemType;\n renderItemFunc: (item: ItemType, isFocusAvailable: boolean) => ReactElement;\n onVisibleItemChange: (item: ItemType, key: number) => void;\n axis?: 'horizontal' | 'vertical';\n onTouchEnd?: (item: ItemType) => void;\n}\n\nexport const InfiniteScroll = <ItemType,>({\n initialRenderedItems,\n invisibleThreshold,\n visibleThreshold,\n makeItemFunc,\n renderItemFunc,\n onVisibleItemChange,\n axis = 'vertical',\n onTouchEnd,\n}: InfiniteScrollProps<ItemType>): ReactElement => {\n const stateRef = useRef<InfiniteScrollState<ItemType>>({\n items: new Map([...Array(initialRenderedItems).keys()].map((index) => [index, makeItemFunc(index)])),\n firstRenderedKey: 0,\n lastRenderedKey: initialRenderedItems - 1,\n needScrollCorrection: false,\n });\n const touchEndRefCallback = useRef(onTouchEnd);\n touchEndRefCallback.current = onTouchEnd;\n const [stateKey, setStateKey] = useState(0);\n\n const asyncDataContext = useContext(AsyncDataContext);\n const boundariesRef = useRef<{ top: number; bottom: number; left: number; right: number } | null>(null);\n const itemElementsRef = useRef<Map<number, HTMLDivElement>>(new Map());\n const translateCoordRef = useRef(0);\n const visibleAreaMetricsRef = useRef<{ top: number; bottom: number; left: number; right: number } | null>(null);\n const visibleItemKeyRef = useRef(0);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const prevScrollDirectionRef = useRef<string | null>(null);\n const animatedState = useRef<boolean>(false);\n\n const itemRefCallbacks = useMemo<Map<number, RefCallback<HTMLDivElement>>>(() => {\n return new Map(\n [...stateRef.current.items.entries()].map(([key]) => {\n const callback = ((ref) => {\n if (ref !== null) {\n itemElementsRef.current.set(key, ref);\n }\n }) as RefCallback<HTMLDivElement>;\n return [key, callback];\n })\n );\n }, [stateKey]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const addItemsIfNeeded = useCallback(\n (scrollDirection: 'up' | 'down' | 'left' | 'right') => {\n if (!visibleAreaMetricsRef.current) {\n return;\n }\n\n const { items, firstRenderedKey, lastRenderedKey } = stateRef.current;\n\n // скролл вверх\n if (scrollDirection === 'up') {\n // самый верхний видимый айтем близко к верхнему краю экрана — нужно рендерить еще один сверху\n const firstRenderedItemElement = itemElementsRef.current.get(firstRenderedKey);\n if (firstRenderedItemElement) {\n const firstRenderedItemMetrics = firstRenderedItemElement.getBoundingClientRect();\n if (visibleAreaMetricsRef.current.top - firstRenderedItemMetrics.top < invisibleThreshold) {\n if (!items.has(firstRenderedKey - 1)) {\n stateRef.current.items = new Map([\n [firstRenderedKey - 1, makeItemFunc(firstRenderedKey - 1)],\n ...items.entries(),\n ]);\n stateRef.current.needScrollCorrection = true;\n }\n stateRef.current.firstRenderedKey = firstRenderedKey - 1;\n stateRef.current.lastRenderedKey = lastRenderedKey - 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший верхнюю границу видимой области запоминаем как visible item\n for (let key = firstRenderedKey; key < lastRenderedKey; key += 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n itemElement.getBoundingClientRect().bottom - visibleAreaMetricsRef.current.top >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n\n // скролл вниз\n if (scrollDirection === 'down') {\n // самый нижний видимый айтем близко к нижнему краю экрана — нужно рендерить еще один снизу\n const lastRenderedItemElement = itemElementsRef.current.get(lastRenderedKey);\n if (lastRenderedItemElement) {\n const lastRenderedItemMetrics = lastRenderedItemElement.getBoundingClientRect();\n if (lastRenderedItemMetrics.bottom - visibleAreaMetricsRef.current.bottom < invisibleThreshold) {\n if (!items.has(lastRenderedKey + 1)) {\n stateRef.current.items = new Map([\n ...items.entries(),\n [lastRenderedKey + 1, makeItemFunc(lastRenderedKey + 1)],\n ]);\n }\n stateRef.current.firstRenderedKey = firstRenderedKey + 1;\n stateRef.current.lastRenderedKey = lastRenderedKey + 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший нижнюю границу видимой области запоминаем как visible item\n for (let key = lastRenderedKey; key > firstRenderedKey; key -= 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n visibleAreaMetricsRef.current.bottom - itemElement.getBoundingClientRect().top >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n\n // скролл влево\n if (scrollDirection === 'left') {\n if (!prevScrollDirectionRef.current || prevScrollDirectionRef.current === 'left') {\n // самый левый видимый айтем близко к левому краю экрана — нужно рендерить еще один слева\n const firstRenderedItemElement = itemElementsRef.current.get(firstRenderedKey);\n if (firstRenderedItemElement) {\n const firstRenderedItemMetrics = firstRenderedItemElement.getBoundingClientRect();\n if (visibleAreaMetricsRef.current.left - firstRenderedItemMetrics.left < invisibleThreshold) {\n if (!items.has(firstRenderedKey - 1)) {\n stateRef.current.items = new Map([\n [firstRenderedKey - 1, makeItemFunc(firstRenderedKey - 1)],\n ...items.entries(),\n ]);\n stateRef.current.needScrollCorrection = true;\n }\n stateRef.current.firstRenderedKey = firstRenderedKey - 1;\n stateRef.current.lastRenderedKey = lastRenderedKey - 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший левую границу видимой области запоминаем как visible item\n for (let key = firstRenderedKey; key < lastRenderedKey; key += 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n itemElement.getBoundingClientRect().right - visibleAreaMetricsRef.current.left >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n prevScrollDirectionRef.current = 'left';\n }\n\n // скролл вправо\n if (scrollDirection === 'right') {\n if (!prevScrollDirectionRef.current || prevScrollDirectionRef.current === 'right') {\n // самый правый видимый айтем близко к правому краю экрана — нужно рендерить еще один снизу\n const lastRenderedItemElement = itemElementsRef.current.get(lastRenderedKey);\n if (lastRenderedItemElement) {\n const lastRenderedItemMetrics = lastRenderedItemElement.getBoundingClientRect();\n if (lastRenderedItemMetrics.right - visibleAreaMetricsRef.current.right < invisibleThreshold) {\n if (!items.has(lastRenderedKey + 1)) {\n stateRef.current.items = new Map([\n ...items.entries(),\n [lastRenderedKey + 1, makeItemFunc(lastRenderedKey + 1)],\n ]);\n }\n stateRef.current.firstRenderedKey = firstRenderedKey + 1;\n stateRef.current.lastRenderedKey = lastRenderedKey + 1;\n setStateKey(Math.random());\n }\n }\n\n // последний пересекший правую границу видимой области запоминаем как visible item\n for (let key = lastRenderedKey; key > firstRenderedKey; key -= 1) {\n if (stateRef.current.items.has(key) && itemElementsRef.current.has(key)) {\n const itemElement = itemElementsRef.current.get(key) as HTMLElement;\n if (\n visibleAreaMetricsRef.current.right - itemElement.getBoundingClientRect().left >\n visibleThreshold\n ) {\n if (key !== visibleItemKeyRef.current) {\n onVisibleItemChange(stateRef.current.items.get(key) as ItemType, key);\n visibleItemKeyRef.current = key;\n }\n break;\n }\n }\n }\n }\n\n prevScrollDirectionRef.current = 'right';\n }\n },\n [invisibleThreshold, visibleThreshold, makeItemFunc, onVisibleItemChange, setStateKey]\n );\n\n useLayoutEffect(() => {\n // сбрасываем стейты\n if (stateRef.current && wrapperRef.current) {\n stateRef.current.items = new Map(\n [...Array(initialRenderedItems).keys()].map((index) => [index, makeItemFunc(index)])\n );\n stateRef.current.firstRenderedKey = 0;\n stateRef.current.lastRenderedKey = initialRenderedItems - 1;\n stateRef.current.needScrollCorrection = false;\n visibleItemKeyRef.current = 0;\n translateCoordRef.current = 0;\n prevScrollDirectionRef.current = null;\n wrapperRef.current.style.transform =\n axis === 'vertical'\n ? `translateY(${translateCoordRef.current}px)`\n : `translateX(${translateCoordRef.current}px)`;\n\n setStateKey(Math.random());\n }\n }, [makeItemFunc, initialRenderedItems, axis]);\n\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) {\n return void 0;\n }\n\n const handleTouchMove = (event: TouchEvent) => {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n const handleTransitionEnd = () => {\n wrapper.classList.remove(styles.animated);\n animatedState.current = false;\n touchEndRefCallback.current?.(stateRef.current.items.get(visibleItemKeyRef.current) as ItemType);\n };\n\n wrapper.addEventListener('touchmove', handleTouchMove);\n wrapper.addEventListener('transitionend', handleTransitionEnd);\n return () => {\n wrapper.removeEventListener('touchmove', handleTouchMove);\n wrapper.removeEventListener('transitionend', handleTransitionEnd);\n };\n }, []);\n\n useEffect(() => {\n const animateScrollEnd = () => {\n if (!wrapperRef.current || !wrapperRef.current.parentElement) {\n return;\n }\n\n const itemElement = itemElementsRef.current.get(visibleItemKeyRef.current) as HTMLElement;\n const dif =\n wrapperRef.current.parentElement.getBoundingClientRect().left -\n itemElement.getBoundingClientRect().left;\n\n if (dif !== 0) {\n translateCoordRef.current += dif;\n wrapperRef.current?.classList.add(styles.animated);\n\n animatedState.current = true;\n wrapperRef.current.style.transform = `translateX(${translateCoordRef.current}px)`;\n }\n };\n\n const debouncedCallback = debounce(() => {\n if (axis === 'horizontal') {\n animateScrollEnd();\n return;\n }\n\n touchEndRefCallback.current?.(stateRef.current.items.get(visibleItemKeyRef.current) as ItemType);\n }, 60);\n return initScrollHandlers({\n axis,\n wrapperRef,\n onTouchMove: (event) => {\n if (!wrapperRef.current || animatedState.current) {\n return;\n }\n\n // если достигнут лимит лоадеров, не даем скроллить за границы первого и последнего айтема\n if (asyncDataContext !== null && asyncDataContext.isLimitExceeded() && boundariesRef.current !== null) {\n const translate = translateCoordRef.current + event.delta;\n if (\n axis === 'vertical' &&\n translate > boundariesRef.current.bottom &&\n translate < boundariesRef.current.top\n ) {\n translateCoordRef.current = translate;\n }\n if (\n axis === 'horizontal' &&\n translate > boundariesRef.current.right &&\n translate < boundariesRef.current.left\n ) {\n translateCoordRef.current = translate;\n }\n } else {\n translateCoordRef.current += event.delta;\n }\n\n wrapperRef.current.style.transform =\n axis === 'vertical'\n ? `translateY(${translateCoordRef.current}px)`\n : `translateX(${translateCoordRef.current}px)`;\n\n if (axis === 'vertical') {\n addItemsIfNeeded(event.delta > 0 ? 'up' : 'down');\n } else {\n event.delta !== 0 && addItemsIfNeeded(event.delta > 0 ? 'left' : 'right');\n }\n },\n onTouchEnd: () => {\n if (axis === 'horizontal') {\n animateScrollEnd();\n return;\n }\n touchEndRefCallback.current?.(stateRef.current.items.get(visibleItemKeyRef.current) as ItemType);\n },\n onWheelMove: (event) => {\n if (!wrapperRef.current || animatedState.current) {\n return;\n }\n\n event.preventDefault();\n\n // если достигнут лимит лоадеров, не даем скроллить за границы первого и последнего айтема\n if (asyncDataContext !== null && asyncDataContext.isLimitExceeded() && boundariesRef.current !== null) {\n const translate = translateCoordRef.current + event.delta;\n if (\n axis === 'vertical' &&\n translate > boundariesRef.current.bottom &&\n translate < boundariesRef.current.top\n ) {\n translateCoordRef.current = translate;\n }\n if (\n axis === 'horizontal' &&\n translate > boundariesRef.current.right &&\n translate < boundariesRef.current.left\n ) {\n translateCoordRef.current = translate;\n }\n } else {\n translateCoordRef.current += event.delta;\n }\n\n wrapperRef.current.style.transform =\n axis === 'vertical'\n ? `translateY(${translateCoordRef.current}px)`\n : `translateX(${translateCoordRef.current}px)`;\n\n if (axis === 'vertical') {\n addItemsIfNeeded(event.delta > 0 ? 'up' : 'down');\n } else {\n event.delta !== 0 && addItemsIfNeeded(event.delta > 0 ? 'left' : 'right');\n }\n debouncedCallback();\n },\n });\n }, [addItemsIfNeeded, axis]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (!visualViewport || !wrapperRef.current) {\n return;\n }\n\n if (!visibleAreaMetricsRef.current) {\n visibleAreaMetricsRef.current = {\n top: wrapperRef.current.offsetTop,\n bottom: visualViewport.height,\n left: wrapperRef.current.offsetLeft,\n right: visualViewport.width,\n };\n }\n\n const { firstRenderedKey, lastRenderedKey, needScrollCorrection } = stateRef.current;\n const firstRenderedItemElement = itemElementsRef.current.get(firstRenderedKey);\n const lastRenderedItemElement = itemElementsRef.current.get(lastRenderedKey);\n if (firstRenderedItemElement && lastRenderedItemElement) {\n // если мы добавили айтем сверху, чтобы скролл не прыгал, компенсируем его на высоту самого верхнего айтема\n if (needScrollCorrection) {\n stateRef.current.needScrollCorrection = false;\n if (axis === 'vertical') {\n translateCoordRef.current -= firstRenderedItemElement.clientHeight;\n if (boundariesRef.current !== null) {\n boundariesRef.current.top -= firstRenderedItemElement.clientHeight;\n }\n wrapperRef.current.style.transform = `translateY(${translateCoordRef.current}px)`;\n } else {\n translateCoordRef.current -= firstRenderedItemElement.clientWidth;\n if (boundariesRef.current !== null) {\n boundariesRef.current.left -= firstRenderedItemElement.clientWidth;\n }\n wrapperRef.current.style.transform = `translateX(${translateCoordRef.current}px)`;\n }\n }\n\n // если достигнут лимит лоадеров, запоминаем границы первого и последнего айтема и не даем скроллить за них\n if (asyncDataContext !== null && !asyncDataContext.isLimitExceeded()) {\n if (axis === 'vertical') {\n const top =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.top -\n firstRenderedItemElement.getBoundingClientRect().top;\n const bottom =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.bottom -\n lastRenderedItemElement.getBoundingClientRect().bottom;\n boundariesRef.current = { top, bottom, left: 0, right: 0 };\n } else {\n const left =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.left -\n firstRenderedItemElement.getBoundingClientRect().left;\n\n const right =\n translateCoordRef.current +\n visibleAreaMetricsRef.current.right -\n lastRenderedItemElement.getBoundingClientRect().right;\n\n boundariesRef.current = { left, right, top: 0, bottom: 0 };\n }\n }\n }\n }, [stateKey, axis]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div className={styles.infiniteScrollWrapper} ref={wrapperRef} data-qa=\"date-picker-infinite-container\">\n {axis === 'vertical' &&\n [...stateRef.current.items.entries()].map(([key, item]) => (\n <Fragment key={`${item}`}>\n {key >= stateRef.current.firstRenderedKey && key <= stateRef.current.lastRenderedKey ? (\n <div ref={itemRefCallbacks.get(key)}>{renderItemFunc(item, false)}</div>\n ) : (\n <div style={{ height: `${itemElementsRef.current.get(key)?.clientHeight}px` }} />\n )}\n </Fragment>\n ))}\n\n {axis === 'horizontal' && (\n <div style={{ display: 'flex', flexWrap: 'nowrap' }}>\n {[...stateRef.current.items.entries()].map(([key, item]) => (\n <Fragment key={`${item}`}>\n {key >= stateRef.current.firstRenderedKey && key <= stateRef.current.lastRenderedKey ? (\n <div ref={itemRefCallbacks.get(key)} className={styles.infiniteScrollItemHorizontal}>\n {renderItemFunc(item, key === visibleItemKeyRef.current)}\n </div>\n ) : (\n <div\n style={{\n width: `${itemElementsRef.current.get(key)?.clientWidth}px`,\n flexShrink: 0,\n }}\n />\n )}\n </Fragment>\n ))}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { useDatePickerControls } from '../useDatePickerControls.js';
|
|
|
14
14
|
import { useModifierDates } from '../useModifierDates.js';
|
|
15
15
|
import { useDisplayDate } from '../utils.js';
|
|
16
16
|
import { Divider } from '@hh.ru/magritte-ui-divider';
|
|
17
|
-
import { s as styles } from '../date-picker-
|
|
17
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
18
18
|
import 'react';
|
|
19
19
|
import '../AsyncDataContext.js';
|
|
20
20
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -6,7 +6,7 @@ import { isToday, format, isSameMonth } 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-q91q_We0.js';
|
|
10
10
|
import '../AsyncDataContext.js';
|
|
11
11
|
import '../useModifierDates.js';
|
|
12
12
|
import 'date-fns/constants';
|
|
@@ -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-q91q_We0.js';
|
|
17
17
|
import 'classnames';
|
|
18
18
|
import '../AsyncDataContext.js';
|
|
19
19
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -10,7 +10,7 @@ import '@hh.ru/magritte-ui-breakpoint';
|
|
|
10
10
|
import '../AsyncDataLoader.js';
|
|
11
11
|
import '../AsyncDataContext.js';
|
|
12
12
|
import '@hh.ru/magritte-ui-loader';
|
|
13
|
-
import '../date-picker-
|
|
13
|
+
import '../date-picker-q91q_We0.js';
|
|
14
14
|
import '../AsyncDataStore.js';
|
|
15
15
|
import '../useModifierDates.js';
|
|
16
16
|
import '../Header.js';
|
|
@@ -13,7 +13,7 @@ import { useDatePickerControls } from '../useDatePickerControls.js';
|
|
|
13
13
|
import { useModifierDates } from '../useModifierDates.js';
|
|
14
14
|
import { useDisplayDate } from '../utils.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-q91q_We0.js';
|
|
17
17
|
import '../AsyncDataContext.js';
|
|
18
18
|
import '@hh.ru/magritte-ui-loader';
|
|
19
19
|
import '@hh.ru/magritte-common-use-disabled';
|
|
@@ -11,7 +11,7 @@ import 'date-fns';
|
|
|
11
11
|
import '../AsyncDataLoader.js';
|
|
12
12
|
import '../AsyncDataContext.js';
|
|
13
13
|
import '@hh.ru/magritte-ui-loader';
|
|
14
|
-
import '../date-picker-
|
|
14
|
+
import '../date-picker-q91q_We0.js';
|
|
15
15
|
import '../AsyncDataStore.js';
|
|
16
16
|
import '../useModifierDates.js';
|
|
17
17
|
import '../utils.js';
|
|
@@ -7,7 +7,7 @@ import { daysInWeek } from 'date-fns/constants';
|
|
|
7
7
|
import { useIntervalPicker } from '../useIntervalPicker.js';
|
|
8
8
|
import { useModifierDatesFunc } from '../useModifierDatesFunc.js';
|
|
9
9
|
import { useDayPickerDates } from '../utils.js';
|
|
10
|
-
import { s as styles } from '../date-picker-
|
|
10
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
11
11
|
import '@hh.ru/magritte-common-use-disabled';
|
|
12
12
|
import '../AsyncDataContext.js';
|
|
13
13
|
import '../useModifierDates.js';
|
|
@@ -11,7 +11,7 @@ import { Weekdays } from '../Weekdays.js';
|
|
|
11
11
|
import { useModifierDates } from '../useModifierDates.js';
|
|
12
12
|
import { useDisplayDate } from '../utils.js';
|
|
13
13
|
import { Divider } from '@hh.ru/magritte-ui-divider';
|
|
14
|
-
import { s as styles } from '../date-picker-
|
|
14
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
15
15
|
import 'classnames';
|
|
16
16
|
import '../AsyncDataContext.js';
|
|
17
17
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -40,7 +40,7 @@ headerMonthFormat, locale, showDivider = true, showHeader = true, showWeekdays =
|
|
|
40
40
|
const renderDate = useCallback((date, isFocusAvailable) => {
|
|
41
41
|
return (jsxs(AsyncDataLoader, { children: [jsx(Header, { calendar: "day", displayDate: date, activeHeader: false, alignHeader: "left", headerMonthFormat: headerMonthFormat, locale: locale, showControls: false }), jsx(IntervalDayPicker, { displayDate: date, selectionStart: selectionStart, selectionEnd: selectionEnd, onStartSelect: onStartSelect, onEndSelect: onEndSelect, showAdjacentDays: false, minDate: minDate, maxDate: maxDate, isFocusAvailable: isFocusAvailable, modifierDatesMap: modifierDatesMap, renderDay: renderDay })] }));
|
|
42
42
|
},
|
|
43
|
-
// eslint-disable-next-line
|
|
43
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
44
|
[
|
|
45
45
|
headerMonthFormat,
|
|
46
46
|
locale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileMultiLayoutIntervalDatePicker.js","sources":["src/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { add } from 'date-fns';\n\nimport { DateType, IntervalDatePickerProps } from '@hh.ru/magritte-ui-date-picker';\nimport { AsyncDataLoader } from '@hh.ru/magritte-ui-date-picker/AsyncDataLoader';\nimport { AsyncDataStore } from '@hh.ru/magritte-ui-date-picker/AsyncDataStore';\nimport { Header } from '@hh.ru/magritte-ui-date-picker/Header';\nimport { InfiniteScroll } from '@hh.ru/magritte-ui-date-picker/InfiniteScroll';\nimport { IntervalDayPicker } from '@hh.ru/magritte-ui-date-picker/IntervalDatePicker/IntervalDayPicker';\nimport { Weekdays } from '@hh.ru/magritte-ui-date-picker/Weekdays';\nimport { useModifierDates } from '@hh.ru/magritte-ui-date-picker/useModifierDates';\nimport { useDisplayDate } from '@hh.ru/magritte-ui-date-picker/utils';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\n\nimport styles from '../date-picker.less';\n\nexport const MobileMultiLayoutIntervalDatePicker: FC<Omit<IntervalDatePickerProps, 'layout'>> = ({\n // настройки функциональности\n displayDate: _displayDate,\n selectionStart,\n selectionEnd,\n minDate,\n maxDate,\n // колбеки\n onStartSelect,\n onEndSelect,\n // настройки внешнего вида\n headerMonthFormat,\n locale,\n showDivider = true,\n showHeader = true,\n showWeekdays = true,\n modifierDates,\n modifierDatesFunc,\n renderDay,\n}) => {\n const displayDate = useDisplayDate(_displayDate, selectionStart);\n const makeDate = useCallback((index: number) => add(displayDate, { months: index }), [displayDate]);\n const stickyRef = useRef<HTMLDivElement | null>(null);\n const [visibleDate, setVisibleDate] = useState(displayDate);\n\n const modifierDatesMap = useModifierDates(modifierDates);\n\n const renderDate = useCallback(\n (date: DateType, isFocusAvailable?: boolean) => {\n return (\n <AsyncDataLoader>\n <Header\n calendar=\"day\"\n displayDate={date}\n activeHeader={false}\n alignHeader=\"left\"\n headerMonthFormat={headerMonthFormat}\n locale={locale}\n showControls={false}\n />\n <IntervalDayPicker\n displayDate={date}\n selectionStart={selectionStart}\n selectionEnd={selectionEnd}\n onStartSelect={onStartSelect}\n onEndSelect={onEndSelect}\n showAdjacentDays={false}\n minDate={minDate}\n maxDate={maxDate}\n isFocusAvailable={isFocusAvailable}\n modifierDatesMap={modifierDatesMap}\n renderDay={renderDay}\n />\n </AsyncDataLoader>\n );\n },\n // eslint-disable-next-line
|
|
1
|
+
{"version":3,"file":"MobileMultiLayoutIntervalDatePicker.js","sources":["src/IntervalDatePicker/MobileMultiLayoutIntervalDatePicker.tsx"],"sourcesContent":["import { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { add } from 'date-fns';\n\nimport { DateType, IntervalDatePickerProps } from '@hh.ru/magritte-ui-date-picker';\nimport { AsyncDataLoader } from '@hh.ru/magritte-ui-date-picker/AsyncDataLoader';\nimport { AsyncDataStore } from '@hh.ru/magritte-ui-date-picker/AsyncDataStore';\nimport { Header } from '@hh.ru/magritte-ui-date-picker/Header';\nimport { InfiniteScroll } from '@hh.ru/magritte-ui-date-picker/InfiniteScroll';\nimport { IntervalDayPicker } from '@hh.ru/magritte-ui-date-picker/IntervalDatePicker/IntervalDayPicker';\nimport { Weekdays } from '@hh.ru/magritte-ui-date-picker/Weekdays';\nimport { useModifierDates } from '@hh.ru/magritte-ui-date-picker/useModifierDates';\nimport { useDisplayDate } from '@hh.ru/magritte-ui-date-picker/utils';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\n\nimport styles from '../date-picker.less';\n\nexport const MobileMultiLayoutIntervalDatePicker: FC<Omit<IntervalDatePickerProps, 'layout'>> = ({\n // настройки функциональности\n displayDate: _displayDate,\n selectionStart,\n selectionEnd,\n minDate,\n maxDate,\n // колбеки\n onStartSelect,\n onEndSelect,\n // настройки внешнего вида\n headerMonthFormat,\n locale,\n showDivider = true,\n showHeader = true,\n showWeekdays = true,\n modifierDates,\n modifierDatesFunc,\n renderDay,\n}) => {\n const displayDate = useDisplayDate(_displayDate, selectionStart);\n const makeDate = useCallback((index: number) => add(displayDate, { months: index }), [displayDate]);\n const stickyRef = useRef<HTMLDivElement | null>(null);\n const [visibleDate, setVisibleDate] = useState(displayDate);\n\n const modifierDatesMap = useModifierDates(modifierDates);\n\n const renderDate = useCallback(\n (date: DateType, isFocusAvailable?: boolean) => {\n return (\n <AsyncDataLoader>\n <Header\n calendar=\"day\"\n displayDate={date}\n activeHeader={false}\n alignHeader=\"left\"\n headerMonthFormat={headerMonthFormat}\n locale={locale}\n showControls={false}\n />\n <IntervalDayPicker\n displayDate={date}\n selectionStart={selectionStart}\n selectionEnd={selectionEnd}\n onStartSelect={onStartSelect}\n onEndSelect={onEndSelect}\n showAdjacentDays={false}\n minDate={minDate}\n maxDate={maxDate}\n isFocusAvailable={isFocusAvailable}\n modifierDatesMap={modifierDatesMap}\n renderDay={renderDay}\n />\n </AsyncDataLoader>\n );\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n headerMonthFormat,\n locale,\n selectionStart,\n selectionEnd,\n onStartSelect,\n onEndSelect,\n modifierDatesMap,\n renderDay,\n ]\n );\n\n const onVisibleItemChange = useCallback(\n (date: DateType) => {\n setVisibleDate(date);\n },\n [setVisibleDate]\n );\n\n useEffect(() => {\n if (stickyRef.current !== null) {\n stickyRef.current.style.setProperty('--sticky-top', `${Math.floor(stickyRef.current.offsetTop)}px`);\n }\n }, []);\n\n return (\n <div className={styles.layoutVertical}>\n <div className={styles.stickyWrapper} ref={stickyRef}>\n {showHeader && (\n <Header\n calendar=\"month\"\n displayDate={visibleDate}\n activeHeader={false}\n alignHeader=\"left\"\n locale={locale}\n showControls={false}\n />\n )}\n {showWeekdays && <Weekdays locale={locale} />}\n {showDivider && (showHeader || showWeekdays) && <Divider />}\n </div>\n <AsyncDataStore modifierDatesFunc={modifierDatesFunc} parallelLoadersLimit={1}>\n <InfiniteScroll\n initialRenderedItems={5}\n invisibleThreshold={300}\n visibleThreshold={100}\n makeItemFunc={makeDate}\n renderItemFunc={renderDate}\n onVisibleItemChange={onVisibleItemChange}\n />\n </AsyncDataStore>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { useMobileHorizontalScroll } from '../useMobileHorizontalScroll.js';
|
|
|
16
16
|
import { useModifierDates } from '../useModifierDates.js';
|
|
17
17
|
import { useDisplayDate } from '../utils.js';
|
|
18
18
|
import { Divider } from '@hh.ru/magritte-ui-divider';
|
|
19
|
-
import { s as styles } from '../date-picker-
|
|
19
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
20
20
|
import 'classnames';
|
|
21
21
|
import '../AsyncDataContext.js';
|
|
22
22
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -14,7 +14,7 @@ import { useDatePickerControls } from '../useDatePickerControls.js';
|
|
|
14
14
|
import { useModifierDates } from '../useModifierDates.js';
|
|
15
15
|
import { useDisplayDate } from '../utils.js';
|
|
16
16
|
import { Divider } from '@hh.ru/magritte-ui-divider';
|
|
17
|
-
import { s as styles } from '../date-picker-
|
|
17
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
18
18
|
import '../AsyncDataContext.js';
|
|
19
19
|
import '@hh.ru/magritte-ui-loader';
|
|
20
20
|
import 'date-fns';
|
|
@@ -10,7 +10,7 @@ import 'date-fns';
|
|
|
10
10
|
import '../AsyncDataLoader.js';
|
|
11
11
|
import '../AsyncDataContext.js';
|
|
12
12
|
import '@hh.ru/magritte-ui-loader';
|
|
13
|
-
import '../date-picker-
|
|
13
|
+
import '../date-picker-q91q_We0.js';
|
|
14
14
|
import '../AsyncDataStore.js';
|
|
15
15
|
import '../useModifierDates.js';
|
|
16
16
|
import '../Header.js';
|
package/MonthPicker.js
CHANGED
|
@@ -4,7 +4,7 @@ import classnames from 'classnames';
|
|
|
4
4
|
import { eachMonthOfInterval, startOfYear, endOfYear, isSameMonth, format, startOfMonth, endOfMonth } from 'date-fns';
|
|
5
5
|
import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
6
6
|
import { useIntervalPicker } from './useIntervalPicker.js';
|
|
7
|
-
import { s as styles } from './date-picker-
|
|
7
|
+
import { s as styles } from './date-picker-q91q_We0.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
|
|
10
10
|
const MONTHS_IN_ROW = 3;
|
|
@@ -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-q91q_We0.js';
|
|
17
17
|
import 'classnames';
|
|
18
18
|
import '../AsyncDataContext.js';
|
|
19
19
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -14,7 +14,7 @@ import { useDatePickerControls } from '../useDatePickerControls.js';
|
|
|
14
14
|
import { useModifierDates } from '../useModifierDates.js';
|
|
15
15
|
import { useDisplayDate } from '../utils.js';
|
|
16
16
|
import { Divider } from '@hh.ru/magritte-ui-divider';
|
|
17
|
-
import { s as styles } from '../date-picker-
|
|
17
|
+
import { s as styles } from '../date-picker-q91q_We0.js';
|
|
18
18
|
import 'react';
|
|
19
19
|
import '../AsyncDataContext.js';
|
|
20
20
|
import '@hh.ru/magritte-ui-loader';
|
|
@@ -6,7 +6,7 @@ import { isToday, format, isSameMonth } 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-q91q_We0.js';
|
|
10
10
|
import '../AsyncDataContext.js';
|
|
11
11
|
import '../useModifierDates.js';
|
|
12
12
|
import 'date-fns/constants';
|
|
@@ -10,7 +10,7 @@ import '@hh.ru/magritte-ui-breakpoint';
|
|
|
10
10
|
import '../AsyncDataLoader.js';
|
|
11
11
|
import '../AsyncDataContext.js';
|
|
12
12
|
import '@hh.ru/magritte-ui-loader';
|
|
13
|
-
import '../date-picker-
|
|
13
|
+
import '../date-picker-q91q_We0.js';
|
|
14
14
|
import '../AsyncDataStore.js';
|
|
15
15
|
import '../useModifierDates.js';
|
|
16
16
|
import '../Header.js';
|
package/Weekdays.js
CHANGED
|
@@ -2,7 +2,7 @@ import './index.css';
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
5
|
-
import { s as styles } from './date-picker-
|
|
5
|
+
import { s as styles } from './date-picker-q91q_We0.js';
|
|
6
6
|
|
|
7
7
|
const DAYS = [1, 2, 3, 4, 5, 6, 0];
|
|
8
8
|
const Weekdays = ({ locale, stretched }) => {
|
package/YearPicker.js
CHANGED
|
@@ -5,7 +5,7 @@ import { eachYearOfInterval, isSameYear, format, startOfYear, endOfYear } from '
|
|
|
5
5
|
import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
6
6
|
import { useIntervalPicker } from './useIntervalPicker.js';
|
|
7
7
|
import { makeYearsInterval } from './utils.js';
|
|
8
|
-
import { s as styles } from './date-picker-
|
|
8
|
+
import { s as styles } from './date-picker-q91q_We0.js';
|
|
9
9
|
import 'react';
|
|
10
10
|
import 'date-fns/constants';
|
|
11
11
|
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
var styles = {"layout":"magritte-layout___WQLZL_6-1-108","layout-horizontal":"magritte-layout-horizontal___RHMqN_6-1-108","layoutHorizontal":"magritte-layout-horizontal___RHMqN_6-1-108","layout-vertical":"magritte-layout-vertical___Q4III_6-1-108","layoutVertical":"magritte-layout-vertical___Q4III_6-1-108","date-picker":"magritte-date-picker___osO3k_6-1-108","datePicker":"magritte-date-picker___osO3k_6-1-108","date-picker_loading":"magritte-date-picker_loading___oEckY_6-1-108","datePickerLoading":"magritte-date-picker_loading___oEckY_6-1-108","loader":"magritte-loader___npAoS_6-1-108","loading":"magritte-loading___Q08Ci_6-1-108","sticky-wrapper":"magritte-sticky-wrapper___-cscS_6-1-108","stickyWrapper":"magritte-sticky-wrapper___-cscS_6-1-108","infinite-scroll-wrapper":"magritte-infinite-scroll-wrapper___4BFJP_6-1-108","infiniteScrollWrapper":"magritte-infinite-scroll-wrapper___4BFJP_6-1-108","animated":"magritte-animated___R-Rmx_6-1-108","infinite-scroll-item-horizontal":"magritte-infinite-scroll-item-horizontal___eq9oK_6-1-108","infiniteScrollItemHorizontal":"magritte-infinite-scroll-item-horizontal___eq9oK_6-1-108","header-wrapper":"magritte-header-wrapper___w3fTl_6-1-108","headerWrapper":"magritte-header-wrapper___w3fTl_6-1-108","header":"magritte-header___SYp35_6-1-108","header-date-wrapper_center":"magritte-header-date-wrapper_center___6X5Q4_6-1-108","headerDateWrapperCenter":"magritte-header-date-wrapper_center___6X5Q4_6-1-108","header-date-wrapper_left":"magritte-header-date-wrapper_left___hxe8I_6-1-108","headerDateWrapperLeft":"magritte-header-date-wrapper_left___hxe8I_6-1-108","header-date":"magritte-header-date___C28N0_6-1-108","headerDate":"magritte-header-date___C28N0_6-1-108","header-date_active":"magritte-header-date_active___FDSSp_6-1-108","headerDateActive":"magritte-header-date_active___FDSSp_6-1-108","control":"magritte-control___1JqcP_6-1-108","weekdays":"magritte-weekdays___zl5JK_6-1-108","weekday":"magritte-weekday___pDlOC_6-1-108","calendar":"magritte-calendar___X0u7X_6-1-108","calendar_days":"magritte-calendar_days___i0cpU_6-1-108","calendarDays":"magritte-calendar_days___i0cpU_6-1-108","calendar_months":"magritte-calendar_months___t0Vai_6-1-108","calendarMonths":"magritte-calendar_months___t0Vai_6-1-108","calendar_years":"magritte-calendar_years___XUL8j_6-1-108","calendarYears":"magritte-calendar_years___XUL8j_6-1-108","substrate":"magritte-substrate___EC-Ay_6-1-108","item_interval-row-start":"magritte-item_interval-row-start___8AftH_6-1-108","itemIntervalRowStart":"magritte-item_interval-row-start___8AftH_6-1-108","item_interval-start":"magritte-item_interval-start___4AC3w_6-1-108","itemIntervalStart":"magritte-item_interval-start___4AC3w_6-1-108","item_interval-row-end":"magritte-item_interval-row-end___-AIXc_6-1-108","itemIntervalRowEnd":"magritte-item_interval-row-end___-AIXc_6-1-108","item_interval-end":"magritte-item_interval-end___X-E9S_6-1-108","itemIntervalEnd":"magritte-item_interval-end___X-E9S_6-1-108","stretched":"magritte-stretched___KTCV7_6-1-108","item":"magritte-item___U0-5-_6-1-108","text":"magritte-text___pG0UY_6-1-108","text_empty":"magritte-text_empty___4h9m-_6-1-108","textEmpty":"magritte-text_empty___4h9m-_6-1-108","indicatorContainer":"magritte-indicatorContainer___kOpWk_6-1-108","indicator":"magritte-indicator___yy1HA_6-1-108","text_unselected":"magritte-text_unselected___gjuAU_6-1-108","textUnselected":"magritte-text_unselected___gjuAU_6-1-108","text_selected":"magritte-text_selected___a69MP_6-1-108","textSelected":"magritte-text_selected___a69MP_6-1-108","text_disabled":"magritte-text_disabled___I1IYo_6-1-108","textDisabled":"magritte-text_disabled___I1IYo_6-1-108","text_draggable":"magritte-text_draggable___ebUW6_6-1-108","textDraggable":"magritte-text_draggable___ebUW6_6-1-108","text_drag-source":"magritte-text_drag-source___-krSg_6-1-108","textDragSource":"magritte-text_drag-source___-krSg_6-1-108","text_drop-target":"magritte-text_drop-target___mwmCv_6-1-108","textDropTarget":"magritte-text_drop-target___mwmCv_6-1-108","text_today":"magritte-text_today___c3RHg_6-1-108","textToday":"magritte-text_today___c3RHg_6-1-108","item_interval":"magritte-item_interval___RbZXk_6-1-108","itemInterval":"magritte-item_interval___RbZXk_6-1-108","text_holiday":"magritte-text_holiday___532-b_6-1-108","textHoliday":"magritte-text_holiday___532-b_6-1-108","text_active":"magritte-text_active___vNPUG_6-1-108","textActive":"magritte-text_active___vNPUG_6-1-108","text_short-workday":"magritte-text_short-workday___lZl3F_6-1-108","textShortWorkday":"magritte-text_short-workday___lZl3F_6-1-108","text_workday":"magritte-text_workday___2Ok-d_6-1-108","textWorkday":"magritte-text_workday___2Ok-d_6-1-108","text_neutral":"magritte-text_neutral___OA4f9_6-1-108","textNeutral":"magritte-text_neutral___OA4f9_6-1-108","text_positive":"magritte-text_positive___U1G69_6-1-108","textPositive":"magritte-text_positive___U1G69_6-1-108","text_warning":"magritte-text_warning___gNctj_6-1-108","textWarning":"magritte-text_warning___gNctj_6-1-108","text_negative":"magritte-text_negative___LZdIZ_6-1-108","textNegative":"magritte-text_negative___LZdIZ_6-1-108"};
|
|
3
|
+
|
|
4
|
+
export { styles as s };
|
|
5
|
+
//# sourceMappingURL=date-picker-q91q_We0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-picker-q91q_We0.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|