@salutejs/plasma-new-hope 0.326.1-canary.2042.15845695068.0 → 0.326.1-canary.2043.15849605311.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.
@@ -437,7 +437,7 @@ var comboboxRoot = function comboboxRoot(Root) {
437
437
  // В deps мы кладем именно outerValue и internalValue, а не просто value.
438
438
  // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.
439
439
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
440
- }, [outerValue, internalValue]);
440
+ }, [outerValue, internalValue, items]);
441
441
  React.useLayoutEffect(function () {
442
442
  if (defaultValue) {
443
443
  setInternalValue(defaultValue);
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\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 getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\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 listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\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(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : 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 = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n (valueToItemMap.get(value as string)?.label as string) || (value as string),\n filter,\n ),\n [transformedItems, textValue, 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 if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else if (multiple) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || (value as string) || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\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 if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\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 if (onToggle) {\n onToggle(opened);\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, valueToItemMap);\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 // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\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, item);\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 &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\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 helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\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 multiple,\n value,\n textValue,\n valueToItemMap,\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 // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\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={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\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 labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\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 zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\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 </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\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":["comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","zIndex","beforeList","afterList","_props$virtual","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","Array","isArray","get","toString","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","_valueToItemMap$get2","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","onChange","newValue","item","_typeof","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get4","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","_labelToItemMap$get","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","concat","renderValueMapper","valueToItemMapper","_valueToItemMap$get5","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get6","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","Inner","currentLevel","comboboxConfig","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, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\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 getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\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 listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\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(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : 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 = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n (valueToItemMap.get(value as string)?.label as string) || (value as string),\n filter,\n ),\n [transformedItems, textValue, 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 if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else if (multiple) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || (value as string) || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\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 if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\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 if (onToggle) {\n onToggle(opened);\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, valueToItemMap);\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 // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\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, item);\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 &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\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 helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\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 multiple,\n value,\n textValue,\n valueToItemMap,\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 // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\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={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\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 labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\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 zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\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 </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\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":["comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","zIndex","beforeList","afterList","_props$virtual","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","Array","isArray","get","toString","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","_valueToItemMap$get2","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","onChange","newValue","item","_typeof","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get4","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","_labelToItemMap$get","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","concat","renderValueMapper","valueToItemMapper","_valueToItemMap$get5","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get6","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA;AACA;AACA;;IAEaA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAA+D,EAAA;AAAA,EAAA,oBACxFC,gBAAU,CAAkC,UAACC,KAAK,EAAEC,GAAG,EAAK;AAAA,IAAA,IAAAC,mBAAA,EAAAC,iBAAA,EAAAC,iBAAA,CAAA;AACxD,IAAA,IACIC,IAAI,GA2CJL,KAAK,CA3CLK,IAAI,CAAA;MACJC,QAAQ,GA0CRN,KAAK,CA1CLM,QAAQ,CAAA;MACDC,UAAU,GAyCjBP,KAAK,CAzCLQ,KAAK,CAAA;MAELC,YAAY,GAuCZT,KAAK,CAvCLS,YAAY,CAAA;MACZC,cAAc,GAsCdV,KAAK,CAtCLU,cAAc,CAAA;MACdC,YAAY,GAqCZX,KAAK,CArCLW,YAAY,CAAA;MACZC,KAAK,GAoCLZ,KAAK,CApCLY,KAAK,CAAA;MAAAC,gBAAA,GAoCLb,KAAK,CAnCLc,SAAS,CAAA;AAATA,MAAAA,SAAS,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,gBAAA,CAAA;MAC1BE,KAAK,GAkCLf,KAAK,CAlCLe,KAAK,CAAA;MACLC,WAAW,GAiCXhB,KAAK,CAjCLgB,WAAW,CAAA;MACXC,UAAU,GAgCVjB,KAAK,CAhCLiB,UAAU,CAAA;MACVC,WAAW,GA+BXlB,KAAK,CA/BLkB,WAAW,CAAA;MACXC,UAAU,GA8BVnB,KAAK,CA9BLmB,UAAU,CAAA;MACVC,SAAS,GA6BTpB,KAAK,CA7BLoB,SAAS,CAAA;MAAAC,cAAA,GA6BTrB,KAAK,CA5BLsB,OAAO,CAAA;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,cAAA,CAAA;MAClBE,YAAY,GA2BZvB,KAAK,CA3BLuB,YAAY,CAAA;MACZC,UAAU,GA0BVxB,KAAK,CA1BLwB,UAAU,CAAA;MACVC,aAAa,GAyBbzB,KAAK,CAzBLyB,aAAa,CAAA;MACbC,SAAS,GAwBT1B,KAAK,CAxBL0B,SAAS,CAAA;MACTC,MAAM,GAuBN3B,KAAK,CAvBL2B,MAAM,CAAA;MACNC,UAAU,GAsBV5B,KAAK,CAtBL4B,UAAU,CAAA;MACVC,IAAI,GAqBJ7B,KAAK,CArBL6B,IAAI,CAAA;MACJC,IAAI,GAoBJ9B,KAAK,CApBL8B,IAAI,CAAA;MACJC,cAAc,GAmBd/B,KAAK,CAnBL+B,cAAc,CAAA;MACdC,eAAe,GAkBfhC,KAAK,CAlBLgC,eAAe,CAAA;MAAAC,eAAA,GAkBfjC,KAAK,CAjBLkC,QAAQ,CAAA;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA,CAAA;MAAAE,eAAA,GAiBhBnC,KAAK,CAhBLoC,QAAQ,CAAA;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA,CAAA;MAAAE,mBAAA,GAgBhBrC,KAAK,CAfLsC,YAAY,CAAA;AAAZA,MAAAA,YAAY,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,mBAAA,CAAA;MACpBE,MAAM,GAcNvC,KAAK,CAdLuC,MAAM,CAAA;MACYC,qBAAqB,GAavCxC,KAAK,CAbLyC,gBAAgB,CAAA;MAChBC,WAAW,GAYX1C,KAAK,CAZL0C,WAAW,CAAA;MACXC,MAAM,GAWN3C,KAAK,CAXL2C,MAAM,CAAA;MACNC,UAAU,GAUV5C,KAAK,CAVL4C,UAAU,CAAA;MACVC,SAAS,GAST7C,KAAK,CATL6C,SAAS,CAAA;MAAAC,cAAA,GAST9C,KAAK,CARL+C,OAAO,CAAA;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA,CAAA;MACfE,QAAQ,GAORhD,KAAK,CAPLgD,QAAQ,CAAA;MACRC,QAAQ,GAMRjD,KAAK,CANLiD,QAAQ,CAAA;MACRC,qBAAqB,GAKrBlD,KAAK,CALLkD,qBAAqB,CAAA;MACrBC,aAAa,GAIbnD,KAAK,CAJLmD,aAAa,CAAA;MACbC,QAAQ,GAGRpD,KAAK,CAHLoD,QAAQ,CAAA;MACRC,QAAQ,GAERrD,KAAK,CAFLqD,QAAQ,CAAA;AACLC,MAAAA,IAAI,GAAAC,iDAAA,CACPvD,KAAK,EAAAwD,SAAA,EAAA;IAET,IAAMC,gBAAgB,GAAGC,aAAO,CAAC,YAAA;AAAA,MAAA,OAAMC,2CAAqB,CAAC/C,KAAK,IAAI,EAAE,CAAC,CAAA;KAAE,EAAA,CAACA,KAAK,CAAC,CAAC,CAAA;;AAEnF;IACA,IAAAgD,QAAA,GAA4DF,aAAO,CAAC,YAAA;QAAA,OAAMG,uBAAW,CAACJ,gBAAgB,CAAC,CAAA;OAAE,EAAA,CACrG7C,KAAK,CACR,CAAC;MAAAkD,SAAA,GAAAC,uCAAA,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;AAIxD,IAAA,IAAAK,SAAA,GAAkCC,cAAQ,CACtC9D,QAAQ,IAAI+D,KAAK,CAACC,OAAO,CAAC/D,UAAU,CAAC,GAC/B,EAAE,GACF,EAAAL,mBAAA,GAAA+D,cAAc,CAACM,GAAG,CAAChE,UAAoB,CAAC,MAAAL,IAAAA,IAAAA,mBAAA,uBAAxCA,mBAAA,CAA0Ca,KAAK,MAAIR,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEiE,QAAQ,EAAE,CAAA,IAAI,EACvF,CAAC;MAAAC,UAAA,GAAAV,uCAAA,CAAAI,SAAA,EAAA,CAAA,CAAA;AAJMO,MAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAK9B,IAAAG,UAAA,GAA0CR,cAAQ,CAAoB9D,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;MAAAuE,UAAA,GAAAd,uCAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAAlFE,MAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtC,IAAA,IAAMrE,KAAK,GAAGD,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAKyE,SAAS,GAAGzE,UAAU,GAAGuE,aAAa,CAAA;AAE1F,IAAA,IAAMG,QAAQ,GAAGC,YAAM,CAAmB,IAAI,CAAC,CAAA;AAC/C,IAAA,IAAMC,kBAAkB,GAAGD,YAAM,CAAiB,IAAI,CAAC,CAAA;AACvD,IAAA,IAAME,YAAY,GAAGC,qBAAU,CAACJ,QAAQ,EAAEhF,GAAG,CAAC,CAAA;AAC9C,IAAA,IAAMqF,MAAM,GAAGC,eAAS,EAAE,CAAA;IAE1B,IAAMC,aAAa,GAAG9B,aAAO,CACzB,YAAA;AAAA,MAAA,IAAA+B,oBAAA,CAAA;MAAA,OACIC,uBAAW,CACPjC,gBAAgB,EAChBiB,SAAS,EACT,CAAAe,CAAAA,oBAAA,GAACxB,cAAc,CAACM,GAAG,CAAC/D,KAAe,CAAC,MAAAiF,IAAAA,IAAAA,oBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqC1E,KAAK,KAAgBP,KAAgB,EAC3E+B,MACJ,CAAC,CAAA;AAAA,KAAA,EACL,CAACkB,gBAAgB,EAAEiB,SAAS,EAAEnC,MAAM,CACxC,CAAC,CAAA;IAED,IAAAoD,SAAA,GAAqCjC,aAAO,CAAC,YAAA;QAAA,OAAMkC,sBAAU,CAACJ,aAAa,CAAC,CAAA;AAAA,OAAA,EAAE,CAACA,aAAa,EAAEd,SAAS,CAAC,CAAC;MAAAmB,SAAA,GAAA9B,uCAAA,CAAA4B,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,gBAAU,CAACC,uBAAW,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAApC,uCAAA,CAAAiC,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,gBAAU,CAACM,qCAAkB,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAzC,uCAAA,CAAAuC,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,GAA8BvC,cAAQ,CAACJ,iBAAiB,CAAC;MAAA4C,UAAA,GAAA7C,uCAAA,CAAA4C,UAAA,EAAA,CAAA,CAAA;AAAlDE,MAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAE1B,IAAMG,iBAAiB,GAAGzE,YAAY,IAAI0E,OAAO,CAACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1D,IAAA,IAAMa,yBAAyB,GAAG,CAAA,CAAA9G,iBAAA,GAAA+G,sCAAgB,CAACT,WAAW,EAAEV,iBAAiB,CAAC,cAAA5F,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhDA,iBAAA,CAAkDK,KAAK,KAAI,EAAE,CAAA;IAC/F,IAAM2G,gBAAgB,GAAGJ,iBAAiB,GAAGK,uBAAO,CAACC,YAAY,GAAGrC,SAAS,CAAA;IAC7E,IAAMvC,gBAAgB,GAAGD,qBAAqB,KAAA,IAAA,IAArBA,qBAAqB,KAArBA,KAAAA,CAAAA,GAAAA,qBAAqB,GAAI,CAAClC,QAAQ,CAAA;;AAE3D;AACA,IAAA,IAAMgH,SAAS,GAAGC,+BAAe,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,MAAA,IAAInE,QAAQ,EAAE;QACVA,QAAQ,CAAC,KAAK,CAAC,CAAA;AACnB,OAAA;;AAEA;AACA;AACA;MACA,IAAIqB,SAAS,KAAKlE,KAAK,EAAE;AACrB,QAAA,IAAIiH,eAAO,CAACjH,KAAK,CAAC,EAAE;UAChBmE,YAAY,CAAC,EAAE,CAAC,CAAA;SACnB,MAAM,IAAIrE,QAAQ,EAAE;UACjBqE,YAAY,CAAC,EAAE,CAAC,CAAA;AACpB,SAAC,MAAM;AAAA,UAAA,IAAA+C,oBAAA,CAAA;UACH/C,YAAY,CAAC,EAAA+C,oBAAA,GAAAzD,cAAc,CAACM,GAAG,CAAC/D,KAAe,CAAC,cAAAkH,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnCA,oBAAA,CAAqC3G,KAAK,KAAKP,KAAgB,IAAI,EAAE,CAAC,CAAA;AACvF,SAAA;AACJ,OAAA;KACH,EAAE2E,kBAAkB,CAAC,CAAA;;AAEtB;AACA;IACA,IAAMwC,QAAQ,GAAG,SAAXA,QAAQA,CACVC,QAAwE,EACxEC,IAAwB,EACvB;AACD;MACA,IAAI7H,KAAK,CAAC2H,QAAQ,EAAE;AAChB;AACA,QAAA,IAAI,CAAC3H,KAAK,CAACK,IAAI,KAAK,OAAOuH,QAAQ,KAAK,QAAQ,IAAIvD,KAAK,CAACC,OAAO,CAACsD,QAAQ,CAAC,CAAC,EAAE;UAC1E5H,KAAK,CAAC2H,QAAQ,CAACC,QAAQ,EAASC,IAAI,IAAI,IAAI,CAAC,CAAA;AACjD,SAAA;;AAEA;AACA,QAAA,IAAI7H,KAAK,CAACK,IAAI,IAAIyH,gCAAA,CAAOF,QAAQ,CAAA,KAAK,QAAQ,IAAI,CAACvD,KAAK,CAACC,OAAO,CAACsD,QAAQ,CAAC,EAAE;AACxE5H,UAAAA,KAAK,CAAC2H,QAAQ,CAACC,QAAe,CAAC,CAAA;AACnC,SAAA;AACJ,OAAA;;AAEA;MACA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAIvD,KAAK,CAACC,OAAO,CAACsD,QAAQ,CAAC,EAAE;QACzD7C,gBAAgB,CAAC6C,QAAQ,CAAC,CAAA;AAC9B,OAAA;KACH,CAAA;AAED,IAAA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;MAC3B,IAAI3F,QAAQ,IAAIF,QAAQ,EAAE;AACtB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAI6E,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,IAAMQ,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,CAAgC,EAAK;AAChEtD,MAAAA,YAAY,CAACsD,CAAC,CAACC,MAAM,CAAC1H,KAAK,CAAC,CAAA;AAC5B6F,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;AAEtC,MAAA,IAAIrE,aAAa,EAAE;AACfA,QAAAA,aAAa,CAAC8E,CAAC,CAACC,MAAM,CAAC1H,KAAK,CAAC,CAAA;AACjC,OAAA;KACH,CAAA;;AAED;AACA,IAAA,IAAM2H,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,UAAiB,EAAK;AAC7C,MAAA,IAAI,CAAC/D,KAAK,CAACC,OAAO,CAAC9D,KAAK,CAAC,EAAE,OAAA;;AAE3B;AACA;AACA,MAAA,IAAIkC,WAAW,IAAI,CAAChC,cAAc,EAAE;AAChC,QAAA,IAAM2H,YAAY,GAAAC,2CAAA,CAAO9H,KAAK,CAAC,CAAA;AAE/BA,QAAAA,KAAK,CAAC+H,OAAO,CAAC,UAACC,CAAC,EAAEC,KAAK,EAAK;AAAA,UAAA,IAAAC,oBAAA,CAAA;AACxB,UAAA,IAAMC,WAAW,GAAGnI,KAAK,CAACiI,KAAK,CAAC,CAAA;AAChC,UAAA,IAAM1H,KAAK,GAAA,CAAA2H,oBAAA,GAAGzE,cAAc,CAACM,GAAG,CAACoE,WAAW,CAAC,MAAAD,IAAAA,IAAAA,oBAAA,KAA/BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAiC3H,KAAK,CAAA;AAEpD,UAAA,IAAM6H,qBAAqB,GAAGlG,WAAW,CACrC3B,KAAK,GACCmD,cAAc,CAACK,GAAG,CAACxD,KAAK,CAAC,GACzB;AACIP,YAAAA,KAAK,EAAEmI,WAAW;AAClB5H,YAAAA,KAAK,EAAE4H,WAAW,CAACnE,QAAQ,EAAC;AAChC,WACV,CAAC,CAAA;AAED,UAAA,IAAI,CAAC4D,UAAU,CAACS,QAAQ,CAACD,qBAAqB,CAAC,EAAE;AAC7CP,YAAAA,YAAY,CAACS,MAAM,CAACL,KAAK,EAAE,CAAC,CAAC,CAAA;AACjC,WAAA;AACJ,SAAC,CAAC,CAAA;QAEF,IAAMM,gBAAgB,GAAGC,mCAAiB,CAACxI,KAAK,EAAE6H,YAAY,EAAE3H,cAAc,CAAC,CAAA;QAE/EiH,QAAQ,CACJU,YAAY,EACZU,gBAAgB,GACV9E,cAAc,CAACM,GAAG,CAACwE,gBAAgB,CAAC,IAAI;AACpCvI,UAAAA,KAAK,EAAEuI,gBAAgB;AACvBhI,UAAAA,KAAK,EAAEgI,gBAAgB,CAACvE,QAAQ,EAAC;SACpC,GACD,IACV,CAAC,CAAA;AACL,OAAC,MAAM;AACH,QAAA,IAAMyE,SAAS,GAAGb,UAAU,CAACc,GAAG,CAAC,UAACC,SAAS,EAAA;AAAA,UAAA,IAAAC,mBAAA,CAAA;AAAA,UAAA,OAAK,EAAAA,mBAAA,GAAAlF,cAAc,CAACK,GAAG,CAAC4E,SAAS,CAAC,MAAA,IAAA,IAAAC,mBAAA,KAA7BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAA+B5I,KAAK,KAAI2I,SAAS,CAAA;SAAC,CAAA,CAAA;QAClG,IAAMJ,iBAAgB,GAAGC,mCAAiB,CAACxI,KAAK,EAAEyI,SAAS,EAAEvI,cAAc,CAAC,CAAA;QAE5EiH,QAAQ,CACJsB,SAAS,EACTF,iBAAgB,GACV9E,cAAc,CAACM,GAAG,CAACwE,iBAAgB,CAAC,IAAI;AACpCvI,UAAAA,KAAK,EAAEuI,iBAAgB;AACvBhI,UAAAA,KAAK,EAAEgI,iBAAgB,CAACvE,QAAQ,EAAC;SACpC,GACD,IACV,CAAC,CAAA;AACL,OAAA;KACH,CAAA;;AAED;AACA,IAAA,IAAM6E,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,MAAe,EAAK;MAC1C,IAAIlH,QAAQ,IAAIF,QAAQ,EAAE;AACtB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIoH,MAAM,EAAE;AACRjD,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;AAEA,MAAA,IAAInE,QAAQ,EAAE;QACVA,QAAQ,CAACiG,MAAM,CAAC,CAAA;AACpB,OAAA;KACH,CAAA;;AAED;AACA,IAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAI1B,IAA2B,EAAK;MAC1D,IAAI,CAACvH,QAAQ,EAAE;AACX,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMkJ,WAAW,GAAG,IAAIC,GAAG,CAAC5C,OAAO,CAAC,CAAA;MAEpC,IAAI,CAAC2C,WAAW,CAACjF,GAAG,CAACsD,IAAI,CAACrH,KAAK,CAAC,EAAE;QAC9BgJ,WAAW,CAACE,GAAG,CAAC7B,IAAI,CAACrH,KAAK,EAAE,IAAI,CAAC,CAAA;QACjCmJ,mCAAiB,CAAC9B,IAAI,EAAE2B,WAAW,EAAE,IAAI,EAAEvF,cAAc,CAAC,CAAA;AAC9D,OAAC,MAAM;QACHuF,WAAW,CAACE,GAAG,CAAC7B,IAAI,CAACrH,KAAK,EAAE,KAAK,CAAC,CAAA;AAClCmJ,QAAAA,mCAAiB,CAAC9B,IAAI,EAAE2B,WAAW,EAAE,KAAK,CAAC,CAAA;AAC/C,OAAA;AAEAI,MAAAA,+BAAe,CAAC/B,IAAI,EAAE2B,WAAW,CAAC,CAAA;MAElC,IAAMP,SAAwB,GAAG,EAAE,CAAA;AAEnChF,MAAAA,cAAc,CAACsE,OAAO,CAAC,UAACV,IAAI,EAAEgC,GAAG,EAAK;AAClC,QAAA,IAAIL,WAAW,CAACjF,GAAG,CAACsF,GAAG,CAAC,EAAE;AACtBZ,UAAAA,SAAS,CAACa,IAAI,CAACjC,IAAI,CAACrH,KAAK,CAAC,CAAA;AAC9B,SAAA;AACJ,OAAC,CAAC,CAAA;;AAEF;AACA,MAAA,IAAI6D,KAAK,CAACC,OAAO,CAAC9D,KAAK,CAAC,EAAE;AACtBA,QAAAA,KAAK,CAAC+H,OAAO,CAAC,UAACwB,GAAW,EAAK;AAC3B,UAAA,IAAI,CAAC9F,cAAc,CAAC+F,GAAG,CAACD,GAAG,CAAC,EAAE;AAC1Bd,YAAAA,SAAS,CAACa,IAAI,CAACC,GAAG,CAAC,CAAA;AACvB,WAAA;AACJ,SAAC,CAAC,CAAA;AACN,OAAA;AAEA,MAAA,IAAI,CAACzH,YAAY,IAAIG,gBAAgB,EAAE;AACnC4D,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,IAAIG,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAACsB,SAAS,EAAEpB,IAAI,CAAC,CAAA;AAC7B,OAAA;KACH,CAAA;;AAED;IACA,IAAMoC,eAAe,GAAG,SAAlBA,eAAeA,CAAIpC,IAA2B,EAAEI,CAAiC,EAAK;MACxF,IAAI,CAACR,eAAO,CAACI,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEjH,KAAK,CAAC,EAAE;AACvB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIN,QAAQ,EAAE;QACViJ,oBAAoB,CAAC1B,IAAI,CAAC,CAAA;AAC1B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAII,CAAC,EAAE;QACHA,CAAC,CAACiC,eAAe,EAAE,CAAA;AACvB,OAAA;MAEA,IAAMC,gBAAgB,GAAGtD,OAAO,CAACtC,GAAG,CAACsD,IAAI,CAACrH,KAAK,CAAC,CAAA;AAEhD,MAAA,IAAI,CAAC8B,YAAY,IAAIG,gBAAgB,EAAE;AACnC4D,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,IAAIG,QAAQ,EAAE;QACVA,QAAQ,CAACwC,gBAAgB,GAAG,EAAE,GAAGtC,IAAI,CAACrH,KAAK,EAAEqH,IAAI,CAAC,CAAA;AACtD,OAAA;KACH,CAAA;AAED,IAAA,IAAMuC,QAAQ,GAAG,SAAXA,QAAQA,GAAmB;MAC7B,IAAI9J,QAAQ,IAAI+D,KAAK,CAACC,OAAO,CAAC9D,KAAK,CAAC,EAAE;AAClC,QAAA,IAAIA,KAAK,CAAC6J,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAEjC,QAAA,IAAI3J,cAAc,EAAE;UAChB,OAAO,CAAA,6CAAA,CAAA4J,MAAA,CAAY3J,YAAY,IAAIH,KAAK,CAAC6J,MAAM,CAAG,CAAA,CAAA;AACtD,SAAA;AAEA,QAAA,IAAME,iBAAiB,GACnB7H,WAAW,IACV,UAACiG,WAAmB,EAAA;UAAA,OACjBjG,WAAW,CACPuB,cAAc,CAACM,GAAG,CAACoE,WAAW,CAAC,IAAI;AAAEnI,YAAAA,KAAK,EAAEmI,WAAW;AAAE5H,YAAAA,KAAK,EAAE4H,WAAW,CAACnE,QAAQ,EAAC;AAAE,WAC3F,CAAC,CAAA;SAAC,CAAA;AACV,QAAA,IAAMgG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAI7B,WAAmB,EAAA;AAAA,UAAA,IAAA8B,oBAAA,CAAA;UAAA,OAC1C,CAAA,CAAAA,oBAAA,GAAAxG,cAAc,CAACM,GAAG,CAACoE,WAAW,CAAC,MAAA,IAAA,IAAA8B,oBAAA,KAA/BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAiC1J,KAAK,KAAI4H,WAAW,CAACnE,QAAQ,EAAE,CAAA;AAAA,SAAA,CAAA;AAEpE,QAAA,OAAOhE,KAAK,CAAC0I,GAAG,CAACqB,iBAAiB,IAAIC,iBAAiB,CAAC,CAAA;AAC5D,OAAA;AAEA,MAAA,OAAO,EAAE,CAAA;KACZ,CAAA;IAED,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAI7C,IAA2B,EAAEI,CAAiC,EAAK;AACxF,MAAA,IAAIR,eAAO,CAACI,IAAI,CAACjH,KAAK,CAAC,EAAE;AACrBqJ,QAAAA,eAAe,CAACpC,IAAI,EAAEI,CAAC,CAAC,CAAA;OAC3B,MAAM,IAAI3H,QAAQ,EAAE;QACjBiJ,oBAAoB,CAAC1B,IAAI,CAAC,CAAA;AAC9B,OAAA;KACH,CAAA;AAED,IAAA,IAAM8C,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,KAAuC,EAAK;MAC3EA,KAAK,CAACV,eAAe,EAAE,CAAA;KAC1B,CAAA;IAED,IAAAW,iBAAA,GAAsBC,sCAAgB,CAAC;AACnCrE,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;AACjBsD,QAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBqB,QAAAA,eAAe,EAAfA,eAAe;AACf/F,QAAAA,YAAY,EAAZA,YAAY;AACZrE,QAAAA,QAAQ,EAARA,QAAQ;AACRE,QAAAA,KAAK,EAALA,KAAK;AACLkE,QAAAA,SAAS,EAATA,SAAS;AACTT,QAAAA,cAAc,EAAdA,cAAAA;AACJ,OAAC,CAAC;MAdM8G,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;;AAgBjB;AACA;AACAC,IAAAA,qBAAe,CAAC,YAAM;AAAA,MAAA,IAAAC,oBAAA,CAAA;AAClB,MAAA,IAAMzB,WAAW,GAAG,IAAIC,GAAG,CAAC5C,OAAO,CAAC,CAAA;AAEpC2C,MAAAA,WAAW,CAACjB,OAAO,CAAC,UAACC,CAAC,EAAEqB,GAAG,EAAK;AAC5BL,QAAAA,WAAW,CAACE,GAAG,CAACG,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/B,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAACpC,eAAO,CAACjH,KAAK,CAAC,EAAE;AACjB,QAAA,IAAI6D,KAAK,CAACC,OAAO,CAAC9D,KAAK,CAAC,EAAE;AACtBA,UAAAA,KAAK,CAAC+H,OAAO,CAAC,UAACwB,GAAG,EAAK;AACnB;AACA,YAAA,IAAI9F,cAAc,CAAC+F,GAAG,CAACD,GAAG,CAAC,EAAE;AACzBP,cAAAA,WAAW,CAACE,GAAG,CAACK,GAAG,EAAE,IAAI,CAAC,CAAA;cAC1BJ,mCAAiB,CAAC1F,cAAc,CAACM,GAAG,CAACwF,GAAG,CAAC,EAAGP,WAAW,EAAE,IAAI,CAAC,CAAA;cAC9DI,+BAAe,CAAC3F,cAAc,CAACM,GAAG,CAACwF,GAAG,CAAC,EAAGP,WAAW,CAAC,CAAA;AAC1D,aAAA;AACJ,WAAC,CAAC,CAAA;AACN,SAAC,MAAM;AACH;AACA;AACA,UAAA,IAAIvF,cAAc,CAAC+F,GAAG,CAACxJ,KAAK,CAAC,EAAE;AAC3BgJ,YAAAA,WAAW,CAACE,GAAG,CAAClJ,KAAK,EAAE,MAAM,CAAC,CAAA;YAC9B0K,2CAAqB,CAACjH,cAAc,CAACM,GAAG,CAAC/D,KAAK,CAAC,EAAGgJ,WAAW,EAAE,KAAK,CAAC,CAAA;AACzE,WAAA;AACJ,SAAA;AACJ,OAAA;MAEA1C,UAAU,CAAC0C,WAAW,CAAC,CAAA;AAEvB7E,MAAAA,YAAY,CAACrE,QAAQ,GAAG,EAAE,GAAG,CAAA2K,CAAAA,oBAAA,GAAAhH,cAAc,CAACM,GAAG,CAAC/D,KAAe,CAAC,MAAAyK,IAAAA,IAAAA,oBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqClK,KAAK,MAAIP,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEgE,QAAQ,EAAE,CAAA,IAAI,EAAE,CAAC,CAAA;;AAEnG;AACA;AACA;KACH,EAAE,CAACjE,UAAU,EAAEuE,aAAa,EAAElE,KAAK,CAAC,CAAC,CAAA;AAEtCoK,IAAAA,qBAAe,CAAC,YAAM;AAClB,MAAA,IAAIvK,YAAY,EAAE;QACdsE,gBAAgB,CAACtE,YAAY,CAAC,CAAA;AAClC,OAAA;AACJ,KAAC,EAAE,CAACA,YAAY,CAAC,CAAC,CAAA;AAElB,IAAA,oBACI0K,sBAAA,CAAAC,aAAA,CAACtL,IAAI,EAAA;AACDgC,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,cAAc,EAAEA,cAAe;AAC/BK,MAAAA,QAAQ,EAAEA,QAAS;AACnBF,MAAAA,QAAQ,EAAEA,QAAS;AACnB7B,MAAAA,IAAI,EAAEA,IAAK;AACX2C,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,EAElB5C,IAAI,iBACD8K,sBAAA,CAAAC,aAAA,CAACC,yBAAY,EAAA;AACTzK,MAAAA,KAAK,EAAEqD,cAAe;AACtB5D,MAAAA,IAAI,EAAEA,IAAK;AACXG,MAAAA,KAAK,EAAEsE,aAAc;AACrBxE,MAAAA,QAAQ,EAAEA,QAAS;AACnBqH,MAAAA,QAAQ,EAAEA,QAAS;AACnB2D,MAAAA,UAAU,EAAEvG,gBAAiB;AAC7B9E,MAAAA,GAAG,EAAEA,GAAAA;AAAsC,KAC9C,CACJ,eACDkL,sBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,eACID,sBAAA,CAAAC,aAAA,CAACG,wBAAO,CAACC,QAAQ,EAAA;AACbhL,MAAAA,KAAK,EAAE;AACHiG,QAAAA,WAAW,EAAXA,WAAW;AACXI,QAAAA,OAAO,EAAPA,OAAO;AACPvG,QAAAA,QAAQ,EAARA,QAAQ;AACRwB,QAAAA,IAAI,EAAJA,IAAI;AACJyH,QAAAA,oBAAoB,EAApBA,oBAAoB;AACpBU,QAAAA,eAAe,EAAfA,eAAe;AACf3I,QAAAA,OAAO,EAAPA,OAAO;AACPM,QAAAA,UAAU,EAAVA,UAAU;AACV0D,QAAAA,MAAM,EAANA,MAAM;AACN;AACA;AACA;QACAmG,mBAAmB,EAAGnI,IAAI,CAASmI,mBAAAA;AACvC,OAAA;AAAE,KAAA,eAEFN,sBAAA,CAAAC,aAAA,CAACM,+BAAe,EAAA;AACZzL,MAAAA,GAAG,EAAEkF,kBAAmB;AACxBmE,MAAAA,MAAM,EAAEvC,iBAAkB;AAC1B1D,MAAAA,QAAQ,EAAEgG,gBAAiB;AAC3BvI,MAAAA,SAAS,EAAEA,SAAU;AACrBa,MAAAA,MAAM,EAAEA,MAAO;AACfD,MAAAA,SAAS,EAAEA,SAAU;MACrBwG,MAAM,EAAE,SAAAA,MAAAA,CAACyD,YAAY,EAAA;AAAA,QAAA,oBACjBR,sBAAA,CAAAC,aAAA,CAACQ,6BAAe,EAAAC,iCAAA,CAAA;AACZ5L,UAAAA,GAAG,EAAEI,IAAI,GAAG4E,QAAQ,GAAIG,YAAgD;AACxE0G,UAAAA,eAAe,EAAEH,YAAa;AAC9BnL,UAAAA,KAAK,EAAEkE,SAAU;AACjBiD,UAAAA,QAAQ,EAAEK,qBAAsB;AAChClG,UAAAA,IAAI,EAAEA,IAAK;AACXD,UAAAA,IAAI,EAAEA,IAAK;AACXO,UAAAA,QAAQ,EAAEA,QAAS;AACnBF,UAAAA,QAAQ,EAAEA,QAAS;AACnBnB,UAAAA,KAAK,EAAEA,KAAM;AACbC,UAAAA,WAAW,EAAEA,WAAY;AACzBE,UAAAA,WAAW,EAAEA,WAAY;AACzB6K,UAAAA,YAAY,eACRZ,sBAAA,CAAAC,aAAA,CAACY,gCAAgB,EAAA;AAAC5J,YAAAA,QAAQ,EAAEA,QAAS;AAAC6J,YAAAA,OAAO,EAAElE,gBAAAA;AAAiB,WAAA,eAC5DoD,sBAAA,CAAAC,aAAA,CAACc,2BAAW,EAAA;AACRC,YAAAA,KAAK,EAAC,SAAS;AACfrK,YAAAA,IAAI,EAAEsK,6BAAc,CAACtK,IAAI,CAAE;AAC3BuK,YAAAA,SAAS,EAAElF,gBAAAA;AAAiB,WAC/B,CACa,CACrB;AACDhG,UAAAA,UAAU,EAAEA,UAAW;AACvBC,UAAAA,SAAS,EAAEA,SAAU;AACrB2J,UAAAA,SAAS,EAAEA,SAAU;UACrBuB,UAAU,EACNrL,UAAU,KAAAb,iBAAA,KAAAA,iBAAA,gBACN+K,sBAAA,CAAAC,aAAA,CAACmB,gCAAgB,EAAA;AAACN,YAAAA,OAAO,EAAEtB,yBAAAA;WACtB1J,EAAAA,UACa,CAAC,CAE1B,CAAA;AACDuL,UAAAA,IAAI,EAAC,UAAU;AACf,UAAA,mBAAA,EAAkB,MAAM;UACxB,eAAAlC,EAAAA,EAAAA,CAAAA,MAAA,CAAkBhF,MAAM,EAAgB,eAAA,CAAA;AACxC,UAAA,eAAA,EAAeyB,iBAAkB;UACjC,uBACIE,EAAAA,yBAAyB,GAAGwF,mBAAS,CAACnH,MAAM,EAAE2B,yBAAyB,CAAC,GAAG,EAC9E;AACDlF,UAAAA,cAAc,EAAEA,cAAe;AAC/BC,UAAAA,eAAe,EAAEA,eAAAA;AAAgB,SAAA,EAC5B1B,QAAQ,GACP;AACIoM,UAAAA,eAAe,EAAE,MAAM;UACvBC,KAAK,EAAEvC,QAAQ,EAAE;AACjBwC,UAAAA,aAAa,EAAEzE,iBAAAA;AACnB,SAAC,GACD;AAAEuE,UAAAA,eAAe,EAAE,OAAA;AAAQ,SAAC,EAC9BpJ,IAAI,EAAA;AACRuJ,UAAAA,gBAAgB,EAAC,IAAA;AAAA,SAAA,CACpB,CAAC,CAAA;OACJ;AACFlK,MAAAA,MAAM,EAAEA,MAAO;AACfmK,MAAAA,OAAO,EAAE,KAAA;AAAM,KAAA,eAEf3B,sBAAA,CAAAC,aAAA,CAACtL,IAAI,EAAA;AACDgC,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,cAAc,EAAEA,cAAe;AAC/BK,MAAAA,QAAQ,EAAEA,QAAS;AACnBF,MAAAA,QAAQ,EAAEA,QAAS;AACnB7B,MAAAA,IAAI,EAAEA,IAAAA;AAAK,KAAA,eAEX8K,sBAAA,CAAAC,aAAA,CAAC2B,2BAAW,EAAA;AAACrL,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,eAC9ByJ,sBAAA,CAAAC,aAAA,CAAC4B,kBAAE,EAAA;AACCR,MAAAA,IAAI,EAAC,MAAM;AACXS,MAAAA,EAAE,EAAA3C,EAAAA,CAAAA,MAAA,CAAKhF,MAAM,EAAgB,eAAA,CAAA;MAC7B,sBAAsB0B,EAAAA,OAAO,CAAC1G,QAAQ,CAAE;MACxCmB,aAAa,EAAEA,aAAa,IAAID,UAAW;AAC3CvB,MAAAA,GAAG,EAAEqH,SAAU;AACfvE,MAAAA,OAAO,EAAEA,OAAQ;AACjBxB,MAAAA,YAAY,EAAEA,YAAa;AAC3B6B,MAAAA,QAAQ,EAAEL,OAAO,GAAGiC,SAAS,GAAG5B,QAAAA;KAE/BR,EAAAA,UAAU,EAEV6E,eAAO,CAACjC,aAAa,CAAC,gBACnB2F,sBAAA,CAAAC,aAAA,CAAC8B,gCAAgB,EAAA;MACbb,SAAS,EAAEjF,uBAAO,CAAC+F,iBAAkB;AACrCrL,MAAAA,IAAI,EAAEA,IAAK;MACXsL,WAAW,EAAElK,qBAAqB,IAAI,mBAAA;AAAoB,KAC7D,CAAC,gBAEFiI,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAkC,QAAA,EAAA,IAAA,EACKrN,KAAK,CAACM,QAAQ,IAAIN,KAAK,CAACsN,gBAAgB;AAAA;AACrC;IACAnC,sBAAA,CAAAC,aAAA,CAACmC,mBAAS,EAAA;MACND,gBAAgB,EAAEtN,KAAK,CAACsN,gBAAiB;AACzChM,MAAAA,OAAO,EAAEA,OAAAA;KACZ,CACJ,EAEAyB,OAAO,gBACJoI,sBAAA,CAAAC,aAAA,CAACoC,uBAAW,EAAA;AACR5M,MAAAA,KAAK,EAAE4E,aAAc;MACrB/D,aAAa,EAAEA,aAAa,IAAID,UAAW;AAC3C4B,MAAAA,QAAQ,EAAEA,QAAAA;KACb,CAAC,GAEFoC,aAAa,CAAC0D,GAAG,CAAC,UAACrB,IAAI,EAAEY,KAAK,EAAA;AAAA,MAAA,oBAC1B0C,sBAAA,CAAAC,aAAA,CAACqC,WAAK,EAAA;AACF5D,QAAAA,GAAG,EAAAS,EAAAA,CAAAA,MAAA,CAAK7B,KAAK,EAAK,IAAA,CAAA;AAClBZ,QAAAA,IAAI,EAAEA,IAAK;AACX6F,QAAAA,YAAY,EAAE,CAAE;AAChBtH,QAAAA,IAAI,EAAEA,IAAK;AACXC,QAAAA,YAAY,EAAEA,YAAa;AAC3BoC,QAAAA,KAAK,EAAEA,KAAM;AACb/G,QAAAA,SAAS,EAAEA,SAAAA;AAAU,OACxB,CAAC,CAAA;KACL,CAEP,CACL,EAEAmB,SACD,CACK,CACX,CACO,CACH,CACjB,CACH,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAM8K,cAAc,GAAG;AAC1BtN,EAAAA,IAAI,EAAE,QAAQ;AACduN,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEhO,YAAY;AACpBiO,EAAAA,IAAI,EAAJA,oBAAI;AACJC,EAAAA,UAAU,EAAE;AACRlM,IAAAA,IAAI,EAAE;AACFmM,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDnM,IAAAA,IAAI,EAAE;AACFkM,MAAAA,GAAG,EAAEE,WAAAA;KACR;AACDhM,IAAAA,QAAQ,EAAE;AACN8L,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNtM,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAG;AACTC,IAAAA,cAAc,EAAE,OAAA;AACpB,GAAA;AACJ;;;;;"}
@@ -583,7 +583,8 @@ var comboboxRoot = function(Root) {
583
583
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
584
584
  }, [
585
585
  outerValue,
586
- internalValue
586
+ internalValue,
587
+ items
587
588
  ]);
588
589
  (0, _react.useLayoutEffect)(function() {
589
590
  if (defaultValue) {
@@ -526,7 +526,8 @@ import { Context } from "./Combobox.context";
526
526
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
527
527
  }, [
528
528
  outerValue,
529
- internalValue
529
+ internalValue,
530
+ items
530
531
  ]);
531
532
  useLayoutEffect(function() {
532
533
  if (defaultValue) {
@@ -429,7 +429,7 @@ var comboboxRoot = function comboboxRoot(Root) {
429
429
  // В deps мы кладем именно outerValue и internalValue, а не просто value.
430
430
  // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.
431
431
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
432
- }, [outerValue, internalValue]);
432
+ }, [outerValue, internalValue, items]);
433
433
  useLayoutEffect(function () {
434
434
  if (defaultValue) {
435
435
  setInternalValue(defaultValue);
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\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 getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\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 listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\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(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : 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 = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n (valueToItemMap.get(value as string)?.label as string) || (value as string),\n filter,\n ),\n [transformedItems, textValue, 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 if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else if (multiple) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || (value as string) || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\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 if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\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 if (onToggle) {\n onToggle(opened);\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, valueToItemMap);\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 // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\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, item);\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 &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\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 helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\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 multiple,\n value,\n textValue,\n valueToItemMap,\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 // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\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={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\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 labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\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 zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\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 </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\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":["comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","zIndex","beforeList","afterList","_props$virtual","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","Array","isArray","get","toString","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","_valueToItemMap$get2","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","onChange","newValue","item","_typeof","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get4","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","_labelToItemMap$get","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","concat","renderValueMapper","valueToItemMapper","_valueToItemMap$get5","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get6","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","Inner","currentLevel","comboboxConfig","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, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent, ForwardedRef } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\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 getRemovedElement,\n} from './utils';\nimport { Inner, StyledTextField, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport {\n Ul,\n base,\n StyledArrow,\n IconArrowWrapper,\n StyledEmptyState,\n StyledLeftHelper,\n ListWrapper,\n} from './Combobox.styles';\nimport type { ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed, ItemOption } from './ui/Inner/ui/Item/Item.types';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Combobox.context';\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\n\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n name,\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n defaultValue,\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 listMaxHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n readOnly = false,\n disabled = false,\n alwaysOpened = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n renderValue,\n zIndex,\n beforeList,\n afterList,\n virtual = false,\n hintView,\n hintSize,\n emptyStateDescription,\n onChangeValue,\n onScroll,\n onToggle,\n ...rest\n } = props;\n\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(\n multiple || Array.isArray(outerValue)\n ? ''\n : valueToItemMap.get(outerValue as string)?.label || outerValue?.toString() || '',\n );\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : 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 = useMemo(\n () =>\n filterItems(\n transformedItems,\n textValue,\n (valueToItemMap.get(value as string)?.label as string) || (value as string),\n filter,\n ),\n [transformedItems, textValue, 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 if (onToggle) {\n onToggle(false);\n }\n\n // Проверяем, отличается ли значение в инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else if (multiple) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || (value as string) || '');\n }\n }\n }, floatingPopoverRef);\n\n // Эта функция срабатывает при изменении Combobox и\n // при изменении нативного Select для формы (срабатывает только после изменения internalValue и рендера).\n const onChange = (\n newValue: string | Array<string> | ChangeEvent<HTMLSelectElement> | null,\n item?: ItemOption | null,\n ) => {\n // Условие для отправки изменений наружу\n if (props.onChange) {\n // Условие для отправки если комбобокс используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если комбобокс используется с формой.\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\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 if (onChangeValue) {\n onChangeValue(e.target.value);\n }\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n if (!Array.isArray(value)) return;\n\n // TODO: #1564\n // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.\n if (renderValue && !isTargetAmount) {\n const resultValues = [...value];\n\n value.forEach((_, index) => {\n const stringValue = value[index];\n const label = valueToItemMap.get(stringValue)?.label;\n\n const labelAfterRenderValue = renderValue(\n label\n ? labelToItemMap.get(label)!\n : {\n value: stringValue,\n label: stringValue.toString(),\n },\n );\n\n if (!chipLabels.includes(labelAfterRenderValue)) {\n resultValues.splice(index, 1);\n }\n });\n\n const removedItemValue = getRemovedElement(value, resultValues, isTargetAmount);\n\n onChange(\n resultValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n } else {\n const newValues = chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)?.value || chipLabel);\n const removedItemValue = getRemovedElement(value, newValues, isTargetAmount);\n\n onChange(\n newValues,\n removedItemValue\n ? valueToItemMap.get(removedItemValue) || {\n value: removedItemValue,\n label: removedItemValue.toString(),\n }\n : null,\n );\n }\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 if (onToggle) {\n onToggle(opened);\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, valueToItemMap);\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 // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (!alwaysOpened && closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\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, item);\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 &&\n ((stringValue: string) =>\n renderValue(\n valueToItemMap.get(stringValue) || { value: stringValue, label: stringValue.toString() },\n ));\n const valueToItemMapper = (stringValue: string) =>\n valueToItemMap.get(stringValue)?.label || stringValue.toString();\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 helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\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 multiple,\n value,\n textValue,\n valueToItemMap,\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 // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n setTextValue(multiple ? '' : valueToItemMap.get(value as string)?.label || value?.toString() || '');\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n hintView={hintView}\n hintSize={hintSize}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiple={multiple}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLInputElement>}\n />\n )}\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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={name ? inputRef : (inputForkRef as ForwardedRef<HTMLInputElement>)}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\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={\n helperText && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {helperText}\n </StyledLeftHelper>\n )\n }\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 labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\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 zIndex={zIndex}\n isInner={false}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n name={name}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listMaxHeight={listMaxHeight || listHeight}\n ref={targetRef}\n virtual={virtual}\n listOverflow={listOverflow}\n onScroll={virtual ? undefined : onScroll}\n >\n {beforeList}\n\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description={emptyStateDescription || 'Ничего не найдено'}\n />\n ) : (\n <>\n {props.multiple && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll\n selectAllOptions={props.selectAllOptions}\n variant={variant}\n />\n )}\n\n {virtual ? (\n <VirtualList\n items={filteredItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\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 </>\n )}\n\n {afterList}\n </Ul>\n </ListWrapper>\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":["comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_getItemByFocused","_StyledLeftHelper","name","multiple","outerValue","value","defaultValue","isTargetAmount","targetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listMaxHeight","listWidth","portal","renderItem","view","size","labelPlacement","keepPlaceholder","_props$readOnly","readOnly","_props$disabled","disabled","_props$alwaysOpened","alwaysOpened","filter","outerCloseAfterSelect","closeAfterSelect","renderValue","zIndex","beforeList","afterList","_props$virtual","virtual","hintView","hintSize","emptyStateDescription","onChangeValue","onScroll","onToggle","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","_slicedToArray","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","Array","isArray","get","toString","_useState2","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","undefined","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","filteredItems","_valueToItemMap$get2","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","onChange","newValue","item","_typeof","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","resultValues","_toConsumableArray","forEach","_","index","_valueToItemMap$get4","stringValue","labelAfterRenderValue","includes","splice","removedItemValue","getRemovedElement","newValues","map","chipLabel","_labelToItemMap$get","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","set","updateDescendants","updateAncestors","key","push","val","has","handleItemClick","stopPropagation","isCurrentChecked","getChips","length","concat","renderValueMapper","valueToItemMapper","_valueToItemMap$get5","handlePressDown","helperTextStopPropagation","event","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_valueToItemMap$get6","updateSingleAncestors","React","createElement","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","StyledLeftHelper","role","getItemId","enumerationType","chips","onChangeChips","_onEnterDisabled","isInner","ListWrapper","Ul","id","StyledEmptyState","emptyStateWrapper","description","Fragment","selectAllOptions","SelectAll","VirtualList","Inner","currentLevel","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.326.1-canary.2042.15845695068.0",
3
+ "version": "0.326.1-canary.2043.15849605311.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -79,7 +79,7 @@
79
79
  "@rollup/plugin-babel": "^6.0.4",
80
80
  "@rollup/plugin-commonjs": "^25.0.4",
81
81
  "@rollup/plugin-node-resolve": "^15.1.0",
82
- "@salutejs/plasma-sb-utils": "0.199.1-canary.2042.15845695068.0",
82
+ "@salutejs/plasma-sb-utils": "0.199.1-canary.2043.15849605311.0",
83
83
  "@salutejs/plasma-themes": "0.34.0",
84
84
  "@storybook/addon-docs": "8.6.12",
85
85
  "@storybook/addon-essentials": "8.6.12",
@@ -117,7 +117,7 @@
117
117
  "@linaria/react": "5.0.3",
118
118
  "@popperjs/core": "2.11.8",
119
119
  "@salutejs/input-core": "2.1.2",
120
- "@salutejs/plasma-core": "1.198.1-canary.2042.15845695068.0",
120
+ "@salutejs/plasma-core": "1.198.1-canary.2043.15849605311.0",
121
121
  "@salutejs/react-maskinput": "3.2.6",
122
122
  "@tanstack/react-table": "8.21.2",
123
123
  "@tanstack/react-virtual": "3.13.2",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "6f5e58a7fa12932e7fa6e32a93cee3e4ebd9a10c"
140
+ "gitHead": "4413e0d38a6e85465ae7ec745b43e639e262cf65"
141
141
  }
@@ -583,7 +583,8 @@ var comboboxRoot = function(Root) {
583
583
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
584
584
  }, [
585
585
  outerValue,
586
- internalValue
586
+ internalValue,
587
+ items
587
588
  ]);
588
589
  (0, _react.useLayoutEffect)(function() {
589
590
  if (defaultValue) {
@@ -526,7 +526,8 @@ import { Context } from "./Combobox.context";
526
526
  // А переменную, содержащую сложные типы данных, нельзя помещать в deps.
527
527
  }, [
528
528
  outerValue,
529
- internalValue
529
+ internalValue,
530
+ items
530
531
  ]);
531
532
  useLayoutEffect(function() {
532
533
  if (defaultValue) {