@salutejs/plasma-new-hope 0.339.0-canary.2292.18775879461.0 → 0.339.0-canary.2292.18779534490.0

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.
@@ -294,13 +294,16 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
294
294
  _getCorrectIndexes2 = _rollupPluginBabelHelpers.slicedToArray(_getCorrectIndexes, 2),
295
295
  newRowIndex = _getCorrectIndexes2[0],
296
296
  newColumnIndex = _getCorrectIndexes2[1];
297
+ if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {
298
+ return;
299
+ }
297
300
 
298
301
  /**
299
302
  * Изменение состояния необходимо сделать здесь, т.к.
300
303
  * требуется дождаться обновление DOM и outerRefs
301
304
  */
302
305
  setSelectIndexes([newRowIndex, newColumnIndex]);
303
- }, [onPrev, onNext, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);
306
+ }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);
304
307
  React.useLayoutEffect(function () {
305
308
  var _outerRefs$current;
306
309
  var _selectIndexes = _rollupPluginBabelHelpers.slicedToArray(selectIndexes, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {\n return;\n }\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
@@ -371,6 +371,9 @@ var useKeyNavigation = function(param) {
371
371
  }
372
372
  }
373
373
  var _getCorrectIndexes = _sliced_to_array(getCorrectIndexes(outerRefs, selectIndexes, rowSize, columnSize, withShiftState.current, currentIndexes.current, calendarState), 2), newRowIndex = _getCorrectIndexes[0], newColumnIndex = _getCorrectIndexes[1];
374
+ if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {
375
+ return;
376
+ }
374
377
  /**
375
378
  * Изменение состояния необходимо сделать здесь, т.к.
376
379
  * требуется дождаться обновление DOM и outerRefs
@@ -381,6 +384,7 @@ var useKeyNavigation = function(param) {
381
384
  }, [
382
385
  onPrev,
383
386
  onNext,
387
+ selectIndexes,
384
388
  rowSize,
385
389
  columnSize,
386
390
  withShiftState,
@@ -1,16 +1 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Combobox", {
6
- enumerable: true,
7
- get: function() {
8
- return Combobox;
9
- }
10
- });
11
- var _engines = require("../../../engines");
12
- var _ = require("../../..");
13
- var _Comboboxconfig = require("./Combobox.config");
14
- var mergedConfig = (0, _engines.mergeConfig)(_.comboboxNewConfig, _Comboboxconfig.config);
15
- var ComboboxComponent = (0, _engines.component)(mergedConfig);
16
- var Combobox = ComboboxComponent;
@@ -363,6 +363,9 @@ var getCorrectIndexes = function(refs, param, rowSize, columnSize, withShift, de
363
363
  }
364
364
  }
365
365
  var _getCorrectIndexes = _sliced_to_array(getCorrectIndexes(outerRefs, selectIndexes, rowSize, columnSize, withShiftState.current, currentIndexes.current, calendarState), 2), newRowIndex = _getCorrectIndexes[0], newColumnIndex = _getCorrectIndexes[1];
366
+ if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {
367
+ return;
368
+ }
366
369
  /**
367
370
  * Изменение состояния необходимо сделать здесь, т.к.
368
371
  * требуется дождаться обновление DOM и outerRefs
@@ -373,6 +376,7 @@ var getCorrectIndexes = function(refs, param, rowSize, columnSize, withShift, de
373
376
  }, [
374
377
  onPrev,
375
378
  onNext,
379
+ selectIndexes,
376
380
  rowSize,
377
381
  columnSize,
378
382
  withShiftState,
@@ -290,13 +290,16 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
290
290
  _getCorrectIndexes2 = _slicedToArray(_getCorrectIndexes, 2),
291
291
  newRowIndex = _getCorrectIndexes2[0],
292
292
  newColumnIndex = _getCorrectIndexes2[1];
293
+ if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {
294
+ return;
295
+ }
293
296
 
294
297
  /**
295
298
  * Изменение состояния необходимо сделать здесь, т.к.
296
299
  * требуется дождаться обновление DOM и outerRefs
297
300
  */
298
301
  setSelectIndexes([newRowIndex, newColumnIndex]);
299
- }, [onPrev, onNext, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);
302
+ }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);
300
303
  useLayoutEffect(function () {
301
304
  var _outerRefs$current;
302
305
  var _selectIndexes = _slicedToArray(selectIndexes, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {\n return;\n }\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.339.0-canary.2292.18775879461.0",
3
+ "version": "0.339.0-canary.2292.18779534490.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -79,7 +79,7 @@
79
79
  "@rollup/plugin-babel": "^6.0.4",
80
80
  "@rollup/plugin-commonjs": "^25.0.4",
81
81
  "@rollup/plugin-node-resolve": "^15.1.0",
82
- "@salutejs/plasma-sb-utils": "0.209.0-canary.2292.18775879461.0",
82
+ "@salutejs/plasma-sb-utils": "0.209.0-canary.2292.18779534490.0",
83
83
  "@salutejs/plasma-themes": "0.38.0",
84
84
  "@storybook/addon-docs": "8.6.12",
85
85
  "@storybook/addon-essentials": "8.6.12",
@@ -117,7 +117,7 @@
117
117
  "@linaria/react": "5.0.3",
118
118
  "@popperjs/core": "2.11.8",
119
119
  "@salutejs/input-core": "2.1.2",
120
- "@salutejs/plasma-core": "1.209.0-canary.2292.18775879461.0",
120
+ "@salutejs/plasma-core": "1.209.0-canary.2292.18779534490.0",
121
121
  "@salutejs/react-maskinput": "3.2.6",
122
122
  "@tanstack/react-table": "8.21.2",
123
123
  "@tanstack/react-virtual": "3.13.2",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "fa51a5047cda22ca39c911ccd6375f3e6de778ec"
140
+ "gitHead": "1282dd7fbedfcae88fafc5e1e793202161dc4d24"
141
141
  }
@@ -371,6 +371,9 @@ var useKeyNavigation = function(param) {
371
371
  }
372
372
  }
373
373
  var _getCorrectIndexes = _sliced_to_array(getCorrectIndexes(outerRefs, selectIndexes, rowSize, columnSize, withShiftState.current, currentIndexes.current, calendarState), 2), newRowIndex = _getCorrectIndexes[0], newColumnIndex = _getCorrectIndexes[1];
374
+ if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {
375
+ return;
376
+ }
374
377
  /**
375
378
  * Изменение состояния необходимо сделать здесь, т.к.
376
379
  * требуется дождаться обновление DOM и outerRefs
@@ -381,6 +384,7 @@ var useKeyNavigation = function(param) {
381
384
  }, [
382
385
  onPrev,
383
386
  onNext,
387
+ selectIndexes,
384
388
  rowSize,
385
389
  columnSize,
386
390
  withShiftState,
@@ -363,6 +363,9 @@ var getCorrectIndexes = function(refs, param, rowSize, columnSize, withShift, de
363
363
  }
364
364
  }
365
365
  var _getCorrectIndexes = _sliced_to_array(getCorrectIndexes(outerRefs, selectIndexes, rowSize, columnSize, withShiftState.current, currentIndexes.current, calendarState), 2), newRowIndex = _getCorrectIndexes[0], newColumnIndex = _getCorrectIndexes[1];
366
+ if (selectIndexes[0] === newRowIndex && selectIndexes[1] === newColumnIndex) {
367
+ return;
368
+ }
366
369
  /**
367
370
  * Изменение состояния необходимо сделать здесь, т.к.
368
371
  * требуется дождаться обновление DOM и outerRefs
@@ -373,6 +376,7 @@ var getCorrectIndexes = function(refs, param, rowSize, columnSize, withShift, de
373
376
  }, [
374
377
  onPrev,
375
378
  onNext,
379
+ selectIndexes,
376
380
  rowSize,
377
381
  columnSize,
378
382
  withShiftState,
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAkD,MAAM,OAAO,CAAC;AAQ7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAmOpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,sDAA+D,oBAAoB,iCAyGhG,aAAa,CAAC,cAAc,CAAC,+GAyW5C,CAAC"}
1
+ {"version":3,"file":"useKeyNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAkD,MAAM,OAAO,CAAC;AAQ7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAmOpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,sDAA+D,oBAAoB,iCA6GhG,aAAa,CAAC,cAAc,CAAC,+GAyW5C,CAAC"}