@salutejs/plasma-new-hope 0.194.0-canary.1562.11845925215.0 → 0.194.0-canary.1562.11852874401.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +0 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -2
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.js +3 -5
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/hooks/useHashMaps.js +1 -4
- package/cjs/components/Dropdown/hooks/useHashMaps.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
- package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
- package/cjs/components/Select/Select.js +0 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -2
- package/cjs/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +0 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -2
- package/emotion/cjs/components/Dropdown/Dropdown.js +3 -5
- package/emotion/cjs/components/Dropdown/hooks/useHashMaps.js +1 -4
- package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
- package/emotion/cjs/components/Select/Select.js +0 -1
- package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -2
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +0 -1
- package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -2
- package/emotion/es/components/Dropdown/Dropdown.js +3 -5
- package/emotion/es/components/Dropdown/hooks/useHashMaps.js +1 -4
- package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
- package/emotion/es/components/Select/Select.js +0 -1
- package/emotion/es/components/Select/ui/Inner/ui/Item/Item.js +1 -2
- package/es/components/Combobox/ComboboxNew/Combobox.js +0 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -2
- package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
- package/es/components/Dropdown/Dropdown.js +3 -5
- package/es/components/Dropdown/Dropdown.js.map +1 -1
- package/es/components/Dropdown/hooks/useHashMaps.js +1 -4
- package/es/components/Dropdown/hooks/useHashMaps.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
- package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
- package/es/components/Select/Select.js +0 -1
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/ui/Inner/ui/Item/Item.js +1 -2
- package/es/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +0 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -2
- package/styled-components/cjs/components/Dropdown/Dropdown.js +3 -5
- package/styled-components/cjs/components/Dropdown/hooks/useHashMaps.js +1 -4
- package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
- package/styled-components/cjs/components/Select/Select.js +0 -1
- package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +0 -1
- package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -2
- package/styled-components/es/components/Dropdown/Dropdown.js +3 -5
- package/styled-components/es/components/Dropdown/hooks/useHashMaps.js +1 -4
- package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
- package/styled-components/es/components/Select/Select.js +0 -1
- package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.js +1 -2
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +1 -2
- package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.d.ts.map +1 -1
- package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/types/components/Dropdown/Dropdown.types.d.ts +0 -2
- package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
- package/types/components/Dropdown/hooks/useHashMaps.d.ts +1 -2
- package/types/components/Dropdown/hooks/useHashMaps.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/Select.types.d.ts +1 -2
- package/types/components/Select/Select.types.d.ts.map +1 -1
- package/types/components/Select/ui/Inner/ui/Item/Item.d.ts.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, createContext, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n getInitialValue,\n} from './utils';\nimport { Inner, StyledTextField } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState } from './Combobox.styles';\nimport type { ItemContext, ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed } from './ui/Inner/ui/Item/Item.types';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n isTargetAmount,\n targetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(transformedItems), [\n items,\n ]);\n\n const [textValue, setTextValue] = useState(valueToItemMap.get(outerValue as string)?.label || '');\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value =\n outerValue !== null && outerValue !== undefined\n ? getInitialValue(outerValue, valueToItemMap)\n : internalValue;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const treeId = safeUseId();\n\n const filteredItems = filterItems(\n transformedItems,\n textValue,\n valueToItemMap.get(value as string)?.label as string,\n filter,\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n }\n }\n }, floatingPopoverRef);\n\n const onChange = (newValue: string | Array<string>) => {\n if (outerOnChange) {\n outerOnChange(newValue as any);\n }\n\n setInternalValue(newValue);\n };\n\n const handleClickArrow = () => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n onChange(chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)!.value));\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (!multiple) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues);\n }\n\n // После выбора/снятия чекбокса скроллим к инпуту\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, 1);\n };\n\n // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (multiple) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n };\n\n const getChips = (): string[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${targetAmount || value.length}`];\n }\n\n const renderValueMapper =\n renderValue && ((stringValue: string) => renderValue(valueToItemMap.get(stringValue)!));\n const valueToItemMapper = (stringValue: string) => valueToItemMap.get(stringValue)!.label;\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n setTextValue,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n return (\n <Root size={size} view={view} labelPlacement={labelPlacement} disabled={disabled} readOnly={readOnly}>\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n valueToItemMap,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={(opened: boolean) => opened && handleListToggle(true)}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={inputForkRef}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper disabled={disabled} onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={helperText}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n ref={targetRef}\n >\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description=\"Ничего не найдено\"\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["Context","createContext","comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_valueToItemMap$get2","_getItemByFocused","multiple","outerValue","value","outerOnChange","onChange","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listWidth","portal","renderItem","view","size","labelPlacement","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","get","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","getInitialValue","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","filterItems","_useMemo3","getPathMap","_useMemo4","pathMap","focusedToValueMap","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState5","_useState6","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","withArrowInverse","classes","arrowInverse","targetRef","useOutsideClick","type","isEmpty","_valueToItemMap$get3","newValue","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","map","chipLabel","handleListToggle","opened","handleCheckboxChange","item","checkedCopy","Map","set","updateDescendants","updateAncestors","newValues","forEach","key","push","setTimeout","current","scrollIntoView","behavior","inline","handleItemClick","stopPropagation","isCurrentChecked","getChips","Array","isArray","length","concat","renderValueMapper","stringValue","valueToItemMapper","handlePressDown","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get4","_","val","updateSingleAncestors","React","createElement","Provider","FloatingPopover","onToggle","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","role","getItemId","enumerationType","chips","onChangeChips","onEnterDisabled","Ul","id","StyledEmptyState","emptyStateWrapper","description","index","Inner","currentLevel","comboboxConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, createContext, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n getInitialValue,\n} from './utils';\nimport { Inner, StyledTextField } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState } from './Combobox.styles';\nimport type { ItemContext, ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed } from './ui/Inner/ui/Item/Item.types';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n isTargetAmount,\n targetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(transformedItems), [\n items,\n ]);\n\n const [textValue, setTextValue] = useState(valueToItemMap.get(outerValue as string)?.label || '');\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value =\n outerValue !== null && outerValue !== undefined\n ? getInitialValue(outerValue, valueToItemMap)\n : internalValue;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const treeId = safeUseId();\n\n const filteredItems = filterItems(\n transformedItems,\n textValue,\n valueToItemMap.get(value as string)?.label as string,\n filter,\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n }\n }\n }, floatingPopoverRef);\n\n const onChange = (newValue: string | Array<string>) => {\n if (outerOnChange) {\n outerOnChange(newValue as any);\n }\n\n setInternalValue(newValue);\n };\n\n const handleClickArrow = () => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n onChange(chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)!.value));\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (!multiple) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues);\n }\n\n // После выбора/снятия чекбокса скроллим к инпуту\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, 1);\n };\n\n // Обработчик клика по айтему выпадающего списка\n const handleItemClick = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (multiple) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n };\n\n const getChips = (): string[] => {\n if (multiple && Array.isArray(value)) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${targetAmount || value.length}`];\n }\n\n const renderValueMapper =\n renderValue && ((stringValue: string) => renderValue(valueToItemMap.get(stringValue)!));\n const valueToItemMapper = (stringValue: string) => valueToItemMap.get(stringValue)!.label;\n\n return value.map(renderValueMapper || valueToItemMapper);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n setTextValue,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n return (\n <Root size={size} view={view} labelPlacement={labelPlacement} disabled={disabled} readOnly={readOnly}>\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={(opened: boolean) => opened && handleListToggle(true)}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={inputForkRef}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper disabled={disabled} onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={helperText}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n ref={targetRef}\n >\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description=\"Ничего не найдено\"\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["Context","createContext","comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_valueToItemMap$get2","_getItemByFocused","multiple","outerValue","value","outerOnChange","onChange","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listWidth","portal","renderItem","view","size","labelPlacement","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","get","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","getInitialValue","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","filterItems","_useMemo3","getPathMap","_useMemo4","pathMap","focusedToValueMap","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState5","_useState6","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","withArrowInverse","classes","arrowInverse","targetRef","useOutsideClick","type","isEmpty","_valueToItemMap$get3","newValue","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","map","chipLabel","handleListToggle","opened","handleCheckboxChange","item","checkedCopy","Map","set","updateDescendants","updateAncestors","newValues","forEach","key","push","setTimeout","current","scrollIntoView","behavior","inline","handleItemClick","stopPropagation","isCurrentChecked","getChips","Array","isArray","length","concat","renderValueMapper","stringValue","valueToItemMapper","handlePressDown","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get4","_","val","updateSingleAncestors","React","createElement","Provider","FloatingPopover","onToggle","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","role","getItemId","enumerationType","chips","onChangeChips","onEnterDisabled","Ul","id","StyledEmptyState","emptyStateWrapper","description","index","Inner","currentLevel","comboboxConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IA8BaA,OAAO,gBAAGC,aAAa,CAAc,EAAiB,EAAC;;AAEpE;AACA;AACA;IACaC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAA+D,EAAA;AAAA,EAAA,oBACxFC,UAAU,CAAkC,UAACC,KAAK,EAAEC,GAAG,EAAK;AAAA,IAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,iBAAA,CAAA;AACxD,IAAA,IACIC,QAAQ,GA6BRL,KAAK,CA7BLK,QAAQ;MACDC,UAAU,GA4BjBN,KAAK,CA5BLO,KAAK;MACKC,aAAa,GA2BvBR,KAAK,CA3BLS,QAAQ;MACRC,cAAc,GA0BdV,KAAK,CA1BLU,cAAc;MACdC,YAAY,GAyBZX,KAAK,CAzBLW,YAAY;MACZC,KAAK,GAwBLZ,KAAK,CAxBLY,KAAK;MAAAC,gBAAA,GAwBLb,KAAK,CAvBLc,SAAS;AAATA,MAAAA,SAAS,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,gBAAA;MAC1BE,KAAK,GAsBLf,KAAK,CAtBLe,KAAK;MACLC,WAAW,GAqBXhB,KAAK,CArBLgB,WAAW;MACXC,UAAU,GAoBVjB,KAAK,CApBLiB,UAAU;MACVC,WAAW,GAmBXlB,KAAK,CAnBLkB,WAAW;MACXC,UAAU,GAkBVnB,KAAK,CAlBLmB,UAAU;MACVC,SAAS,GAiBTpB,KAAK,CAjBLoB,SAAS;MAAAC,cAAA,GAiBTrB,KAAK,CAhBLsB,OAAO;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,cAAA;MAClBE,YAAY,GAeZvB,KAAK,CAfLuB,YAAY;MACZC,UAAU,GAcVxB,KAAK,CAdLwB,UAAU;MACVC,SAAS,GAaTzB,KAAK,CAbLyB,SAAS;MACTC,MAAM,GAYN1B,KAAK,CAZL0B,MAAM;MACNC,UAAU,GAWV3B,KAAK,CAXL2B,UAAU;MACVC,IAAI,GAUJ5B,KAAK,CAVL4B,IAAI;MACJC,IAAI,GASJ7B,KAAK,CATL6B,IAAI;MACJC,cAAc,GAQd9B,KAAK,CARL8B,cAAc;MAAAC,eAAA,GAQd/B,KAAK,CAPLgC,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;MAAAE,eAAA,GAOhBjC,KAAK,CANLkC,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;MAAAE,mBAAA,GAMhBnC,KAAK,CALLoC,YAAY;AAAZA,MAAAA,YAAY,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,mBAAA;MACpBE,MAAM,GAINrC,KAAK,CAJLqC,MAAM;MACYC,qBAAqB,GAGvCtC,KAAK,CAHLuC,gBAAgB;MAChBC,WAAW,GAEXxC,KAAK,CAFLwC,WAAW;AACRC,MAAAA,IAAI,GAAAC,wBAAA,CACP1C,KAAK,EAAA2C,SAAA,CAAA,CAAA;IACT,IAAMC,gBAAgB,GAAGC,OAAO,CAAC,YAAA;AAAA,MAAA,OAAMC,qBAAqB,CAAClC,KAAK,IAAI,EAAE,CAAC,CAAA;KAAE,EAAA,CAACA,KAAK,CAAC,CAAC,CAAA;;AAEnF;IACA,IAAAmC,QAAA,GAA4DF,OAAO,CAAC,YAAA;QAAA,OAAMG,WAAW,CAACJ,gBAAgB,CAAC,CAAA;OAAE,EAAA,CACrGhC,KAAK,CACR,CAAC;MAAAqC,SAAA,GAAAC,cAAA,CAAAH,QAAA,EAAA,CAAA,CAAA;AAFKI,MAAAA,iBAAiB,GAAAF,SAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,cAAc,GAAAH,SAAA,CAAA,CAAA,CAAA;AAAEI,MAAAA,cAAc,GAAAJ,SAAA,CAAA,CAAA,CAAA,CAAA;IAIxD,IAAAK,SAAA,GAAkCC,QAAQ,CAAC,EAAArD,mBAAA,GAAAkD,cAAc,CAACI,GAAG,CAAClD,UAAoB,CAAC,cAAAJ,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAxCA,mBAAA,CAA0Ca,KAAK,KAAI,EAAE,CAAC;MAAA0C,UAAA,GAAAP,cAAA,CAAAI,SAAA,EAAA,CAAA,CAAA;AAA1FI,MAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAC9B,IAAAG,UAAA,GAA0CL,QAAQ,CAAoBlD,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;MAAAwD,UAAA,GAAAX,cAAA,CAAAU,UAAA,EAAA,CAAA,CAAA;AAAlFE,MAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtC,IAAA,IAAMtD,KAAK,GACPD,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAK0D,SAAS,GACzCC,eAAe,CAAC3D,UAAU,EAAE8C,cAAc,CAAC,GAC3CU,aAAa,CAAA;AAEvB,IAAA,IAAMI,QAAQ,GAAGC,MAAM,CAAmB,IAAI,CAAC,CAAA;AAC/C,IAAA,IAAMC,kBAAkB,GAAGD,MAAM,CAAiB,IAAI,CAAC,CAAA;AACvD,IAAA,IAAME,YAAY,GAAGC,UAAU,CAACJ,QAAQ,EAAEjE,GAAG,CAAC,CAAA;AAC9C,IAAA,IAAMsE,MAAM,GAAGC,SAAS,EAAE,CAAA;IAE1B,IAAMC,aAAa,GAAGC,WAAW,CAC7B9B,gBAAgB,EAChBc,SAAS,EAAA,CAAAvD,oBAAA,GACTiD,cAAc,CAACI,GAAG,CAACjD,KAAe,CAAC,MAAA,IAAA,IAAAJ,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnCA,oBAAA,CAAqCY,KAAK,EAC1CsB,MACJ,CAAC,CAAA;IAED,IAAAsC,SAAA,GAAqC9B,OAAO,CAAC,YAAA;QAAA,OAAM+B,UAAU,CAACH,aAAa,CAAC,CAAA;AAAA,OAAA,EAAE,CAACA,aAAa,EAAEf,SAAS,CAAC,CAAC;MAAAmB,SAAA,GAAA3B,cAAA,CAAAyB,SAAA,EAAA,CAAA,CAAA;AAAlGG,MAAAA,OAAO,GAAAD,SAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,iBAAiB,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;;AAEjC;AACA,IAAA,IAAAG,WAAA,GAA6BC,UAAU,CAACC,WAAW,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAjC,cAAA,CAAA8B,WAAA,EAAA,CAAA,CAAA;AAAjDI,MAAAA,IAAI,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,YAAY,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;AACzB,IAAA,IAAAG,YAAA,GAA2CL,UAAU,CAACM,kBAAkB,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAtC,cAAA,CAAAoC,YAAA,EAAA,CAAA,CAAA;AAAtEG,MAAAA,WAAW,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,mBAAmB,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;AACvC,IAAA,IAAAG,UAAA,GAA8BpC,QAAQ,CAACJ,iBAAiB,CAAC;MAAAyC,UAAA,GAAA1C,cAAA,CAAAyC,UAAA,EAAA,CAAA,CAAA;AAAlDE,MAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAE1B,IAAMG,iBAAiB,GAAG3D,YAAY,IAAI4D,OAAO,CAACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1D,IAAA,IAAMa,yBAAyB,GAAG,CAAA,CAAA7F,iBAAA,GAAA8F,gBAAgB,CAACT,WAAW,EAAEV,iBAAiB,CAAC,cAAA3E,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhDA,iBAAA,CAAkDG,KAAK,KAAI,EAAE,CAAA;IAC/F,IAAM4F,gBAAgB,GAAGJ,iBAAiB,GAAGK,OAAO,CAACC,YAAY,GAAGrC,SAAS,CAAA;IAC7E,IAAMzB,gBAAgB,GAAGD,qBAAqB,KAAA,IAAA,IAArBA,qBAAqB,KAArBA,KAAAA,CAAAA,GAAAA,qBAAqB,GAAI,CAACjC,QAAQ,CAAA;;AAE3D;AACA,IAAA,IAAMiG,SAAS,GAAGC,eAAe,CAAmB,YAAM;MACtD,IAAI,CAACR,iBAAiB,EAAE;AACpB,QAAA,OAAA;AACJ,OAAA;AAEAV,MAAAA,YAAY,CAAC;AAAEmB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAC/Bd,MAAAA,mBAAmB,CAAC;AAAEc,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;;AAEtC;AACA;AACA;MACA,IAAI9C,SAAS,KAAKnD,KAAK,EAAE;AACrB,QAAA,IAAIkG,OAAO,CAAClG,KAAK,CAAC,EAAE;UAChBoD,YAAY,CAAC,EAAE,CAAC,CAAA;AACpB,SAAC,MAAM;AAAA,UAAA,IAAA+C,oBAAA,CAAA;AACH/C,UAAAA,YAAY,CAAC,CAAA+C,CAAAA,oBAAA,GAAAtD,cAAc,CAACI,GAAG,CAACjD,KAAe,CAAC,MAAA,IAAA,IAAAmG,oBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqC3F,KAAK,KAAI,EAAE,CAAC,CAAA;AAClE,SAAA;AACJ,OAAA;KACH,EAAEqD,kBAAkB,CAAC,CAAA;AAEtB,IAAA,IAAM3D,QAAQ,GAAG,SAAXA,QAAQA,CAAIkG,QAAgC,EAAK;AACnD,MAAA,IAAInG,aAAa,EAAE;QACfA,aAAa,CAACmG,QAAe,CAAC,CAAA;AAClC,OAAA;MAEA5C,gBAAgB,CAAC4C,QAAQ,CAAC,CAAA;KAC7B,CAAA;AAED,IAAA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;MAC3B,IAAI1E,QAAQ,IAAIF,QAAQ,EAAE;AACtB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAI+D,iBAAiB,EAAE;AACnBV,QAAAA,YAAY,CAAC;AAAEmB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAC,MAAM;AACHnB,QAAAA,YAAY,CAAC;AAAEmB,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAA;AAEAd,MAAAA,mBAAmB,CAAC;AAAEc,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;KACzC,CAAA;;AAED;AACA,IAAA,IAAMK,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,CAAgC,EAAK;AAChEnD,MAAAA,YAAY,CAACmD,CAAC,CAACC,MAAM,CAACxG,KAAK,CAAC,CAAA;AAC5B8E,MAAAA,YAAY,CAAC;AAAEmB,QAAAA,IAAI,EAAE,oBAAA;AAAqB,OAAC,CAAC,CAAA;AAC5Cd,MAAAA,mBAAmB,CAAC;AAAEc,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;KACzC,CAAA;;AAED;AACA,IAAA,IAAMQ,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,UAAiB,EAAK;AAC7CxG,MAAAA,QAAQ,CAACwG,UAAU,CAACC,GAAG,CAAC,UAACC,SAAS,EAAA;AAAA,QAAA,OAAK9D,cAAc,CAACG,GAAG,CAAC2D,SAAS,CAAC,CAAE5G,KAAK,CAAA;AAAA,OAAA,CAAC,CAAC,CAAA;KAChF,CAAA;;AAED;AACA,IAAA,IAAM6G,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,MAAe,EAAK;MAC1C,IAAInF,QAAQ,IAAIF,QAAQ,EAAE;AACtB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIqF,MAAM,EAAE;AACRhC,QAAAA,YAAY,CAAC;AAAEmB,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAC,MAAM;AACHd,QAAAA,mBAAmB,CAAC;AAAEc,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACtCnB,QAAAA,YAAY,CAAC;AAAEmB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAA;KACH,CAAA;;AAED;AACA,IAAA,IAAMc,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,IAA2B,EAAK;MAC1D,IAAI,CAAClH,QAAQ,EAAE;AACX,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMmH,WAAW,GAAG,IAAIC,GAAG,CAAC5B,OAAO,CAAC,CAAA;MAEpC,IAAI,CAAC2B,WAAW,CAAChE,GAAG,CAAC+D,IAAI,CAAChH,KAAK,CAAC,EAAE;QAC9BiH,WAAW,CAACE,GAAG,CAACH,IAAI,CAAChH,KAAK,EAAE,IAAI,CAAC,CAAA;AACjCoH,QAAAA,iBAAiB,CAACJ,IAAI,EAAEC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC9C,OAAC,MAAM;QACHA,WAAW,CAACE,GAAG,CAACH,IAAI,CAAChH,KAAK,EAAE,KAAK,CAAC,CAAA;AAClCoH,QAAAA,iBAAiB,CAACJ,IAAI,EAAEC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC/C,OAAA;AAEAI,MAAAA,eAAe,CAACL,IAAI,EAAEC,WAAW,CAAC,CAAA;MAElC,IAAMK,SAAwB,GAAG,EAAE,CAAA;AAEnCzE,MAAAA,cAAc,CAAC0E,OAAO,CAAC,UAACP,IAAI,EAAEQ,GAAG,EAAK;AAClC,QAAA,IAAIP,WAAW,CAAChE,GAAG,CAACuE,GAAG,CAAC,EAAE;AACtBF,UAAAA,SAAS,CAACG,IAAI,CAACT,IAAI,CAAChH,KAAK,CAAC,CAAA;AAC9B,SAAA;AACJ,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAAC6B,YAAY,IAAIG,gBAAgB,EAAE;AACnC8C,QAAAA,YAAY,CAAC;AAAEmB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC/Bd,QAAAA,mBAAmB,CAAC;AAAEc,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC1C,OAAA;AAEA,MAAA,IAAI/F,QAAQ,EAAE;QACVA,QAAQ,CAACoH,SAAS,CAAC,CAAA;AACvB,OAAA;;AAEA;AACAI,MAAAA,UAAU,CAAC,YAAM;QACb,IAAI/D,QAAQ,CAACgE,OAAO,EAAE;AAClBhE,UAAAA,QAAQ,CAACgE,OAAO,CAACC,cAAc,CAAC;AAC5BC,YAAAA,QAAQ,EAAE,QAAQ;AAClBC,YAAAA,MAAM,EAAE,OAAA;AACZ,WAAC,CAAC,CAAA;AACN,SAAA;OACH,EAAE,CAAC,CAAC,CAAA;KACR,CAAA;;AAED;IACA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIf,IAA2B,EAAET,CAAiC,EAAK;MACxF,IAAI,CAACL,OAAO,CAACc,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAE3G,KAAK,CAAC,EAAE;AACvB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIP,QAAQ,EAAE;QACViH,oBAAoB,CAACC,IAAI,CAAC,CAAA;AAC1B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIT,CAAC,EAAE;QACHA,CAAC,CAACyB,eAAe,EAAE,CAAA;AACvB,OAAA;MAEA,IAAMC,gBAAgB,GAAG3C,OAAO,CAACrC,GAAG,CAAC+D,IAAI,CAAChH,KAAK,CAAC,CAAA;AAEhD,MAAA,IAAI,CAAC6B,YAAY,IAAIG,gBAAgB,EAAE;AACnC8C,QAAAA,YAAY,CAAC;AAAEmB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC/Bd,QAAAA,mBAAmB,CAAC;AAAEc,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AAC1C,OAAA;AAEA,MAAA,IAAI/F,QAAQ,EAAE;QACVA,QAAQ,CAAC+H,gBAAgB,GAAG,EAAE,GAAGjB,IAAI,CAAChH,KAAK,CAAC,CAAA;AAChD,OAAA;KACH,CAAA;AAED,IAAA,IAAMkI,QAAQ,GAAG,SAAXA,QAAQA,GAAmB;MAC7B,IAAIpI,QAAQ,IAAIqI,KAAK,CAACC,OAAO,CAACpI,KAAK,CAAC,EAAE;AAClC,QAAA,IAAIA,KAAK,CAACqI,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAEjC,QAAA,IAAIlI,cAAc,EAAE;UAChB,OAAO,CAAA,6CAAA,CAAAmI,MAAA,CAAYlI,YAAY,IAAIJ,KAAK,CAACqI,MAAM,CAAG,CAAA,CAAA;AACtD,SAAA;AAEA,QAAA,IAAME,iBAAiB,GACnBtG,WAAW,IAAK,UAACuG,WAAmB,EAAA;UAAA,OAAKvG,WAAW,CAACY,cAAc,CAACI,GAAG,CAACuF,WAAW,CAAE,CAAC,CAAA;SAAC,CAAA;AAC3F,QAAA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAID,WAAmB,EAAA;AAAA,UAAA,OAAK3F,cAAc,CAACI,GAAG,CAACuF,WAAW,CAAC,CAAEhI,KAAK,CAAA;AAAA,SAAA,CAAA;AAEzF,QAAA,OAAOR,KAAK,CAAC2G,GAAG,CAAC4B,iBAAiB,IAAIE,iBAAiB,CAAC,CAAA;AAC5D,OAAA;AAEA,MAAA,OAAO,EAAE,CAAA;KACZ,CAAA;IAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAI1B,IAA2B,EAAET,CAAiC,EAAK;AACxF,MAAA,IAAIL,OAAO,CAACc,IAAI,CAAC3G,KAAK,CAAC,EAAE;AACrB0H,QAAAA,eAAe,CAACf,IAAI,EAAET,CAAC,CAAC,CAAA;OAC3B,MAAM,IAAIzG,QAAQ,EAAE;QACjBiH,oBAAoB,CAACC,IAAI,CAAC,CAAA;AAC9B,OAAA;KACH,CAAA;IAED,IAAA2B,iBAAA,GAAsBC,gBAAgB,CAAC;AACnC1D,QAAAA,WAAW,EAAXA,WAAW;AACXC,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBN,QAAAA,IAAI,EAAJA,IAAI;AACJC,QAAAA,YAAY,EAAZA,YAAY;AACZP,QAAAA,OAAO,EAAPA,OAAO;AACPC,QAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBqC,QAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB6B,QAAAA,eAAe,EAAfA,eAAe;AACftF,QAAAA,YAAY,EAAZA,YAAAA;AACJ,OAAC,CAAC;MAVMyF,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;;AAYjB;AACA;AACAC,IAAAA,eAAe,CAAC,YAAM;AAAA,MAAA,IAAAC,oBAAA,CAAA;AAClB,MAAA,IAAM9B,WAAW,GAAG,IAAIC,GAAG,CAAC5B,OAAO,CAAC,CAAA;AAEpC2B,MAAAA,WAAW,CAACM,OAAO,CAAC,UAACyB,CAAC,EAAExB,GAAG,EAAK;AAC5BP,QAAAA,WAAW,CAACE,GAAG,CAACK,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/B,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAACtB,OAAO,CAAClG,KAAK,CAAC,EAAE;AACjB,QAAA,IAAImI,KAAK,CAACC,OAAO,CAACpI,KAAK,CAAC,EAAE;AACtBA,UAAAA,KAAK,CAACuH,OAAO,CAAC,UAAC0B,GAAG,EAAK;AACnBhC,YAAAA,WAAW,CAACE,GAAG,CAAC8B,GAAG,EAAE,IAAI,CAAC,CAAA;YAC1B7B,iBAAiB,CAACvE,cAAc,CAACI,GAAG,CAACgG,GAAG,CAAC,EAAGhC,WAAW,EAAE,IAAI,CAAC,CAAA;YAC9DI,eAAe,CAACxE,cAAc,CAACI,GAAG,CAACgG,GAAG,CAAC,EAAGhC,WAAW,CAAC,CAAA;AAC1D,WAAC,CAAC,CAAA;AACN,SAAC,MAAM;AACHA,UAAAA,WAAW,CAACE,GAAG,CAACnH,KAAK,EAAE,MAAM,CAAC,CAAA;UAC9BkJ,qBAAqB,CAACrG,cAAc,CAACI,GAAG,CAACjD,KAAK,CAAC,EAAGiH,WAAW,EAAE,KAAK,CAAC,CAAA;AACzE,SAAA;AACJ,OAAA;MAEA1B,UAAU,CAAC0B,WAAW,CAAC,CAAA;AAEvB7D,MAAAA,YAAY,CAAC,CAAA2F,CAAAA,oBAAA,GAAAlG,cAAc,CAACI,GAAG,CAACjD,KAAe,CAAC,MAAA,IAAA,IAAA+I,oBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqCvI,KAAK,KAAI,EAAE,CAAC,CAAA;;AAE9D;AACA;AACA;KACH,EAAE,CAACT,UAAU,EAAEwD,aAAa,EAAElD,KAAK,CAAC,CAAC,CAAA;AAEtC,IAAA,oBACI8I,KAAA,CAAAC,aAAA,CAAC7J,IAAI,EAAA;AAAC+B,MAAAA,IAAI,EAAEA,IAAK;AAACD,MAAAA,IAAI,EAAEA,IAAK;AAACE,MAAAA,cAAc,EAAEA,cAAe;AAACI,MAAAA,QAAQ,EAAEA,QAAS;AAACF,MAAAA,QAAQ,EAAEA,QAAAA;KACxF0H,eAAAA,KAAA,CAAAC,aAAA,CACID,KAAAA,EAAAA,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAAChK,OAAO,CAACiK,QAAQ,EAAA;AACbrJ,MAAAA,KAAK,EAAE;AACHkF,QAAAA,WAAW,EAAXA,WAAW;AACXI,QAAAA,OAAO,EAAPA,OAAO;AACPxF,QAAAA,QAAQ,EAARA,QAAQ;AACRwB,QAAAA,IAAI,EAAJA,IAAI;AACJyF,QAAAA,oBAAoB,EAApBA,oBAAoB;AACpBgB,QAAAA,eAAe,EAAfA,eAAe;AACfhH,QAAAA,OAAO,EAAPA,OAAO;AACPK,QAAAA,UAAU,EAAVA,UAAU;AACV4C,QAAAA,MAAM,EAANA,MAAAA;AACJ,OAAA;AAAE,KAAA,eAEFmF,KAAA,CAAAC,aAAA,CAACE,eAAe,EAAA;AACZ5J,MAAAA,GAAG,EAAEmE,kBAAmB;AACxBiD,MAAAA,MAAM,EAAEtB,iBAAkB;MAC1B+D,QAAQ,EAAE,SAAAA,QAAAA,CAACzC,MAAe,EAAA;AAAA,QAAA,OAAKA,MAAM,IAAID,gBAAgB,CAAC,IAAI,CAAC,CAAA;OAAC;AAChEtG,MAAAA,SAAS,EAAEA,SAAU;AACrBY,MAAAA,MAAM,EAAEA,MAAO;AACfD,MAAAA,SAAS,EAAEA,SAAU;MACrBsF,MAAM,EAAE,SAAAA,MAAAA,CAACgD,YAAY,EAAA;AAAA,QAAA,oBACjBL,KAAA,CAAAC,aAAA,CAACK,eAAe,EAAAC,QAAA,CAAA;AACZhK,UAAAA,GAAG,EAAEoE,YAAa;AAClB6F,UAAAA,eAAe,EAAEH,YAAa;AAC9BxJ,UAAAA,KAAK,EAAEmD,SAAU;AACjBjD,UAAAA,QAAQ,EAAEoG,qBAAsB;AAChChF,UAAAA,IAAI,EAAEA,IAAK;AACXD,UAAAA,IAAI,EAAEA,IAAK;AACXE,UAAAA,cAAc,EAAEA,cAAe;AAC/BI,UAAAA,QAAQ,EAAEA,QAAS;AACnBF,UAAAA,QAAQ,EAAEA,QAAS;AACnBjB,UAAAA,KAAK,EAAEA,KAAM;AACbC,UAAAA,WAAW,EAAEA,WAAY;AACzBE,UAAAA,WAAW,EAAEA,WAAY;AACzBiJ,UAAAA,YAAY,eACRT,KAAA,CAAAC,aAAA,CAACS,gBAAgB,EAAA;AAAClI,YAAAA,QAAQ,EAAEA,QAAS;AAACmI,YAAAA,OAAO,EAAEzD,gBAAAA;AAAiB,WAAA,eAC5D8C,KAAA,CAAAC,aAAA,CAACW,WAAW,EAAA;AACRC,YAAAA,KAAK,EAAC,SAAS;AACf1I,YAAAA,IAAI,EAAE2I,cAAc,CAAC3I,IAAI,CAAE;AAC3B4I,YAAAA,SAAS,EAAEtE,gBAAAA;AAAiB,WAC/B,CACa,CACrB;AACDhF,UAAAA,UAAU,EAAEA,UAAW;AACvBC,UAAAA,SAAS,EAAEA,SAAU;AACrBgI,UAAAA,SAAS,EAAEA,SAAU;AACrBsB,UAAAA,UAAU,EAAEzJ,UAAW;AACvB0J,UAAAA,IAAI,EAAC,UAAU;AACf,UAAA,mBAAA,EAAkB,MAAM;UACxB,eAAA9B,EAAAA,EAAAA,CAAAA,MAAA,CAAkBtE,MAAM,EAAgB,eAAA,CAAA;AACxC,UAAA,eAAA,EAAewB,iBAAkB;UACjC,uBACIE,EAAAA,yBAAyB,GAAG2E,SAAS,CAACrG,MAAM,EAAE0B,yBAAyB,CAAC,GAAG,EAAA;AAC9E,SAAA,EACI5F,QAAQ,GACP;AACIwK,UAAAA,eAAe,EAAE,MAAM;UACvBC,KAAK,EAAErC,QAAQ,EAAE;AACjBsC,UAAAA,aAAa,EAAE/D,iBAAAA;AACnB,SAAC,GACD;AAAE6D,UAAAA,eAAe,EAAE,OAAA;AAAQ,SAAC,EAC9BpI,IAAI,EAAA;AACRuI,UAAAA,eAAe,EAAC,IAAA;AAAA,SAAA,CACnB,CAAC,CAAA;AAAA,OAAA;AACJ,KAAA,eAEFtB,KAAA,CAAAC,aAAA,CAAC7J,IAAI,EAAA;AACD+B,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,cAAc,EAAEA,cAAe;AAC/BI,MAAAA,QAAQ,EAAEA,QAAS;AACnBF,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,eAEnB0H,KAAA,CAAAC,aAAA,CAACsB,EAAE,EAAA;AACCN,MAAAA,IAAI,EAAC,MAAM;AACXO,MAAAA,EAAE,EAAArC,EAAAA,CAAAA,MAAA,CAAKtE,MAAM,EAAgB,eAAA,CAAA;MAC7B,sBAAsByB,EAAAA,OAAO,CAAC3F,QAAQ,CAAE;AACxCmB,MAAAA,UAAU,EAAEA,UAAW;AACvBD,MAAAA,YAAY,EAAEA,YAAa;AAC3BE,MAAAA,SAAS,EAAEA,SAAU;AACrBxB,MAAAA,GAAG,EAAEqG,SAAAA;KAEJG,EAAAA,OAAO,CAAChC,aAAa,CAAC,gBACnBiF,KAAA,CAAAC,aAAA,CAACwB,gBAAgB,EAAA;MACbV,SAAS,EAAErE,OAAO,CAACgF,iBAAkB;AACrCvJ,MAAAA,IAAI,EAAEA,IAAK;AACXwJ,MAAAA,WAAW,EAAC,8FAAA;KACf,CAAC,GAEF5G,aAAa,CAACyC,GAAG,CAAC,UAACK,IAAI,EAAE+D,KAAK,EAAA;AAAA,MAAA,oBAC1B5B,KAAA,CAAAC,aAAA,CAAC4B,KAAK,EAAA;AACFxD,QAAAA,GAAG,EAAAc,EAAAA,CAAAA,MAAA,CAAKyC,KAAK,EAAK,IAAA,CAAA;AAClB/D,QAAAA,IAAI,EAAEA,IAAK;AACXiE,QAAAA,YAAY,EAAE,CAAE;AAChBpG,QAAAA,IAAI,EAAEA,IAAK;AACXC,QAAAA,YAAY,EAAEA,YAAa;AAC3BiG,QAAAA,KAAK,EAAEA,KAAM;AACb7J,QAAAA,SAAS,EAAEA,SAAAA;AAAU,OACxB,CAAC,CAAA;AAAA,KACL,CAEL,CACF,CACO,CACH,CACjB,CACH,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMgK,cAAc,GAAG;AAC1BC,EAAAA,IAAI,EAAE,QAAQ;AACdC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE/L,YAAY;AACpBgM,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,UAAU,EAAE;AACRlK,IAAAA,IAAI,EAAE;AACFmK,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACDnK,IAAAA,IAAI,EAAE;AACFkK,MAAAA,GAAG,EAAEE,MAAAA;KACR;AACDjK,IAAAA,QAAQ,EAAE;AACN+J,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNtK,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAG;AACTC,IAAAA,cAAc,EAAE,OAAA;AACpB,GAAA;AACJ;;;;"}
|
@@ -35,7 +35,6 @@ var Item = function Item(_ref) {
|
|
35
35
|
handleItemClick = _useContext.handleItemClick,
|
36
36
|
variant = _useContext.variant,
|
37
37
|
renderItem = _useContext.renderItem,
|
38
|
-
valueToItemMap = _useContext.valueToItemMap,
|
39
38
|
treeId = _useContext.treeId;
|
40
39
|
var disabledClassName = disabled ? classes.dropdownItemIsDisabled : undefined;
|
41
40
|
var focusedClass = currentLevel === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentLevel]) ? classes.dropdownItemIsFocused : undefined;
|
@@ -89,7 +88,7 @@ var Item = function Item(_ref) {
|
|
89
88
|
}))), !multiple && checked.get(item.value) === 'done' && /*#__PURE__*/React.createElement(IconDone, {
|
90
89
|
size: sizeToIconSize(size, variant),
|
91
90
|
color: "inherit"
|
92
|
-
})), renderItem ? /*#__PURE__*/React.createElement(StyledText, null, renderItem(
|
91
|
+
})), renderItem ? /*#__PURE__*/React.createElement(StyledText, null, renderItem(item)) : /*#__PURE__*/React.createElement(StyledWrapper, null, /*#__PURE__*/React.createElement(StyledCell, {
|
93
92
|
view: "default",
|
94
93
|
size: "l",
|
95
94
|
contentLeft: contentLeft,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Item.js","sources":["../../../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize, getItemId } from '../../../../utils';\nimport { classes } from '../../../../Combobox.tokens';\nimport { cx, isEmpty } from '../../../../../../../utils';\nimport { IconDisclosureRightCentered, IconDone } from '../../../../../../_Icon';\nimport { Context } from '../../../../Combobox';\nimport { useDidMountEffect } from '../../../../../../../hooks';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledWrapper,\n StyledText,\n Wrapper,\n DisclosureIconWrapper,\n StyledCheckbox,\n IconWrapper,\n StyledIndicator,\n StyledCheckboxWrapper,\n StyledCell,\n} from './Item.styles';\n\nexport const Item: FC<ItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, contentLeft, contentRight } = item;\n\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n
|
1
|
+
{"version":3,"file":"Item.js","sources":["../../../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize, getItemId } from '../../../../utils';\nimport { classes } from '../../../../Combobox.tokens';\nimport { cx, isEmpty } from '../../../../../../../utils';\nimport { IconDisclosureRightCentered, IconDone } from '../../../../../../_Icon';\nimport { Context } from '../../../../Combobox';\nimport { useDidMountEffect } from '../../../../../../../hooks';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledWrapper,\n StyledText,\n Wrapper,\n DisclosureIconWrapper,\n StyledCheckbox,\n IconWrapper,\n StyledIndicator,\n StyledCheckboxWrapper,\n StyledCell,\n} from './Item.styles';\n\nexport const Item: FC<ItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, contentLeft, contentRight } = item;\n\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n } = useContext(Context);\n\n const disabledClassName = disabled ? classes.dropdownItemIsDisabled : undefined;\n\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n useDidMountEffect(() => {\n if (focusedClass && ref?.current) {\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, [focusedClass]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n e.stopPropagation();\n\n handleCheckboxChange(item);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n e.stopPropagation();\n return;\n }\n\n handleItemClick(item, e);\n };\n\n return (\n <Wrapper\n className={cx(disabledClassName, focusedClass, activeClass)}\n id={getItemId(treeId, value)}\n ref={ref}\n onClick={handleClick}\n variant={variant}\n role=\"treeitem\"\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-level={ariaLevel}\n aria-label={ariaLabel}\n aria-selected={Boolean(checked.get(item.value))}\n >\n <IconWrapper variant={variant}>\n {multiple && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiple && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiple && checked.get(item.value) === 'done' && (\n <IconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {renderItem ? (\n <StyledText>{renderItem(item)}</StyledText>\n ) : (\n <StyledWrapper>\n <StyledCell\n view=\"default\"\n size=\"l\"\n contentLeft={contentLeft}\n contentRight={contentRight}\n alignContentLeft=\"center\"\n alignContentRight=\"center\"\n title={label}\n />\n </StyledWrapper>\n )}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <IconDisclosureRightCentered size={sizeToIconSize(size, variant)} color=\"inherit\" />\n </DisclosureIconWrapper>\n )}\n </Wrapper>\n );\n};\n"],"names":["Item","_ref","item","path","currentLevel","index","ariaControls","ariaExpanded","ariaLevel","ariaLabel","value","label","disabled","contentLeft","contentRight","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiple","size","handleCheckboxChange","handleItemClick","variant","renderItem","treeId","disabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useDidMountEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","className","cx","id","getItemId","onClick","role","Boolean","get","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","indeterminate","onChange","_StyledIndicator","StyledIndicator","view","IconDone","sizeToIconSize","color","StyledText","StyledWrapper","StyledCell","alignContentLeft","alignContentRight","title","isEmpty","items","DisclosureIconWrapper","IconDisclosureRightCentered"],"mappings":"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"}
|
@@ -67,10 +67,9 @@ var dropdownRoot = function dropdownRoot(Root) {
|
|
67
67
|
focusedPath = _useReducer4[0],
|
68
68
|
dispatchFocusedPath = _useReducer4[1];
|
69
69
|
var _useHashMaps = useHashMaps(items),
|
70
|
-
_useHashMaps2 = _slicedToArray(_useHashMaps,
|
70
|
+
_useHashMaps2 = _slicedToArray(_useHashMaps, 2),
|
71
71
|
pathMap = _useHashMaps2[0],
|
72
|
-
focusedToValueMap = _useHashMaps2[1]
|
73
|
-
valueToItemMap = _useHashMaps2[2];
|
72
|
+
focusedToValueMap = _useHashMaps2[1];
|
74
73
|
var activeDescendantItemValue = ((_getItemByFocused = getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value) || '';
|
75
74
|
var floatingPopoverRef = useRef(null);
|
76
75
|
var treeId = safeUseId();
|
@@ -134,8 +133,7 @@ var dropdownRoot = function dropdownRoot(Root) {
|
|
134
133
|
onItemSelect: onItemSelect,
|
135
134
|
hasArrow: hasArrow,
|
136
135
|
treeId: treeId,
|
137
|
-
renderItem: renderItem
|
138
|
-
valueToItemMap: valueToItemMap
|
136
|
+
renderItem: renderItem
|
139
137
|
}
|
140
138
|
}, /*#__PURE__*/React.createElement(FloatingPopover, {
|
141
139
|
ref: floatingPopoverRef,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { createContext, forwardRef, useReducer, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, base } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType, ItemContext } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement,\n offset,\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n variant = 'normal',\n hasArrow = true,\n alwaysOpened = false,\n portal,\n renderItem,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const [pathMap, focusedToValueMap, valueToItemMap] = useHashMaps(items);\n\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n renderItem,\n valueToItemMap,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n })}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n >\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["Context","createContext","dropdownRoot","Root","forwardRef","_ref","ref","_getItemByFocused","items","children","placement","offset","_ref$closeOnOverlayCl","closeOnOverlayClick","onToggle","size","view","_ref$itemRole","itemRole","className","listWidth","listHeight","listOverflow","_ref$closeOnSelect","closeOnSelect","onHover","onItemSelect","onItemClick","_ref$trigger","trigger","_ref$variant","variant","_ref$hasArrow","hasArrow","_ref$alwaysOpened","alwaysOpened","portal","renderItem","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","pathReducer","_useReducer2","_slicedToArray","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useHashMaps","useHashMaps","_useHashMaps2","pathMap","focusedToValueMap","valueToItemMap","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","isCurrentListOpen","type","handleGlobalToggle","opened","_useKeyNavigation","useKeyNavigation","onKeyDown","Boolean","React","createElement","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","concat","getItemId","toString","_extends","cx","classes","style","display","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;IAoBaA,OAAO,gBAAGC,aAAa,CAAc,EAAiB,EAAC;;AAEpE;AACA;AACA;IACaC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAA6D,EAAA;AAAA,EAAA,oBACtFC,UAAU,CACN,UAAAC,IAAA,EA2BIC,GAAG,EACF;AAAA,IAAA,IAAAC,iBAAA,CAAA;AAAA,IAAA,IA1BGC,KAAK,GAAAH,IAAA,CAALG,KAAK;MACLC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;MACRC,SAAS,GAAAL,IAAA,CAATK,SAAS;MACTC,MAAM,GAAAN,IAAA,CAANM,MAAM;MAAAC,qBAAA,GAAAP,IAAA,CACNQ,mBAAmB;AAAnBA,MAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;MAC1BE,QAAQ,GAAAT,IAAA,CAARS,QAAQ;MACRC,IAAI,GAAAV,IAAA,CAAJU,IAAI;MACJC,IAAI,GAAAX,IAAA,CAAJW,IAAI;MAAAC,aAAA,GAAAZ,IAAA,CACJa,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,aAAA;MACrBE,SAAS,GAAAd,IAAA,CAATc,SAAS;MACTC,SAAS,GAAAf,IAAA,CAATe,SAAS;MACTC,UAAU,GAAAhB,IAAA,CAAVgB,UAAU;MACVC,YAAY,GAAAjB,IAAA,CAAZiB,YAAY;MAAAC,kBAAA,GAAAlB,IAAA,CACZmB,aAAa;AAAbA,MAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,kBAAA;MACpBE,OAAO,GAAApB,IAAA,CAAPoB,OAAO;MACPC,YAAY,GAAArB,IAAA,CAAZqB,YAAY;MACZC,WAAW,GAAAtB,IAAA,CAAXsB,WAAW;MAAAC,YAAA,GAAAvB,IAAA,CACXwB,OAAO;AAAPA,MAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,YAAA;MAAAE,YAAA,GAAAzB,IAAA,CACjB0B,OAAO;AAAPA,MAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,YAAA;MAAAE,aAAA,GAAA3B,IAAA,CAClB4B,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,aAAA;MAAAE,iBAAA,GAAA7B,IAAA,CACf8B,YAAY;AAAZA,MAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA;MACpBE,MAAM,GAAA/B,IAAA,CAAN+B,MAAM;MACNC,UAAU,GAAAhC,IAAA,CAAVgC,UAAU;AACPC,MAAAA,IAAI,GAAAC,wBAAA,CAAAlC,IAAA,EAAAmC,SAAA,CAAA,CAAA;AAIX,IAAA,IAAAC,WAAA,GAA6BC,UAAU,CAACC,WAAW,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAC,cAAA,CAAAJ,WAAA,EAAA,CAAA,CAAA;AAAjDK,MAAAA,IAAI,GAAAF,YAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,YAAY,GAAAH,YAAA,CAAA,CAAA,CAAA,CAAA;AACzB,IAAA,IAAAI,YAAA,GAA2CN,UAAU,CAACO,kBAAkB,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAL,cAAA,CAAAG,YAAA,EAAA,CAAA,CAAA;AAAtEG,MAAAA,WAAW,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,mBAAmB,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;AAEvC,IAAA,IAAAG,YAAA,GAAqDC,WAAW,CAAC9C,KAAK,CAAC;MAAA+C,aAAA,GAAAV,cAAA,CAAAQ,YAAA,EAAA,CAAA,CAAA;AAAhEG,MAAAA,OAAO,GAAAD,aAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,iBAAiB,GAAAF,aAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,cAAc,GAAAH,aAAA,CAAA,CAAA,CAAA,CAAA;AAEjD,IAAA,IAAMI,yBAAyB,GAAG,CAAA,CAAApD,iBAAA,GAAAqD,gBAAgB,CAACT,WAAW,EAAEM,iBAAiB,CAAC,cAAAlD,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhDA,iBAAA,CAAkDsD,KAAK,KAAI,EAAE,CAAA;AAE/F,IAAA,IAAMC,kBAAkB,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;AAEvD,IAAA,IAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;;AAE1B;AACA,IAAA,IAAMC,SAAS,GAAGC,eAAe,CAAmB,UAACC,KAAK,EAAK;AAC3D,MAAA,IAAI,CAACC,iBAAiB,IAAI,CAACxD,mBAAmB,IAAIsB,YAAY,EAAE;AAC5D,QAAA,OAAA;AACJ,OAAA;AAEAY,MAAAA,YAAY,CAAC;AAAEuB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAC/BlB,MAAAA,mBAAmB,CAAC;AAAEkB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAEtC,MAAA,IAAIxD,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAAC,KAAK,EAAEsD,KAAK,CAAC,CAAA;AAC1B,OAAA;KACH,EAAEN,kBAAkB,CAAC,CAAA;IAEtB,IAAMS,kBAA0C,GAAG,SAA7CA,kBAA0CA,CAAIC,MAAM,EAAEJ,KAAK,EAAK;MAClE,IAAIjC,YAAY,IAAIqC,MAAM,EAAE;AACxBzB,QAAAA,YAAY,CAAC;AAAEuB,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAC,MAAM;AACHlB,QAAAA,mBAAmB,CAAC;AAAEkB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACtCvB,QAAAA,YAAY,CAAC;AAAEuB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAA;AAEA,MAAA,IAAIxD,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAAC0D,MAAM,EAAEJ,KAAK,CAAC,CAAA;AAC3B,OAAA;KACH,CAAA;IAED,IAAAK,iBAAA,GAAsBC,gBAAgB,CAAC;AACnCvB,QAAAA,WAAW,EAAXA,WAAW;AACXC,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBN,QAAAA,IAAI,EAAJA,IAAI;AACJC,QAAAA,YAAY,EAAZA,YAAY;AACZS,QAAAA,OAAO,EAAPA,OAAO;AACPC,QAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBc,QAAAA,kBAAkB,EAAlBA,kBAAkB;AAClB/C,QAAAA,aAAa,EAAbA,aAAa;AACbE,QAAAA,YAAY,EAAZA,YAAY;AACZC,QAAAA,WAAW,EAAXA,WAAAA;AACJ,OAAC,CAAC;MAXMgD,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;IAajB,IAAMN,iBAAiB,GAAGlC,YAAY,IAAIyC,OAAO,CAAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1D,IAAA,oBACI+B,KAAA,CAAAC,aAAA,CAAC9E,OAAO,CAAC+E,QAAQ,EAAA;AACblB,MAAAA,KAAK,EAAE;AACHV,QAAAA,WAAW,EAAXA,WAAW;AACXpC,QAAAA,IAAI,EAAJA,IAAI;AACJgB,QAAAA,OAAO,EAAPA,OAAO;AACPb,QAAAA,QAAQ,EAARA,QAAQ;AACRqD,QAAAA,kBAAkB,EAAlBA,kBAAkB;AAClB/C,QAAAA,aAAa,EAAbA,aAAa;AACbC,QAAAA,OAAO,EAAPA,OAAO;AACPE,QAAAA,WAAW,EAAXA,WAAW;AACXD,QAAAA,YAAY,EAAZA,YAAY;AACZO,QAAAA,QAAQ,EAARA,QAAQ;AACR+B,QAAAA,MAAM,EAANA,MAAM;AACN3B,QAAAA,UAAU,EAAVA,UAAU;AACVqB,QAAAA,cAAc,EAAdA,cAAAA;AACJ,OAAA;AAAE,KAAA,eAEFmB,KAAA,CAAAC,aAAA,CAACE,eAAe,EAAA;AACZ1E,MAAAA,GAAG,EAAEwD,kBAAmB;AACxBU,MAAAA,MAAM,EAAEH,iBAAkB;AAC1BvD,MAAAA,QAAQ,EAAEyD,kBAAmB;AAC7B7D,MAAAA,SAAS,EAAEuE,YAAY,CAACvE,SAAS,CAAE;AACnCC,MAAAA,MAAM,EAAEA,MAAO;AACfyB,MAAAA,MAAM,EAAEA,MAAO;AACfP,MAAAA,OAAO,EAAEA,OAAQ;AACjBqD,MAAAA,MAAM,EAAEC,iBAAiB,CAAC1E,QAAQ,EAAE;AAChC2E,QAAAA,IAAI,EAAE,UAAU;AAChB,QAAA,eAAe,EAAAC,EAAAA,CAAAA,MAAA,CAAKrB,MAAM,EAAe,eAAA,CAAA;AACzC,QAAA,eAAe,EAAEK,iBAAiB;AAClC,QAAA,uBAAuB,EAAEV,yBAAyB,GAC5C2B,SAAS,CAACtB,MAAM,EAAEL,yBAAyB,CAAC4B,QAAQ,EAAE,CAAC,GACvD,EAAE;AACRZ,QAAAA,SAAS,EAATA,SAAAA;OACH,CAAA;AAAE,KAAA,eAEHE,KAAA,CAAAC,aAAA,CAAC3E,IAAI,EAAAqF,QAAA,CAAA;MACDrE,SAAS,EAAEsE,EAAE,CAACtE,SAAS,EAAEuE,OAAO,CAACxF,YAAY,CAAE;AAC/CI,MAAAA,GAAG,EAAEA,GAAI;AACTU,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,IAAI,EAAEA,IAAK;AACX4E,MAAAA,KAAK,EAAE;AAAEC,QAAAA,OAAO,EAAE,cAAA;AAAe,OAAA;AAAE,KAAA,EAC/BtD,IAAI,CAERuC,eAAAA,KAAA,CAAAC,aAAA,CAACe,EAAE,EAAA;AACCvF,MAAAA,GAAG,EAAE4D,SAAU;AACf4B,MAAAA,EAAE,EAAAT,EAAAA,CAAAA,MAAA,CAAKrB,MAAM,EAAgB,eAAA,CAAA;AAC7BoB,MAAAA,IAAI,EAAC,MAAM;AACX/D,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BF,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,EAEpBZ,KAAK,CAACuF,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAA;AAAA,MAAA,oBACnBpB,KAAA,CAAAC,aAAA,CAACoB,aAAa,EAAA;AACVC,QAAAA,GAAG,EAAAd,EAAAA,CAAAA,MAAA,CAAKY,KAAK,EAAK,IAAA,CAAA;AAClBD,QAAAA,IAAI,EAAEA,IAAK;AACXI,QAAAA,YAAY,EAAE,CAAE;AAChBvE,QAAAA,OAAO,EAAEA,OAAQ;AACjBiB,QAAAA,IAAI,EAAEA,IAAK;AACXC,QAAAA,YAAY,EAAEA,YAAa;AAC3BkD,QAAAA,KAAK,EAAEA,KAAM;AACb5E,QAAAA,UAAU,EAAEA,UAAW;AACvBC,QAAAA,YAAY,EAAEA,YAAa;AAC3BF,QAAAA,SAAS,EAAEA,SAAAA;AAAU,OACxB,CAAC,CAAA;AAAA,KACL,CACD,CACF,CACO,CACH,CAAC,CAAA;AAE3B,GACJ,CAAC,CAAA;AAAA,EAAA;AAEE,IAAMiF,cAAc,GAAG;AAC1BC,EAAAA,IAAI,EAAE,UAAU;AAChBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEtG,YAAY;AACpBuG,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,UAAU,EAAE;AACR1F,IAAAA,IAAI,EAAE;AACF2F,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACD7F,IAAAA,IAAI,EAAE;AACF4F,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACN9F,IAAAA,IAAI,EAAE,SAAS;AACfD,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
|
1
|
+
{"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { createContext, forwardRef, useReducer, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, base } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType, ItemContext } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement,\n offset,\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n variant = 'normal',\n hasArrow = true,\n alwaysOpened = false,\n portal,\n renderItem,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n renderItem,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n })}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n >\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["Context","createContext","dropdownRoot","Root","forwardRef","_ref","ref","_getItemByFocused","items","children","placement","offset","_ref$closeOnOverlayCl","closeOnOverlayClick","onToggle","size","view","_ref$itemRole","itemRole","className","listWidth","listHeight","listOverflow","_ref$closeOnSelect","closeOnSelect","onHover","onItemSelect","onItemClick","_ref$trigger","trigger","_ref$variant","variant","_ref$hasArrow","hasArrow","_ref$alwaysOpened","alwaysOpened","portal","renderItem","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","pathReducer","_useReducer2","_slicedToArray","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useHashMaps","useHashMaps","_useHashMaps2","pathMap","focusedToValueMap","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","isCurrentListOpen","type","handleGlobalToggle","opened","_useKeyNavigation","useKeyNavigation","onKeyDown","Boolean","React","createElement","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","concat","getItemId","toString","_extends","cx","classes","style","display","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
@@ -7,7 +7,6 @@ var useHashMaps = function useHashMaps(items) {
|
|
7
7
|
return useMemo(function () {
|
8
8
|
var pathMap = new Map();
|
9
9
|
var focusedToValueMap = new Map();
|
10
|
-
var valueToItemMap = new Map();
|
11
10
|
pathMap.set('root', items.length);
|
12
11
|
var rec = function rec(items) {
|
13
12
|
var prevIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
@@ -19,13 +18,11 @@ var useHashMaps = function useHashMaps(items) {
|
|
19
18
|
if (innerItems) {
|
20
19
|
pathMap.set(value, innerItems.length);
|
21
20
|
rec(innerItems, currIndex);
|
22
|
-
} else {
|
23
|
-
valueToItemMap.set(value, item);
|
24
21
|
}
|
25
22
|
});
|
26
23
|
};
|
27
24
|
rec(items);
|
28
|
-
return [pathMap, focusedToValueMap
|
25
|
+
return [pathMap, focusedToValueMap];
|
29
26
|
}, [items]);
|
30
27
|
};
|
31
28
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useHashMaps.js","sources":["../../../../src/components/Dropdown/hooks/useHashMaps.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { DropdownProps } from '../Dropdown.types';\nimport { DropdownItemOption } from '../ui/DropdownItem/DropdownItem.type';\n\nexport type PathMapType = Map<string | number, number>;\nexport type FocusedToValueMapType = Map<string, DropdownItemOption>;\
|
1
|
+
{"version":3,"file":"useHashMaps.js","sources":["../../../../src/components/Dropdown/hooks/useHashMaps.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { DropdownProps } from '../Dropdown.types';\nimport { DropdownItemOption } from '../ui/DropdownItem/DropdownItem.type';\n\nexport type PathMapType = Map<string | number, number>;\nexport type FocusedToValueMapType = Map<string, DropdownItemOption>;\n\n// Данный хук рекурсивно проходится по дереву items и создает 2 мапы: мапу путей и мапу фокусов.\n// Нужно для получения всей информации об item, зная только путь до него.\n\nexport const useHashMaps = (items: DropdownProps['items']) => {\n return useMemo(() => {\n const pathMap: PathMapType = new Map();\n const focusedToValueMap: FocusedToValueMapType = new Map();\n\n pathMap.set('root', items.length);\n\n const rec = (items: DropdownProps['items'], prevIndex = '') => {\n items.forEach((item: DropdownItemOption, index: number) => {\n const { value, items: innerItems } = item;\n\n const currIndex = `${prevIndex}/${index}`.replace(/^(\\/)/, '');\n focusedToValueMap.set(currIndex, item);\n\n if (innerItems) {\n pathMap.set(value, innerItems.length);\n rec(innerItems, currIndex);\n }\n });\n };\n rec(items);\n\n return [pathMap, focusedToValueMap] as [PathMapType, FocusedToValueMapType];\n }, [items]);\n};\n"],"names":["useHashMaps","items","useMemo","pathMap","Map","focusedToValueMap","set","length","rec","prevIndex","arguments","undefined","forEach","item","index","value","innerItems","currIndex","concat","replace"],"mappings":";;AAQA;AACA;;IAEaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAA6B,EAAK;EAC1D,OAAOC,OAAO,CAAC,YAAM;AACjB,IAAA,IAAMC,OAAoB,GAAG,IAAIC,GAAG,EAAE,CAAA;AACtC,IAAA,IAAMC,iBAAwC,GAAG,IAAID,GAAG,EAAE,CAAA;IAE1DD,OAAO,CAACG,GAAG,CAAC,MAAM,EAAEL,KAAK,CAACM,MAAM,CAAC,CAAA;AAEjC,IAAA,IAAMC,GAAG,GAAG,SAANA,GAAGA,CAAIP,KAA6B,EAAqB;AAAA,MAAA,IAAnBQ,SAAS,GAAAC,SAAA,CAAAH,MAAA,GAAA,CAAA,IAAAG,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AACtDT,MAAAA,KAAK,CAACW,OAAO,CAAC,UAACC,IAAwB,EAAEC,KAAa,EAAK;AACvD,QAAA,IAAQC,KAAK,GAAwBF,IAAI,CAAjCE,KAAK;UAASC,UAAU,GAAKH,IAAI,CAA1BZ,KAAK,CAAA;AAEpB,QAAA,IAAMgB,SAAS,GAAG,EAAA,CAAAC,MAAA,CAAGT,SAAS,EAAAS,GAAAA,CAAAA,CAAAA,MAAA,CAAIJ,KAAK,EAAGK,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC9Dd,QAAAA,iBAAiB,CAACC,GAAG,CAACW,SAAS,EAAEJ,IAAI,CAAC,CAAA;AAEtC,QAAA,IAAIG,UAAU,EAAE;UACZb,OAAO,CAACG,GAAG,CAACS,KAAK,EAAEC,UAAU,CAACT,MAAM,CAAC,CAAA;AACrCC,UAAAA,GAAG,CAACQ,UAAU,EAAEC,SAAS,CAAC,CAAA;AAC9B,SAAA;AACJ,OAAC,CAAC,CAAA;KACL,CAAA;IACDT,GAAG,CAACP,KAAK,CAAC,CAAA;AAEV,IAAA,OAAO,CAACE,OAAO,EAAEE,iBAAiB,CAAC,CAAA;AACvC,GAAC,EAAE,CAACJ,KAAK,CAAC,CAAC,CAAA;AACf;;;;"}
|
@@ -36,8 +36,7 @@ var DropdownItem = function DropdownItem(_ref) {
|
|
36
36
|
onItemClick = _useContext.onItemClick,
|
37
37
|
hasArrow = _useContext.hasArrow,
|
38
38
|
treeId = _useContext.treeId,
|
39
|
-
renderItem = _useContext.renderItem
|
40
|
-
valueToItemMap = _useContext.valueToItemMap;
|
39
|
+
renderItem = _useContext.renderItem;
|
41
40
|
var hasDescendants = Boolean(item.items);
|
42
41
|
var disclosureIconSize = size === 'xs' ? 'xs' : 's';
|
43
42
|
var isDisabledClassName = disabled || isDisabled ? classes.dropdownItemIsDisabled : undefined;
|
@@ -88,7 +87,7 @@ var DropdownItem = function DropdownItem(_ref) {
|
|
88
87
|
"aria-expanded": ariaExpanded,
|
89
88
|
"aria-level": ariaLevel,
|
90
89
|
"aria-label": ariaLabel
|
91
|
-
}, renderItem ? /*#__PURE__*/React.createElement(RenderItemWrapper, null, renderItem(
|
90
|
+
}, renderItem ? /*#__PURE__*/React.createElement(RenderItemWrapper, null, renderItem(item)) : /*#__PURE__*/React.createElement(CellWrapper, null, /*#__PURE__*/React.createElement(StyledCell, {
|
92
91
|
contentLeft: contentLeft,
|
93
92
|
contentRight: contentRight,
|
94
93
|
alignContentLeft: "center",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DropdownItem.js","sources":["../../../../../src/components/Dropdown/ui/DropdownItem/DropdownItem.tsx"],"sourcesContent":["import React, { useEffect, useRef, FC, useContext } from 'react';\n\nimport { classes } from '../../Dropdown.tokens';\nimport { cx } from '../../../../utils';\nimport { IconDisclosureRight } from '../../../_Icon';\nimport { Context } from '../../Dropdown';\nimport { getItemId } from '../../utils';\n\nimport {\n Wrapper,\n DisclosureIconWrapper,\n Divider,\n CellWrapper,\n StyledCell,\n RenderItemWrapper,\n} from './DropdownItem.styles';\nimport type { DropdownItemProps } from './DropdownItem.type';\n\nexport const DropdownItem: FC<DropdownItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, isDisabled, contentLeft, contentRight, dividerBefore, dividerAfter } = item;\n\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemSelect,\n onItemClick,\n hasArrow,\n treeId,\n renderItem,\n
|
1
|
+
{"version":3,"file":"DropdownItem.js","sources":["../../../../../src/components/Dropdown/ui/DropdownItem/DropdownItem.tsx"],"sourcesContent":["import React, { useEffect, useRef, FC, useContext } from 'react';\n\nimport { classes } from '../../Dropdown.tokens';\nimport { cx } from '../../../../utils';\nimport { IconDisclosureRight } from '../../../_Icon';\nimport { Context } from '../../Dropdown';\nimport { getItemId } from '../../utils';\n\nimport {\n Wrapper,\n DisclosureIconWrapper,\n Divider,\n CellWrapper,\n StyledCell,\n RenderItemWrapper,\n} from './DropdownItem.styles';\nimport type { DropdownItemProps } from './DropdownItem.type';\n\nexport const DropdownItem: FC<DropdownItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, isDisabled, contentLeft, contentRight, dividerBefore, dividerAfter } = item;\n\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemSelect,\n onItemClick,\n hasArrow,\n treeId,\n renderItem,\n } = useContext(Context);\n\n const hasDescendants = Boolean(item.items);\n const disclosureIconSize = size === 'xs' ? 'xs' : 's';\n const isDisabledClassName = disabled || isDisabled ? classes.dropdownItemIsDisabled : undefined;\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n useEffect(() => {\n if (focusedClass && ref?.current) {\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, [focusedClass]);\n\n const handleClick = (event: React.MouseEvent<HTMLLIElement>): void => {\n if (disabled || isDisabled) {\n return;\n }\n\n if (onItemSelect) {\n onItemSelect(item, event);\n }\n\n if (onItemClick) {\n onItemClick(item, event);\n }\n\n // Закрываем весь дропдаун целиком при клике на айтем без потомков. Только при closeOnSelect === true.\n if (closeOnSelect && !hasDescendants) {\n handleGlobalToggle(false, event);\n }\n };\n\n const handleHover = () => {\n if (onHover) {\n onHover(index);\n }\n };\n\n return (\n <>\n {dividerBefore && <Divider variant={variant} />}\n\n <Wrapper\n ref={ref}\n className={cx(isDisabledClassName, focusedClass, activeClass)}\n id={getItemId(treeId, value.toString())}\n role={itemRole}\n onClick={handleClick}\n onMouseEnter={handleHover}\n variant={variant}\n aria-disabled={disabled || isDisabled}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-level={ariaLevel}\n aria-label={ariaLabel}\n >\n {renderItem ? (\n <RenderItemWrapper>{renderItem(item)}</RenderItemWrapper>\n ) : (\n <CellWrapper>\n <StyledCell\n contentLeft={contentLeft}\n contentRight={contentRight}\n alignContentLeft=\"center\"\n alignContentRight=\"center\"\n title={label}\n />\n </CellWrapper>\n )}\n\n {item.items && hasArrow && (\n <DisclosureIconWrapper>\n <IconDisclosureRight size={disclosureIconSize} color=\"inherit\" />\n </DisclosureIconWrapper>\n )}\n </Wrapper>\n\n {dividerAfter && <Divider variant={variant} />}\n </>\n );\n};\n"],"names":["DropdownItem","_ref","item","path","currentLevel","index","ariaControls","ariaExpanded","ariaLevel","ariaLabel","value","label","disabled","isDisabled","contentLeft","contentRight","dividerBefore","dividerAfter","ref","useRef","_useContext","useContext","Context","focusedPath","size","variant","itemRole","handleGlobalToggle","closeOnSelect","onHover","onItemSelect","onItemClick","hasArrow","treeId","renderItem","hasDescendants","Boolean","items","disclosureIconSize","isDisabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useEffect","current","scrollIntoView","behavior","block","inline","handleClick","event","handleHover","React","createElement","Fragment","Divider","Wrapper","className","cx","id","getItemId","toString","role","onClick","onMouseEnter","RenderItemWrapper","CellWrapper","StyledCell","alignContentLeft","alignContentRight","title","DisclosureIconWrapper","IconDisclosureRight","color"],"mappings":"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"}
|