@salutejs/plasma-new-hope 0.138.0-canary.1406.10666365265.0 → 0.138.0-canary.1406.10670275161.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +6 -8
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  4. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +4 -7
  6. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  7. package/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +2 -1
  8. package/cjs/components/Combobox/ComboboxNew/utils/filterItems.js.map +1 -1
  9. package/cjs/components/Popup/PopupContext.js +1 -1
  10. package/cjs/components/Popup/PopupContext.js.map +1 -1
  11. package/cjs/hooks/useOutsideClick.js +1 -4
  12. package/cjs/hooks/useOutsideClick.js.map +1 -1
  13. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +6 -8
  14. package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  15. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +4 -7
  16. package/emotion/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +2 -1
  17. package/emotion/cjs/components/Popup/PopupContext.js +1 -1
  18. package/emotion/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +12 -14
  19. package/emotion/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +1 -9
  20. package/emotion/cjs/hooks/useOutsideClick.js +1 -4
  21. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +6 -8
  22. package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  23. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +4 -7
  24. package/emotion/es/components/Combobox/ComboboxNew/utils/filterItems.js +2 -1
  25. package/emotion/es/components/Popup/PopupContext.js +1 -1
  26. package/emotion/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +12 -14
  27. package/emotion/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +1 -9
  28. package/emotion/es/hooks/useOutsideClick.js +1 -4
  29. package/es/components/Combobox/ComboboxNew/Combobox.js +6 -8
  30. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  31. package/es/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  32. package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  33. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +4 -7
  34. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  35. package/es/components/Combobox/ComboboxNew/utils/filterItems.js +2 -1
  36. package/es/components/Combobox/ComboboxNew/utils/filterItems.js.map +1 -1
  37. package/es/components/Popup/PopupContext.js +1 -1
  38. package/es/components/Popup/PopupContext.js.map +1 -1
  39. package/es/hooks/useOutsideClick.js +1 -4
  40. package/es/hooks/useOutsideClick.js.map +1 -1
  41. package/package.json +2 -2
  42. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +6 -8
  43. package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  44. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +4 -7
  45. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +2 -1
  46. package/styled-components/cjs/components/Popup/PopupContext.js +1 -1
  47. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +0 -2
  48. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +1 -9
  49. package/styled-components/cjs/hooks/useOutsideClick.js +1 -4
  50. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +6 -8
  51. package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  52. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +4 -7
  53. package/styled-components/es/components/Combobox/ComboboxNew/utils/filterItems.js +2 -1
  54. package/styled-components/es/components/Popup/PopupContext.js +1 -1
  55. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.js +0 -2
  56. package/styled-components/es/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.stories.tsx +1 -9
  57. package/styled-components/es/hooks/useOutsideClick.js +1 -4
  58. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  59. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  60. package/types/components/Combobox/ComboboxNew/utils/filterItems.d.ts.map +1 -1
  61. package/types/examples/plasma_b2c/components/Combobox/ComboboxNew/Combobox.config.d.ts.map +1 -1
  62. package/types/hooks/useOutsideClick.d.ts.map +1 -1
@@ -141,11 +141,11 @@ var comboboxRoot = function comboboxRoot(Root) {
141
141
  }
142
142
  }
143
143
  }, floatingPopoverRef);
144
- var onChange = function onChange(e) {
144
+ var onChange = function onChange(newValue) {
145
145
  if (outerOnChange) {
146
- outerOnChange(e);
146
+ outerOnChange(newValue);
147
147
  }
148
- setInternalValue(e);
148
+ setInternalValue(newValue);
149
149
  };
150
150
  var handleClickArrow = function handleClickArrow() {
151
151
  if (isCurrentListOpen) {
@@ -174,8 +174,8 @@ var comboboxRoot = function comboboxRoot(Root) {
174
174
  };
175
175
 
176
176
  // Обработчик чипов
177
- var handleChangeChips = function handleChangeChips(chipsAsLabel) {
178
- onChange(chipsAsLabel.map(function (chipLabel) {
177
+ var handleChipsChange = function handleChipsChange(chipLabels) {
178
+ onChange(chipLabels.map(function (chipLabel) {
179
179
  return labelToItemMap.get(chipLabel).value;
180
180
  }));
181
181
  };
@@ -386,7 +386,7 @@ var comboboxRoot = function comboboxRoot(Root) {
386
386
  }, multiple ? {
387
387
  enumerationType: 'chip',
388
388
  chips: getChips(),
389
- onChangeChips: handleChangeChips
389
+ onChangeChips: handleChipsChange
390
390
  } : {
391
391
  enumerationType: 'plain'
392
392
  }, rest, {
@@ -443,8 +443,6 @@ var comboboxConfig = {
443
443
  defaults: {
444
444
  view: 'default',
445
445
  size: 'm',
446
- // readOnly: false,
447
- // disabled: false,
448
446
  labelPlacement: 'outer'
449
447
  }
450
448
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, createContext, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n} from './utils';\nimport { Inner, StyledTextField } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState } from './Combobox.styles';\nimport type { ItemContext, ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed } from './ui/Inner/ui/Item/Item.types';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n isTargetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n readOnly = false,\n disabled = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n ...rest\n } = props;\n const [textValue, setTextValue] = useState('');\n const [internalValue, setInternalValue] = useState<string | Array<string>>(multiple ? [] : '');\n\n const value = 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 transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(items), [items]);\n\n const filteredItems = filterItems(\n transformedItems,\n textValue,\n valueToItemMap.get(value as string)?.label as string,\n filter,\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n // Проверяем, отличается ли значение инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n }\n }\n }, floatingPopoverRef);\n\n const onChange = (e: string | Array<string>) => {\n if (outerOnChange) {\n outerOnChange(e as any);\n }\n\n setInternalValue(e);\n };\n\n const handleClickArrow = () => {\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик чипов\n const handleChangeChips = (chipsAsLabel: any[]) => {\n onChange(chipsAsLabel.map((chipLabel) => labelToItemMap.get(chipLabel)!.value));\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleToggle = (opened: boolean) => {\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (multiple) {\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues);\n }\n\n // После выбора/снятия чекбокса скроллим к инпуту\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, 1);\n }\n };\n\n // Обработчик клика по айтему выпадающего списка\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 } else {\n if (e) {\n e.stopPropagation();\n }\n\n const checkedCopy = new Map(checked);\n\n const isCurrentChecked = checkedCopy.get(item.value);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isCurrentChecked) {\n checkedCopy.set(item.value, 'done');\n updateSingleAncestors(item, checkedCopy, 'dot');\n }\n\n setTextValue(isCurrentChecked ? '' : item.label);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n }\n };\n\n const getChips = (): string[] => {\n if (multiple) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${value.length}`];\n }\n\n return (value as []).map((value) => valueToItemMap.get(value)!.label);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleToggle,\n handlePressDown,\n multiselect: multiple,\n setTextValue,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n }, [value]);\n\n return (\n <Root size={size} view={view} labelPlacement={labelPlacement} disabled={disabled} readOnly={readOnly}>\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n valueToItemMap,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={(opened: boolean) => opened && handleToggle(true)}\n placement={placement}\n portal={portal}\n target={(referenceRef) => (\n <StyledTextField\n ref={inputForkRef}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={helperText}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChangeChips,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n ref={targetRef}\n >\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description=\"Ничего не найдено\"\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n // readOnly: false,\n // disabled: false,\n labelPlacement: 'outer',\n },\n};\n"],"names":["Context","createContext","comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_getItemByFocused","multiple","outerValue","value","outerOnChange","onChange","isTargetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listWidth","portal","renderItem","view","size","labelPlacement","_props$readOnly","readOnly","_props$disabled","disabled","filter","outerCloseAfterSelect","closeAfterSelect","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","valueToCheckedMap","valueToItemMap","labelToItemMap","filteredItems","filterItems","get","_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","undefined","targetRef","useOutsideClick","type","isEmpty","_valueToItemMap$get2","e","handleClickArrow","handleTextValueChange","target","handleChangeChips","chipsAsLabel","map","chipLabel","handleToggle","opened","handleCheckboxChange","item","checkedCopy","Map","set","updateDescendants","updateAncestors","newValues","forEach","key","push","setTimeout","current","scrollIntoView","behavior","inline","handleItemClick","stopPropagation","isCurrentChecked","_","updateSingleAncestors","getChips","length","concat","handlePressDown","_useKeyNavigation","useKeyNavigation","multiselect","onKeyDown","useLayoutEffect","Array","isArray","val","React","createElement","Provider","FloatingPopover","onToggle","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","role","getItemId","enumerationType","chips","onChangeChips","onEnterDisabled","Ul","id","StyledEmptyState","emptyStateWrapper","description","index","Inner","currentLevel","comboboxConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useMemo, createContext, useLayoutEffect, useRef } from 'react';\nimport type { ChangeEvent } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { isEmpty } from '../../../utils';\nimport { useOutsideClick } from '../../../hooks';\nimport { sizeToIconSize } from '../../Select/utils';\n\nimport { classes } from './Combobox.tokens';\nimport { FloatingPopover } from './FloatingPopover';\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n filterItems,\n getItemId,\n} from './utils';\nimport { Inner, StyledTextField } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { getPathMap, getTreeMaps } from './hooks/getPathMaps';\nimport { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState } from './Combobox.styles';\nimport type { ItemContext, ComboboxProps } from './Combobox.types';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport type { ItemOptionTransformed } from './ui/Inner/ui/Item/Item.types';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\n\n/**\n * Поле ввода с выпадающим списком и возможностью фильтрации и выбора элементов.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, Omit<ComboboxProps, 'items'>>) =>\n forwardRef<HTMLInputElement, ComboboxProps>((props, ref) => {\n const {\n multiple,\n value: outerValue,\n onChange: outerOnChange,\n isTargetAmount,\n items,\n placement = 'bottom-start',\n label,\n placeholder,\n helperText,\n contentLeft,\n textBefore,\n textAfter,\n variant = 'normal',\n listOverflow,\n listHeight,\n listWidth,\n portal,\n renderItem,\n view,\n size,\n labelPlacement,\n readOnly = false,\n disabled = false,\n filter,\n closeAfterSelect: outerCloseAfterSelect,\n ...rest\n } = props;\n const [textValue, setTextValue] = useState('');\n const [internalValue, setInternalValue] = useState<string | string[]>(multiple ? [] : '');\n\n const value = 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 transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [valueToCheckedMap, valueToItemMap, labelToItemMap] = useMemo(() => getTreeMaps(items), [items]);\n\n const filteredItems = filterItems(\n transformedItems,\n textValue,\n valueToItemMap.get(value as string)?.label as string,\n filter,\n );\n\n const [pathMap, focusedToValueMap] = useMemo(() => getPathMap(filteredItems), [filteredItems, textValue]);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n const withArrowInverse = isCurrentListOpen ? classes.arrowInverse : undefined;\n const closeAfterSelect = outerCloseAfterSelect ?? !multiple;\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n // Проверяем, отличается ли значение инпуте от выбранного value после закрытия дропдауна.\n // Если изменилось, то возвращаем label выбранного айтема.\n // Если нет выбранного элемента, то стираем значение инпута.\n if (textValue !== value) {\n if (isEmpty(value)) {\n setTextValue('');\n } else {\n setTextValue(valueToItemMap.get(value as string)?.label || '');\n }\n }\n }, floatingPopoverRef);\n\n const onChange = (newValue: string | Array<string>) => {\n if (outerOnChange) {\n outerOnChange(newValue as any);\n }\n\n setInternalValue(newValue);\n };\n\n const handleClickArrow = () => {\n if (isCurrentListOpen) {\n dispatchPath({ type: 'reset' });\n } else {\n dispatchPath({ type: 'opened_first_level' });\n }\n\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик изменения значения в инпуте\n const handleTextValueChange = (e: ChangeEvent<HTMLInputElement>) => {\n setTextValue(e.target.value);\n dispatchPath({ type: 'opened_first_level' });\n dispatchFocusedPath({ type: 'reset' });\n };\n\n // Обработчик чипов\n const handleChipsChange = (chipLabels: any[]) => {\n onChange(chipLabels.map((chipLabel) => labelToItemMap.get(chipLabel)!.value));\n };\n\n // Обработчик открытия/закрытия выпадающего списка\n const handleToggle = (opened: boolean) => {\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n };\n\n // Обработчик выбора чекбоксов (только при multiple)\n const handleCheckboxChange = (item: ItemOptionTransformed) => {\n if (multiple) {\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues);\n }\n\n // После выбора/снятия чекбокса скроллим к инпуту\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, 1);\n }\n };\n\n // Обработчик клика по айтему выпадающего списка\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 } else {\n if (e) {\n e.stopPropagation();\n }\n\n const checkedCopy = new Map(checked);\n\n const isCurrentChecked = checkedCopy.get(item.value);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isCurrentChecked) {\n checkedCopy.set(item.value, 'done');\n updateSingleAncestors(item, checkedCopy, 'dot');\n }\n\n setTextValue(isCurrentChecked ? '' : item.label);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n }\n };\n\n const getChips = (): string[] => {\n if (multiple) {\n if (value.length === 0) return [];\n\n if (isTargetAmount) {\n return [`Выбрано ${value.length}`];\n }\n\n return (value as []).map((value) => valueToItemMap.get(value)!.label);\n }\n\n return [];\n };\n\n const handlePressDown = (item: ItemOptionTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (multiple) {\n handleCheckboxChange(item);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleToggle,\n handlePressDown,\n multiselect: multiple,\n setTextValue,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value)) {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n }, [value]);\n\n return (\n <Root size={size} view={view} labelPlacement={labelPlacement} disabled={disabled} readOnly={readOnly}>\n <div>\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n valueToItemMap,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={(opened: boolean) => opened && handleToggle(true)}\n placement={placement}\n portal={portal}\n target={(referenceRef) => (\n <StyledTextField\n ref={inputForkRef}\n inputWrapperRef={referenceRef}\n value={textValue}\n onChange={handleTextValueChange}\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n placeholder={placeholder}\n contentLeft={contentLeft}\n contentRight={\n <IconArrowWrapper onClick={handleClickArrow}>\n <StyledArrow\n color=\"inherit\"\n size={sizeToIconSize(size)}\n className={withArrowInverse}\n />\n </IconArrowWrapper>\n }\n textBefore={textBefore}\n textAfter={textAfter}\n onKeyDown={onKeyDown}\n leftHelper={helperText}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={`${treeId}_tree_level_1`}\n aria-expanded={isCurrentListOpen}\n aria-activedescendant={\n activeDescendantItemValue ? getItemId(treeId, activeDescendantItemValue) : ''\n }\n {...(multiple\n ? {\n enumerationType: 'chip',\n chips: getChips(),\n onChangeChips: handleChipsChange,\n }\n : { enumerationType: 'plain' })}\n {...rest}\n onEnterDisabled // Пропс для отключения обработчика Enter внутри Textfield\n />\n )}\n >\n <Root\n size={size}\n view={view}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(multiple)}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n ref={targetRef}\n >\n {isEmpty(filteredItems) ? (\n <StyledEmptyState\n className={classes.emptyStateWrapper}\n size={size}\n description=\"Ничего не найдено\"\n />\n ) : (\n filteredItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </div>\n </Root>\n );\n });\n\nexport const comboboxConfig = {\n name: 'Select',\n tag: 'div',\n layout: comboboxRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n readOnly: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n },\n};\n"],"names":["Context","createContext","comboboxRoot","Root","forwardRef","props","ref","_valueToItemMap$get","_getItemByFocused","multiple","outerValue","value","outerOnChange","onChange","isTargetAmount","items","_props$placement","placement","label","placeholder","helperText","contentLeft","textBefore","textAfter","_props$variant","variant","listOverflow","listHeight","listWidth","portal","renderItem","view","size","labelPlacement","_props$readOnly","readOnly","_props$disabled","disabled","filter","outerCloseAfterSelect","closeAfterSelect","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","textValue","setTextValue","_useState3","_useState4","internalValue","setInternalValue","inputRef","useRef","floatingPopoverRef","inputForkRef","useForkRef","treeId","safeUseId","transformedItems","useMemo","initialItemsTransform","_useMemo","getTreeMaps","_useMemo2","valueToCheckedMap","valueToItemMap","labelToItemMap","filteredItems","filterItems","get","_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","undefined","targetRef","useOutsideClick","type","isEmpty","_valueToItemMap$get2","newValue","handleClickArrow","handleTextValueChange","e","target","handleChipsChange","chipLabels","map","chipLabel","handleToggle","opened","handleCheckboxChange","item","checkedCopy","Map","set","updateDescendants","updateAncestors","newValues","forEach","key","push","setTimeout","current","scrollIntoView","behavior","inline","handleItemClick","stopPropagation","isCurrentChecked","_","updateSingleAncestors","getChips","length","concat","handlePressDown","_useKeyNavigation","useKeyNavigation","multiselect","onKeyDown","useLayoutEffect","Array","isArray","val","React","createElement","Provider","FloatingPopover","onToggle","referenceRef","StyledTextField","_extends","inputWrapperRef","contentRight","IconArrowWrapper","onClick","StyledArrow","color","sizeToIconSize","className","leftHelper","role","getItemId","enumerationType","chips","onChangeChips","onEnterDisabled","Ul","id","StyledEmptyState","emptyStateWrapper","description","index","Inner","currentLevel","comboboxConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BaA,OAAO,gBAAGC,mBAAa,CAAc,EAAiB,EAAC;;AAEpE;AACA;AACA;IACaC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAA+D,EAAA;AAAA,EAAA,oBACxFC,gBAAU,CAAkC,UAACC,KAAK,EAAEC,GAAG,EAAK;IAAA,IAAAC,mBAAA,EAAAC,iBAAA,CAAA;AACxD,IAAA,IACIC,QAAQ,GA0BRJ,KAAK,CA1BLI,QAAQ;MACDC,UAAU,GAyBjBL,KAAK,CAzBLM,KAAK;MACKC,aAAa,GAwBvBP,KAAK,CAxBLQ,QAAQ;MACRC,cAAc,GAuBdT,KAAK,CAvBLS,cAAc;MACdC,KAAK,GAsBLV,KAAK,CAtBLU,KAAK;MAAAC,gBAAA,GAsBLX,KAAK,CArBLY,SAAS;AAATA,MAAAA,SAAS,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,gBAAA;MAC1BE,KAAK,GAoBLb,KAAK,CApBLa,KAAK;MACLC,WAAW,GAmBXd,KAAK,CAnBLc,WAAW;MACXC,UAAU,GAkBVf,KAAK,CAlBLe,UAAU;MACVC,WAAW,GAiBXhB,KAAK,CAjBLgB,WAAW;MACXC,UAAU,GAgBVjB,KAAK,CAhBLiB,UAAU;MACVC,SAAS,GAeTlB,KAAK,CAfLkB,SAAS;MAAAC,cAAA,GAeTnB,KAAK,CAdLoB,OAAO;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,cAAA;MAClBE,YAAY,GAaZrB,KAAK,CAbLqB,YAAY;MACZC,UAAU,GAYVtB,KAAK,CAZLsB,UAAU;MACVC,SAAS,GAWTvB,KAAK,CAXLuB,SAAS;MACTC,MAAM,GAUNxB,KAAK,CAVLwB,MAAM;MACNC,UAAU,GASVzB,KAAK,CATLyB,UAAU;MACVC,IAAI,GAQJ1B,KAAK,CARL0B,IAAI;MACJC,IAAI,GAOJ3B,KAAK,CAPL2B,IAAI;MACJC,cAAc,GAMd5B,KAAK,CANL4B,cAAc;MAAAC,eAAA,GAMd7B,KAAK,CALL8B,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;MAAAE,eAAA,GAKhB/B,KAAK,CAJLgC,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;MAChBE,MAAM,GAGNjC,KAAK,CAHLiC,MAAM;MACYC,qBAAqB,GAEvClC,KAAK,CAFLmC,gBAAgB;AACbC,MAAAA,IAAI,GAAAC,iDAAA,CACPrC,KAAK,EAAAsC,SAAA,CAAA,CAAA;AACT,IAAA,IAAAC,SAAA,GAAkCC,cAAQ,CAAC,EAAE,CAAC;MAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvCI,MAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;IAC9B,IAAAI,UAAA,GAA0CL,cAAQ,CAAoBpC,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;MAAA0C,UAAA,GAAAJ,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAlFE,MAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtC,IAAA,IAAMxC,KAAK,GAAGD,UAAU,IAAI0C,aAAa,CAAA;AAEzC,IAAA,IAAME,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,EAAEhD,GAAG,CAAC,CAAA;AAC9C,IAAA,IAAMqD,MAAM,GAAGC,oBAAS,EAAE,CAAA;IAE1B,IAAMC,gBAAgB,GAAGC,aAAO,CAAC,YAAA;AAAA,MAAA,OAAMC,2CAAqB,CAAChD,KAAK,IAAI,EAAE,CAAC,CAAA;KAAE,EAAA,CAACA,KAAK,CAAC,CAAC,CAAA;;AAEnF;IACA,IAAAiD,QAAA,GAA4DF,aAAO,CAAC,YAAA;QAAA,OAAMG,uBAAW,CAAClD,KAAK,CAAC,CAAA;OAAE,EAAA,CAACA,KAAK,CAAC,CAAC;MAAAmD,SAAA,GAAAnB,uCAAA,CAAAiB,QAAA,EAAA,CAAA,CAAA;AAA/FG,MAAAA,iBAAiB,GAAAD,SAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,cAAc,GAAAF,SAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,cAAc,GAAAH,SAAA,CAAA,CAAA,CAAA,CAAA;IAExD,IAAMI,aAAa,GAAGC,uBAAW,CAC7BV,gBAAgB,EAChBb,SAAS,EAAA,CAAAzC,mBAAA,GACT6D,cAAc,CAACI,GAAG,CAAC7D,KAAe,CAAC,MAAA,IAAA,IAAAJ,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnCA,mBAAA,CAAqCW,KAAK,EAC1CoB,MACJ,CAAC,CAAA;IAED,IAAAmC,SAAA,GAAqCX,aAAO,CAAC,YAAA;QAAA,OAAMY,sBAAU,CAACJ,aAAa,CAAC,CAAA;AAAA,OAAA,EAAE,CAACA,aAAa,EAAEtB,SAAS,CAAC,CAAC;MAAA2B,SAAA,GAAA5B,uCAAA,CAAA0B,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,GAAAlC,uCAAA,CAAA+B,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,GAAAvC,uCAAA,CAAAqC,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,GAA8B5C,cAAQ,CAACsB,iBAAiB,CAAC;MAAAuB,UAAA,GAAA3C,uCAAA,CAAA0C,UAAA,EAAA,CAAA,CAAA;AAAlDE,MAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAE1B,IAAMG,iBAAiB,GAAGC,OAAO,CAACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,IAAA,IAAMa,yBAAyB,GAAG,CAAA,CAAAvF,iBAAA,GAAAwF,sCAAgB,CAACT,WAAW,EAAEV,iBAAiB,CAAC,cAAArE,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhDA,iBAAA,CAAkDG,KAAK,KAAI,EAAE,CAAA;IAC/F,IAAMsF,gBAAgB,GAAGJ,iBAAiB,GAAGK,uBAAO,CAACC,YAAY,GAAGC,SAAS,CAAA;IAC7E,IAAM5D,gBAAgB,GAAGD,qBAAqB,KAAA,IAAA,IAArBA,qBAAqB,KAArBA,KAAAA,CAAAA,GAAAA,qBAAqB,GAAI,CAAC9B,QAAQ,CAAA;;AAE3D;AACA,IAAA,IAAM4F,SAAS,GAAGC,+BAAe,CAAmB,YAAM;MACtD,IAAI,CAACT,iBAAiB,EAAE;AACpB,QAAA,OAAA;AACJ,OAAA;AAEAV,MAAAA,YAAY,CAAC;AAAEoB,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;AAC/Bf,MAAAA,mBAAmB,CAAC;AAAEe,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;;AAEtC;AACA;AACA;MACA,IAAIvD,SAAS,KAAKrC,KAAK,EAAE;AACrB,QAAA,IAAI6F,eAAO,CAAC7F,KAAK,CAAC,EAAE;UAChBsC,YAAY,CAAC,EAAE,CAAC,CAAA;AACpB,SAAC,MAAM;AAAA,UAAA,IAAAwD,oBAAA,CAAA;AACHxD,UAAAA,YAAY,CAAC,CAAAwD,CAAAA,oBAAA,GAAArC,cAAc,CAACI,GAAG,CAAC7D,KAAe,CAAC,MAAA,IAAA,IAAA8F,oBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqCvF,KAAK,KAAI,EAAE,CAAC,CAAA;AAClE,SAAA;AACJ,OAAA;KACH,EAAEsC,kBAAkB,CAAC,CAAA;AAEtB,IAAA,IAAM3C,QAAQ,GAAG,SAAXA,QAAQA,CAAI6F,QAAgC,EAAK;AACnD,MAAA,IAAI9F,aAAa,EAAE;QACfA,aAAa,CAAC8F,QAAe,CAAC,CAAA;AAClC,OAAA;MAEArD,gBAAgB,CAACqD,QAAQ,CAAC,CAAA;KAC7B,CAAA;AAED,IAAA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAC3B,MAAA,IAAId,iBAAiB,EAAE;AACnBV,QAAAA,YAAY,CAAC;AAAEoB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAC,MAAM;AACHpB,QAAAA,YAAY,CAAC;AAAEoB,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAA;AAEAf,MAAAA,mBAAmB,CAAC;AAAEe,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;KACzC,CAAA;;AAED;AACA,IAAA,IAAMK,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,CAAgC,EAAK;AAChE5D,MAAAA,YAAY,CAAC4D,CAAC,CAACC,MAAM,CAACnG,KAAK,CAAC,CAAA;AAC5BwE,MAAAA,YAAY,CAAC;AAAEoB,QAAAA,IAAI,EAAE,oBAAA;AAAqB,OAAC,CAAC,CAAA;AAC5Cf,MAAAA,mBAAmB,CAAC;AAAEe,QAAAA,IAAI,EAAE,OAAA;AAAQ,OAAC,CAAC,CAAA;KACzC,CAAA;;AAED;AACA,IAAA,IAAMQ,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,UAAiB,EAAK;AAC7CnG,MAAAA,QAAQ,CAACmG,UAAU,CAACC,GAAG,CAAC,UAACC,SAAS,EAAA;AAAA,QAAA,OAAK7C,cAAc,CAACG,GAAG,CAAC0C,SAAS,CAAC,CAAEvG,KAAK,CAAA;AAAA,OAAA,CAAC,CAAC,CAAA;KAChF,CAAA;;AAED;AACA,IAAA,IAAMwG,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAAe,EAAK;AACtC,MAAA,IAAIA,MAAM,EAAE;AACRjC,QAAAA,YAAY,CAAC;AAAEoB,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAC,MAAM;AACHf,QAAAA,mBAAmB,CAAC;AAAEe,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACtCpB,QAAAA,YAAY,CAAC;AAAEoB,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAA;KACH,CAAA;;AAED;AACA,IAAA,IAAMc,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,IAA2B,EAAK;AAC1D,MAAA,IAAI7G,QAAQ,EAAE;AACV,QAAA,IAAM8G,WAAW,GAAG,IAAIC,GAAG,CAAC7B,OAAO,CAAC,CAAA;QAEpC,IAAI,CAAC4B,WAAW,CAAC/C,GAAG,CAAC8C,IAAI,CAAC3G,KAAK,CAAC,EAAE;UAC9B4G,WAAW,CAACE,GAAG,CAACH,IAAI,CAAC3G,KAAK,EAAE,IAAI,CAAC,CAAA;AACjC+G,UAAAA,mCAAiB,CAACJ,IAAI,EAAEC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC9C,SAAC,MAAM;UACHA,WAAW,CAACE,GAAG,CAACH,IAAI,CAAC3G,KAAK,EAAE,KAAK,CAAC,CAAA;AAClC+G,UAAAA,mCAAiB,CAACJ,IAAI,EAAEC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC/C,SAAA;AAEAI,QAAAA,+BAAe,CAACL,IAAI,EAAEC,WAAW,CAAC,CAAA;QAElC,IAAMK,SAAwB,GAAG,EAAE,CAAA;AAEnCxD,QAAAA,cAAc,CAACyD,OAAO,CAAC,UAACP,IAAI,EAAEQ,GAAG,EAAK;AAClC,UAAA,IAAIP,WAAW,CAAC/C,GAAG,CAACsD,GAAG,CAAC,EAAE;AACtBF,YAAAA,SAAS,CAACG,IAAI,CAACT,IAAI,CAAC3G,KAAK,CAAC,CAAA;AAC9B,WAAA;AACJ,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI6B,gBAAgB,EAAE;AAClB2C,UAAAA,YAAY,CAAC;AAAEoB,YAAAA,IAAI,EAAE,OAAA;AAAQ,WAAC,CAAC,CAAA;AAC/Bf,UAAAA,mBAAmB,CAAC;AAAEe,YAAAA,IAAI,EAAE,OAAA;AAAQ,WAAC,CAAC,CAAA;AAC1C,SAAA;AAEA,QAAA,IAAI1F,QAAQ,EAAE;UACVA,QAAQ,CAAC+G,SAAS,CAAC,CAAA;AACvB,SAAA;;AAEA;AACAI,QAAAA,UAAU,CAAC,YAAM;UACb,IAAI1E,QAAQ,CAAC2E,OAAO,EAAE;AAClB3E,YAAAA,QAAQ,CAAC2E,OAAO,CAACC,cAAc,CAAC;AAC5BC,cAAAA,QAAQ,EAAE,QAAQ;AAClBC,cAAAA,MAAM,EAAE,OAAA;AACZ,aAAC,CAAC,CAAA;AACN,WAAA;SACH,EAAE,CAAC,CAAC,CAAA;AACT,OAAA;KACH,CAAA;;AAED;IACA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIf,IAA2B,EAAET,CAAiC,EAAK;MACxF,IAAI,CAACL,eAAO,CAACc,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEvG,KAAK,CAAC,EAAE;AACvB,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIN,QAAQ,EAAE;QACV4G,oBAAoB,CAACC,IAAI,CAAC,CAAA;AAC9B,OAAC,MAAM;AACH,QAAA,IAAIT,CAAC,EAAE;UACHA,CAAC,CAACyB,eAAe,EAAE,CAAA;AACvB,SAAA;AAEA,QAAA,IAAMf,WAAW,GAAG,IAAIC,GAAG,CAAC7B,OAAO,CAAC,CAAA;QAEpC,IAAM4C,gBAAgB,GAAGhB,WAAW,CAAC/C,GAAG,CAAC8C,IAAI,CAAC3G,KAAK,CAAC,CAAA;AAEpD4G,QAAAA,WAAW,CAACM,OAAO,CAAC,UAACW,CAAC,EAAEV,GAAG,EAAK;AAC5BP,UAAAA,WAAW,CAACE,GAAG,CAACK,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/B,SAAC,CAAC,CAAA;QAEF,IAAI,CAACS,gBAAgB,EAAE;UACnBhB,WAAW,CAACE,GAAG,CAACH,IAAI,CAAC3G,KAAK,EAAE,MAAM,CAAC,CAAA;AACnC8H,UAAAA,2CAAqB,CAACnB,IAAI,EAAEC,WAAW,EAAE,KAAK,CAAC,CAAA;AACnD,SAAA;QAEAtE,YAAY,CAACsF,gBAAgB,GAAG,EAAE,GAAGjB,IAAI,CAACpG,KAAK,CAAC,CAAA;AAEhD,QAAA,IAAIsB,gBAAgB,EAAE;AAClB2C,UAAAA,YAAY,CAAC;AAAEoB,YAAAA,IAAI,EAAE,OAAA;AAAQ,WAAC,CAAC,CAAA;AAC/Bf,UAAAA,mBAAmB,CAAC;AAAEe,YAAAA,IAAI,EAAE,OAAA;AAAQ,WAAC,CAAC,CAAA;AAC1C,SAAA;AAEA,QAAA,IAAI1F,QAAQ,EAAE;UACVA,QAAQ,CAAC0H,gBAAgB,GAAG,EAAE,GAAGjB,IAAI,CAAC3G,KAAK,CAAC,CAAA;AAChD,SAAA;AACJ,OAAA;KACH,CAAA;AAED,IAAA,IAAM+H,QAAQ,GAAG,SAAXA,QAAQA,GAAmB;AAC7B,MAAA,IAAIjI,QAAQ,EAAE;AACV,QAAA,IAAIE,KAAK,CAACgI,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAEjC,QAAA,IAAI7H,cAAc,EAAE;AAChB,UAAA,OAAO,+CAAA8H,MAAA,CAAYjI,KAAK,CAACgI,MAAM,CAAG,CAAA,CAAA;AACtC,SAAA;AAEA,QAAA,OAAQhI,KAAK,CAAQsG,GAAG,CAAC,UAACtG,KAAK,EAAA;AAAA,UAAA,OAAKyD,cAAc,CAACI,GAAG,CAAC7D,KAAK,CAAC,CAAEO,KAAK,CAAA;SAAC,CAAA,CAAA;AACzE,OAAA;AAEA,MAAA,OAAO,EAAE,CAAA;KACZ,CAAA;IAED,IAAM2H,eAAe,GAAG,SAAlBA,eAAeA,CAAIvB,IAA2B,EAAET,CAAiC,EAAK;AACxF,MAAA,IAAIL,eAAO,CAACc,IAAI,CAACvG,KAAK,CAAC,EAAE;AACrBsH,QAAAA,eAAe,CAACf,IAAI,EAAET,CAAC,CAAC,CAAA;OAC3B,MAAM,IAAIpG,QAAQ,EAAE;QACjB4G,oBAAoB,CAACC,IAAI,CAAC,CAAA;AAC9B,OAAA;KACH,CAAA;IAED,IAAAwB,iBAAA,GAAsBC,sCAAgB,CAAC;AACnCxD,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;AACjBsC,QAAAA,YAAY,EAAZA,YAAY;AACZ0B,QAAAA,eAAe,EAAfA,eAAe;AACfG,QAAAA,WAAW,EAAEvI,QAAQ;AACrBwC,QAAAA,YAAY,EAAZA,YAAAA;AACJ,OAAC,CAAC;MAXMgG,SAAS,GAAAH,iBAAA,CAATG,SAAS,CAAA;;AAajB;AACA;AACAC,IAAAA,qBAAe,CAAC,YAAM;AAClB,MAAA,IAAM3B,WAAW,GAAG,IAAIC,GAAG,CAAC7B,OAAO,CAAC,CAAA;AAEpC4B,MAAAA,WAAW,CAACM,OAAO,CAAC,UAACW,CAAC,EAAEV,GAAG,EAAK;AAC5BP,QAAAA,WAAW,CAACE,GAAG,CAACK,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/B,OAAC,CAAC,CAAA;AAEF,MAAA,IAAI,CAACtB,eAAO,CAAC7F,KAAK,CAAC,EAAE;AACjB,QAAA,IAAIwI,KAAK,CAACC,OAAO,CAACzI,KAAK,CAAC,EAAE;AACtBA,UAAAA,KAAK,CAACkH,OAAO,CAAC,UAACwB,GAAG,EAAK;AACnB9B,YAAAA,WAAW,CAACE,GAAG,CAAC4B,GAAG,EAAE,IAAI,CAAC,CAAA;YAC1B3B,mCAAiB,CAACtD,cAAc,CAACI,GAAG,CAAC6E,GAAG,CAAC,EAAG9B,WAAW,EAAE,IAAI,CAAC,CAAA;YAC9DI,+BAAe,CAACvD,cAAc,CAACI,GAAG,CAAC6E,GAAG,CAAC,EAAG9B,WAAW,CAAC,CAAA;AAC1D,WAAC,CAAC,CAAA;AACN,SAAC,MAAM;AACHA,UAAAA,WAAW,CAACE,GAAG,CAAC9G,KAAK,EAAE,MAAM,CAAC,CAAA;UAC9B8H,2CAAqB,CAACrE,cAAc,CAACI,GAAG,CAAC7D,KAAK,CAAC,EAAG4G,WAAW,EAAE,KAAK,CAAC,CAAA;AACzE,SAAA;AACJ,OAAA;MAEA3B,UAAU,CAAC2B,WAAW,CAAC,CAAA;AAC3B,KAAC,EAAE,CAAC5G,KAAK,CAAC,CAAC,CAAA;AAEX,IAAA,oBACI2I,KAAA,CAAAC,aAAA,CAACpJ,IAAI,EAAA;AAAC6B,MAAAA,IAAI,EAAEA,IAAK;AAACD,MAAAA,IAAI,EAAEA,IAAK;AAACE,MAAAA,cAAc,EAAEA,cAAe;AAACI,MAAAA,QAAQ,EAAEA,QAAS;AAACF,MAAAA,QAAQ,EAAEA,QAAAA;KACxFmH,eAAAA,KAAA,CAAAC,aAAA,CACID,KAAAA,EAAAA,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACvJ,OAAO,CAACwJ,QAAQ,EAAA;AACb7I,MAAAA,KAAK,EAAE;AACH4E,QAAAA,WAAW,EAAXA,WAAW;AACXI,QAAAA,OAAO,EAAPA,OAAO;AACPlF,QAAAA,QAAQ,EAARA,QAAQ;AACRuB,QAAAA,IAAI,EAAJA,IAAI;AACJqF,QAAAA,oBAAoB,EAApBA,oBAAoB;AACpBgB,QAAAA,eAAe,EAAfA,eAAe;AACf5G,QAAAA,OAAO,EAAPA,OAAO;AACPK,QAAAA,UAAU,EAAVA,UAAU;AACVsC,QAAAA,cAAc,EAAdA,cAAc;AACdT,QAAAA,MAAM,EAANA,MAAAA;AACJ,OAAA;AAAE,KAAA,eAEF2F,KAAA,CAAAC,aAAA,CAACE,+BAAe,EAAA;AACZnJ,MAAAA,GAAG,EAAEkD,kBAAmB;AACxB4D,MAAAA,MAAM,EAAEvB,iBAAkB;MAC1B6D,QAAQ,EAAE,SAAAA,QAAAA,CAACtC,MAAe,EAAA;AAAA,QAAA,OAAKA,MAAM,IAAID,YAAY,CAAC,IAAI,CAAC,CAAA;OAAC;AAC5DlG,MAAAA,SAAS,EAAEA,SAAU;AACrBY,MAAAA,MAAM,EAAEA,MAAO;MACfiF,MAAM,EAAE,SAAAA,MAAAA,CAAC6C,YAAY,EAAA;AAAA,QAAA,oBACjBL,KAAA,CAAAC,aAAA,CAACK,6BAAe,EAAAC,iCAAA,CAAA;AACZvJ,UAAAA,GAAG,EAAEmD,YAAa;AAClBqG,UAAAA,eAAe,EAAEH,YAAa;AAC9BhJ,UAAAA,KAAK,EAAEqC,SAAU;AACjBnC,UAAAA,QAAQ,EAAE+F,qBAAsB;AAChC5E,UAAAA,IAAI,EAAEA,IAAK;AACXD,UAAAA,IAAI,EAAEA,IAAK;AACXE,UAAAA,cAAc,EAAEA,cAAe;AAC/BI,UAAAA,QAAQ,EAAEA,QAAS;AACnBF,UAAAA,QAAQ,EAAEA,QAAS;AACnBjB,UAAAA,KAAK,EAAEA,KAAM;AACbC,UAAAA,WAAW,EAAEA,WAAY;AACzBE,UAAAA,WAAW,EAAEA,WAAY;AACzB0I,UAAAA,YAAY,eACRT,KAAA,CAAAC,aAAA,CAACS,gCAAgB,EAAA;AAACC,YAAAA,OAAO,EAAEtD,gBAAAA;AAAiB,WAAA,eACxC2C,KAAA,CAAAC,aAAA,CAACW,2BAAW,EAAA;AACRC,YAAAA,KAAK,EAAC,SAAS;AACfnI,YAAAA,IAAI,EAAEoI,6BAAc,CAACpI,IAAI,CAAE;AAC3BqI,YAAAA,SAAS,EAAEpE,gBAAAA;AAAiB,WAC/B,CACa,CACrB;AACD3E,UAAAA,UAAU,EAAEA,UAAW;AACvBC,UAAAA,SAAS,EAAEA,SAAU;AACrB0H,UAAAA,SAAS,EAAEA,SAAU;AACrBqB,UAAAA,UAAU,EAAElJ,UAAW;AACvBmJ,UAAAA,IAAI,EAAC,UAAU;AACf,UAAA,mBAAA,EAAkB,MAAM;UACxB,eAAA3B,EAAAA,EAAAA,CAAAA,MAAA,CAAkBjF,MAAM,EAAgB,eAAA,CAAA;AACxC,UAAA,eAAA,EAAekC,iBAAkB;UACjC,uBACIE,EAAAA,yBAAyB,GAAGyE,mBAAS,CAAC7G,MAAM,EAAEoC,yBAAyB,CAAC,GAAG,EAAA;AAC9E,SAAA,EACItF,QAAQ,GACP;AACIgK,UAAAA,eAAe,EAAE,MAAM;UACvBC,KAAK,EAAEhC,QAAQ,EAAE;AACjBiC,UAAAA,aAAa,EAAE5D,iBAAAA;AACnB,SAAC,GACD;AAAE0D,UAAAA,eAAe,EAAE,OAAA;AAAQ,SAAC,EAC9BhI,IAAI,EAAA;AACRmI,UAAAA,eAAe,EAAC,IAAA;AAAA,SAAA,CACnB,CAAC,CAAA;AAAA,OAAA;AACJ,KAAA,eAEFtB,KAAA,CAAAC,aAAA,CAACpJ,IAAI,EAAA;AACD6B,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,cAAc,EAAEA,cAAe;AAC/BI,MAAAA,QAAQ,EAAEA,QAAS;AACnBF,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,eAEnBmH,KAAA,CAAAC,aAAA,CAACsB,kBAAE,EAAA;AACCN,MAAAA,IAAI,EAAC,MAAM;AACXO,MAAAA,EAAE,EAAAlC,EAAAA,CAAAA,MAAA,CAAKjF,MAAM,EAAgB,eAAA,CAAA;MAC7B,sBAAsBmC,EAAAA,OAAO,CAACrF,QAAQ,CAAE;AACxCkB,MAAAA,UAAU,EAAEA,UAAW;AACvBD,MAAAA,YAAY,EAAEA,YAAa;AAC3BE,MAAAA,SAAS,EAAEA,SAAU;AACrBtB,MAAAA,GAAG,EAAE+F,SAAAA;KAEJG,EAAAA,eAAO,CAAClC,aAAa,CAAC,gBACnBgF,KAAA,CAAAC,aAAA,CAACwB,gCAAgB,EAAA;MACbV,SAAS,EAAEnE,uBAAO,CAAC8E,iBAAkB;AACrChJ,MAAAA,IAAI,EAAEA,IAAK;AACXiJ,MAAAA,WAAW,EAAC,8FAAA;KACf,CAAC,GAEF3G,aAAa,CAAC2C,GAAG,CAAC,UAACK,IAAI,EAAE4D,KAAK,EAAA;AAAA,MAAA,oBAC1B5B,KAAA,CAAAC,aAAA,CAAC4B,WAAK,EAAA;AACFrD,QAAAA,GAAG,EAAAc,EAAAA,CAAAA,MAAA,CAAKsC,KAAK,EAAK,IAAA,CAAA;AAClB5D,QAAAA,IAAI,EAAEA,IAAK;AACX8D,QAAAA,YAAY,EAAE,CAAE;AAChBlG,QAAAA,IAAI,EAAEA,IAAK;AACXC,QAAAA,YAAY,EAAEA,YAAa;AAC3B+F,QAAAA,KAAK,EAAEA,KAAM;AACbtJ,QAAAA,SAAS,EAAEA,SAAAA;AAAU,OACxB,CAAC,CAAA;AAAA,KACL,CAEL,CACF,CACO,CACH,CACjB,CACH,CAAC,CAAA;AAEf,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMyJ,cAAc,GAAG;AAC1BC,EAAAA,IAAI,EAAE,QAAQ;AACdC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEtL,YAAY;AACpBuL,EAAAA,IAAI,EAAJA,oBAAI;AACJC,EAAAA,UAAU,EAAE;AACR3J,IAAAA,IAAI,EAAE;AACF4J,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACD5J,IAAAA,IAAI,EAAE;AACF2J,MAAAA,GAAG,EAAEE,WAAAA;KACR;AACD1J,IAAAA,QAAQ,EAAE;AACNwJ,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACN/J,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAG;AACTC,IAAAA,cAAc,EAAE,OAAA;AACpB,GAAA;AACJ;;;;;;"}
@@ -44,12 +44,12 @@ var FloatingPopover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
44
44
  // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.
45
45
  // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),
46
46
  // но выпадающий список должен позиционироваться непосредственно возле самого инпута.
47
- var isTargetFunction = typeof target === 'function';
47
+ var isTargetAsFunction = typeof target === 'function';
48
48
  return /*#__PURE__*/React.createElement("div", {
49
49
  ref: ref,
50
50
  id: wrappedId
51
51
  }, /*#__PURE__*/React.createElement("div", {
52
- ref: isTargetFunction ? undefined : refs.setReference,
52
+ ref: isTargetAsFunction ? undefined : refs.setReference,
53
53
  onClick: handleClick
54
54
  }, typeof target === 'function' ? target(refs.setReference) : target), opened &&
55
55
  /*#__PURE__*/
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingPopover.js","sources":["../../../../src/components/Combobox/ComboboxNew/FloatingPopover.tsx"],"sourcesContent":["import { flip, shift, size, useFloating, FloatingPortal, offset as offsetMiddleware } from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { FloatingPopoverProps } from './Combobox.types';\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, offset = 0 }, ref) => {\n const { refs, floatingStyles } = useFloating({\n placement,\n open: opened,\n middleware: [\n offsetMiddleware(offset),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId}>\n <div ref={isTargetFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal root={portal} id={portal ? undefined : wrappedId}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: 1 }}>\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\nexport { FloatingPopover };\n"],"names":["FloatingPopover","forwardRef","_ref","ref","target","children","opened","onToggle","placement","portal","_ref$offset","offset","_useFloating","useFloating","open","middleware","offsetMiddleware","flip","fallbackAxisSideDirection","shift","size","apply","_ref2","rects","elements","Object","assign","floating","style","width","concat","reference","refs","floatingStyles","wrappedId","safeUseId","handleClick","isTargetFunction","React","createElement","id","undefined","setReference","onClick","FloatingPortal","root","setFloating","_objectSpread","zIndex"],"mappings":";;;;;;;;;AAMMA,IAAAA,eAAe,gBAAGC,gBAAU,CAC9B,UAAAC,IAAA,EAAwEC,GAAG,EAAK;AAAA,EAAA,IAA7EC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAEC,SAAS,GAAAN,IAAA,CAATM,SAAS;IAAEC,MAAM,GAAAP,IAAA,CAANO,MAAM;IAAAC,WAAA,GAAAR,IAAA,CAAES,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,WAAA,CAAA;EAChE,IAAAE,YAAA,GAAiCC,iBAAW,CAAC;AACzCL,MAAAA,SAAS,EAATA,SAAS;AACTM,MAAAA,IAAI,EAAER,MAAM;MACZS,UAAU,EAAE,CACRC,YAAgB,CAACL,MAAM,CAAC,EACxBM,UAAI,CAAC;AAAEC,QAAAA,yBAAyB,EAAE,KAAA;AAAM,OAAC,CAAC,EAC1CC,WAAK,EAAE,EACPC,UAAI,CAAC;QACDC,KAAK,EAAA,SAAAA,KAAAC,CAAAA,KAAA,EAAsB;AAAA,UAAA,IAAnBC,KAAK,GAAAD,KAAA,CAALC,KAAK;YAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ,CAAA;UACnBC,MAAM,CAACC,MAAM,CAACF,QAAQ,CAACG,QAAQ,CAACC,KAAK,EAAE;AACnCC,YAAAA,KAAK,KAAAC,MAAA,CAAKP,KAAK,CAACQ,SAAS,CAACF,KAAK,EAAA,IAAA,CAAA;AACnC,WAAC,CAAC,CAAA;AACN,SAAA;AACJ,OAAC,CAAC,CAAA;AAEV,KAAC,CAAC;IAfMG,IAAI,GAAApB,YAAA,CAAJoB,IAAI;IAAEC,cAAc,GAAArB,YAAA,CAAdqB,cAAc,CAAA;AAiB5B,EAAA,IAAMC,SAAS,GAAGC,oBAAS,EAAE,CAAA;AAE7B,EAAA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,GAAS;AACtB,IAAA,IAAI7B,QAAQ,EAAE;MACVA,QAAQ,CAAC,CAACD,MAAM,CAAC,CAAA;AACrB,KAAA;GACH,CAAA;;AAED;AACA;AACA;AACA;AACA,EAAA,IAAM+B,gBAAgB,GAAG,OAAOjC,MAAM,KAAK,UAAU,CAAA;EAErD,oBACIkC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKpC,IAAAA,GAAG,EAAEA,GAAI;AAACqC,IAAAA,EAAE,EAAEN,SAAAA;GACfI,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKpC,IAAAA,GAAG,EAAEkC,gBAAgB,GAAGI,SAAS,GAAGT,IAAI,CAACU,YAAa;AAACC,IAAAA,OAAO,EAAEP,WAAAA;AAAY,GAAA,EAC5E,OAAOhC,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAC4B,IAAI,CAACU,YAAmB,CAAC,GAAGtC,MAClE,CAAC,EAELE,MAAM;AAAA;AACH;AACA;EACAgC,KAAA,CAAAC,aAAA,CAACK,oBAAc,EAAA;AAACC,IAAAA,IAAI,EAAEpC,MAAO;AAAC+B,IAAAA,EAAE,EAAE/B,MAAM,GAAGgC,SAAS,GAAGP,SAAAA;GACnDI,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKpC,GAAG,EAAE6B,IAAI,CAACc,WAAY;AAAClB,IAAAA,KAAK,EAAAmB,uCAAA,CAAAA,uCAAA,KAAOd,cAAc,CAAA,EAAA,EAAA,EAAA;AAAEe,MAAAA,MAAM,EAAE,CAAA;AAAC,KAAA,CAAA;GAC5D3C,EAAAA,QACA,CACO,CAEnB,CAAC,CAAA;AAEd,CACJ;;;;"}
1
+ {"version":3,"file":"FloatingPopover.js","sources":["../../../../src/components/Combobox/ComboboxNew/FloatingPopover.tsx"],"sourcesContent":["import { flip, shift, size, useFloating, FloatingPortal, offset as offsetMiddleware } from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { FloatingPopoverProps } from './Combobox.types';\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, offset = 0 }, ref) => {\n const { refs, floatingStyles } = useFloating({\n placement,\n open: opened,\n middleware: [\n offsetMiddleware(offset),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal root={portal} id={portal ? undefined : wrappedId}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: 1 }}>\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\nexport { FloatingPopover };\n"],"names":["FloatingPopover","forwardRef","_ref","ref","target","children","opened","onToggle","placement","portal","_ref$offset","offset","_useFloating","useFloating","open","middleware","offsetMiddleware","flip","fallbackAxisSideDirection","shift","size","apply","_ref2","rects","elements","Object","assign","floating","style","width","concat","reference","refs","floatingStyles","wrappedId","safeUseId","handleClick","isTargetAsFunction","React","createElement","id","undefined","setReference","onClick","FloatingPortal","root","setFloating","_objectSpread","zIndex"],"mappings":";;;;;;;;;AAMMA,IAAAA,eAAe,gBAAGC,gBAAU,CAC9B,UAAAC,IAAA,EAAwEC,GAAG,EAAK;AAAA,EAAA,IAA7EC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAEC,SAAS,GAAAN,IAAA,CAATM,SAAS;IAAEC,MAAM,GAAAP,IAAA,CAANO,MAAM;IAAAC,WAAA,GAAAR,IAAA,CAAES,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,WAAA,CAAA;EAChE,IAAAE,YAAA,GAAiCC,iBAAW,CAAC;AACzCL,MAAAA,SAAS,EAATA,SAAS;AACTM,MAAAA,IAAI,EAAER,MAAM;MACZS,UAAU,EAAE,CACRC,YAAgB,CAACL,MAAM,CAAC,EACxBM,UAAI,CAAC;AAAEC,QAAAA,yBAAyB,EAAE,KAAA;AAAM,OAAC,CAAC,EAC1CC,WAAK,EAAE,EACPC,UAAI,CAAC;QACDC,KAAK,EAAA,SAAAA,KAAAC,CAAAA,KAAA,EAAsB;AAAA,UAAA,IAAnBC,KAAK,GAAAD,KAAA,CAALC,KAAK;YAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ,CAAA;UACnBC,MAAM,CAACC,MAAM,CAACF,QAAQ,CAACG,QAAQ,CAACC,KAAK,EAAE;AACnCC,YAAAA,KAAK,KAAAC,MAAA,CAAKP,KAAK,CAACQ,SAAS,CAACF,KAAK,EAAA,IAAA,CAAA;AACnC,WAAC,CAAC,CAAA;AACN,SAAA;AACJ,OAAC,CAAC,CAAA;AAEV,KAAC,CAAC;IAfMG,IAAI,GAAApB,YAAA,CAAJoB,IAAI;IAAEC,cAAc,GAAArB,YAAA,CAAdqB,cAAc,CAAA;AAiB5B,EAAA,IAAMC,SAAS,GAAGC,oBAAS,EAAE,CAAA;AAE7B,EAAA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,GAAS;AACtB,IAAA,IAAI7B,QAAQ,EAAE;MACVA,QAAQ,CAAC,CAACD,MAAM,CAAC,CAAA;AACrB,KAAA;GACH,CAAA;;AAED;AACA;AACA;AACA;AACA,EAAA,IAAM+B,kBAAkB,GAAG,OAAOjC,MAAM,KAAK,UAAU,CAAA;EAEvD,oBACIkC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKpC,IAAAA,GAAG,EAAEA,GAAI;AAACqC,IAAAA,EAAE,EAAEN,SAAAA;GACfI,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKpC,IAAAA,GAAG,EAAEkC,kBAAkB,GAAGI,SAAS,GAAGT,IAAI,CAACU,YAAa;AAACC,IAAAA,OAAO,EAAEP,WAAAA;AAAY,GAAA,EAC9E,OAAOhC,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAC4B,IAAI,CAACU,YAAmB,CAAC,GAAGtC,MAClE,CAAC,EAELE,MAAM;AAAA;AACH;AACA;EACAgC,KAAA,CAAAC,aAAA,CAACK,oBAAc,EAAA;AAACC,IAAAA,IAAI,EAAEpC,MAAO;AAAC+B,IAAAA,EAAE,EAAE/B,MAAM,GAAGgC,SAAS,GAAGP,SAAAA;GACnDI,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKpC,GAAG,EAAE6B,IAAI,CAACc,WAAY;AAAClB,IAAAA,KAAK,EAAAmB,uCAAA,CAAAA,uCAAA,KAAOd,cAAc,CAAA,EAAA,EAAA,EAAA;AAAEe,MAAAA,MAAM,EAAE,CAAA;AAAC,KAAA,CAAA;GAC5D3C,EAAAA,QACA,CACO,CAEnB,CAAC,CAAA;AAEd,CACJ;;;;"}
@@ -42,8 +42,7 @@ var Item = function Item(_ref) {
42
42
  renderItem = _useContext.renderItem,
43
43
  valueToItemMap = _useContext.valueToItemMap,
44
44
  treeId = _useContext.treeId;
45
- var itemDisabled = Boolean(disabled);
46
- var isDisabledClassName = itemDisabled ? Combobox_tokens.classes.dropdownItemIsDisabled : undefined;
45
+ var isDisabledClassName = disabled ? Combobox_tokens.classes.dropdownItemIsDisabled : undefined;
47
46
  var focusedClass = currentLevel === focusedPath.length - 1 && index$1 === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentLevel]) ? Combobox_tokens.classes.dropdownItemIsFocused : undefined;
48
47
  var activeClass = value === (path === null || path === void 0 ? void 0 : path[currentLevel + 1]) ? Combobox_tokens.classes.dropdownItemIsActive : undefined;
49
48
  useDidMountEffect.useDidMountEffect(function () {
@@ -56,12 +55,12 @@ var Item = function Item(_ref) {
56
55
  }
57
56
  }, [focusedClass]);
58
57
  var handleChange = function handleChange(e) {
59
- if (itemDisabled) return;
58
+ if (disabled) return;
60
59
  e.stopPropagation();
61
60
  handleCheckboxChange(item);
62
61
  };
63
62
  var handleClick = function handleClick(e) {
64
- if (itemDisabled) {
63
+ if (disabled) {
65
64
  e.stopPropagation();
66
65
  return;
67
66
  }
@@ -96,9 +95,7 @@ var Item = function Item(_ref) {
96
95
  }))), !multiple && checked.get(item.value) === 'done' && /*#__PURE__*/React.createElement(IconDone.IconDone, {
97
96
  size: sizeToIconSize.sizeToIconSize(size, variant),
98
97
  color: "inherit"
99
- })), renderItem ? /*#__PURE__*/React.createElement(Item_styles.StyledText, null, renderItem(valueToItemMap.get(value))) : /*#__PURE__*/React.createElement(Item_styles.StyledWrapper, {
100
- className: "dima"
101
- }, /*#__PURE__*/React.createElement(Item_styles.StyledCell, {
98
+ })), renderItem ? /*#__PURE__*/React.createElement(Item_styles.StyledText, null, renderItem(valueToItemMap.get(value))) : /*#__PURE__*/React.createElement(Item_styles.StyledWrapper, null, /*#__PURE__*/React.createElement(Item_styles.StyledCell, {
102
99
  view: "default",
103
100
  size: "l",
104
101
  contentLeft: contentLeft,
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["../../../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize, getItemId } from '../../../../utils';\nimport { classes } from '../../../../Combobox.tokens';\nimport { cx, isEmpty } from '../../../../../../../utils';\nimport { IconDisclosureRightCentered, IconDone } from '../../../../../../_Icon';\nimport { Context } from '../../../../Combobox';\nimport { useDidMountEffect } from '../../../../../../../hooks';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledWrapper,\n StyledText,\n Wrapper,\n DisclosureIconWrapper,\n StyledCheckbox,\n IconWrapper,\n StyledIndicator,\n StyledCheckboxWrapper,\n StyledCell,\n} from './Item.styles';\n\nexport const Item: FC<ItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, contentLeft, contentRight } = item;\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n valueToItemMap,\n treeId,\n } = useContext(Context);\n\n const itemDisabled = Boolean(disabled);\n\n const isDisabledClassName = itemDisabled ? classes.dropdownItemIsDisabled : undefined;\n\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n useDidMountEffect(() => {\n if (focusedClass && ref?.current) {\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, [focusedClass]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (itemDisabled) return;\n\n e.stopPropagation();\n\n handleCheckboxChange(item);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (itemDisabled) {\n e.stopPropagation();\n return;\n }\n\n handleItemClick(item, e);\n };\n\n return (\n <Wrapper\n className={cx(isDisabledClassName, focusedClass, activeClass)}\n id={getItemId(treeId, value)}\n ref={ref}\n onClick={handleClick}\n variant={variant}\n role=\"treeitem\"\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-level={ariaLevel}\n aria-label={ariaLabel}\n aria-selected={Boolean(checked.get(item.value))}\n >\n <IconWrapper variant={variant}>\n {multiple && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n className={classes.selectItemCheckbox}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiple && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiple && checked.get(item.value) === 'done' && (\n <IconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {renderItem ? (\n <StyledText>{renderItem(valueToItemMap.get(value)!)}</StyledText>\n ) : (\n <StyledWrapper className=\"dima\">\n <StyledCell\n view=\"default\"\n size=\"l\"\n contentLeft={contentLeft}\n contentRight={contentRight}\n alignContentLeft=\"center\"\n alignContentRight=\"center\"\n title={label}\n />\n </StyledWrapper>\n )}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <IconDisclosureRightCentered size={sizeToIconSize(size, variant)} color=\"inherit\" />\n </DisclosureIconWrapper>\n )}\n </Wrapper>\n );\n};\n"],"names":["Item","_ref","item","path","currentLevel","index","ariaControls","ariaExpanded","ariaLevel","ariaLabel","value","label","disabled","contentLeft","contentRight","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiple","size","handleCheckboxChange","handleItemClick","variant","renderItem","valueToItemMap","treeId","itemDisabled","Boolean","isDisabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useDidMountEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","className","cx","id","getItemId","onClick","role","get","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","indeterminate","onChange","selectItemCheckbox","_StyledIndicator","StyledIndicator","view","IconDone","sizeToIconSize","color","StyledText","StyledWrapper","StyledCell","alignContentLeft","alignContentRight","title","isEmpty","items","DisclosureIconWrapper","IconDisclosureRightCentered"],"mappings":"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"}
1
+ {"version":3,"file":"Item.js","sources":["../../../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize, getItemId } from '../../../../utils';\nimport { classes } from '../../../../Combobox.tokens';\nimport { cx, isEmpty } from '../../../../../../../utils';\nimport { IconDisclosureRightCentered, IconDone } from '../../../../../../_Icon';\nimport { Context } from '../../../../Combobox';\nimport { useDidMountEffect } from '../../../../../../../hooks';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledWrapper,\n StyledText,\n Wrapper,\n DisclosureIconWrapper,\n StyledCheckbox,\n IconWrapper,\n StyledIndicator,\n StyledCheckboxWrapper,\n StyledCell,\n} from './Item.styles';\n\nexport const Item: FC<ItemProps> = ({\n item,\n path,\n currentLevel,\n index,\n ariaControls,\n ariaExpanded,\n ariaLevel,\n ariaLabel,\n}) => {\n const { value, label, disabled, contentLeft, contentRight } = item;\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiple,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n valueToItemMap,\n treeId,\n } = useContext(Context);\n\n const isDisabledClassName = disabled ? classes.dropdownItemIsDisabled : undefined;\n\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n useDidMountEffect(() => {\n if (focusedClass && ref?.current) {\n ref.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, [focusedClass]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n e.stopPropagation();\n\n handleCheckboxChange(item);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n e.stopPropagation();\n return;\n }\n\n handleItemClick(item, e);\n };\n\n return (\n <Wrapper\n className={cx(isDisabledClassName, focusedClass, activeClass)}\n id={getItemId(treeId, value)}\n ref={ref}\n onClick={handleClick}\n variant={variant}\n role=\"treeitem\"\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-level={ariaLevel}\n aria-label={ariaLabel}\n aria-selected={Boolean(checked.get(item.value))}\n >\n <IconWrapper variant={variant}>\n {multiple && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n className={classes.selectItemCheckbox}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiple && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiple && checked.get(item.value) === 'done' && (\n <IconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {renderItem ? (\n <StyledText>{renderItem(valueToItemMap.get(value)!)}</StyledText>\n ) : (\n <StyledWrapper>\n <StyledCell\n view=\"default\"\n size=\"l\"\n contentLeft={contentLeft}\n contentRight={contentRight}\n alignContentLeft=\"center\"\n alignContentRight=\"center\"\n title={label}\n />\n </StyledWrapper>\n )}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <IconDisclosureRightCentered size={sizeToIconSize(size, variant)} color=\"inherit\" />\n </DisclosureIconWrapper>\n )}\n </Wrapper>\n );\n};\n"],"names":["Item","_ref","item","path","currentLevel","index","ariaControls","ariaExpanded","ariaLevel","ariaLabel","value","label","disabled","contentLeft","contentRight","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiple","size","handleCheckboxChange","handleItemClick","variant","renderItem","valueToItemMap","treeId","isDisabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useDidMountEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","className","cx","id","getItemId","onClick","role","Boolean","get","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","indeterminate","onChange","selectItemCheckbox","_StyledIndicator","StyledIndicator","view","IconDone","sizeToIconSize","color","StyledText","StyledWrapper","StyledCell","alignContentLeft","alignContentRight","title","isEmpty","items","DisclosureIconWrapper","IconDisclosureRightCentered"],"mappings":"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"}
@@ -13,9 +13,10 @@ var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabel
13
13
  // Не мутирует исходные данные.
14
14
  var filterItems = function filterItems(items, textValue, currentLabel, customFilter) {
15
15
  if (!textValue || textValue === currentLabel) return items;
16
- var filter = customFilter || function (label, value) {
16
+ var defaultFilter = function defaultFilter(label, value) {
17
17
  return label.toLowerCase().includes(value.toLowerCase());
18
18
  };
19
+ var filter = customFilter || defaultFilter;
19
20
  var dfs = function dfs(items) {
20
21
  var newItems = [];
21
22
  items.forEach(function (item) {
@@ -1 +1 @@
1
- {"version":3,"file":"filterItems.js","sources":["../../../../../src/components/Combobox/ComboboxNew/utils/filterItems.ts"],"sourcesContent":["import { ItemOptionTransformed } from '../ui/Inner/ui/Item/Item.types';\n\n// Утилита, возвращающая отфильтрованное дерево items.\n// Фильтрация происходит как по названиям категорий, так и по названиям конечных элементов.\n// По дефолту регистр игнорируется. Но можно прокинуть свою функцию для кастомной фильтрации.\n// Фильтрация отключается в 2 случаях:\n// 1) При пустом инпуте (юзер пока еще не ввел значение или уже очистил);\n// 2) Если значение инпута совпадает с выбранным элементом (когда юзер выбрал айтем, но потом решил снова открыть);\n// Не мутирует исходные данные.\nexport const filterItems = (\n items: Array<ItemOptionTransformed>,\n textValue: string,\n currentLabel: string,\n customFilter?: (label: string, value: string) => boolean,\n): Array<ItemOptionTransformed> => {\n if (!textValue || textValue === currentLabel) return items;\n\n const filter =\n customFilter || ((label: string, value: string) => label.toLowerCase().includes(value.toLowerCase()));\n\n const dfs = (items: Array<ItemOptionTransformed>) => {\n const newItems: Array<ItemOptionTransformed> = [];\n\n items.forEach((item) => {\n if (item.items) {\n if (filter(item.label, textValue)) {\n newItems.push(item);\n return;\n }\n\n const res = dfs(item.items);\n\n if (res.length > 0) {\n newItems.push({ ...item, items: res });\n }\n } else if (filter(item.label, textValue)) {\n newItems.push(item);\n }\n });\n\n return newItems;\n };\n dfs(items);\n\n return dfs(items);\n};\n"],"names":["filterItems","items","textValue","currentLabel","customFilter","filter","label","value","toLowerCase","includes","dfs","newItems","forEach","item","push","res","length","_objectSpread"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACaA,IAAAA,WAAW,GAAG,SAAdA,WAAWA,CACpBC,KAAmC,EACnCC,SAAiB,EACjBC,YAAoB,EACpBC,YAAwD,EACzB;EAC/B,IAAI,CAACF,SAAS,IAAIA,SAAS,KAAKC,YAAY,EAAE,OAAOF,KAAK,CAAA;AAE1D,EAAA,IAAMI,MAAM,GACRD,YAAY,IAAK,UAACE,KAAa,EAAEC,KAAa,EAAA;AAAA,IAAA,OAAKD,KAAK,CAACE,WAAW,EAAE,CAACC,QAAQ,CAACF,KAAK,CAACC,WAAW,EAAE,CAAC,CAAA;GAAC,CAAA;AAEzG,EAAA,IAAME,GAAG,GAAG,SAANA,GAAGA,CAAIT,KAAmC,EAAK;IACjD,IAAMU,QAAsC,GAAG,EAAE,CAAA;AAEjDV,IAAAA,KAAK,CAACW,OAAO,CAAC,UAACC,IAAI,EAAK;MACpB,IAAIA,IAAI,CAACZ,KAAK,EAAE;QACZ,IAAII,MAAM,CAACQ,IAAI,CAACP,KAAK,EAAEJ,SAAS,CAAC,EAAE;AAC/BS,UAAAA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAA;AACnB,UAAA,OAAA;AACJ,SAAA;AAEA,QAAA,IAAME,GAAG,GAAGL,GAAG,CAACG,IAAI,CAACZ,KAAK,CAAC,CAAA;AAE3B,QAAA,IAAIc,GAAG,CAACC,MAAM,GAAG,CAAC,EAAE;AAChBL,UAAAA,QAAQ,CAACG,IAAI,CAAAG,uCAAA,CAAAA,uCAAA,KAAMJ,IAAI,CAAA,EAAA,EAAA,EAAA;AAAEZ,YAAAA,KAAK,EAAEc,GAAAA;AAAG,WAAA,CAAE,CAAC,CAAA;AAC1C,SAAA;OACH,MAAM,IAAIV,MAAM,CAACQ,IAAI,CAACP,KAAK,EAAEJ,SAAS,CAAC,EAAE;AACtCS,QAAAA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAA;AACvB,OAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOF,QAAQ,CAAA;GAClB,CAAA;EACDD,GAAG,CAACT,KAAK,CAAC,CAAA;EAEV,OAAOS,GAAG,CAACT,KAAK,CAAC,CAAA;AACrB;;;;"}
1
+ {"version":3,"file":"filterItems.js","sources":["../../../../../src/components/Combobox/ComboboxNew/utils/filterItems.ts"],"sourcesContent":["import { ItemOptionTransformed } from '../ui/Inner/ui/Item/Item.types';\n\n// Утилита, возвращающая отфильтрованное дерево items.\n// Фильтрация происходит как по названиям категорий, так и по названиям конечных элементов.\n// По дефолту регистр игнорируется. Но можно прокинуть свою функцию для кастомной фильтрации.\n// Фильтрация отключается в 2 случаях:\n// 1) При пустом инпуте (юзер пока еще не ввел значение или уже очистил);\n// 2) Если значение инпута совпадает с выбранным элементом (когда юзер выбрал айтем, но потом решил снова открыть);\n// Не мутирует исходные данные.\nexport const filterItems = (\n items: Array<ItemOptionTransformed>,\n textValue: string,\n currentLabel: string,\n customFilter?: (label: string, value: string) => boolean,\n): Array<ItemOptionTransformed> => {\n if (!textValue || textValue === currentLabel) return items;\n\n const defaultFilter = (label: string, value: string) => label.toLowerCase().includes(value.toLowerCase());\n\n const filter = customFilter || defaultFilter;\n\n const dfs = (items: Array<ItemOptionTransformed>) => {\n const newItems: Array<ItemOptionTransformed> = [];\n\n items.forEach((item) => {\n if (item.items) {\n if (filter(item.label, textValue)) {\n newItems.push(item);\n return;\n }\n\n const res = dfs(item.items);\n\n if (res.length > 0) {\n newItems.push({ ...item, items: res });\n }\n } else if (filter(item.label, textValue)) {\n newItems.push(item);\n }\n });\n\n return newItems;\n };\n dfs(items);\n\n return dfs(items);\n};\n"],"names":["filterItems","items","textValue","currentLabel","customFilter","defaultFilter","label","value","toLowerCase","includes","filter","dfs","newItems","forEach","item","push","res","length","_objectSpread"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACaA,IAAAA,WAAW,GAAG,SAAdA,WAAWA,CACpBC,KAAmC,EACnCC,SAAiB,EACjBC,YAAoB,EACpBC,YAAwD,EACzB;EAC/B,IAAI,CAACF,SAAS,IAAIA,SAAS,KAAKC,YAAY,EAAE,OAAOF,KAAK,CAAA;AAE1D,EAAA,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAa,EAAEC,KAAa,EAAA;AAAA,IAAA,OAAKD,KAAK,CAACE,WAAW,EAAE,CAACC,QAAQ,CAACF,KAAK,CAACC,WAAW,EAAE,CAAC,CAAA;AAAA,GAAA,CAAA;AAEzG,EAAA,IAAME,MAAM,GAAGN,YAAY,IAAIC,aAAa,CAAA;AAE5C,EAAA,IAAMM,GAAG,GAAG,SAANA,GAAGA,CAAIV,KAAmC,EAAK;IACjD,IAAMW,QAAsC,GAAG,EAAE,CAAA;AAEjDX,IAAAA,KAAK,CAACY,OAAO,CAAC,UAACC,IAAI,EAAK;MACpB,IAAIA,IAAI,CAACb,KAAK,EAAE;QACZ,IAAIS,MAAM,CAACI,IAAI,CAACR,KAAK,EAAEJ,SAAS,CAAC,EAAE;AAC/BU,UAAAA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAA;AACnB,UAAA,OAAA;AACJ,SAAA;AAEA,QAAA,IAAME,GAAG,GAAGL,GAAG,CAACG,IAAI,CAACb,KAAK,CAAC,CAAA;AAE3B,QAAA,IAAIe,GAAG,CAACC,MAAM,GAAG,CAAC,EAAE;AAChBL,UAAAA,QAAQ,CAACG,IAAI,CAAAG,uCAAA,CAAAA,uCAAA,KAAMJ,IAAI,CAAA,EAAA,EAAA,EAAA;AAAEb,YAAAA,KAAK,EAAEe,GAAAA;AAAG,WAAA,CAAE,CAAC,CAAA;AAC1C,SAAA;OACH,MAAM,IAAIN,MAAM,CAACI,IAAI,CAACR,KAAK,EAAEJ,SAAS,CAAC,EAAE;AACtCU,QAAAA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAA;AACvB,OAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOF,QAAQ,CAAA;GAClB,CAAA;EACDD,GAAG,CAACV,KAAK,CAAC,CAAA;EAEV,OAAOU,GAAG,CAACV,KAAK,CAAC,CAAA;AACrB;;;;"}
@@ -22,7 +22,7 @@ var usePopupContext = function usePopupContext() {
22
22
  };
23
23
  var PopupProvider = function PopupProvider(_ref) {
24
24
  var children = _ref.children;
25
- var prevBodyOverflowY = React.useRef(document.body.style.overflowY);
25
+ var prevBodyOverflowY = React.useRef(typeof document !== 'undefined' ? document.body.style.overflowY : '');
26
26
  var _useState = React.useState([]),
27
27
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
28
28
  items = _useState2[0],
@@ -1 +1 @@
1
- {"version":3,"file":"PopupContext.js","sources":["../../../src/components/Popup/PopupContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useState, useContext, FC, PropsWithChildren, useRef } from 'react';\n\nimport { hasModals } from '../Modal/ModalContext';\n\nimport type { PopupContextType, PopupInfo } from './Popup.types';\n\nexport const POPUP_PORTAL_ID = 'plasma-popup-root';\n\nconst items: PopupInfo[] = [];\n\nconst PopupContext = createContext<PopupContextType>({\n items,\n register(_info: PopupInfo): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n unregister(_id: string): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n});\n\nexport const usePopupContext = () => useContext(PopupContext);\n\nexport const PopupProvider: FC<PropsWithChildren> = ({ children }) => {\n const prevBodyOverflowY = useRef(document.body.style.overflowY);\n const [items, setItems] = useState<PopupInfo[]>([]);\n\n const register = (info: PopupInfo) => {\n setItems((prevItems) => {\n if (info.info?.isModal && !hasModals(prevItems)) {\n prevBodyOverflowY.current = document.body.style.overflowY;\n document.body.style.overflowY = 'hidden';\n }\n\n return [...prevItems, info];\n });\n };\n\n const unregister = (id: string) => {\n setItems((prevItems) => {\n const index = prevItems.findIndex((item: PopupInfo) => id === item.id);\n\n if (index === -1) {\n return prevItems;\n }\n\n const prevHasModals = hasModals(prevItems);\n prevItems.splice(index, 1);\n\n if (prevHasModals && !hasModals(prevItems)) {\n document.body.style.overflowY = prevBodyOverflowY.current;\n }\n\n // при return prevItems не обновится контекст\n return [...prevItems];\n });\n };\n\n const context = {\n items,\n register,\n unregister,\n };\n\n useEffect(() => {\n return () => {\n const portal = document.createElement('div');\n if (portal && document.body.contains(portal)) {\n document.body.removeChild(portal);\n }\n };\n }, []);\n\n return <PopupContext.Provider value={context}>{children}</PopupContext.Provider>;\n};\n"],"names":["POPUP_PORTAL_ID","items","PopupContext","createContext","register","_info","Error","unregister","_id","usePopupContext","useContext","PopupProvider","_ref","children","prevBodyOverflowY","useRef","document","body","style","overflowY","_useState","useState","_useState2","_slicedToArray","setItems","info","prevItems","_info$info","isModal","hasModals","current","concat","_toConsumableArray","id","index","findIndex","item","prevHasModals","splice","context","useEffect","portal","createElement","contains","removeChild","React","Provider","value"],"mappings":";;;;;;;;AAMO,IAAMA,eAAe,GAAG,oBAAmB;AAElD,IAAMC,KAAkB,GAAG,EAAE,CAAA;AAE7B,IAAMC,YAAY,gBAAGC,mBAAa,CAAmB;AACjDF,EAAAA,KAAK,EAALA,KAAK;EACLG,QAAQ,EAAA,SAAAA,QAACC,CAAAA,KAAgB,EAAQ;AAC7B,IAAA,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC,CAAA;GACjE;EACDC,UAAU,EAAA,SAAAA,UAACC,CAAAA,GAAW,EAAQ;AAC1B,IAAA,MAAM,IAAIF,KAAK,CAAC,6CAA6C,CAAC,CAAA;AAClE,GAAA;AACJ,CAAC,CAAC,CAAA;AAEWG,IAAAA,eAAe,GAAG,SAAlBA,eAAeA,GAAA;EAAA,OAASC,gBAAU,CAACR,YAAY,CAAC,CAAA;AAAA,EAAA;IAEhDS,aAAoC,GAAG,SAAvCA,aAAoCA,CAAAC,IAAA,EAAqB;AAAA,EAAA,IAAfC,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;EAC3D,IAAMC,iBAAiB,GAAGC,YAAM,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,CAAC,CAAA;AAC/D,EAAA,IAAAC,SAAA,GAA0BC,cAAQ,CAAc,EAAE,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5CnB,IAAAA,KAAK,GAAAqB,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAMlB,QAAQ,GAAG,SAAXA,QAAQA,CAAIqB,IAAe,EAAK;IAClCD,QAAQ,CAAC,UAACE,SAAS,EAAK;AAAA,MAAA,IAAAC,UAAA,CAAA;AACpB,MAAA,IAAI,CAAAA,UAAA,GAAAF,IAAI,CAACA,IAAI,cAAAE,UAAA,KAAA,KAAA,CAAA,IAATA,UAAA,CAAWC,OAAO,IAAI,CAACC,sBAAS,CAACH,SAAS,CAAC,EAAE;QAC7CZ,iBAAiB,CAACgB,OAAO,GAAGd,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,CAAA;AACzDH,QAAAA,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,GAAG,QAAQ,CAAA;AAC5C,OAAA;AAEA,MAAA,OAAA,EAAA,CAAAY,MAAA,CAAAC,2CAAA,CAAWN,SAAS,IAAED,IAAI,CAAA,CAAA,CAAA;AAC9B,KAAC,CAAC,CAAA;GACL,CAAA;AAED,EAAA,IAAMlB,UAAU,GAAG,SAAbA,UAAUA,CAAI0B,EAAU,EAAK;IAC/BT,QAAQ,CAAC,UAACE,SAAS,EAAK;AACpB,MAAA,IAAMQ,KAAK,GAAGR,SAAS,CAACS,SAAS,CAAC,UAACC,IAAe,EAAA;AAAA,QAAA,OAAKH,EAAE,KAAKG,IAAI,CAACH,EAAE,CAAA;OAAC,CAAA,CAAA;AAEtE,MAAA,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;AACd,QAAA,OAAOR,SAAS,CAAA;AACpB,OAAA;AAEA,MAAA,IAAMW,aAAa,GAAGR,sBAAS,CAACH,SAAS,CAAC,CAAA;AAC1CA,MAAAA,SAAS,CAACY,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC,CAAA;AAE1B,MAAA,IAAIG,aAAa,IAAI,CAACR,sBAAS,CAACH,SAAS,CAAC,EAAE;QACxCV,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,SAAS,GAAGL,iBAAiB,CAACgB,OAAO,CAAA;AAC7D,OAAA;;AAEA;MACA,OAAAE,2CAAA,CAAWN,SAAS,CAAA,CAAA;AACxB,KAAC,CAAC,CAAA;GACL,CAAA;AAED,EAAA,IAAMa,OAAO,GAAG;AACZtC,IAAAA,KAAK,EAALA,KAAK;AACLG,IAAAA,QAAQ,EAARA,QAAQ;AACRG,IAAAA,UAAU,EAAVA,UAAAA;GACH,CAAA;AAEDiC,EAAAA,eAAS,CAAC,YAAM;AACZ,IAAA,OAAO,YAAM;AACT,MAAA,IAAMC,MAAM,GAAGzB,QAAQ,CAAC0B,aAAa,CAAC,KAAK,CAAC,CAAA;MAC5C,IAAID,MAAM,IAAIzB,QAAQ,CAACC,IAAI,CAAC0B,QAAQ,CAACF,MAAM,CAAC,EAAE;AAC1CzB,QAAAA,QAAQ,CAACC,IAAI,CAAC2B,WAAW,CAACH,MAAM,CAAC,CAAA;AACrC,OAAA;KACH,CAAA;GACJ,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBAAOI,KAAA,CAAAH,aAAA,CAACxC,YAAY,CAAC4C,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAER,OAAAA;AAAQ,GAAA,EAAE1B,QAAgC,CAAC,CAAA;AACpF;;;;;;"}
1
+ {"version":3,"file":"PopupContext.js","sources":["../../../src/components/Popup/PopupContext.tsx"],"sourcesContent":["import React, { createContext, useEffect, useState, useContext, FC, PropsWithChildren, useRef } from 'react';\n\nimport { hasModals } from '../Modal/ModalContext';\n\nimport type { PopupContextType, PopupInfo } from './Popup.types';\n\nexport const POPUP_PORTAL_ID = 'plasma-popup-root';\n\nconst items: PopupInfo[] = [];\n\nconst PopupContext = createContext<PopupContextType>({\n items,\n register(_info: PopupInfo): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n unregister(_id: string): void {\n throw new Error('Function not implemented. Add PopupProvider');\n },\n});\n\nexport const usePopupContext = () => useContext(PopupContext);\n\nexport const PopupProvider: FC<PropsWithChildren> = ({ children }) => {\n const prevBodyOverflowY = useRef(typeof document !== 'undefined' ? document.body.style.overflowY : '');\n const [items, setItems] = useState<PopupInfo[]>([]);\n\n const register = (info: PopupInfo) => {\n setItems((prevItems) => {\n if (info.info?.isModal && !hasModals(prevItems)) {\n prevBodyOverflowY.current = document.body.style.overflowY;\n document.body.style.overflowY = 'hidden';\n }\n\n return [...prevItems, info];\n });\n };\n\n const unregister = (id: string) => {\n setItems((prevItems) => {\n const index = prevItems.findIndex((item: PopupInfo) => id === item.id);\n\n if (index === -1) {\n return prevItems;\n }\n\n const prevHasModals = hasModals(prevItems);\n prevItems.splice(index, 1);\n\n if (prevHasModals && !hasModals(prevItems)) {\n document.body.style.overflowY = prevBodyOverflowY.current;\n }\n\n // при return prevItems не обновится контекст\n return [...prevItems];\n });\n };\n\n const context = {\n items,\n register,\n unregister,\n };\n\n useEffect(() => {\n return () => {\n const portal = document.createElement('div');\n if (portal && document.body.contains(portal)) {\n document.body.removeChild(portal);\n }\n };\n }, []);\n\n return <PopupContext.Provider value={context}>{children}</PopupContext.Provider>;\n};\n"],"names":["POPUP_PORTAL_ID","items","PopupContext","createContext","register","_info","Error","unregister","_id","usePopupContext","useContext","PopupProvider","_ref","children","prevBodyOverflowY","useRef","document","body","style","overflowY","_useState","useState","_useState2","_slicedToArray","setItems","info","prevItems","_info$info","isModal","hasModals","current","concat","_toConsumableArray","id","index","findIndex","item","prevHasModals","splice","context","useEffect","portal","createElement","contains","removeChild","React","Provider","value"],"mappings":"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"}
@@ -8,10 +8,7 @@ var useOutsideClick = function useOutsideClick(callback, secondaryRef) {
8
8
  var ref = React.useRef(null);
9
9
  React.useEffect(function () {
10
10
  var handleClickOutside = function handleClickOutside(event) {
11
- if (ref.current && !ref.current.contains(event.target)
12
- // secondaryRef.current &&
13
- // !secondaryRef.current.contains(event.target as Node)
14
- ) {
11
+ if (ref.current && !ref.current.contains(event.target)) {
15
12
  if (!(secondaryRef !== null && secondaryRef !== void 0 && secondaryRef.current) || secondaryRef.current && !secondaryRef.current.contains(event.target)) {
16
13
  callback();
17
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useOutsideClick.js","sources":["../../src/hooks/useOutsideClick.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { RefObject } from 'react';\n\nexport const useOutsideClick = <T extends HTMLElement = HTMLElement>(\n callback: () => void,\n secondaryRef?: RefObject<HTMLElement | null> | null,\n) => {\n const ref = useRef<T | null>(null);\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (\n ref.current &&\n !ref.current.contains(event.target as Node)\n // secondaryRef.current &&\n // !secondaryRef.current.contains(event.target as Node)\n ) {\n if (\n !secondaryRef?.current ||\n (secondaryRef.current && !secondaryRef.current.contains(event.target as Node))\n ) {\n callback();\n }\n }\n };\n\n document.addEventListener('mouseup', handleClickOutside);\n document.addEventListener('touchend', handleClickOutside);\n\n return () => {\n document.removeEventListener('mouseup', handleClickOutside);\n document.removeEventListener('touchend', handleClickOutside);\n };\n }, [callback]);\n\n return ref;\n};\n"],"names":["useOutsideClick","callback","secondaryRef","ref","useRef","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener"],"mappings":";;;;;;AAGO,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CACxBC,QAAoB,EACpBC,YAAmD,EAClD;AACD,EAAA,IAAMC,GAAG,GAAGC,YAAM,CAAW,IAAI,CAAC,CAAA;AAClCC,EAAAA,eAAS,CAAC,YAAM;AACZ,IAAA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,KAA8B,EAAK;AAC3D,MAAA,IACIJ,GAAG,CAACK,OAAO,IACX,CAACL,GAAG,CAACK,OAAO,CAACC,QAAQ,CAACF,KAAK,CAACG,MAAc,CAAA;AAC1C;AACA;QACF;QACE,IACI,EAACR,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,IAAZA,YAAY,CAAEM,OAAO,CACrBN,IAAAA,YAAY,CAACM,OAAO,IAAI,CAACN,YAAY,CAACM,OAAO,CAACC,QAAQ,CAACF,KAAK,CAACG,MAAc,CAAE,EAChF;AACET,UAAAA,QAAQ,EAAE,CAAA;AACd,SAAA;AACJ,OAAA;KACH,CAAA;AAEDU,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,kBAAkB,CAAC,CAAA;AACxDK,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,UAAU,EAAEN,kBAAkB,CAAC,CAAA;AAEzD,IAAA,OAAO,YAAM;AACTK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,kBAAkB,CAAC,CAAA;AAC3DK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,UAAU,EAAEP,kBAAkB,CAAC,CAAA;KAC/D,CAAA;AACL,GAAC,EAAE,CAACL,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,OAAOE,GAAG,CAAA;AACd;;;;"}
1
+ {"version":3,"file":"useOutsideClick.js","sources":["../../src/hooks/useOutsideClick.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { RefObject } from 'react';\n\nexport const useOutsideClick = <T extends HTMLElement = HTMLElement>(\n callback: () => void,\n secondaryRef?: RefObject<HTMLElement | null> | null,\n) => {\n const ref = useRef<T | null>(null);\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n if (\n !secondaryRef?.current ||\n (secondaryRef.current && !secondaryRef.current.contains(event.target as Node))\n ) {\n callback();\n }\n }\n };\n\n document.addEventListener('mouseup', handleClickOutside);\n document.addEventListener('touchend', handleClickOutside);\n\n return () => {\n document.removeEventListener('mouseup', handleClickOutside);\n document.removeEventListener('touchend', handleClickOutside);\n };\n }, [callback]);\n\n return ref;\n};\n"],"names":["useOutsideClick","callback","secondaryRef","ref","useRef","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener"],"mappings":";;;;;;AAGO,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CACxBC,QAAoB,EACpBC,YAAmD,EAClD;AACD,EAAA,IAAMC,GAAG,GAAGC,YAAM,CAAW,IAAI,CAAC,CAAA;AAClCC,EAAAA,eAAS,CAAC,YAAM;AACZ,IAAA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,KAA8B,EAAK;AAC3D,MAAA,IAAIJ,GAAG,CAACK,OAAO,IAAI,CAACL,GAAG,CAACK,OAAO,CAACC,QAAQ,CAACF,KAAK,CAACG,MAAc,CAAC,EAAE;QAC5D,IACI,EAACR,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,IAAZA,YAAY,CAAEM,OAAO,CACrBN,IAAAA,YAAY,CAACM,OAAO,IAAI,CAACN,YAAY,CAACM,OAAO,CAACC,QAAQ,CAACF,KAAK,CAACG,MAAc,CAAE,EAChF;AACET,UAAAA,QAAQ,EAAE,CAAA;AACd,SAAA;AACJ,OAAA;KACH,CAAA;AAEDU,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEN,kBAAkB,CAAC,CAAA;AACxDK,IAAAA,QAAQ,CAACC,gBAAgB,CAAC,UAAU,EAAEN,kBAAkB,CAAC,CAAA;AAEzD,IAAA,OAAO,YAAM;AACTK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEP,kBAAkB,CAAC,CAAA;AAC3DK,MAAAA,QAAQ,CAACE,mBAAmB,CAAC,UAAU,EAAEP,kBAAkB,CAAC,CAAA;KAC/D,CAAA;AACL,GAAC,EAAE,CAACL,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,OAAOE,GAAG,CAAA;AACd;;;;"}
@@ -145,11 +145,11 @@ var comboboxRoot = exports.comboboxRoot = function comboboxRoot(Root) {
145
145
  }
146
146
  }
147
147
  }, floatingPopoverRef);
148
- var onChange = function onChange(e) {
148
+ var onChange = function onChange(newValue) {
149
149
  if (outerOnChange) {
150
- outerOnChange(e);
150
+ outerOnChange(newValue);
151
151
  }
152
- setInternalValue(e);
152
+ setInternalValue(newValue);
153
153
  };
154
154
  var handleClickArrow = function handleClickArrow() {
155
155
  if (isCurrentListOpen) {
@@ -178,8 +178,8 @@ var comboboxRoot = exports.comboboxRoot = function comboboxRoot(Root) {
178
178
  };
179
179
 
180
180
  // Обработчик чипов
181
- var handleChangeChips = function handleChangeChips(chipsAsLabel) {
182
- onChange(chipsAsLabel.map(function (chipLabel) {
181
+ var handleChipsChange = function handleChipsChange(chipLabels) {
182
+ onChange(chipLabels.map(function (chipLabel) {
183
183
  return labelToItemMap.get(chipLabel).value;
184
184
  }));
185
185
  };
@@ -390,7 +390,7 @@ var comboboxRoot = exports.comboboxRoot = function comboboxRoot(Root) {
390
390
  }, multiple ? {
391
391
  enumerationType: 'chip',
392
392
  chips: getChips(),
393
- onChangeChips: handleChangeChips
393
+ onChangeChips: handleChipsChange
394
394
  } : {
395
395
  enumerationType: 'plain'
396
396
  }, rest, {
@@ -447,8 +447,6 @@ var comboboxConfig = exports.comboboxConfig = {
447
447
  defaults: {
448
448
  view: 'default',
449
449
  size: 'm',
450
- // readOnly: false,
451
- // disabled: false,
452
450
  labelPlacement: 'outer'
453
451
  }
454
452
  };
@@ -52,12 +52,12 @@ var FloatingPopover = exports.FloatingPopover = /*#__PURE__*/(0, _react2.forward
52
52
  // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.
53
53
  // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),
54
54
  // но выпадающий список должен позиционироваться непосредственно возле самого инпута.
55
- var isTargetFunction = typeof target === 'function';
55
+ var isTargetAsFunction = typeof target === 'function';
56
56
  return /*#__PURE__*/_react2["default"].createElement("div", {
57
57
  ref: ref,
58
58
  id: wrappedId
59
59
  }, /*#__PURE__*/_react2["default"].createElement("div", {
60
- ref: isTargetFunction ? undefined : refs.setReference,
60
+ ref: isTargetAsFunction ? undefined : refs.setReference,
61
61
  onClick: handleClick
62
62
  }, typeof target === 'function' ? target(refs.setReference) : target), opened &&
63
63
  /*#__PURE__*/
@@ -42,8 +42,7 @@ var Item = exports.Item = function Item(_ref) {
42
42
  renderItem = _useContext.renderItem,
43
43
  valueToItemMap = _useContext.valueToItemMap,
44
44
  treeId = _useContext.treeId;
45
- var itemDisabled = Boolean(disabled);
46
- var isDisabledClassName = itemDisabled ? _Combobox.classes.dropdownItemIsDisabled : undefined;
45
+ var isDisabledClassName = disabled ? _Combobox.classes.dropdownItemIsDisabled : undefined;
47
46
  var focusedClass = currentLevel === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentLevel]) ? _Combobox.classes.dropdownItemIsFocused : undefined;
48
47
  var activeClass = value === (path === null || path === void 0 ? void 0 : path[currentLevel + 1]) ? _Combobox.classes.dropdownItemIsActive : undefined;
49
48
  (0, _hooks.useDidMountEffect)(function () {
@@ -56,12 +55,12 @@ var Item = exports.Item = function Item(_ref) {
56
55
  }
57
56
  }, [focusedClass]);
58
57
  var handleChange = function handleChange(e) {
59
- if (itemDisabled) return;
58
+ if (disabled) return;
60
59
  e.stopPropagation();
61
60
  handleCheckboxChange(item);
62
61
  };
63
62
  var handleClick = function handleClick(e) {
64
- if (itemDisabled) {
63
+ if (disabled) {
65
64
  e.stopPropagation();
66
65
  return;
67
66
  }
@@ -96,9 +95,7 @@ var Item = exports.Item = function Item(_ref) {
96
95
  }))), !multiple && checked.get(item.value) === 'done' && /*#__PURE__*/_react["default"].createElement(_Icon.IconDone, {
97
96
  size: (0, _utils.sizeToIconSize)(size, variant),
98
97
  color: "inherit"
99
- })), renderItem ? /*#__PURE__*/_react["default"].createElement(_Item.StyledText, null, renderItem(valueToItemMap.get(value))) : /*#__PURE__*/_react["default"].createElement(_Item.StyledWrapper, {
100
- className: "dima"
101
- }, /*#__PURE__*/_react["default"].createElement(_Item.StyledCell, {
98
+ })), renderItem ? /*#__PURE__*/_react["default"].createElement(_Item.StyledText, null, renderItem(valueToItemMap.get(value))) : /*#__PURE__*/_react["default"].createElement(_Item.StyledWrapper, null, /*#__PURE__*/_react["default"].createElement(_Item.StyledCell, {
102
99
  view: "default",
103
100
  size: "l",
104
101
  contentLeft: contentLeft,
@@ -19,9 +19,10 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
19
19
  // Не мутирует исходные данные.
20
20
  var filterItems = exports.filterItems = function filterItems(items, textValue, currentLabel, customFilter) {
21
21
  if (!textValue || textValue === currentLabel) return items;
22
- var filter = customFilter || function (label, value) {
22
+ var defaultFilter = function defaultFilter(label, value) {
23
23
  return label.toLowerCase().includes(value.toLowerCase());
24
24
  };
25
+ var filter = customFilter || defaultFilter;
25
26
  var dfs = function dfs(items) {
26
27
  var newItems = [];
27
28
  items.forEach(function (item) {
@@ -35,7 +35,7 @@ var usePopupContext = exports.usePopupContext = function usePopupContext() {
35
35
  };
36
36
  var PopupProvider = exports.PopupProvider = function PopupProvider(_ref) {
37
37
  var children = _ref.children;
38
- var prevBodyOverflowY = (0, _react.useRef)(document.body.style.overflowY);
38
+ var prevBodyOverflowY = (0, _react.useRef)(typeof document !== 'undefined' ? document.body.style.overflowY : '');
39
39
  var _useState = (0, _react.useState)([]),
40
40
  _useState2 = _slicedToArray(_useState, 2),
41
41
  items = _useState2[0],