@salutejs/plasma-new-hope 0.339.0-canary.2287.18675801044.0 → 0.339.0-canary.2287.18748636481.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.
- package/cjs/components/Pagination/Pagination.css +19 -0
- package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +19 -0
- package/cjs/components/Select/Select.css +19 -0
- package/cjs/components/Select/Select.js +44 -9
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.tokens.js +2 -0
- package/cjs/components/Select/Select.tokens.js.map +1 -1
- package/cjs/components/Select/hooks/useKeyboardNavigation.js +185 -1
- package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
- package/cjs/components/Select/hooks/usePathMaps.js +7 -3
- package/cjs/components/Select/hooks/usePathMaps.js.map +1 -1
- package/cjs/components/Select/reducers/treePathReducer.js +87 -0
- package/cjs/components/Select/reducers/treePathReducer.js.map +1 -0
- package/cjs/components/Select/ui/TreeList/TreeList.css +57 -0
- package/cjs/components/Select/ui/TreeList/TreeList.js +96 -0
- package/cjs/components/Select/ui/TreeList/TreeList.js.map +1 -0
- package/cjs/components/Select/ui/TreeList/TreeList.styles.js +30 -0
- package/cjs/components/Select/ui/TreeList/TreeList.styles.js.map +1 -0
- package/cjs/components/Select/ui/TreeList/TreeList.styles_1t38mek.css +2 -0
- package/cjs/components/Select/ui/TreeList/ui/Item/Item.css +54 -0
- package/cjs/components/Select/ui/TreeList/ui/Item/Item.js +130 -0
- package/cjs/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -0
- package/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js +214 -0
- package/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js.map +1 -0
- package/cjs/components/Select/ui/TreeList/ui/Item/Item.styles_i0dby2.css +15 -0
- package/cjs/components/Table/Table.css +19 -0
- package/cjs/components/Table/ui/Cell/Cell.css +19 -0
- package/cjs/components/Table/ui/EditableCell/EditableCell.css +19 -0
- package/cjs/components/Table/ui/HeadCell/HeadCell.css +19 -0
- package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +19 -0
- package/cjs/components/TimePickerGrid/TimePickerGrid.js +23 -4
- package/cjs/components/TimePickerGrid/TimePickerGrid.js.map +1 -1
- package/cjs/components/TimePickerGrid/utils/index.js +3 -3
- package/cjs/components/TimePickerGrid/utils/index.js.map +1 -1
- package/cjs/components/Tree/utils/traverseTree.js +2 -23
- package/cjs/components/Tree/utils/traverseTree.js.map +1 -1
- package/cjs/index.css +19 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/utils/deepCopy.js +30 -0
- package/cjs/utils/deepCopy.js.map +1 -0
- package/cjs/utils/index.js.map +1 -1
- package/emotion/cjs/components/Select/Select.js +33 -6
- package/emotion/cjs/components/Select/Select.tokens.js +2 -0
- package/emotion/cjs/components/Select/hooks/useKeyboardNavigation.js +166 -0
- package/emotion/cjs/components/Select/hooks/usePathMaps.js +35 -3
- package/emotion/cjs/components/Select/reducers/index.js +1 -0
- package/emotion/cjs/components/Select/reducers/treePathReducer.js +98 -0
- package/emotion/cjs/components/Select/ui/TreeList/TreeList.js +126 -0
- package/emotion/cjs/components/Select/ui/TreeList/TreeList.styles.js +36 -0
- package/emotion/cjs/components/Select/ui/TreeList/TreeList.types.js +4 -0
- package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.js +150 -0
- package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js +186 -0
- package/emotion/cjs/components/Select/ui/TreeList/ui/Item/Item.types.js +4 -0
- package/emotion/cjs/components/Select/ui/index.js +1 -0
- package/emotion/cjs/components/TimePickerGrid/TimePickerGrid.js +23 -4
- package/emotion/cjs/components/TimePickerGrid/utils/index.js +3 -3
- package/emotion/cjs/components/Tree/utils/traverseTree.js +2 -60
- package/emotion/cjs/examples/components/Combobox/Combobox.js +0 -15
- package/emotion/cjs/examples/components/Select/Select.config.js +24 -24
- package/emotion/cjs/examples/components/TimePickerGrid/TimePickerGrid.config.js +6 -6
- package/emotion/cjs/utils/deepCopy.js +82 -0
- package/emotion/cjs/utils/index.js +4 -0
- package/emotion/es/components/Select/Select.js +35 -8
- package/emotion/es/components/Select/Select.tokens.js +2 -0
- package/emotion/es/components/Select/hooks/useKeyboardNavigation.js +166 -0
- package/emotion/es/components/Select/hooks/usePathMaps.js +36 -4
- package/emotion/es/components/Select/reducers/index.js +1 -0
- package/emotion/es/components/Select/reducers/treePathReducer.js +81 -0
- package/emotion/es/components/Select/ui/TreeList/TreeList.js +75 -0
- package/emotion/es/components/Select/ui/TreeList/TreeList.styles.js +13 -0
- package/emotion/es/components/Select/ui/TreeList/TreeList.types.js +1 -0
- package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.js +99 -0
- package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.styles.js +122 -0
- package/emotion/es/components/Select/ui/TreeList/ui/Item/Item.types.js +1 -0
- package/emotion/es/components/Select/ui/index.js +1 -0
- package/emotion/es/components/TimePickerGrid/TimePickerGrid.js +23 -4
- package/emotion/es/components/TimePickerGrid/utils/index.js +3 -3
- package/emotion/es/components/Tree/utils/traverseTree.js +1 -59
- package/emotion/es/examples/components/Select/Select.config.js +24 -24
- package/emotion/es/examples/components/TimePickerGrid/TimePickerGrid.config.js +6 -6
- package/emotion/es/utils/deepCopy.js +72 -0
- package/emotion/es/utils/index.js +1 -0
- package/es/components/Pagination/Pagination.css +19 -0
- package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +19 -0
- package/es/components/Select/Select.css +19 -0
- package/es/components/Select/Select.js +44 -9
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/Select.tokens.js +2 -0
- package/es/components/Select/Select.tokens.js.map +1 -1
- package/es/components/Select/hooks/useKeyboardNavigation.js +185 -1
- package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
- package/es/components/Select/hooks/usePathMaps.js +7 -3
- package/es/components/Select/hooks/usePathMaps.js.map +1 -1
- package/es/components/Select/reducers/treePathReducer.js +82 -0
- package/es/components/Select/reducers/treePathReducer.js.map +1 -0
- package/es/components/Select/ui/TreeList/TreeList.css +57 -0
- package/es/components/Select/ui/TreeList/TreeList.js +88 -0
- package/es/components/Select/ui/TreeList/TreeList.js.map +1 -0
- package/es/components/Select/ui/TreeList/TreeList.styles.js +25 -0
- package/es/components/Select/ui/TreeList/TreeList.styles.js.map +1 -0
- package/es/components/Select/ui/TreeList/TreeList.styles_1t38mek.css +2 -0
- package/es/components/Select/ui/TreeList/ui/Item/Item.css +54 -0
- package/es/components/Select/ui/TreeList/ui/Item/Item.js +122 -0
- package/es/components/Select/ui/TreeList/ui/Item/Item.js.map +1 -0
- package/es/components/Select/ui/TreeList/ui/Item/Item.styles.js +196 -0
- package/es/components/Select/ui/TreeList/ui/Item/Item.styles.js.map +1 -0
- package/es/components/Select/ui/TreeList/ui/Item/Item.styles_i0dby2.css +15 -0
- package/es/components/Table/Table.css +19 -0
- package/es/components/Table/ui/Cell/Cell.css +19 -0
- package/es/components/Table/ui/EditableCell/EditableCell.css +19 -0
- package/es/components/Table/ui/HeadCell/HeadCell.css +19 -0
- package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +19 -0
- package/es/components/TimePickerGrid/TimePickerGrid.js +23 -4
- package/es/components/TimePickerGrid/TimePickerGrid.js.map +1 -1
- package/es/components/TimePickerGrid/utils/index.js +3 -3
- package/es/components/TimePickerGrid/utils/index.js.map +1 -1
- package/es/components/Tree/utils/traverseTree.js +2 -23
- package/es/components/Tree/utils/traverseTree.js.map +1 -1
- package/es/index.css +19 -0
- package/es/index.js +1 -0
- package/es/index.js.map +1 -1
- package/es/utils/deepCopy.js +26 -0
- package/es/utils/deepCopy.js.map +1 -0
- package/es/utils/index.js.map +1 -1
- package/package.json +4 -4
- package/styled-components/cjs/components/Select/Select.js +33 -6
- package/styled-components/cjs/components/Select/Select.tokens.js +2 -0
- package/styled-components/cjs/components/Select/hooks/useKeyboardNavigation.js +166 -0
- package/styled-components/cjs/components/Select/hooks/usePathMaps.js +35 -3
- package/styled-components/cjs/components/Select/reducers/index.js +1 -0
- package/styled-components/cjs/components/Select/reducers/treePathReducer.js +98 -0
- package/styled-components/cjs/components/Select/ui/TreeList/TreeList.js +126 -0
- package/styled-components/cjs/components/Select/ui/TreeList/TreeList.styles.js +50 -0
- package/styled-components/cjs/components/Select/ui/TreeList/TreeList.types.js +4 -0
- package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.js +150 -0
- package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.styles.js +300 -0
- package/styled-components/cjs/components/Select/ui/TreeList/ui/Item/Item.types.js +4 -0
- package/styled-components/cjs/components/Select/ui/index.js +1 -0
- package/styled-components/cjs/components/TimePickerGrid/TimePickerGrid.js +23 -4
- package/styled-components/cjs/components/TimePickerGrid/utils/index.js +3 -3
- package/styled-components/cjs/components/Tree/utils/traverseTree.js +2 -60
- package/styled-components/cjs/examples/components/Select/Select.config.js +12 -4
- package/styled-components/cjs/examples/components/TimePickerGrid/TimePickerGrid.config.js +3 -2
- package/styled-components/cjs/utils/deepCopy.js +82 -0
- package/styled-components/cjs/utils/index.js +4 -0
- package/styled-components/es/components/Select/Select.js +35 -8
- package/styled-components/es/components/Select/Select.tokens.js +2 -0
- package/styled-components/es/components/Select/hooks/useKeyboardNavigation.js +166 -0
- package/styled-components/es/components/Select/hooks/usePathMaps.js +36 -4
- package/styled-components/es/components/Select/reducers/index.js +1 -0
- package/styled-components/es/components/Select/reducers/treePathReducer.js +81 -0
- package/styled-components/es/components/Select/ui/TreeList/TreeList.js +75 -0
- package/styled-components/es/components/Select/ui/TreeList/TreeList.styles.js +27 -0
- package/styled-components/es/components/Select/ui/TreeList/TreeList.types.js +1 -0
- package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.js +99 -0
- package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.styles.js +236 -0
- package/styled-components/es/components/Select/ui/TreeList/ui/Item/Item.types.js +1 -0
- package/styled-components/es/components/Select/ui/index.js +1 -0
- package/styled-components/es/components/TimePickerGrid/TimePickerGrid.js +23 -4
- package/styled-components/es/components/TimePickerGrid/utils/index.js +3 -3
- package/styled-components/es/components/Tree/utils/traverseTree.js +1 -59
- package/styled-components/es/examples/components/Select/Select.config.js +12 -4
- package/styled-components/es/examples/components/TimePickerGrid/TimePickerGrid.config.js +3 -2
- package/styled-components/es/utils/deepCopy.js +72 -0
- package/styled-components/es/utils/index.js +1 -0
- package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +12 -0
- package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/Select.tokens.d.ts +2 -0
- package/types/components/Select/Select.tokens.d.ts.map +1 -1
- package/types/components/Select/Select.types.d.ts +26 -2
- package/types/components/Select/Select.types.d.ts.map +1 -1
- package/types/components/Select/hooks/useKeyboardNavigation.d.ts +6 -2
- package/types/components/Select/hooks/useKeyboardNavigation.d.ts.map +1 -1
- package/types/components/Select/hooks/usePathMaps.d.ts +2 -1
- package/types/components/Select/hooks/usePathMaps.d.ts.map +1 -1
- package/types/components/Select/reducers/index.d.ts +1 -0
- package/types/components/Select/reducers/index.d.ts.map +1 -1
- package/types/components/Select/reducers/treePathReducer.d.ts +14 -0
- package/types/components/Select/reducers/treePathReducer.d.ts.map +1 -0
- package/types/components/Select/ui/TreeList/TreeList.d.ts +4 -0
- package/types/components/Select/ui/TreeList/TreeList.d.ts.map +1 -0
- package/types/components/Select/ui/TreeList/TreeList.styles.d.ts +6 -0
- package/types/components/Select/ui/TreeList/TreeList.styles.d.ts.map +1 -0
- package/types/components/Select/ui/TreeList/TreeList.types.d.ts +11 -0
- package/types/components/Select/ui/TreeList/TreeList.types.d.ts.map +1 -0
- package/types/components/Select/ui/TreeList/ui/Item/Item.d.ts +4 -0
- package/types/components/Select/ui/TreeList/ui/Item/Item.d.ts.map +1 -0
- package/types/components/Select/ui/TreeList/ui/Item/Item.styles.d.ts +64 -0
- package/types/components/Select/ui/TreeList/ui/Item/Item.styles.d.ts.map +1 -0
- package/types/components/Select/ui/TreeList/ui/Item/Item.types.d.ts +14 -0
- package/types/components/Select/ui/TreeList/ui/Item/Item.types.d.ts.map +1 -0
- package/types/components/Select/ui/index.d.ts +1 -0
- package/types/components/Select/ui/index.d.ts.map +1 -1
- package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +12 -0
- package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts.map +1 -1
- package/types/components/TimePicker/TimePicker.styles.d.ts +0 -1
- package/types/components/TimePicker/TimePicker.styles.d.ts.map +1 -1
- package/types/components/TimePickerGrid/TimePickerGrid.d.ts +0 -2
- package/types/components/TimePickerGrid/TimePickerGrid.d.ts.map +1 -1
- package/types/components/TimePickerGrid/TimePickerGrid.types.d.ts +0 -4
- package/types/components/TimePickerGrid/TimePickerGrid.types.d.ts.map +1 -1
- package/types/components/TimePickerGrid/utils/index.d.ts +1 -1
- package/types/components/TimePickerGrid/utils/index.d.ts.map +1 -1
- package/types/components/Tree/utils/traverseTree.d.ts.map +1 -1
- package/types/examples/components/Select/Select.config.d.ts.map +1 -1
- package/types/examples/components/Select/Select.d.ts +12 -0
- package/types/examples/components/Select/Select.d.ts.map +1 -1
- package/types/examples/components/TimePickerGrid/TimePickerGrid.config.d.ts.map +1 -1
- package/types/examples/components/TimePickerGrid/TimePickerGrid.d.ts +0 -1
- package/types/examples/components/TimePickerGrid/TimePickerGrid.d.ts.map +1 -1
- package/types/utils/deepCopy.d.ts +2 -0
- package/types/utils/deepCopy.d.ts.map +1 -0
- package/types/utils/index.d.ts +1 -0
- package/types/utils/index.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePickerGrid.js","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect, useCallback, useMemo, KeyboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\n\nimport { animateScrollTo, getColumnsFromFormat, parseTimeString, buildTimeString, isTimeDisabled } from './utils';\nimport { TimePickerGridChangeEvent, TimePickerGridProps } from './TimePickerGrid.types';\nimport { base, StyledTimePicker } from './TimePickerGrid.styles';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { renderTimeColumn } from './ui/TimeColumn/TimeColumn';\nimport { TimeColumnType, TimeItemKeyDownHandler } from './ui/TimeColumn/TimeColumn.types';\n\ninterface ActiveTime {\n hours: number | null;\n minutes: number | null;\n seconds: number | null;\n currentColumn: 'hours' | 'minutes' | 'seconds' | null;\n}\n\ninterface ScrollbarState {\n isVisible: boolean;\n thumbHeight: number;\n thumbPosition: number;\n isDragging: boolean;\n}\n\nexport const timePickerGridRoot = (\n Root: RootProps<HTMLDivElement, Omit<TimePickerGridProps, 'defaultValue' | 'onChange'>>,\n) =>\n forwardRef<HTMLDivElement, TimePickerGridProps>(\n (\n {\n value: outerValue,\n view,\n size,\n disabled = false,\n dropdownWidth,\n dropdownHeight,\n format = 'HH:mm',\n min,\n max,\n columnsQuantity,\n disabledValues,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const actualFormat = format || (columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm');\n const columnsConfig = useMemo(() => getColumnsFromFormat(actualFormat), [actualFormat]);\n\n const hoursColumnRef = useRef<HTMLDivElement>(null);\n const minutesColumnRef = useRef<HTMLDivElement>(null);\n const secondsColumnRef = useRef<HTMLDivElement>(null);\n const timeItemRefs = useRef<Record<string, HTMLDivElement | null>>({});\n\n const hoursScrollbarRef = useRef<HTMLDivElement>(null);\n const minutesScrollbarRef = useRef<HTMLDivElement>(null);\n const secondsScrollbarRef = useRef<HTMLDivElement>(null);\n const hoursThumbRef = useRef<HTMLDivElement>(null);\n const minutesThumbRef = useRef<HTMLDivElement>(null);\n const secondsThumbRef = useRef<HTMLDivElement>(null);\n\n const hoursHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const minutesHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const secondsHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const [innerTime, setInnerTime] = useState(outerValue || '');\n const [activeTime, setActiveTime] = useState<ActiveTime>({\n hours: null,\n minutes: null,\n seconds: null,\n currentColumn: null,\n });\n const [itemHeight, setItemHeight] = useState(0);\n const [gap, setGap] = useState(0);\n\n const [hoursScrollbar, setHoursScrollbar] = useState<ScrollbarState>({\n isVisible: false,\n thumbHeight: 0,\n thumbPosition: 0,\n isDragging: false,\n });\n const [minutesScrollbar, setMinutesScrollbar] = useState<ScrollbarState>({\n isVisible: false,\n thumbHeight: 0,\n thumbPosition: 0,\n isDragging: false,\n });\n const [secondsScrollbar, setSecondsScrollbar] = useState<ScrollbarState>({\n isVisible: false,\n thumbHeight: 0,\n thumbPosition: 0,\n isDragging: false,\n });\n\n const viewValue = outerValue ?? innerTime;\n\n useEffect(() => {\n if (activeTime.currentColumn && activeTime[activeTime.currentColumn] !== null) {\n const column = activeTime.currentColumn;\n const value = activeTime[activeTime.currentColumn]?.toString().padStart(2, '0');\n const element = timeItemRefs.current[`${column}-${value}`];\n\n setTimeout(() => {\n if (element) {\n element.focus();\n }\n }, 0);\n }\n }, [activeTime]);\n\n const getDisabledValuesForColumn = useCallback(\n (columnType: 'hours' | 'minutes' | 'seconds') => {\n let disabledFromProps;\n if (columnType === 'hours') {\n disabledFromProps = disabledValues?.hour || [];\n } else if (columnType === 'minutes') {\n disabledFromProps = disabledValues?.minute || [];\n } else {\n disabledFromProps = disabledValues?.second || [];\n }\n\n const disabledFromMinMax: number[] = [];\n\n if (min || max) {\n const timeValues = parseTimeString(viewValue || '00:00:00', actualFormat);\n\n for (let i = 0; i < (columnType === 'hours' ? 24 : 60); i++) {\n const testValues = { ...timeValues };\n if (columnType === 'hours') {\n testValues.hh = i;\n } else if (columnType === 'minutes') {\n testValues.mm = i;\n } else {\n testValues.ss = i;\n }\n\n if (isTimeDisabled(testValues, min, max)) {\n disabledFromMinMax.push(i);\n }\n }\n }\n\n const normalizedDisabledFromProps = disabledFromProps.map((val) =>\n typeof val === 'string' ? parseInt(val, 10) : val,\n );\n\n return [...new Set([...normalizedDisabledFromProps, ...disabledFromMinMax])];\n },\n [disabledValues, min, max, viewValue, actualFormat],\n );\n\n const getNextAvailableValue = useCallback(\n (\n currentIndex: number,\n values: string[],\n disabledValuesForColumn: (string | number)[],\n direction: 'up' | 'down',\n ) => {\n let newIndex = currentIndex;\n let iterations = 0;\n const maxIterations = values.length;\n\n do {\n newIndex =\n direction === 'up'\n ? (newIndex - 1 + values.length) % values.length\n : (newIndex + 1) % values.length;\n iterations++;\n } while (\n iterations < maxIterations &&\n disabledValuesForColumn.includes(parseInt(values[newIndex], 10)) &&\n newIndex !== currentIndex\n );\n\n return iterations < maxIterations &&\n !disabledValuesForColumn.includes(parseInt(values[newIndex], 10))\n ? newIndex\n : currentIndex;\n },\n [],\n );\n\n const minScrollbarTrackHeight = 20;\n\n const calculateScrollbar = useCallback((columnRef: React.RefObject<HTMLDivElement>) => {\n if (!columnRef.current) return { thumbHeight: 0, thumbPosition: 0 };\n\n const { scrollTop, scrollHeight, clientHeight } = columnRef.current;\n const trackHeight = clientHeight;\n const thumbHeight = Math.max((trackHeight / scrollHeight) * trackHeight, minScrollbarTrackHeight);\n const maxScroll = scrollHeight - clientHeight;\n const thumbPosition = maxScroll > 0 ? (scrollTop / maxScroll) * (trackHeight - thumbHeight) : 0;\n\n return { thumbHeight, thumbPosition };\n }, []);\n\n const showScrollbarWithDelay = useCallback(\n (\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>,\n columnRef: React.RefObject<HTMLDivElement>,\n ) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n updateScrollbar(columnRef, setScrollbar, true);\n\n timeoutRef.current = (setTimeout(() => {\n setScrollbar((prev) => ({ ...prev, isVisible: false }));\n timeoutRef.current = null;\n }, 2000) as unknown) as NodeJS.Timeout;\n },\n [],\n );\n\n const updateScrollbar = useCallback(\n (\n columnRef: React.RefObject<HTMLDivElement>,\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n show = false,\n ) => {\n if (!columnRef.current) return;\n\n const { thumbHeight, thumbPosition } = calculateScrollbar(columnRef);\n setScrollbar((prev) => ({\n ...prev,\n thumbHeight,\n thumbPosition,\n isVisible: show || prev.isVisible,\n }));\n },\n [calculateScrollbar],\n );\n\n const handleColumnScroll = useCallback(\n (\n columnRef: React.RefObject<HTMLDivElement>,\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>,\n ) => {\n showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);\n },\n [showScrollbarWithDelay],\n );\n\n const createScrollbarDragHandler = useCallback(\n (\n columnRef: React.RefObject<HTMLDivElement>,\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>,\n ) => (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n const thumb = e.currentTarget as HTMLDivElement;\n const track = thumb.parentElement as HTMLDivElement;\n if (!columnRef.current || !track) return;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n const startY = e.clientY;\n const startThumbPosition = parseFloat(thumb.style.top || '0');\n const trackRect = track.getBoundingClientRect();\n const trackHeight = trackRect.height;\n const thumbHeight = thumb.offsetHeight;\n\n const { scrollHeight, clientHeight } = columnRef.current;\n const maxScroll = scrollHeight - clientHeight;\n\n const handleMouseMove = (moveEvent: globalThis.MouseEvent) => {\n const deltaY = moveEvent.clientY - startY;\n const newThumbPosition = Math.max(\n 0,\n Math.min(trackHeight - thumbHeight, startThumbPosition + deltaY),\n );\n\n const scrollPercentage = newThumbPosition / (trackHeight - thumbHeight);\n const newScrollTop = scrollPercentage * maxScroll;\n\n if (columnRef.current) {\n columnRef.current.scrollTop = newScrollTop;\n }\n\n setScrollbar((prev) => ({\n ...prev,\n thumbPosition: newThumbPosition,\n isDragging: true,\n isVisible: true,\n }));\n };\n\n const handleMouseUp = () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n\n setScrollbar((prev) => ({\n ...prev,\n isDragging: false,\n }));\n\n showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n },\n [showScrollbarWithDelay],\n );\n\n useEffect(() => {\n if (viewValue && columnsConfig.length > 0) {\n const timeValues = parseTimeString(viewValue, actualFormat);\n setActiveTime((prev) => ({\n ...prev,\n hours: timeValues.hh,\n minutes: timeValues.mm,\n seconds: timeValues.ss,\n }));\n }\n }, [viewValue, columnsConfig, actualFormat]);\n\n const handleContainerFocus = useCallback(() => {\n if (activeTime.currentColumn === null && columnsConfig.length > 0) {\n const firstColumn = columnsConfig[0].type;\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: firstColumn,\n }));\n }\n }, [activeTime.currentColumn, columnsConfig]);\n\n useEffect(() => {\n return () => {\n [hoursHideTimeoutRef, minutesHideTimeoutRef, secondsHideTimeoutRef].forEach((timeoutRef) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n });\n };\n }, []);\n\n useEffect(() => {\n if (Object.keys(timeItemRefs.current).length > 0) {\n const firstItem = Object.values(timeItemRefs.current)[0];\n\n if (firstItem) {\n setItemHeight(firstItem.offsetHeight);\n }\n }\n if (hoursColumnRef.current) {\n const computedStyle = getComputedStyle(hoursColumnRef.current);\n const gapValue = parseFloat(computedStyle.gap || '0');\n setGap(gapValue);\n }\n }, [outerValue]);\n\n useEffect(() => {\n setTimeout(() => {\n updateScrollbar(hoursColumnRef, setHoursScrollbar);\n updateScrollbar(minutesColumnRef, setMinutesScrollbar);\n if (columnsQuantity === 3) {\n updateScrollbar(secondsColumnRef, setSecondsScrollbar);\n }\n }, 100);\n }, [columnsQuantity, updateScrollbar]);\n\n useEffect(() => {\n if (itemHeight === 0) return;\n\n const scrollToActiveItem = (columnRef: React.RefObject<HTMLDivElement>, index: number | null) => {\n if (columnRef.current && index !== null) {\n const scrollPosition = index * (itemHeight + gap);\n animateScrollTo(columnRef.current, scrollPosition);\n setTimeout(() => {\n updateScrollbar(columnRef, setHoursScrollbar);\n }, 300);\n }\n };\n\n scrollToActiveItem(hoursColumnRef, activeTime.hours);\n scrollToActiveItem(minutesColumnRef, activeTime.minutes);\n scrollToActiveItem(secondsColumnRef, activeTime.seconds);\n }, [activeTime, itemHeight, gap, updateScrollbar]);\n\n useEffect(() => {\n const hoursColumn = hoursColumnRef.current;\n const minutesColumn = minutesColumnRef.current;\n const secondsColumn = secondsColumnRef.current;\n\n const handleHoursScroll = () =>\n handleColumnScroll(hoursColumnRef, setHoursScrollbar, hoursHideTimeoutRef);\n const handleMinutesScroll = () =>\n handleColumnScroll(minutesColumnRef, setMinutesScrollbar, minutesHideTimeoutRef);\n const handleSecondsScroll = () =>\n handleColumnScroll(secondsColumnRef, setSecondsScrollbar, secondsHideTimeoutRef);\n\n if (hoursColumn) {\n hoursColumn.addEventListener('scroll', handleHoursScroll);\n }\n if (minutesColumn) {\n minutesColumn.addEventListener('scroll', handleMinutesScroll);\n }\n if (secondsColumn) {\n secondsColumn.addEventListener('scroll', handleSecondsScroll);\n }\n\n return () => {\n if (hoursColumn) {\n hoursColumn.removeEventListener('scroll', handleHoursScroll);\n }\n if (minutesColumn) {\n minutesColumn.removeEventListener('scroll', handleMinutesScroll);\n }\n if (secondsColumn) {\n secondsColumn.removeEventListener('scroll', handleSecondsScroll);\n }\n };\n }, []);\n\n useEffect(() => {\n const hoursColumn = hoursColumnRef.current;\n const minutesColumn = minutesColumnRef.current;\n const secondsColumn = secondsColumnRef.current;\n\n const handleHoursMouseEnter = () =>\n showScrollbarWithDelay(setHoursScrollbar, hoursHideTimeoutRef, hoursColumnRef);\n const handleMinutesMouseEnter = () =>\n showScrollbarWithDelay(setMinutesScrollbar, minutesHideTimeoutRef, minutesColumnRef);\n const handleSecondsMouseEnter = () =>\n showScrollbarWithDelay(setSecondsScrollbar, secondsHideTimeoutRef, secondsColumnRef);\n\n if (hoursColumn) {\n hoursColumn.addEventListener('mouseenter', handleHoursMouseEnter);\n }\n if (minutesColumn) {\n minutesColumn.addEventListener('mouseenter', handleMinutesMouseEnter);\n }\n if (secondsColumn) {\n secondsColumn.addEventListener('mouseenter', handleSecondsMouseEnter);\n }\n\n return () => {\n if (hoursColumn) {\n hoursColumn.removeEventListener('mouseenter', handleHoursMouseEnter);\n }\n if (minutesColumn) {\n minutesColumn.removeEventListener('mouseenter', handleMinutesMouseEnter);\n }\n if (secondsColumn) {\n secondsColumn.removeEventListener('mouseenter', handleSecondsMouseEnter);\n }\n };\n }, []);\n\n const handleTimeItemClick = (\n value: string,\n column: 'hours' | 'minutes' | 'seconds',\n isNextColumn = true,\n ) => {\n const currentTimeValues = parseTimeString(innerTime, actualFormat);\n const newTimeValues = { ...currentTimeValues };\n\n switch (column) {\n case 'hours':\n newTimeValues.hh = parseInt(value, 10);\n break;\n case 'minutes':\n newTimeValues.mm = parseInt(value, 10);\n break;\n case 'seconds':\n newTimeValues.ss = parseInt(value, 10);\n break;\n default:\n }\n\n const getFirstAvailableValue = (columnType: 'hours' | 'minutes' | 'seconds'): number => {\n const disabledValuesForColumn = getDisabledValuesForColumn(columnType);\n const maxValue = columnType === 'hours' ? 23 : 59;\n\n for (let i = 0; i <= maxValue; i++) {\n if (!disabledValuesForColumn.includes(i)) {\n return i;\n }\n }\n return 0;\n };\n\n if (newTimeValues.hh === null) {\n newTimeValues.hh = getFirstAvailableValue('hours');\n }\n if (newTimeValues.mm === null) {\n newTimeValues.mm = getFirstAvailableValue('minutes');\n }\n if (newTimeValues.ss === null && actualFormat.includes('ss')) {\n newTimeValues.ss = getFirstAvailableValue('seconds');\n }\n\n if (isTimeDisabled(newTimeValues, min, max)) {\n return;\n }\n\n const newTimeString = buildTimeString(newTimeValues, actualFormat);\n setInnerTime(newTimeString);\n\n let nextColumn: 'hours' | 'minutes' | 'seconds' | null = null;\n const currentIndex = columnsConfig.findIndex((col) => col.type === column);\n if (currentIndex !== -1 && isNextColumn && currentIndex < columnsConfig.length - 1) {\n nextColumn = columnsConfig[currentIndex + 1].type;\n }\n\n const newActiveTime: ActiveTime = {\n hours: newTimeValues.hh,\n minutes: newTimeValues.mm,\n seconds: newTimeValues.ss,\n currentColumn: nextColumn || column,\n };\n setActiveTime(newActiveTime);\n\n onChange?.({\n value: newTimeString,\n timeValues: {\n hour: newTimeValues.hh || undefined,\n minute: newTimeValues.mm || undefined,\n second: newTimeValues.ss || undefined,\n },\n } as TimePickerGridChangeEvent);\n };\n\n const handleTimeItemKeyDown: TimeItemKeyDownHandler = (\n event: KeyboardEvent<HTMLDivElement>,\n column: TimeColumnType,\n value: string,\n ) => {\n const disabledValuesForColumn = getDisabledValuesForColumn(column);\n const currentIndex = parseInt(value, 10);\n let newIndex: number | null = null;\n let newColumn = column;\n const currentIndexInColumns = columnsConfig.findIndex((col) => col.type === column);\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n newIndex = getNextAvailableValue(\n currentIndex,\n column === 'hours'\n ? Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, '0'))\n : Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0')),\n disabledValuesForColumn,\n 'up',\n );\n if (newIndex !== null) {\n const newValue = newIndex.toString().padStart(2, '0');\n handleTimeItemClick(newValue, column, false);\n }\n break;\n case 'ArrowDown':\n event.preventDefault();\n newIndex = getNextAvailableValue(\n currentIndex,\n column === 'hours'\n ? Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, '0'))\n : Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0')),\n disabledValuesForColumn,\n 'down',\n );\n if (newIndex !== null) {\n const newValue = newIndex.toString().padStart(2, '0');\n handleTimeItemClick(newValue, column, false);\n }\n break;\n case 'ArrowRight':\n event.preventDefault();\n if (column === 'hours') {\n newColumn = 'minutes';\n } else if (column === 'minutes' && actualFormat.includes('ss')) {\n newColumn = 'seconds';\n }\n if (newColumn !== column) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: newColumn,\n }));\n }\n break;\n case 'ArrowLeft':\n event.preventDefault();\n if (column === 'minutes') {\n newColumn = 'hours';\n } else if (column === 'seconds') {\n newColumn = 'minutes';\n }\n if (newColumn !== column) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: newColumn,\n }));\n }\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n handleTimeItemClick(value, column);\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n while (\n disabledValuesForColumn.includes(newIndex) &&\n newIndex < (column === 'hours' ? 24 : 60)\n ) {\n newIndex++;\n }\n if (newIndex < (column === 'hours' ? 24 : 60)) {\n handleTimeItemClick(newIndex.toString().padStart(2, '0'), column, false);\n }\n break;\n case 'End':\n event.preventDefault();\n newIndex = column === 'hours' ? 23 : 59;\n while (disabledValuesForColumn.includes(newIndex) && newIndex >= 0) {\n newIndex--;\n }\n if (newIndex >= 0) {\n handleTimeItemClick(newIndex.toString().padStart(2, '0'), column, false);\n }\n break;\n case 'Tab':\n if (currentIndexInColumns === columnsConfig.length - 1) {\n break;\n }\n event.preventDefault();\n if (event.shiftKey) {\n if (column === 'minutes') {\n newColumn = 'hours';\n } else if (column === 'seconds') {\n newColumn = 'minutes';\n }\n } else if (column === 'hours') {\n newColumn = 'minutes';\n } else if (column === 'minutes' && actualFormat.includes('ss')) {\n newColumn = 'seconds';\n }\n if (newColumn !== column) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: newColumn,\n }));\n }\n break;\n default:\n if (/^[0-9]$/.test(event.key)) {\n event.preventDefault();\n const inputNumber = parseInt(event.key, 10);\n\n if (column === 'hours') {\n if (inputNumber <= 2) {\n const tens = inputNumber;\n const handleSecondInput = (e: globalThis.KeyboardEvent) => {\n if (/^[0-9]$/.test(e.key)) {\n const units = parseInt(e.key, 10);\n const total = tens * 10 + units;\n if (total < 24 && !disabledValuesForColumn.includes(total)) {\n handleTimeItemClick(total.toString().padStart(2, '0'), column);\n }\n document.removeEventListener('keydown', handleSecondInput);\n }\n };\n document.addEventListener('keydown', handleSecondInput);\n setTimeout(() => {\n document.removeEventListener('keydown', handleSecondInput);\n }, 1000);\n } else if (inputNumber <= 9) {\n if (!disabledValuesForColumn.includes(inputNumber)) {\n handleTimeItemClick(inputNumber.toString().padStart(2, '0'), column);\n }\n }\n } else if (inputNumber <= 5) {\n const tens = inputNumber;\n const handleSecondInput = (e: globalThis.KeyboardEvent) => {\n if (/^[0-9]$/.test(e.key)) {\n const units = parseInt(e.key, 10);\n const total = tens * 10 + units;\n if (total < 60 && !disabledValuesForColumn.includes(total)) {\n handleTimeItemClick(total.toString().padStart(2, '0'), column);\n }\n document.removeEventListener('keydown', handleSecondInput);\n }\n };\n document.addEventListener('keydown', handleSecondInput);\n setTimeout(() => {\n document.removeEventListener('keydown', handleSecondInput);\n }, 1000);\n } else if (inputNumber <= 9) {\n if (!disabledValuesForColumn.includes(inputNumber)) {\n handleTimeItemClick(inputNumber.toString().padStart(2, '0'), column);\n }\n }\n }\n }\n };\n\n return (\n <Root ref={ref} view={view} size={size} disabled={disabled} onFocus={handleContainerFocus} {...rest}>\n <StyledTimePicker width={dropdownWidth} tabIndex={-1}>\n {columnsConfig.map((columnConfig) => {\n const { type, values } = columnConfig;\n\n let columnRef;\n let scrollbarState;\n let setScrollbar;\n let scrollbarRef;\n let thumbRef;\n let timeoutRef;\n\n switch (type) {\n case 'hours':\n columnRef = hoursColumnRef;\n scrollbarState = hoursScrollbar;\n setScrollbar = setHoursScrollbar;\n scrollbarRef = hoursScrollbarRef;\n thumbRef = hoursThumbRef;\n timeoutRef = hoursHideTimeoutRef;\n break;\n case 'minutes':\n columnRef = minutesColumnRef;\n scrollbarState = minutesScrollbar;\n setScrollbar = setMinutesScrollbar;\n scrollbarRef = minutesScrollbarRef;\n thumbRef = minutesThumbRef;\n timeoutRef = minutesHideTimeoutRef;\n break;\n case 'seconds':\n columnRef = secondsColumnRef;\n scrollbarState = secondsScrollbar;\n setScrollbar = setSecondsScrollbar;\n scrollbarRef = secondsScrollbarRef;\n thumbRef = secondsThumbRef;\n timeoutRef = secondsHideTimeoutRef;\n break;\n default:\n return null;\n }\n\n return renderTimeColumn({\n values,\n disabledValues: getDisabledValuesForColumn(type),\n dropdownHeight,\n column: type,\n activeTime,\n handleTimeItemClick,\n handleTimeItemKeyDown,\n createScrollbarDragHandler,\n setScrollbar,\n columnRef,\n scrollbarState,\n scrollbarRef,\n thumbRef,\n timeoutRef,\n timeItemRefs,\n });\n })}\n </StyledTimePicker>\n </Root>\n );\n },\n );\n\nexport const timePickerGridConfig = {\n name: 'TimePickerGrid',\n tag: 'div',\n layout: timePickerGridRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["timePickerGridRoot","Root","forwardRef","_ref","ref","outerValue","value","view","size","_ref$disabled","disabled","dropdownWidth","dropdownHeight","_ref$format","format","min","max","columnsQuantity","disabledValues","onChange","rest","_objectWithoutProperties","_excluded","actualFormat","columnsConfig","useMemo","getColumnsFromFormat","hoursColumnRef","useRef","minutesColumnRef","secondsColumnRef","timeItemRefs","hoursScrollbarRef","minutesScrollbarRef","secondsScrollbarRef","hoursThumbRef","minutesThumbRef","secondsThumbRef","hoursHideTimeoutRef","minutesHideTimeoutRef","secondsHideTimeoutRef","_useState","useState","_useState2","_slicedToArray","innerTime","setInnerTime","_useState3","hours","minutes","seconds","currentColumn","_useState4","activeTime","setActiveTime","_useState5","_useState6","itemHeight","setItemHeight","_useState7","_useState8","gap","setGap","_useState9","isVisible","thumbHeight","thumbPosition","isDragging","_useState10","hoursScrollbar","setHoursScrollbar","_useState11","_useState12","minutesScrollbar","setMinutesScrollbar","_useState13","_useState14","secondsScrollbar","setSecondsScrollbar","viewValue","useEffect","_activeTime$activeTim","column","toString","padStart","element","current","concat","setTimeout","focus","getDisabledValuesForColumn","useCallback","columnType","disabledFromProps","hour","minute","second","disabledFromMinMax","timeValues","parseTimeString","i","testValues","_objectSpread","hh","mm","ss","isTimeDisabled","push","normalizedDisabledFromProps","map","val","parseInt","_toConsumableArray","Set","getNextAvailableValue","currentIndex","values","disabledValuesForColumn","direction","newIndex","iterations","maxIterations","length","includes","minScrollbarTrackHeight","calculateScrollbar","columnRef","_columnRef$current","scrollTop","scrollHeight","clientHeight","trackHeight","Math","maxScroll","showScrollbarWithDelay","setScrollbar","timeoutRef","clearTimeout","updateScrollbar","prev","show","arguments","undefined","_calculateScrollbar","handleColumnScroll","createScrollbarDragHandler","e","preventDefault","thumb","currentTarget","track","parentElement","startY","clientY","startThumbPosition","parseFloat","style","top","trackRect","getBoundingClientRect","height","offsetHeight","_columnRef$current2","handleMouseMove","moveEvent","deltaY","newThumbPosition","scrollPercentage","newScrollTop","handleMouseUp","document","removeEventListener","addEventListener","handleContainerFocus","firstColumn","type","forEach","Object","keys","firstItem","computedStyle","getComputedStyle","gapValue","scrollToActiveItem","index","scrollPosition","animateScrollTo","hoursColumn","minutesColumn","secondsColumn","handleHoursScroll","handleMinutesScroll","handleSecondsScroll","handleHoursMouseEnter","handleMinutesMouseEnter","handleSecondsMouseEnter","handleTimeItemClick","isNextColumn","currentTimeValues","newTimeValues","getFirstAvailableValue","maxValue","newTimeString","buildTimeString","nextColumn","findIndex","col","newActiveTime","handleTimeItemKeyDown","event","newColumn","currentIndexInColumns","key","Array","from","_","newValue","shiftKey","test","inputNumber","tens","handleSecondInput","units","total","React","createElement","_extends","onFocus","StyledTimePicker","width","tabIndex","columnConfig","scrollbarState","scrollbarRef","thumbRef","renderTimeColumn","timePickerGridConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimePickerGrid.js","sources":["../../../src/components/TimePickerGrid/TimePickerGrid.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect, useCallback, useMemo, KeyboardEvent } from 'react';\nimport type { RootProps } from 'src/engines';\n\nimport { animateScrollTo, getColumnsFromFormat, parseTimeString, buildTimeString, isTimeDisabled } from './utils';\nimport { TimePickerGridChangeEvent, TimePickerGridProps } from './TimePickerGrid.types';\nimport { base, StyledTimePicker } from './TimePickerGrid.styles';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { renderTimeColumn } from './ui/TimeColumn/TimeColumn';\nimport { TimeColumnType, TimeItemKeyDownHandler } from './ui/TimeColumn/TimeColumn.types';\n\ninterface ActiveTime {\n hours: number | null;\n minutes: number | null;\n seconds: number | null;\n currentColumn: 'hours' | 'minutes' | 'seconds' | null;\n}\n\ninterface ScrollbarState {\n isVisible: boolean;\n thumbHeight: number;\n thumbPosition: number;\n isDragging: boolean;\n}\n\nexport const timePickerGridRoot = (\n Root: RootProps<HTMLDivElement, Omit<TimePickerGridProps, 'defaultValue' | 'onChange'>>,\n) =>\n forwardRef<HTMLDivElement, TimePickerGridProps>(\n (\n {\n value: outerValue,\n view,\n size,\n disabled = false,\n dropdownWidth,\n dropdownHeight,\n format = 'HH:mm',\n min,\n max,\n columnsQuantity,\n disabledValues,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const actualFormat = format || (columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm');\n const columnsConfig = useMemo(() => getColumnsFromFormat(actualFormat), [actualFormat]);\n\n const hoursColumnRef = useRef<HTMLDivElement>(null);\n const minutesColumnRef = useRef<HTMLDivElement>(null);\n const secondsColumnRef = useRef<HTMLDivElement>(null);\n const timeItemRefs = useRef<Record<string, HTMLDivElement | null>>({});\n\n const hoursScrollbarRef = useRef<HTMLDivElement>(null);\n const minutesScrollbarRef = useRef<HTMLDivElement>(null);\n const secondsScrollbarRef = useRef<HTMLDivElement>(null);\n const hoursThumbRef = useRef<HTMLDivElement>(null);\n const minutesThumbRef = useRef<HTMLDivElement>(null);\n const secondsThumbRef = useRef<HTMLDivElement>(null);\n\n const hoursHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const minutesHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const secondsHideTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const [innerTime, setInnerTime] = useState(outerValue || '');\n const [activeTime, setActiveTime] = useState<ActiveTime>({\n hours: null,\n minutes: null,\n seconds: null,\n currentColumn: null,\n });\n const [itemHeight, setItemHeight] = useState(0);\n const [gap, setGap] = useState(0);\n\n const [hoursScrollbar, setHoursScrollbar] = useState<ScrollbarState>({\n isVisible: false,\n thumbHeight: 0,\n thumbPosition: 0,\n isDragging: false,\n });\n const [minutesScrollbar, setMinutesScrollbar] = useState<ScrollbarState>({\n isVisible: false,\n thumbHeight: 0,\n thumbPosition: 0,\n isDragging: false,\n });\n const [secondsScrollbar, setSecondsScrollbar] = useState<ScrollbarState>({\n isVisible: false,\n thumbHeight: 0,\n thumbPosition: 0,\n isDragging: false,\n });\n\n const viewValue = outerValue ?? innerTime;\n\n useEffect(() => {\n if (activeTime.currentColumn && activeTime[activeTime.currentColumn] !== null) {\n const column = activeTime.currentColumn;\n const value = activeTime[activeTime.currentColumn]?.toString().padStart(2, '0');\n const element = timeItemRefs.current[`${column}-${value}`];\n\n setTimeout(() => {\n if (element) {\n element.focus();\n }\n }, 0);\n }\n }, [activeTime]);\n\n const getDisabledValuesForColumn = useCallback(\n (columnType: 'hours' | 'minutes' | 'seconds') => {\n let disabledFromProps;\n if (columnType === 'hours') {\n disabledFromProps = disabledValues?.hour || [];\n } else if (columnType === 'minutes') {\n disabledFromProps = disabledValues?.minute || [];\n } else {\n disabledFromProps = disabledValues?.second || [];\n }\n\n const disabledFromMinMax: number[] = [];\n\n if (min || max) {\n const timeValues = parseTimeString(viewValue || '00:00:00', actualFormat);\n\n for (let i = 0; i < (columnType === 'hours' ? 24 : 60); i++) {\n const testValues = { ...timeValues };\n if (columnType === 'hours') {\n testValues.hh = i;\n } else if (columnType === 'minutes') {\n testValues.mm = i;\n } else {\n testValues.ss = i;\n }\n\n const completeTimeValues = getCompleteTimeValues(testValues, actualFormat);\n if (isTimeDisabled(completeTimeValues, min, max, format)) {\n disabledFromMinMax.push(i);\n }\n }\n }\n\n const normalizedDisabledFromProps = disabledFromProps.map((val) =>\n typeof val === 'string' ? parseInt(val, 10) : val,\n );\n\n return [...new Set([...normalizedDisabledFromProps, ...disabledFromMinMax])];\n },\n [disabledValues, min, max, viewValue, actualFormat],\n );\n\n const getCompleteTimeValues = useCallback((timeValues: any, format: string) => {\n const completeValues = { hh: 0, mm: 0, ss: 0 };\n\n if (format.includes('HH')) {\n completeValues.hh = timeValues.hh !== null ? timeValues.hh : 0;\n }\n if (format.includes('mm')) {\n completeValues.mm = timeValues.mm !== null ? timeValues.mm : 0;\n }\n if (format.includes('ss')) {\n completeValues.ss = timeValues.ss !== null ? timeValues.ss : 0;\n }\n\n return completeValues;\n }, []);\n\n const getNextAvailableValue = useCallback(\n (\n currentIndex: number,\n values: string[],\n disabledValuesForColumn: (string | number)[],\n direction: 'up' | 'down',\n ) => {\n let newIndex = currentIndex;\n let iterations = 0;\n const maxIterations = values.length;\n\n do {\n newIndex =\n direction === 'up'\n ? (newIndex - 1 + values.length) % values.length\n : (newIndex + 1) % values.length;\n iterations++;\n } while (\n iterations < maxIterations &&\n disabledValuesForColumn.includes(parseInt(values[newIndex], 10)) &&\n newIndex !== currentIndex\n );\n\n return iterations < maxIterations &&\n !disabledValuesForColumn.includes(parseInt(values[newIndex], 10))\n ? newIndex\n : currentIndex;\n },\n [],\n );\n\n const minScrollbarTrackHeight = 20;\n\n const calculateScrollbar = useCallback((columnRef: React.RefObject<HTMLDivElement>) => {\n if (!columnRef.current) return { thumbHeight: 0, thumbPosition: 0 };\n\n const { scrollTop, scrollHeight, clientHeight } = columnRef.current;\n const trackHeight = clientHeight;\n const thumbHeight = Math.max((trackHeight / scrollHeight) * trackHeight, minScrollbarTrackHeight);\n const maxScroll = scrollHeight - clientHeight;\n const thumbPosition = maxScroll > 0 ? (scrollTop / maxScroll) * (trackHeight - thumbHeight) : 0;\n\n return { thumbHeight, thumbPosition };\n }, []);\n\n const showScrollbarWithDelay = useCallback(\n (\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>,\n columnRef: React.RefObject<HTMLDivElement>,\n ) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n updateScrollbar(columnRef, setScrollbar, true);\n\n timeoutRef.current = (setTimeout(() => {\n setScrollbar((prev) => ({ ...prev, isVisible: false }));\n timeoutRef.current = null;\n }, 2000) as unknown) as NodeJS.Timeout;\n },\n [],\n );\n\n const updateScrollbar = useCallback(\n (\n columnRef: React.RefObject<HTMLDivElement>,\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n show = false,\n ) => {\n if (!columnRef.current) return;\n\n const { thumbHeight, thumbPosition } = calculateScrollbar(columnRef);\n setScrollbar((prev) => ({\n ...prev,\n thumbHeight,\n thumbPosition,\n isVisible: show || prev.isVisible,\n }));\n },\n [calculateScrollbar],\n );\n\n const handleColumnScroll = useCallback(\n (\n columnRef: React.RefObject<HTMLDivElement>,\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>,\n ) => {\n showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);\n },\n [showScrollbarWithDelay],\n );\n\n const createScrollbarDragHandler = useCallback(\n (\n columnRef: React.RefObject<HTMLDivElement>,\n setScrollbar: React.Dispatch<React.SetStateAction<ScrollbarState>>,\n timeoutRef: React.MutableRefObject<NodeJS.Timeout | null>,\n ) => (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n\n const thumb = e.currentTarget as HTMLDivElement;\n const track = thumb.parentElement as HTMLDivElement;\n if (!columnRef.current || !track) return;\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n const startY = e.clientY;\n const startThumbPosition = parseFloat(thumb.style.top || '0');\n const trackRect = track.getBoundingClientRect();\n const trackHeight = trackRect.height;\n const thumbHeight = thumb.offsetHeight;\n\n const { scrollHeight, clientHeight } = columnRef.current;\n const maxScroll = scrollHeight - clientHeight;\n\n const handleMouseMove = (moveEvent: globalThis.MouseEvent) => {\n const deltaY = moveEvent.clientY - startY;\n const newThumbPosition = Math.max(\n 0,\n Math.min(trackHeight - thumbHeight, startThumbPosition + deltaY),\n );\n\n const scrollPercentage = newThumbPosition / (trackHeight - thumbHeight);\n const newScrollTop = scrollPercentage * maxScroll;\n\n if (columnRef.current) {\n columnRef.current.scrollTop = newScrollTop;\n }\n\n setScrollbar((prev) => ({\n ...prev,\n thumbPosition: newThumbPosition,\n isDragging: true,\n isVisible: true,\n }));\n };\n\n const handleMouseUp = () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n\n setScrollbar((prev) => ({\n ...prev,\n isDragging: false,\n }));\n\n showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n },\n [showScrollbarWithDelay],\n );\n\n useEffect(() => {\n if (viewValue && columnsConfig.length > 0) {\n const timeValues = parseTimeString(viewValue, actualFormat);\n setActiveTime((prev) => ({\n ...prev,\n hours: timeValues.hh,\n minutes: timeValues.mm,\n seconds: timeValues.ss,\n }));\n }\n }, [viewValue, columnsConfig, actualFormat]);\n\n const handleContainerFocus = useCallback(() => {\n if (activeTime.currentColumn === null && columnsConfig.length > 0) {\n const firstColumn = columnsConfig[0].type;\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: firstColumn,\n }));\n }\n }, [activeTime.currentColumn, columnsConfig]);\n\n useEffect(() => {\n return () => {\n [hoursHideTimeoutRef, minutesHideTimeoutRef, secondsHideTimeoutRef].forEach((timeoutRef) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n });\n };\n }, []);\n\n useEffect(() => {\n if (Object.keys(timeItemRefs.current).length > 0) {\n const firstItem = Object.values(timeItemRefs.current)[0];\n\n if (firstItem) {\n setItemHeight(firstItem.offsetHeight);\n }\n }\n if (hoursColumnRef.current) {\n const computedStyle = getComputedStyle(hoursColumnRef.current);\n const gapValue = parseFloat(computedStyle.gap || '0');\n setGap(gapValue);\n }\n }, [outerValue]);\n\n useEffect(() => {\n setTimeout(() => {\n updateScrollbar(hoursColumnRef, setHoursScrollbar);\n updateScrollbar(minutesColumnRef, setMinutesScrollbar);\n if (columnsQuantity === 3) {\n updateScrollbar(secondsColumnRef, setSecondsScrollbar);\n }\n }, 100);\n }, [columnsQuantity, updateScrollbar]);\n\n useEffect(() => {\n if (itemHeight === 0) return;\n\n const scrollToActiveItem = (columnRef: React.RefObject<HTMLDivElement>, index: number | null) => {\n if (columnRef.current && index !== null) {\n const scrollPosition = index * (itemHeight + gap);\n animateScrollTo(columnRef.current, scrollPosition);\n setTimeout(() => {\n updateScrollbar(columnRef, setHoursScrollbar);\n }, 300);\n }\n };\n\n scrollToActiveItem(hoursColumnRef, activeTime.hours);\n scrollToActiveItem(minutesColumnRef, activeTime.minutes);\n scrollToActiveItem(secondsColumnRef, activeTime.seconds);\n }, [activeTime, itemHeight, gap, updateScrollbar]);\n\n useEffect(() => {\n const hoursColumn = hoursColumnRef.current;\n const minutesColumn = minutesColumnRef.current;\n const secondsColumn = secondsColumnRef.current;\n\n const handleHoursScroll = () =>\n handleColumnScroll(hoursColumnRef, setHoursScrollbar, hoursHideTimeoutRef);\n const handleMinutesScroll = () =>\n handleColumnScroll(minutesColumnRef, setMinutesScrollbar, minutesHideTimeoutRef);\n const handleSecondsScroll = () =>\n handleColumnScroll(secondsColumnRef, setSecondsScrollbar, secondsHideTimeoutRef);\n\n if (hoursColumn) {\n hoursColumn.addEventListener('scroll', handleHoursScroll);\n }\n if (minutesColumn) {\n minutesColumn.addEventListener('scroll', handleMinutesScroll);\n }\n if (secondsColumn) {\n secondsColumn.addEventListener('scroll', handleSecondsScroll);\n }\n\n return () => {\n if (hoursColumn) {\n hoursColumn.removeEventListener('scroll', handleHoursScroll);\n }\n if (minutesColumn) {\n minutesColumn.removeEventListener('scroll', handleMinutesScroll);\n }\n if (secondsColumn) {\n secondsColumn.removeEventListener('scroll', handleSecondsScroll);\n }\n };\n }, []);\n\n useEffect(() => {\n const hoursColumn = hoursColumnRef.current;\n const minutesColumn = minutesColumnRef.current;\n const secondsColumn = secondsColumnRef.current;\n\n const handleHoursMouseEnter = () =>\n showScrollbarWithDelay(setHoursScrollbar, hoursHideTimeoutRef, hoursColumnRef);\n const handleMinutesMouseEnter = () =>\n showScrollbarWithDelay(setMinutesScrollbar, minutesHideTimeoutRef, minutesColumnRef);\n const handleSecondsMouseEnter = () =>\n showScrollbarWithDelay(setSecondsScrollbar, secondsHideTimeoutRef, secondsColumnRef);\n\n if (hoursColumn) {\n hoursColumn.addEventListener('mouseenter', handleHoursMouseEnter);\n }\n if (minutesColumn) {\n minutesColumn.addEventListener('mouseenter', handleMinutesMouseEnter);\n }\n if (secondsColumn) {\n secondsColumn.addEventListener('mouseenter', handleSecondsMouseEnter);\n }\n\n return () => {\n if (hoursColumn) {\n hoursColumn.removeEventListener('mouseenter', handleHoursMouseEnter);\n }\n if (minutesColumn) {\n minutesColumn.removeEventListener('mouseenter', handleMinutesMouseEnter);\n }\n if (secondsColumn) {\n secondsColumn.removeEventListener('mouseenter', handleSecondsMouseEnter);\n }\n };\n }, []);\n\n const handleTimeItemClick = (\n value: string,\n column: 'hours' | 'minutes' | 'seconds',\n isNextColumn = true,\n ) => {\n const currentTimeValues = parseTimeString(innerTime, actualFormat);\n const newTimeValues = { ...currentTimeValues };\n\n switch (column) {\n case 'hours':\n newTimeValues.hh = parseInt(value, 10);\n break;\n case 'minutes':\n newTimeValues.mm = parseInt(value, 10);\n break;\n case 'seconds':\n newTimeValues.ss = parseInt(value, 10);\n break;\n default:\n }\n\n const getFirstAvailableValue = (columnType: 'hours' | 'minutes' | 'seconds'): number => {\n const disabledValuesForColumn = getDisabledValuesForColumn(columnType);\n const maxValue = columnType === 'hours' ? 23 : 59;\n\n for (let i = 0; i <= maxValue; i++) {\n if (!disabledValuesForColumn.includes(i)) {\n return i;\n }\n }\n return 0;\n };\n\n if (newTimeValues.hh === null && actualFormat.includes('HH')) {\n newTimeValues.hh = getFirstAvailableValue('hours');\n }\n if (newTimeValues.mm === null && actualFormat.includes('mm')) {\n newTimeValues.mm = getFirstAvailableValue('minutes');\n }\n if (newTimeValues.ss === null && actualFormat.includes('ss')) {\n newTimeValues.ss = getFirstAvailableValue('seconds');\n }\n\n const completeTimeValues = getCompleteTimeValues(newTimeValues, actualFormat);\n if (isTimeDisabled(completeTimeValues, min, max)) {\n return;\n }\n\n const newTimeString = buildTimeString(newTimeValues, actualFormat);\n setInnerTime(newTimeString);\n\n let nextColumn: 'hours' | 'minutes' | 'seconds' | null = null;\n const currentIndex = columnsConfig.findIndex((col) => col.type === column);\n if (currentIndex !== -1 && isNextColumn && currentIndex < columnsConfig.length - 1) {\n nextColumn = columnsConfig[currentIndex + 1].type;\n }\n\n const newActiveTime: ActiveTime = {\n hours: newTimeValues.hh,\n minutes: newTimeValues.mm,\n seconds: newTimeValues.ss,\n currentColumn: nextColumn || column,\n };\n setActiveTime(newActiveTime);\n\n onChange?.({\n value: newTimeString,\n timeValues: {\n hour: newTimeValues.hh || undefined,\n minute: newTimeValues.mm || undefined,\n second: newTimeValues.ss || undefined,\n },\n } as TimePickerGridChangeEvent);\n };\n\n const handleTimeItemKeyDown: TimeItemKeyDownHandler = (\n event: KeyboardEvent<HTMLDivElement>,\n column: TimeColumnType,\n value: string,\n ) => {\n const disabledValuesForColumn = getDisabledValuesForColumn(column);\n const currentIndex = parseInt(value, 10);\n let newIndex: number | null = null;\n let newColumn = column;\n const currentIndexInColumns = columnsConfig.findIndex((col) => col.type === column);\n\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n newIndex = getNextAvailableValue(\n currentIndex,\n column === 'hours'\n ? Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, '0'))\n : Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0')),\n disabledValuesForColumn,\n 'up',\n );\n if (newIndex !== null) {\n const newValue = newIndex.toString().padStart(2, '0');\n handleTimeItemClick(newValue, column, false);\n }\n break;\n case 'ArrowDown':\n event.preventDefault();\n newIndex = getNextAvailableValue(\n currentIndex,\n column === 'hours'\n ? Array.from({ length: 24 }, (_, i) => i.toString().padStart(2, '0'))\n : Array.from({ length: 60 }, (_, i) => i.toString().padStart(2, '0')),\n disabledValuesForColumn,\n 'down',\n );\n if (newIndex !== null) {\n const newValue = newIndex.toString().padStart(2, '0');\n handleTimeItemClick(newValue, column, false);\n }\n break;\n case 'ArrowRight':\n event.preventDefault();\n if (column === 'hours') {\n newColumn = 'minutes';\n } else if (column === 'minutes' && actualFormat.includes('ss')) {\n newColumn = 'seconds';\n }\n if (newColumn !== column) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: newColumn,\n }));\n }\n break;\n case 'ArrowLeft':\n event.preventDefault();\n if (column === 'minutes') {\n newColumn = 'hours';\n } else if (column === 'seconds') {\n newColumn = 'minutes';\n }\n if (newColumn !== column) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: newColumn,\n }));\n }\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n handleTimeItemClick(value, column);\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n while (\n disabledValuesForColumn.includes(newIndex) &&\n newIndex < (column === 'hours' ? 24 : 60)\n ) {\n newIndex++;\n }\n if (newIndex < (column === 'hours' ? 24 : 60)) {\n handleTimeItemClick(newIndex.toString().padStart(2, '0'), column, false);\n }\n break;\n case 'End':\n event.preventDefault();\n newIndex = column === 'hours' ? 23 : 59;\n while (disabledValuesForColumn.includes(newIndex) && newIndex >= 0) {\n newIndex--;\n }\n if (newIndex >= 0) {\n handleTimeItemClick(newIndex.toString().padStart(2, '0'), column, false);\n }\n break;\n case 'Tab':\n if (currentIndexInColumns === columnsConfig.length - 1) {\n break;\n }\n event.preventDefault();\n if (event.shiftKey) {\n if (column === 'minutes') {\n newColumn = 'hours';\n } else if (column === 'seconds') {\n newColumn = 'minutes';\n }\n } else if (column === 'hours') {\n newColumn = 'minutes';\n } else if (column === 'minutes' && actualFormat.includes('ss')) {\n newColumn = 'seconds';\n }\n if (newColumn !== column) {\n setActiveTime((prev) => ({\n ...prev,\n currentColumn: newColumn,\n }));\n }\n break;\n default:\n if (/^[0-9]$/.test(event.key)) {\n event.preventDefault();\n const inputNumber = parseInt(event.key, 10);\n\n if (column === 'hours') {\n if (inputNumber <= 2) {\n const tens = inputNumber;\n const handleSecondInput = (e: globalThis.KeyboardEvent) => {\n if (/^[0-9]$/.test(e.key)) {\n const units = parseInt(e.key, 10);\n const total = tens * 10 + units;\n if (total < 24 && !disabledValuesForColumn.includes(total)) {\n handleTimeItemClick(total.toString().padStart(2, '0'), column);\n }\n document.removeEventListener('keydown', handleSecondInput);\n }\n };\n document.addEventListener('keydown', handleSecondInput);\n setTimeout(() => {\n document.removeEventListener('keydown', handleSecondInput);\n }, 1000);\n } else if (inputNumber <= 9) {\n if (!disabledValuesForColumn.includes(inputNumber)) {\n handleTimeItemClick(inputNumber.toString().padStart(2, '0'), column);\n }\n }\n } else if (inputNumber <= 5) {\n const tens = inputNumber;\n const handleSecondInput = (e: globalThis.KeyboardEvent) => {\n if (/^[0-9]$/.test(e.key)) {\n const units = parseInt(e.key, 10);\n const total = tens * 10 + units;\n if (total < 60 && !disabledValuesForColumn.includes(total)) {\n handleTimeItemClick(total.toString().padStart(2, '0'), column);\n }\n document.removeEventListener('keydown', handleSecondInput);\n }\n };\n document.addEventListener('keydown', handleSecondInput);\n setTimeout(() => {\n document.removeEventListener('keydown', handleSecondInput);\n }, 1000);\n } else if (inputNumber <= 9) {\n if (!disabledValuesForColumn.includes(inputNumber)) {\n handleTimeItemClick(inputNumber.toString().padStart(2, '0'), column);\n }\n }\n }\n }\n };\n\n return (\n <Root ref={ref} view={view} size={size} disabled={disabled} onFocus={handleContainerFocus} {...rest}>\n <StyledTimePicker width={dropdownWidth} tabIndex={-1}>\n {columnsConfig.map((columnConfig) => {\n const { type, values } = columnConfig;\n\n let columnRef;\n let scrollbarState;\n let setScrollbar;\n let scrollbarRef;\n let thumbRef;\n let timeoutRef;\n\n switch (type) {\n case 'hours':\n columnRef = hoursColumnRef;\n scrollbarState = hoursScrollbar;\n setScrollbar = setHoursScrollbar;\n scrollbarRef = hoursScrollbarRef;\n thumbRef = hoursThumbRef;\n timeoutRef = hoursHideTimeoutRef;\n break;\n case 'minutes':\n columnRef = minutesColumnRef;\n scrollbarState = minutesScrollbar;\n setScrollbar = setMinutesScrollbar;\n scrollbarRef = minutesScrollbarRef;\n thumbRef = minutesThumbRef;\n timeoutRef = minutesHideTimeoutRef;\n break;\n case 'seconds':\n columnRef = secondsColumnRef;\n scrollbarState = secondsScrollbar;\n setScrollbar = setSecondsScrollbar;\n scrollbarRef = secondsScrollbarRef;\n thumbRef = secondsThumbRef;\n timeoutRef = secondsHideTimeoutRef;\n break;\n default:\n return null;\n }\n\n return renderTimeColumn({\n values,\n disabledValues: getDisabledValuesForColumn(type),\n dropdownHeight,\n column: type,\n activeTime,\n handleTimeItemClick,\n handleTimeItemKeyDown,\n createScrollbarDragHandler,\n setScrollbar,\n columnRef,\n scrollbarState,\n scrollbarRef,\n thumbRef,\n timeoutRef,\n timeItemRefs,\n });\n })}\n </StyledTimePicker>\n </Root>\n );\n },\n );\n\nexport const timePickerGridConfig = {\n name: 'TimePickerGrid',\n tag: 'div',\n layout: timePickerGridRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["timePickerGridRoot","Root","forwardRef","_ref","ref","outerValue","value","view","size","_ref$disabled","disabled","dropdownWidth","dropdownHeight","_ref$format","format","min","max","columnsQuantity","disabledValues","onChange","rest","_objectWithoutProperties","_excluded","actualFormat","columnsConfig","useMemo","getColumnsFromFormat","hoursColumnRef","useRef","minutesColumnRef","secondsColumnRef","timeItemRefs","hoursScrollbarRef","minutesScrollbarRef","secondsScrollbarRef","hoursThumbRef","minutesThumbRef","secondsThumbRef","hoursHideTimeoutRef","minutesHideTimeoutRef","secondsHideTimeoutRef","_useState","useState","_useState2","_slicedToArray","innerTime","setInnerTime","_useState3","hours","minutes","seconds","currentColumn","_useState4","activeTime","setActiveTime","_useState5","_useState6","itemHeight","setItemHeight","_useState7","_useState8","gap","setGap","_useState9","isVisible","thumbHeight","thumbPosition","isDragging","_useState10","hoursScrollbar","setHoursScrollbar","_useState11","_useState12","minutesScrollbar","setMinutesScrollbar","_useState13","_useState14","secondsScrollbar","setSecondsScrollbar","viewValue","useEffect","_activeTime$activeTim","column","toString","padStart","element","current","concat","setTimeout","focus","getDisabledValuesForColumn","useCallback","columnType","disabledFromProps","hour","minute","second","disabledFromMinMax","timeValues","parseTimeString","i","testValues","_objectSpread","hh","mm","ss","completeTimeValues","getCompleteTimeValues","isTimeDisabled","push","normalizedDisabledFromProps","map","val","parseInt","_toConsumableArray","Set","completeValues","includes","getNextAvailableValue","currentIndex","values","disabledValuesForColumn","direction","newIndex","iterations","maxIterations","length","minScrollbarTrackHeight","calculateScrollbar","columnRef","_columnRef$current","scrollTop","scrollHeight","clientHeight","trackHeight","Math","maxScroll","showScrollbarWithDelay","setScrollbar","timeoutRef","clearTimeout","updateScrollbar","prev","show","arguments","undefined","_calculateScrollbar","handleColumnScroll","createScrollbarDragHandler","e","preventDefault","thumb","currentTarget","track","parentElement","startY","clientY","startThumbPosition","parseFloat","style","top","trackRect","getBoundingClientRect","height","offsetHeight","_columnRef$current2","handleMouseMove","moveEvent","deltaY","newThumbPosition","scrollPercentage","newScrollTop","handleMouseUp","document","removeEventListener","addEventListener","handleContainerFocus","firstColumn","type","forEach","Object","keys","firstItem","computedStyle","getComputedStyle","gapValue","scrollToActiveItem","index","scrollPosition","animateScrollTo","hoursColumn","minutesColumn","secondsColumn","handleHoursScroll","handleMinutesScroll","handleSecondsScroll","handleHoursMouseEnter","handleMinutesMouseEnter","handleSecondsMouseEnter","handleTimeItemClick","isNextColumn","currentTimeValues","newTimeValues","getFirstAvailableValue","maxValue","newTimeString","buildTimeString","nextColumn","findIndex","col","newActiveTime","handleTimeItemKeyDown","event","newColumn","currentIndexInColumns","key","Array","from","_","newValue","shiftKey","test","inputNumber","tens","handleSecondInput","units","total","React","createElement","_extends","onFocus","StyledTimePicker","width","tabIndex","columnConfig","scrollbarState","scrollbarRef","thumbRef","renderTimeColumn","timePickerGridConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@ var buildTimeString = function buildTimeString(timeValues, format) {
|
|
|
71
71
|
}
|
|
72
72
|
}).join(':');
|
|
73
73
|
};
|
|
74
|
-
var isTimeDisabled = function isTimeDisabled(timeValues, min, max) {
|
|
74
|
+
var isTimeDisabled = function isTimeDisabled(timeValues, min, max, format) {
|
|
75
75
|
if (!min && !max) return false;
|
|
76
76
|
if (timeValues.hh === null || timeValues.mm === null || timeValues.ss === null) {
|
|
77
77
|
return false;
|
|
@@ -83,7 +83,7 @@ var isTimeDisabled = function isTimeDisabled(timeValues, min, max) {
|
|
|
83
83
|
if (min instanceof Date) {
|
|
84
84
|
minSeconds = min.getHours() * 3600 + min.getMinutes() * 60 + min.getSeconds();
|
|
85
85
|
} else {
|
|
86
|
-
var minTime = parseTimeString(min, 'HH:mm:ss');
|
|
86
|
+
var minTime = parseTimeString(min, format !== null && format !== void 0 ? format : 'HH:mm:ss');
|
|
87
87
|
minSeconds = (minTime.hh || 0) * 3600 + (minTime.mm || 0) * 60 + (minTime.ss || 0);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -91,7 +91,7 @@ var isTimeDisabled = function isTimeDisabled(timeValues, min, max) {
|
|
|
91
91
|
if (max instanceof Date) {
|
|
92
92
|
maxSeconds = max.getHours() * 3600 + max.getMinutes() * 60 + max.getSeconds();
|
|
93
93
|
} else {
|
|
94
|
-
var maxTime = parseTimeString(max, 'HH:mm:ss');
|
|
94
|
+
var maxTime = parseTimeString(max, format !== null && format !== void 0 ? format : 'HH:mm:ss');
|
|
95
95
|
maxSeconds = (maxTime.hh || 0) * 3600 + (maxTime.mm || 0) * 60 + (maxTime.ss || 0);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/TimePickerGrid/utils/index.ts"],"sourcesContent":["export interface TimeValues {\n hh: number | null;\n mm: number | null;\n ss: number | null;\n}\n\nexport interface NormalizedSegment {\n text: string;\n value: number | null;\n carryover: string;\n}\n\nexport interface ColumnConfig {\n type: 'hours' | 'minutes' | 'seconds';\n values: string[];\n format: string;\n disabledValues?: (number | string)[];\n}\n\nexport const getColumnsFromFormat = (format: string): ColumnConfig[] => {\n const parts = format.split(':');\n const columns: ColumnConfig[] = [];\n\n parts.forEach((part) => {\n switch (part) {\n case 'HH':\n columns.push({\n type: 'hours',\n values: range(24),\n format: 'HH',\n });\n break;\n case 'mm':\n columns.push({\n type: 'minutes',\n values: range(60),\n format: 'mm',\n });\n break;\n case 'ss':\n columns.push({\n type: 'seconds',\n values: range(60),\n format: 'ss',\n });\n break;\n default:\n }\n });\n\n return columns;\n};\n\nexport const parseTimeString = (timeString: string, format: string): TimeValues => {\n const timeParts = timeString.split(':');\n const formatParts = format.split(':');\n const result: TimeValues = { hh: null, mm: null, ss: null };\n\n formatParts.forEach((part, index) => {\n const value = timeParts[index] ? parseInt(timeParts[index], 10) : null;\n switch (part) {\n case 'HH':\n result.hh = value;\n break;\n case 'mm':\n result.mm = value;\n break;\n case 'ss':\n result.ss = value;\n break;\n default:\n }\n });\n\n return result;\n};\n\nexport const buildTimeString = (timeValues: TimeValues, format: string): string => {\n const formatParts = format.split(':');\n return formatParts\n .map((part) => {\n switch (part) {\n case 'HH':\n return timeValues.hh !== null ? timeValues.hh.toString().padStart(2, '0') : '00';\n case 'mm':\n return timeValues.mm !== null ? timeValues.mm.toString().padStart(2, '0') : '00';\n case 'ss':\n return timeValues.ss !== null ? timeValues.ss.toString().padStart(2, '0') : '00';\n default:\n return '00';\n }\n })\n .join(':');\n};\n\nexport const isTimeDisabled = (timeValues: TimeValues, min?: string | Date, max?: string | Date): boolean => {\n if (!min && !max) return false;\n\n if (timeValues.hh === null || timeValues.mm === null || timeValues.ss === null) {\n return false;\n }\n\n const totalSeconds = timeValues.hh * 3600 + timeValues.mm * 60 + timeValues.ss;\n\n let minSeconds = 0;\n let maxSeconds = 23 * 3600 + 59 * 60 + 59;\n\n if (min) {\n if (min instanceof Date) {\n minSeconds = min.getHours() * 3600 + min.getMinutes() * 60 + min.getSeconds();\n } else {\n const minTime = parseTimeString(min, 'HH:mm:ss');\n minSeconds = (minTime.hh || 0) * 3600 + (minTime.mm || 0) * 60 + (minTime.ss || 0);\n }\n }\n\n if (max) {\n if (max instanceof Date) {\n maxSeconds = max.getHours() * 3600 + max.getMinutes() * 60 + max.getSeconds();\n } else {\n const maxTime = parseTimeString(max, 'HH:mm:ss');\n maxSeconds = (maxTime.hh || 0) * 3600 + (maxTime.mm || 0) * 60 + (maxTime.ss || 0);\n }\n }\n\n return totalSeconds < minSeconds || totalSeconds > maxSeconds;\n};\n\nexport const delimiter = ':';\n\nexport const range = (number: number, padLength = 2): string[] => {\n return Array.from({ length: number }, (_, i) => i.toString().padStart(padLength, '0'));\n};\n\nexport const animateScrollTo = (element: HTMLDivElement, targetScrollTop: number, duration = 300): void => {\n const startScrollTop = element.scrollTop;\n const distance = targetScrollTop - startScrollTop;\n let startTime: number | null = null;\n\n const animate = (currentTime: number) => {\n if (!startTime) startTime = currentTime;\n const timeElapsed = currentTime - startTime;\n const progress = Math.min(timeElapsed / duration, 1);\n\n const easeOut = (t: number) => 1 - (1 - t) ** 3;\n const scrollPosition = startScrollTop + distance * easeOut(progress);\n\n element.scrollTop = scrollPosition;\n\n if (timeElapsed < duration) {\n requestAnimationFrame(animate);\n }\n };\n\n requestAnimationFrame(animate);\n};\n"],"names":["getColumnsFromFormat","format","parts","split","columns","forEach","part","push","type","values","range","parseTimeString","timeString","timeParts","formatParts","result","hh","mm","ss","index","value","parseInt","buildTimeString","timeValues","map","toString","padStart","join","isTimeDisabled","min","max","totalSeconds","minSeconds","maxSeconds","Date","getHours","getMinutes","getSeconds","minTime","maxTime","number","padLength","arguments","length","undefined","Array","from","_","i","animateScrollTo","element","targetScrollTop","duration","startScrollTop","scrollTop","distance","startTime","animate","currentTime","timeElapsed","progress","Math","easeOut","t","pow","scrollPosition","requestAnimationFrame"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/TimePickerGrid/utils/index.ts"],"sourcesContent":["export interface TimeValues {\n hh: number | null;\n mm: number | null;\n ss: number | null;\n}\n\nexport interface NormalizedSegment {\n text: string;\n value: number | null;\n carryover: string;\n}\n\nexport interface ColumnConfig {\n type: 'hours' | 'minutes' | 'seconds';\n values: string[];\n format: string;\n disabledValues?: (number | string)[];\n}\n\nexport const getColumnsFromFormat = (format: string): ColumnConfig[] => {\n const parts = format.split(':');\n const columns: ColumnConfig[] = [];\n\n parts.forEach((part) => {\n switch (part) {\n case 'HH':\n columns.push({\n type: 'hours',\n values: range(24),\n format: 'HH',\n });\n break;\n case 'mm':\n columns.push({\n type: 'minutes',\n values: range(60),\n format: 'mm',\n });\n break;\n case 'ss':\n columns.push({\n type: 'seconds',\n values: range(60),\n format: 'ss',\n });\n break;\n default:\n }\n });\n\n return columns;\n};\n\nexport const parseTimeString = (timeString: string, format: string): TimeValues => {\n const timeParts = timeString.split(':');\n const formatParts = format.split(':');\n const result: TimeValues = { hh: null, mm: null, ss: null };\n\n formatParts.forEach((part, index) => {\n const value = timeParts[index] ? parseInt(timeParts[index], 10) : null;\n switch (part) {\n case 'HH':\n result.hh = value;\n break;\n case 'mm':\n result.mm = value;\n break;\n case 'ss':\n result.ss = value;\n break;\n default:\n }\n });\n\n return result;\n};\n\nexport const buildTimeString = (timeValues: TimeValues, format: string): string => {\n const formatParts = format.split(':');\n return formatParts\n .map((part) => {\n switch (part) {\n case 'HH':\n return timeValues.hh !== null ? timeValues.hh.toString().padStart(2, '0') : '00';\n case 'mm':\n return timeValues.mm !== null ? timeValues.mm.toString().padStart(2, '0') : '00';\n case 'ss':\n return timeValues.ss !== null ? timeValues.ss.toString().padStart(2, '0') : '00';\n default:\n return '00';\n }\n })\n .join(':');\n};\n\nexport const isTimeDisabled = (\n timeValues: TimeValues,\n min?: string | Date,\n max?: string | Date,\n format?: string,\n): boolean => {\n if (!min && !max) return false;\n\n if (timeValues.hh === null || timeValues.mm === null || timeValues.ss === null) {\n return false;\n }\n\n const totalSeconds = timeValues.hh * 3600 + timeValues.mm * 60 + timeValues.ss;\n\n let minSeconds = 0;\n let maxSeconds = 23 * 3600 + 59 * 60 + 59;\n\n if (min) {\n if (min instanceof Date) {\n minSeconds = min.getHours() * 3600 + min.getMinutes() * 60 + min.getSeconds();\n } else {\n const minTime = parseTimeString(min, format ?? 'HH:mm:ss');\n minSeconds = (minTime.hh || 0) * 3600 + (minTime.mm || 0) * 60 + (minTime.ss || 0);\n }\n }\n\n if (max) {\n if (max instanceof Date) {\n maxSeconds = max.getHours() * 3600 + max.getMinutes() * 60 + max.getSeconds();\n } else {\n const maxTime = parseTimeString(max, format ?? 'HH:mm:ss');\n maxSeconds = (maxTime.hh || 0) * 3600 + (maxTime.mm || 0) * 60 + (maxTime.ss || 0);\n }\n }\n\n return totalSeconds < minSeconds || totalSeconds > maxSeconds;\n};\n\nexport const delimiter = ':';\n\nexport const range = (number: number, padLength = 2): string[] => {\n return Array.from({ length: number }, (_, i) => i.toString().padStart(padLength, '0'));\n};\n\nexport const animateScrollTo = (element: HTMLDivElement, targetScrollTop: number, duration = 300): void => {\n const startScrollTop = element.scrollTop;\n const distance = targetScrollTop - startScrollTop;\n let startTime: number | null = null;\n\n const animate = (currentTime: number) => {\n if (!startTime) startTime = currentTime;\n const timeElapsed = currentTime - startTime;\n const progress = Math.min(timeElapsed / duration, 1);\n\n const easeOut = (t: number) => 1 - (1 - t) ** 3;\n const scrollPosition = startScrollTop + distance * easeOut(progress);\n\n element.scrollTop = scrollPosition;\n\n if (timeElapsed < duration) {\n requestAnimationFrame(animate);\n }\n };\n\n requestAnimationFrame(animate);\n};\n"],"names":["getColumnsFromFormat","format","parts","split","columns","forEach","part","push","type","values","range","parseTimeString","timeString","timeParts","formatParts","result","hh","mm","ss","index","value","parseInt","buildTimeString","timeValues","map","toString","padStart","join","isTimeDisabled","min","max","totalSeconds","minSeconds","maxSeconds","Date","getHours","getMinutes","getSeconds","minTime","maxTime","number","padLength","arguments","length","undefined","Array","from","_","i","animateScrollTo","element","targetScrollTop","duration","startScrollTop","scrollTop","distance","startTime","animate","currentTime","timeElapsed","progress","Math","easeOut","t","pow","scrollPosition","requestAnimationFrame"],"mappings":"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"}
|
|
@@ -5,33 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
6
|
var cls = require('classnames/dedupe');
|
|
7
7
|
var Tree_tokens = require('../Tree.tokens.js');
|
|
8
|
+
var deepCopy = require('../../../utils/deepCopy.js');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
|
|
11
12
|
var cls__default = /*#__PURE__*/_interopDefault(cls);
|
|
12
13
|
|
|
13
|
-
// Blazing-fast хелпер для глубокого копирования объектов.
|
|
14
|
-
// Ссылки на функции (React-компоненты) сохраняются.
|
|
15
|
-
var deepCopy = function deepCopy(obj) {
|
|
16
|
-
if (obj === null || _rollupPluginBabelHelpers.typeof(obj) !== 'object') {
|
|
17
|
-
return obj;
|
|
18
|
-
}
|
|
19
|
-
if (Array.isArray(obj)) {
|
|
20
|
-
return obj.map(function (item) {
|
|
21
|
-
return deepCopy(item);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
if (obj.$$typeof === Symbol["for"]('react.element') || obj.$$typeof === Symbol["for"]('react.fragment') || _rollupPluginBabelHelpers.typeof(obj === null || obj === void 0 ? void 0 : obj.$$typeof) === 'symbol') {
|
|
25
|
-
return obj;
|
|
26
|
-
}
|
|
27
|
-
return Object.fromEntries(Object.entries(obj).map(function (_ref) {
|
|
28
|
-
var _ref2 = _rollupPluginBabelHelpers.slicedToArray(_ref, 2),
|
|
29
|
-
key = _ref2[0],
|
|
30
|
-
value = _ref2[1];
|
|
31
|
-
return [key, deepCopy(value)];
|
|
32
|
-
}));
|
|
33
|
-
};
|
|
34
|
-
|
|
35
14
|
// Поиск в глубину для обхода узлов дерева.
|
|
36
15
|
var dfs = function dfs(node, selectedKeys, rootParentsSelected, parents) {
|
|
37
16
|
var _node$children, _parents$filter$;
|
|
@@ -78,7 +57,7 @@ var getRootParentsSelectedChildren = function getRootParentsSelectedChildren(nod
|
|
|
78
57
|
// Перебираем и клонируем элементы в дереве, а также добавляем к ним класснеймы.
|
|
79
58
|
var traverseTree = function traverseTree(items, selectedKeys) {
|
|
80
59
|
var selectedKeysSet = new Set(selectedKeys);
|
|
81
|
-
var copyItems = deepCopy(items);
|
|
60
|
+
var copyItems = deepCopy.deepCopy(items);
|
|
82
61
|
var rootParentsSelected = getRootParentsSelectedChildren({
|
|
83
62
|
key: 'root',
|
|
84
63
|
children: copyItems
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseTree.js","sources":["../../../../src/components/Tree/utils/traverseTree.ts"],"sourcesContent":["import type { Key } from 'react';\nimport cls from 'classnames/dedupe';\
|
|
1
|
+
{"version":3,"file":"traverseTree.js","sources":["../../../../src/components/Tree/utils/traverseTree.ts"],"sourcesContent":["import type { Key } from 'react';\nimport cls from 'classnames/dedupe';\nimport { deepCopy } from 'src/utils';\n\nimport { classes } from '../Tree.tokens';\nimport type { TreeItem } from '../Tree.types';\n\n// Поиск в глубину для обхода узлов дерева.\nconst dfs = (node: TreeItem, selectedKeys: Set<Key>, rootParentsSelected: Set<Key>, parents: TreeItem[]): void => {\n if (selectedKeys.has(node.key)) {\n parents.forEach((parent) => {\n parent.className = cls(parent.className, classes.treeItemHasSelectedChildren);\n });\n }\n\n node.children?.forEach((childNode) => dfs(childNode, selectedKeys, rootParentsSelected, [...parents, node]));\n\n if (rootParentsSelected.has(parents.filter((parent) => parent.key !== 'root')[0]?.key)) {\n node.className = cls(node.className, classes.treeItemPrimaryBackground);\n }\n\n if (!node.children) {\n node.className = cls(node.className, classes.treeLeafNode);\n }\n};\n\nconst getRootParentsSelectedChildren = (node: TreeItem, selectedKeysSet: Set<Key>) => {\n const rootParentsSelected = new Set<Key>();\n\n const dfs = (node: TreeItem, currentRootParentKey: Key) => {\n if (rootParentsSelected.has(currentRootParentKey)) {\n return;\n }\n\n if (selectedKeysSet.has(node.key)) {\n rootParentsSelected.add(currentRootParentKey);\n }\n\n if (node.children) {\n node.children.forEach((childNode) => {\n dfs(childNode, currentRootParentKey);\n });\n }\n };\n\n if (node.children) {\n node.children.forEach((rootNode) => {\n dfs(rootNode, rootNode.key);\n });\n }\n\n return rootParentsSelected;\n};\n\n// Перебираем и клонируем элементы в дереве, а также добавляем к ним класснеймы.\nexport const traverseTree = (items: TreeItem[], selectedKeys?: Key[]): TreeItem[] => {\n const selectedKeysSet = new Set(selectedKeys);\n\n const copyItems = deepCopy(items);\n\n const rootParentsSelected = getRootParentsSelectedChildren({ key: 'root', children: copyItems }, selectedKeysSet);\n\n copyItems.forEach((item) => {\n dfs(item, selectedKeysSet, rootParentsSelected, [item]);\n });\n\n return copyItems;\n};\n"],"names":["dfs","node","selectedKeys","rootParentsSelected","parents","_node$children","_parents$filter$","has","key","forEach","parent","className","cls","classes","treeItemHasSelectedChildren","children","childNode","concat","_toConsumableArray","filter","treeItemPrimaryBackground","treeLeafNode","getRootParentsSelectedChildren","selectedKeysSet","Set","currentRootParentKey","add","rootNode","traverseTree","items","copyItems","deepCopy","item"],"mappings":";;;;;;;;;;;;;AAOA;AACA,IAAMA,GAAG,GAAG,SAANA,GAAGA,CAAIC,IAAc,EAAEC,YAAsB,EAAEC,mBAA6B,EAAEC,OAAmB,EAAW;EAAA,IAAAC,cAAA,EAAAC,gBAAA,CAAA;EAC9G,IAAIJ,YAAY,CAACK,GAAG,CAACN,IAAI,CAACO,GAAG,CAAC,EAAE;AAC5BJ,IAAAA,OAAO,CAACK,OAAO,CAAC,UAACC,MAAM,EAAK;AACxBA,MAAAA,MAAM,CAACC,SAAS,GAAGC,oBAAG,CAACF,MAAM,CAACC,SAAS,EAAEE,mBAAO,CAACC,2BAA2B,CAAC,CAAA;AACjF,KAAC,CAAC,CAAA;AACN,GAAA;AAEA,EAAA,CAAAT,cAAA,GAAAJ,IAAI,CAACc,QAAQ,MAAA,IAAA,IAAAV,cAAA,KAAA,KAAA,CAAA,IAAbA,cAAA,CAAeI,OAAO,CAAC,UAACO,SAAS,EAAA;AAAA,IAAA,OAAKhB,GAAG,CAACgB,SAAS,EAAEd,YAAY,EAAEC,mBAAmB,EAAA,EAAA,CAAAc,MAAA,CAAAC,2CAAA,CAAMd,OAAO,CAAEH,EAAAA,CAAAA,IAAI,EAAC,CAAC,CAAA;GAAC,CAAA,CAAA;EAE5G,IAAIE,mBAAmB,CAACI,GAAG,CAAAD,CAAAA,gBAAA,GAACF,OAAO,CAACe,MAAM,CAAC,UAACT,MAAM,EAAA;AAAA,IAAA,OAAKA,MAAM,CAACF,GAAG,KAAK,MAAM,CAAA;GAAC,CAAA,CAAC,CAAC,CAAC,MAAAF,IAAAA,IAAAA,gBAAA,uBAApDA,gBAAA,CAAsDE,GAAG,CAAC,EAAE;AACpFP,IAAAA,IAAI,CAACU,SAAS,GAAGC,oBAAG,CAACX,IAAI,CAACU,SAAS,EAAEE,mBAAO,CAACO,yBAAyB,CAAC,CAAA;AAC3E,GAAA;AAEA,EAAA,IAAI,CAACnB,IAAI,CAACc,QAAQ,EAAE;AAChBd,IAAAA,IAAI,CAACU,SAAS,GAAGC,oBAAG,CAACX,IAAI,CAACU,SAAS,EAAEE,mBAAO,CAACQ,YAAY,CAAC,CAAA;AAC9D,GAAA;AACJ,CAAC,CAAA;AAED,IAAMC,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAIrB,IAAc,EAAEsB,eAAyB,EAAK;AAClF,EAAA,IAAMpB,mBAAmB,GAAG,IAAIqB,GAAG,EAAO,CAAA;EAE1C,IAAMxB,GAAG,GAAG,SAANA,GAAGA,CAAIC,IAAc,EAAEwB,oBAAyB,EAAK;AACvD,IAAA,IAAItB,mBAAmB,CAACI,GAAG,CAACkB,oBAAoB,CAAC,EAAE;AAC/C,MAAA,OAAA;AACJ,KAAA;IAEA,IAAIF,eAAe,CAAChB,GAAG,CAACN,IAAI,CAACO,GAAG,CAAC,EAAE;AAC/BL,MAAAA,mBAAmB,CAACuB,GAAG,CAACD,oBAAoB,CAAC,CAAA;AACjD,KAAA;IAEA,IAAIxB,IAAI,CAACc,QAAQ,EAAE;AACfd,MAAAA,IAAI,CAACc,QAAQ,CAACN,OAAO,CAAC,UAACO,SAAS,EAAK;AACjChB,QAAAA,GAAG,CAACgB,SAAS,EAAES,oBAAoB,CAAC,CAAA;AACxC,OAAC,CAAC,CAAA;AACN,KAAA;GACH,CAAA;EAED,IAAIxB,IAAI,CAACc,QAAQ,EAAE;AACfd,IAAAA,IAAI,CAACc,QAAQ,CAACN,OAAO,CAAC,UAACkB,QAAQ,EAAK;AAChC3B,MAAAA,GAAG,CAAC2B,QAAQ,EAAEA,QAAQ,CAACnB,GAAG,CAAC,CAAA;AAC/B,KAAC,CAAC,CAAA;AACN,GAAA;AAEA,EAAA,OAAOL,mBAAmB,CAAA;AAC9B,CAAC,CAAA;;AAED;AACO,IAAMyB,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAiB,EAAE3B,YAAoB,EAAiB;AACjF,EAAA,IAAMqB,eAAe,GAAG,IAAIC,GAAG,CAACtB,YAAY,CAAC,CAAA;AAE7C,EAAA,IAAM4B,SAAS,GAAGC,iBAAQ,CAACF,KAAK,CAAC,CAAA;EAEjC,IAAM1B,mBAAmB,GAAGmB,8BAA8B,CAAC;AAAEd,IAAAA,GAAG,EAAE,MAAM;AAAEO,IAAAA,QAAQ,EAAEe,SAAAA;GAAW,EAAEP,eAAe,CAAC,CAAA;AAEjHO,EAAAA,SAAS,CAACrB,OAAO,CAAC,UAACuB,IAAI,EAAK;IACxBhC,GAAG,CAACgC,IAAI,EAAET,eAAe,EAAEpB,mBAAmB,EAAE,CAAC6B,IAAI,CAAC,CAAC,CAAA;AAC3D,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOF,SAAS,CAAA;AACpB;;;;"}
|
package/cjs/index.css
CHANGED
|
@@ -708,6 +708,25 @@
|
|
|
708
708
|
.SelectAll_styles_ql2mqj_d19w91z6__b71a8639{background:var(--surface-solid-card);}
|
|
709
709
|
.SelectAll_styles_ql2mqj_d1nbef5q__b71a8639{height:0.0625rem;margin-top:var(--d1nbef5q-0);margin-right:var(--plasma-select-divider-margin-right);margin-left:var(--plasma-select-divider-margin-left);background:var(--plasma-select-divider-color);}
|
|
710
710
|
|
|
711
|
+
|
|
712
|
+
.Item_styles_i0dby2_s14rxgk6__158876c7{--plasma-cell-title-color:var(--s14rxgk6-0);--plasma-cell-background-color:var(--surface-clear);--plasma-cell-padding:var(--plasma-select-cell-padding);--plasma-cell-padding-left-content:var(--plasma-select-cell-padding-left-content);--plasma-cell-padding-content:var(--plasma-select-cell-padding-content);--plasma-cell-padding-right-content:var(--plasma-select-cell-padding-right-content);--plasma-cell-textbox-gap:var(--plasma-select-cell-textbox-gap);--plasma-cell-gap:var(--plasma-select-cell-gap);--plasma-cell-title-font-family:var(--plasma-select-cell-title-font-family);--plasma-cell-title-font-size:var(--plasma-select-cell-title-font-size);--plasma-cell-title-font-style:var(--plasma-select-cell-title-font-style);--plasma-cell-title-font-weight:var(--plasma-select-cell-title-font-weight);--plasma-cell-title-letter-spacing:var(--plasma-select-cell-title-letter-spacing);--plasma-cell-title-line-height:var(--plasma-select-cell-title-line-height);width:100%;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellContent__158876c7,.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextbox__158876c7{-webkit-flex:1;-ms-flex:1;flex:1;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7{position:relative;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7:before{content:' ';visibility:hidden;}.Item_styles_i0dby2_s14rxgk6__158876c7 div.Item_styles_i0dby2_cellTextboxTitle__158876c7 span{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
|
713
|
+
|
|
714
|
+
.Item_styles_i0dby2_s1t6abbl__158876c7{--plasma-checkbox-trigger-size:var(--plasma-select-checkbox-trigger-size);--plasma-checkbox-trigger-border-radius:var(--plasma-select-checkbox-trigger-border-radius);--plasma-checkbox-fill-color:var(--plasma-select-checkbox-fill-color);--plasma-checkbox-icon-color:var(--plasma-select-checkbox-icon-color);--plasma-checkbox-trigger-border-width:var(--plasma-select-checkbox-trigger-border-width);--plasma-checkbox-trigger-border-color:var(--plasma-select-checkbox-trigger-border-color);--plasma-checkbox-trigger-border-checked-color:var(--plasma-select-checkbox-trigger-border-checked-color);}
|
|
715
|
+
.Item_styles_i0dby2_swduayr__158876c7{--plasma-indicator-size:var(--plasma-select-indicator-size);--plasma-indicator-color:var(--plasma-select-item-icon-color);}
|
|
716
|
+
.Item_styles_i0dby2_s1r3fsvz__158876c7{width:var(--s1r3fsvz-0);height:var(--s1r3fsvz-0);}.Item_styles_i0dby2_s1r3fsvz__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}
|
|
717
|
+
.Item_styles_i0dby2_s1us4s6s__158876c7{width:var(--s1us4s6s-0);height:var(--s1us4s6s-0);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);}.Item_styles_i0dby2_s1us4s6s__158876c7.Item_styles_i0dby2_arrowInverse__158876c7{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);}
|
|
718
|
+
.Item_styles_i0dby2_s14lzt5m__158876c7{width:var(--s14lzt5m-0);height:var(--s14lzt5m-0);}
|
|
719
|
+
.Item_styles_i0dby2_d1178nq__158876c7{line-height:0;color:var(--plasma-select-disclosure-icon-color);visibility:var(--d1178nq-0);}.Item_styles_i0dby2_d1178nq__158876c7:hover{color:var(--plasma-select-disclosure-icon-color-hover);}
|
|
720
|
+
.Item_styles_i0dby2_i1noc5rg__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex:none;-ms-flex:none;flex:none;width:var(--i1noc5rg-0);height:var(--i1noc5rg-0);line-height:0;color:var(--plasma-select-item-icon-color);}
|
|
721
|
+
.Item_styles_i0dby2_s1azt70o__158876c7{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-flex:1;-ms-flex:1;flex:1;}
|
|
722
|
+
.Item_styles_i0dby2_wa9o46g__158876c7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:var(--plasma-select-item-gap);min-height:var(--plasma-select-item-height);margin:0;box-sizing:content-box;padding:var(--wa9o46g-0);font-family:var(--plasma-select-font-family);font-size:var(--plasma-select-font-size);font-style:var(--plasma-select-font-style);font-weight:var(--plasma-select-font-weight);-webkit-letter-spacing:var(--plasma-select-font-letter-spacing);-moz-letter-spacing:var(--plasma-select-font-letter-spacing);-ms-letter-spacing:var(--plasma-select-font-letter-spacing);letter-spacing:var(--plasma-select-font-letter-spacing);line-height:var(--plasma-select-font-line-height);background-color:var(--surface-clear);color:var(--text-primary);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-clip:padding-box;position:relative;}.Item_styles_i0dby2_wa9o46g__158876c7:hover:not(.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7){cursor:pointer;background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsActive__158876c7{background-color:var(--plasma-select-item-background-hover);}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsDisabled__158876c7{opacity:var(--plasma-select-item-disabled-opacity);color:var(--plasma-select-item-disabled-color);cursor:not-allowed;}.Item_styles_i0dby2_wa9o46g__158876c7:focus{outline:none;}.Item_styles_i0dby2_wa9o46g__158876c7::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;display:block;box-sizing:content-box;border:0 solid transparent;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));-webkit-transition:none;transition:none;pointer-events:none;}.Item_styles_i0dby2_wa9o46g__158876c7.Item_styles_i0dby2_dropdownItemIsFocused__158876c7:before{outline:none;box-shadow:inset 0 0 0 0.0625rem var(--surface-accent);}
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
.Item_styles_i0dby2_o1888l7c__158876c7{width:calc(var(--o1888l7c-0) * var(--plasma-select-item-tree-offset-width));-webkit-flex:none;-ms-flex:none;flex:none;margin-right:calc(var(--plasma-select-item-gap) * -1);}
|
|
726
|
+
|
|
727
|
+
.TreeList_styles_1t38mek_lm92bs9__3097faae{width:100%;padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
|
|
728
|
+
.TreeList_styles_1t38mek_s12qznqt__3097faae{max-height:var(--s12qznqt-0);overflow-x:hidden;overflow-y:auto;border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));}
|
|
729
|
+
|
|
711
730
|
.Select_styles_dta4dl_lpxbau6__559b5dde{width:var(--lpxbau6-0);padding:calc(var(--plasma-select-padding) + var(--plasma-select-dropdown-border-width,0rem));border-radius:var(--plasma-select-border-radius);box-sizing:border-box;background:var(--surface-solid-card);box-shadow:0px 4px 14px -4px rgba(8,8,8,0.08),0px 1px 4px -1px rgba(0,0,0,0.04), inset 0 0 0 var(--plasma-select-dropdown-border-width,0rem) var(--plasma-select-dropdown-border-color,transparent);}
|
|
712
731
|
.Select_styles_dta4dl_u1yey2x3__559b5dde{max-height:var(--u1yey2x3-0);overflow-x:hidden;overflow-y:var(--u1yey2x3-1);border-radius:calc(var(--plasma-select-border-radius) - 0.125rem - var(--plasma-select-dropdown-border-width,0rem));margin:0;padding:0;}
|
|
713
732
|
|
package/cjs/index.js
CHANGED
|
@@ -39,6 +39,7 @@ var createEvent = require('./utils/createEvent.js');
|
|
|
39
39
|
var noop = require('./utils/noop.js');
|
|
40
40
|
var getHeightAsNumber = require('./utils/getHeightAsNumber.js');
|
|
41
41
|
var createConditionalComponent = require('./utils/createConditionalComponent.js');
|
|
42
|
+
var deepCopy = require('./utils/deepCopy.js');
|
|
42
43
|
var fixedForwardRef = require('./utils/fixedForwardRef.js');
|
|
43
44
|
var getPopoverPlacement = require('./utils/getPopoverPlacement.js');
|
|
44
45
|
var initialValuesHelper = require('./utils/initialValuesHelper.js');
|
|
@@ -374,6 +375,7 @@ exports.createEvent = createEvent.createEvent;
|
|
|
374
375
|
exports.noop = noop.noop;
|
|
375
376
|
exports.getHeightAsNumber = getHeightAsNumber.getHeightAsNumber;
|
|
376
377
|
exports.createConditionalComponent = createConditionalComponent.createConditionalComponent;
|
|
378
|
+
exports.deepCopy = deepCopy.deepCopy;
|
|
377
379
|
exports.fixedForwardRef = fixedForwardRef.fixedForwardRef;
|
|
378
380
|
exports.getPlacement = getPopoverPlacement.getPlacement;
|
|
379
381
|
exports.getPlacements = getPopoverPlacement.getPlacements;
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|