@salutejs/plasma-new-hope 0.268.2-canary.1780.13373736245.0 → 0.269.0-canary.1766.13384359206.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -0
  4. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxNew/utils/updateDescendants.js +6 -3
  6. package/cjs/components/Combobox/ComboboxNew/utils/updateDescendants.js.map +1 -1
  7. package/cjs/components/Select/Select.js +1 -1
  8. package/cjs/components/Select/Select.js.map +1 -1
  9. package/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -0
  10. package/cjs/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  11. package/cjs/components/Select/utils/updateDescendants.js +6 -3
  12. package/cjs/components/Select/utils/updateDescendants.js.map +1 -1
  13. package/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -10
  14. package/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js.map +1 -1
  15. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +28 -21
  16. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  17. package/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +4 -10
  18. package/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js.map +1 -1
  19. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +28 -21
  20. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  21. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  22. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -0
  23. package/emotion/cjs/components/Combobox/ComboboxNew/utils/updateDescendants.js +6 -3
  24. package/emotion/cjs/components/Select/Select.js +1 -1
  25. package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -0
  26. package/emotion/cjs/components/Select/utils/updateDescendants.js +6 -3
  27. package/emotion/cjs/components/Tabs/Tabs.template-doc.mdx +2 -7
  28. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -10
  29. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +18 -11
  30. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +4 -10
  31. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +18 -11
  32. package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +1 -0
  33. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -1
  34. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -0
  35. package/emotion/es/components/Combobox/ComboboxNew/utils/updateDescendants.js +6 -3
  36. package/emotion/es/components/Select/Select.js +1 -1
  37. package/emotion/es/components/Select/ui/Inner/ui/Item/Item.js +1 -0
  38. package/emotion/es/components/Select/utils/updateDescendants.js +6 -3
  39. package/emotion/es/components/Tabs/Tabs.template-doc.mdx +2 -7
  40. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +5 -11
  41. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +19 -12
  42. package/emotion/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +5 -11
  43. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +19 -12
  44. package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +1 -0
  45. package/es/components/Combobox/ComboboxNew/Combobox.js +1 -1
  46. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  47. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -0
  48. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  49. package/es/components/Combobox/ComboboxNew/utils/updateDescendants.js +6 -3
  50. package/es/components/Combobox/ComboboxNew/utils/updateDescendants.js.map +1 -1
  51. package/es/components/Select/Select.js +1 -1
  52. package/es/components/Select/Select.js.map +1 -1
  53. package/es/components/Select/ui/Inner/ui/Item/Item.js +1 -0
  54. package/es/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  55. package/es/components/Select/utils/updateDescendants.js +6 -3
  56. package/es/components/Select/utils/updateDescendants.js.map +1 -1
  57. package/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +5 -11
  58. package/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js.map +1 -1
  59. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +19 -12
  60. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  61. package/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +5 -11
  62. package/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js.map +1 -1
  63. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +19 -12
  64. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  65. package/package.json +2 -2
  66. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  67. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -0
  68. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/updateDescendants.js +6 -3
  69. package/styled-components/cjs/components/Select/Select.js +1 -1
  70. package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.js +1 -0
  71. package/styled-components/cjs/components/Select/utils/updateDescendants.js +6 -3
  72. package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +2 -7
  73. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +4 -10
  74. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +18 -11
  75. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +4 -10
  76. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +18 -11
  77. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +1 -0
  78. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -1
  79. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +1 -0
  80. package/styled-components/es/components/Combobox/ComboboxNew/utils/updateDescendants.js +6 -3
  81. package/styled-components/es/components/Select/Select.js +1 -1
  82. package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.js +1 -0
  83. package/styled-components/es/components/Select/utils/updateDescendants.js +6 -3
  84. package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +2 -7
  85. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.js +5 -11
  86. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +19 -12
  87. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.js +5 -11
  88. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +19 -12
  89. package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +1 -0
  90. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  91. package/types/components/Combobox/ComboboxNew/utils/updateDescendants.d.ts +2 -2
  92. package/types/components/Combobox/ComboboxNew/utils/updateDescendants.d.ts.map +1 -1
  93. package/types/components/Select/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  94. package/types/components/Select/utils/updateDescendants.d.ts +2 -2
  95. package/types/components/Select/utils/updateDescendants.d.ts.map +1 -1
  96. package/types/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.d.ts.map +1 -1
  97. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  98. package/types/components/Tabs/ui/vertical/VerticalTabItem/VerticalTabItem.d.ts.map +1 -1
  99. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  100. package/cjs/components/Tabs/utils/index.js +0 -26
  101. package/cjs/components/Tabs/utils/index.js.map +0 -1
  102. package/emotion/cjs/components/Tabs/utils/index.js +0 -24
  103. package/emotion/es/components/Tabs/utils/index.js +0 -18
  104. package/es/components/Tabs/utils/index.js +0 -21
  105. package/es/components/Tabs/utils/index.js.map +0 -1
  106. package/styled-components/cjs/components/Tabs/utils/index.js +0 -24
  107. package/styled-components/es/components/Tabs/utils/index.js +0 -18
  108. package/types/components/Tabs/utils/index.d.ts +0 -4
  109. package/types/components/Tabs/utils/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { isEmpty } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n getView,\n getInitialValue,\n} from './utils';\nimport { Inner, Target } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value =\n outerValue !== null && outerValue !== undefined\n ? getInitialValue(outerValue, valueToItemMap)\n : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\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.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && disabled ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required: props.required,\n requiredPlacement: props.requiredPlacement,\n optional: props.optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText: props.hintText,\n hintTrigger: props.hintTrigger,\n hintView: props.hintView,\n hintSize: props.hintSize,\n hintTargetPlacement: props.hintTargetPlacement,\n hintPlacement: props.hintPlacement,\n hintWidth: props.hintWidth,\n hintHasArrow: props.hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n ) => {\n if (outerOnChange) {\n // Условие для отправки если компонент используется без формы.\n if (!name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n outerOnChange(newValue as any);\n }\n\n // Условие для отправки если компонент используется с формой.\n if (name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n outerOnChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\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 const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\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) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n {...(rest as any)}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listHeight={listHeight}\n listOverflow={listOverflow}\n onScroll={handleScroll}\n listWidth={listWidth}\n ref={targetRef}\n >\n {beforeList}\n\n {transformedItems.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 {afterList}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","outerOnChange","onChange","_props$target","target","items","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","outerView","view","size","listOverflow","listHeight","listWidth","contentLeft","onScrollBottom","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","multiselect","_useState2","internalValue","setInternalValue","undefined","getInitialValue","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","required","requiredPlacement","optional","hintProps","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","targetRef","useOutsideClick","type","newValue","Array","isArray","_typeof","handleListToggle","opened","handleCheckboxChange","item","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","val","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","FloatingPopover","onToggle","referenceRef","Target","selectProps","inputWrapperRef","Ul","role","concat","onScroll","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { isEmpty } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport {\n initialItemsTransform,\n updateAncestors,\n updateDescendants,\n updateSingleAncestors,\n getView,\n getInitialValue,\n} from './utils';\nimport { Inner, Target } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value =\n outerValue !== null && outerValue !== undefined\n ? getInitialValue(outerValue, valueToItemMap)\n : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\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.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && disabled ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required: props.required,\n requiredPlacement: props.requiredPlacement,\n optional: props.optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText: props.hintText,\n hintTrigger: props.hintTrigger,\n hintView: props.hintView,\n hintSize: props.hintSize,\n hintTargetPlacement: props.hintTargetPlacement,\n hintPlacement: props.hintPlacement,\n hintWidth: props.hintWidth,\n hintHasArrow: props.hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n ) => {\n if (outerOnChange) {\n // Условие для отправки если компонент используется без формы.\n if (!name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n outerOnChange(newValue as any);\n }\n\n // Условие для отправки если компонент используется с формой.\n if (name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n outerOnChange(newValue as any);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\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 const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\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) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n });\n } else {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n {...(rest as any)}\n >\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listHeight={listHeight}\n listOverflow={listOverflow}\n onScroll={handleScroll}\n listWidth={listWidth}\n ref={targetRef}\n >\n {beforeList}\n\n {transformedItems.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 {afterList}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","outerOnChange","onChange","_props$target","target","items","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","outerView","view","size","listOverflow","listHeight","listWidth","contentLeft","onScrollBottom","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","multiselect","_useState2","internalValue","setInternalValue","undefined","getInitialValue","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","required","requiredPlacement","optional","hintProps","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","targetRef","useOutsideClick","type","newValue","Array","isArray","_typeof","handleListToggle","opened","handleCheckboxChange","item","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","val","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","FloatingPopover","onToggle","referenceRef","Target","selectProps","inputWrapperRef","Ul","role","concat","onScroll","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
@@ -83,6 +83,7 @@ var Item = function Item(_ref) {
83
83
  return e.stopPropagation();
84
84
  }
85
85
  }, /*#__PURE__*/React.createElement(StyledCheckbox, {
86
+ disabled: itemDisabled,
86
87
  checked: Boolean(checked.get(item.value)),
87
88
  indeterminate: checked.get(item.value) === 'indeterminate',
88
89
  onChange: handleChange
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["../../../../../../../src/components/Select/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize, getItemId } from '../../../../utils';\nimport { classes } from '../../../../Select.tokens';\nimport { cx, isEmpty } from '../../../../../../utils';\nimport { Context } from '../../../../Select.context';\nimport { useDidMountEffect } from '../../../../../../hooks';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledWrapper,\n StyledCell,\n StyledCheckbox,\n StyledIndicator,\n DisclosureIconWrapper,\n IconWrapper,\n StyledText,\n Wrapper,\n StyledCheckboxWrapper,\n StyledArrow,\n StyledIconDone,\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, isDisabled, contentLeft, contentRight, className, ...rest } = item;\n\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n } = useContext(Context);\n\n const itemDisabled = Boolean(disabled || isDisabled);\n\n const disabledClassName = itemDisabled ? classes.dropdownItemIsDisabled : undefined;\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n 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 {...rest}\n className={cx(disabledClassName, focusedClass, activeClass, className)}\n id={getItemId(treeId, value.toString())}\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 {multiselect && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiselect && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiselect && checked.get(item.value) === 'done' && (\n <StyledIconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {renderItem ? (\n <StyledText>{renderItem(item)}</StyledText>\n ) : (\n <StyledWrapper>\n <StyledCell\n contentLeft={contentLeft}\n contentRight={contentRight}\n // TODO: #1548\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n title={<span>{label}</span>}\n />\n </StyledWrapper>\n )}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <StyledArrow 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","isDisabled","contentLeft","contentRight","className","rest","_objectWithoutProperties","_excluded","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiselect","size","handleCheckboxChange","handleItemClick","variant","renderItem","treeId","itemDisabled","Boolean","disabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useDidMountEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","_extends","cx","id","getItemId","toString","onClick","role","get","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","indeterminate","onChange","_StyledIndicator","StyledIndicator","view","StyledIconDone","sizeToIconSize","color","StyledText","StyledWrapper","StyledCell","title","isEmpty","items","DisclosureIconWrapper","StyledArrow"],"mappings":"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"}
1
+ {"version":3,"file":"Item.js","sources":["../../../../../../../src/components/Select/ui/Inner/ui/Item/Item.tsx"],"sourcesContent":["import React, { useRef, FC, useContext } from 'react';\n\nimport { sizeToIconSize, getItemId } from '../../../../utils';\nimport { classes } from '../../../../Select.tokens';\nimport { cx, isEmpty } from '../../../../../../utils';\nimport { Context } from '../../../../Select.context';\nimport { useDidMountEffect } from '../../../../../../hooks';\n\nimport { ItemProps } from './Item.types';\nimport {\n StyledWrapper,\n StyledCell,\n StyledCheckbox,\n StyledIndicator,\n DisclosureIconWrapper,\n IconWrapper,\n StyledText,\n Wrapper,\n StyledCheckboxWrapper,\n StyledArrow,\n StyledIconDone,\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, isDisabled, contentLeft, contentRight, className, ...rest } = item;\n\n const ref = useRef<HTMLLIElement | null>(null);\n\n const {\n focusedPath,\n checked,\n multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n } = useContext(Context);\n\n const itemDisabled = Boolean(disabled || isDisabled);\n\n const disabledClassName = itemDisabled ? classes.dropdownItemIsDisabled : undefined;\n const focusedClass =\n currentLevel === focusedPath.length - 1 && index === focusedPath?.[currentLevel]\n ? classes.dropdownItemIsFocused\n : undefined;\n const activeClass = value === path?.[currentLevel + 1] ? classes.dropdownItemIsActive : undefined;\n\n 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 {...rest}\n className={cx(disabledClassName, focusedClass, activeClass, className)}\n id={getItemId(treeId, value.toString())}\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 {multiselect && (\n <StyledCheckboxWrapper onClick={(e) => e.stopPropagation()}>\n <StyledCheckbox\n disabled={itemDisabled}\n checked={Boolean(checked.get(item.value))}\n indeterminate={checked.get(item.value) === 'indeterminate'}\n onChange={handleChange}\n />\n </StyledCheckboxWrapper>\n )}\n\n {!multiselect && checked.get(item.value) === 'dot' && <StyledIndicator size=\"s\" view=\"default\" />}\n\n {!multiselect && checked.get(item.value) === 'done' && (\n <StyledIconDone size={sizeToIconSize(size, variant)} color=\"inherit\" />\n )}\n </IconWrapper>\n\n {renderItem ? (\n <StyledText>{renderItem(item)}</StyledText>\n ) : (\n <StyledWrapper>\n <StyledCell\n contentLeft={contentLeft}\n contentRight={contentRight}\n // TODO: #1548\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n title={<span>{label}</span>}\n />\n </StyledWrapper>\n )}\n\n {!isEmpty(item.items) && (\n <DisclosureIconWrapper>\n <StyledArrow 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","isDisabled","contentLeft","contentRight","className","rest","_objectWithoutProperties","_excluded","ref","useRef","_useContext","useContext","Context","focusedPath","checked","multiselect","size","handleCheckboxChange","handleItemClick","variant","renderItem","treeId","itemDisabled","Boolean","disabledClassName","classes","dropdownItemIsDisabled","undefined","focusedClass","length","dropdownItemIsFocused","activeClass","dropdownItemIsActive","useDidMountEffect","current","scrollIntoView","behavior","block","inline","handleChange","e","stopPropagation","handleClick","React","createElement","Wrapper","_extends","cx","id","getItemId","toString","onClick","role","get","IconWrapper","StyledCheckboxWrapper","StyledCheckbox","indeterminate","onChange","_StyledIndicator","StyledIndicator","view","StyledIconDone","sizeToIconSize","color","StyledText","StyledWrapper","StyledCell","title","isEmpty","items","DisclosureIconWrapper","StyledArrow"],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- var updateDescendants = function updateDescendants(node, checkedMap, isChecked) {
1
+ var updateDescendants = function updateDescendants(node, checkedMap, isChecked, valueToItemMap) {
2
2
  if (!(node !== null && node !== void 0 && node.items)) {
3
3
  return;
4
4
  }
5
5
  node.items.forEach(function (item) {
6
- checkedMap.set(item.value, isChecked);
6
+ var _valueToItemMap$get;
7
+ if (!(valueToItemMap !== null && valueToItemMap !== void 0 && (_valueToItemMap$get = valueToItemMap.get(item.value)) !== null && _valueToItemMap$get !== void 0 && _valueToItemMap$get.disabled)) {
8
+ checkedMap.set(item.value, isChecked);
9
+ }
7
10
  if (item.items) {
8
- updateDescendants(item, checkedMap, isChecked);
11
+ updateDescendants(item, checkedMap, isChecked, valueToItemMap);
9
12
  }
10
13
  });
11
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"updateDescendants.js","sources":["../../../../src/components/Select/utils/updateDescendants.ts"],"sourcesContent":["import type { MergedDropdownNodeTransformed } from '../ui/Inner/ui/Item/Item.types';\nimport type { ValueToCheckedMapType } from '../hooks/usePathMaps';\n\nexport const updateDescendants = (\n node: MergedDropdownNodeTransformed,\n checkedMap: ValueToCheckedMapType,\n isChecked: boolean,\n) => {\n if (!node?.items) {\n return;\n }\n\n node.items.forEach((item) => {\n checkedMap.set(item.value, isChecked);\n\n if (item.items) {\n updateDescendants(item, checkedMap, isChecked);\n }\n });\n};\n"],"names":["updateDescendants","node","checkedMap","isChecked","items","forEach","item","set","value"],"mappings":"AAGO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,IAAmC,EACnCC,UAAiC,EACjCC,SAAkB,EACjB;EACD,IAAI,EAACF,IAAI,KAAJA,IAAAA,IAAAA,IAAI,eAAJA,IAAI,CAAEG,KAAK,CAAE,EAAA;AACd,IAAA,OAAA;AACJ,GAAA;AAEAH,EAAAA,IAAI,CAACG,KAAK,CAACC,OAAO,CAAC,UAACC,IAAI,EAAK;IACzBJ,UAAU,CAACK,GAAG,CAACD,IAAI,CAACE,KAAK,EAAEL,SAAS,CAAC,CAAA;IAErC,IAAIG,IAAI,CAACF,KAAK,EAAE;AACZJ,MAAAA,iBAAiB,CAACM,IAAI,EAAEJ,UAAU,EAAEC,SAAS,CAAC,CAAA;AAClD,KAAA;AACJ,GAAC,CAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"updateDescendants.js","sources":["../../../../src/components/Select/utils/updateDescendants.ts"],"sourcesContent":["import type { MergedDropdownNodeTransformed } from '../ui/Inner/ui/Item/Item.types';\nimport type { ValueToCheckedMapType, ValueToItemMapType } from '../hooks/usePathMaps';\n\nexport const updateDescendants = (\n node: MergedDropdownNodeTransformed,\n checkedMap: ValueToCheckedMapType,\n isChecked: boolean,\n valueToItemMap?: ValueToItemMapType,\n) => {\n if (!node?.items) {\n return;\n }\n\n node.items.forEach((item) => {\n if (!valueToItemMap?.get(item.value)?.disabled) {\n checkedMap.set(item.value, isChecked);\n }\n\n if (item.items) {\n updateDescendants(item, checkedMap, isChecked, valueToItemMap);\n }\n });\n};\n"],"names":["updateDescendants","node","checkedMap","isChecked","valueToItemMap","items","forEach","item","_valueToItemMap$get","get","value","disabled","set"],"mappings":"AAGaA,IAAAA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC1BC,IAAmC,EACnCC,UAAiC,EACjCC,SAAkB,EAClBC,cAAmC,EAClC;EACD,IAAI,EAACH,IAAI,KAAJA,IAAAA,IAAAA,IAAI,eAAJA,IAAI,CAAEI,KAAK,CAAE,EAAA;AACd,IAAA,OAAA;AACJ,GAAA;AAEAJ,EAAAA,IAAI,CAACI,KAAK,CAACC,OAAO,CAAC,UAACC,IAAI,EAAK;AAAA,IAAA,IAAAC,mBAAA,CAAA;IACzB,IAAI,EAACJ,cAAc,KAAdA,IAAAA,IAAAA,cAAc,gBAAAI,mBAAA,GAAdJ,cAAc,CAAEK,GAAG,CAACF,IAAI,CAACG,KAAK,CAAC,MAAA,IAAA,IAAAF,mBAAA,KAA/BA,KAAAA,CAAAA,IAAAA,mBAAA,CAAiCG,QAAQ,CAAE,EAAA;MAC5CT,UAAU,CAACU,GAAG,CAACL,IAAI,CAACG,KAAK,EAAEP,SAAS,CAAC,CAAA;AACzC,KAAA;IAEA,IAAII,IAAI,CAACF,KAAK,EAAE;MACZL,iBAAiB,CAACO,IAAI,EAAEL,UAAU,EAAEC,SAAS,EAAEC,cAAc,CAAC,CAAA;AAClE,KAAA;AACJ,GAAC,CAAC,CAAA;AACN;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, objectSpread2 as _objectSpread2 } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import React, { forwardRef, useRef, useContext, useEffect, useLayoutEffect, useCallback } from 'react';
2
+ import React, { forwardRef, useRef, useContext, useEffect, useCallback } from 'react';
3
3
  import { useForkRef } from '@salutejs/plasma-core';
4
4
  import { classes } from '../../../tokens.js';
5
5
  import { cx } from '../../../../../utils/index.js';
@@ -55,16 +55,6 @@ var horizontalTabItemRoot = function horizontalTabItemRoot(Root) {
55
55
  return refs.unregister(innerRef);
56
56
  };
57
57
  }, [refs]);
58
- useLayoutEffect(function () {
59
- var _innerRef$current;
60
- if (!selected) {
61
- return;
62
- }
63
- (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 || _innerRef$current.scrollIntoView({
64
- block: 'nearest',
65
- inline: 'nearest'
66
- });
67
- }, [selected]);
68
58
  var onItemFocus = useCallback(function (event) {
69
59
  if (disabled) {
70
60
  return;
@@ -90,6 +80,10 @@ var horizontalTabItemRoot = function horizontalTabItemRoot(Root) {
90
80
  refs.setCurrent(focusIndex);
91
81
  }, [refs, innerRef, onIndexChange, disabled]);
92
82
  var handleClick = function handleClick(event) {
83
+ event.currentTarget.scrollIntoView({
84
+ block: 'nearest',
85
+ inline: 'nearest'
86
+ });
93
87
  if (!onClick) {
94
88
  return;
95
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalTabItem.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useContext, useEffect, useCallback, useLayoutEffect } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../../../engines';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabsContext } from '../../../TabsContext';\nimport { HorizontalTabItemProps } from '../../../TabItem.types';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { LeftContent, RightContent, StyledContent, TabItemValue, base } from './HorizontalTabItem.styles';\n\nexport const horizontalTabItemRoot = (Root: RootProps<HTMLDivElement, HorizontalTabItemProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabItemProps>((props, outerRef) => {\n const {\n size,\n view,\n isActive,\n selected,\n disabled = false,\n pilled = false,\n children,\n value,\n contentLeft,\n contentRight,\n animated = true,\n onIndexChange,\n itemIndex,\n tabIndex,\n className,\n onClick,\n maxItemWidth: maxWidth = 'auto',\n ...rest\n } = props;\n\n const innerRef = useRef<HTMLDivElement>(null);\n const ref = useForkRef(outerRef, innerRef);\n const refs = useContext(TabsContext);\n\n const role = 'tab';\n\n const pilledAttr = view !== 'clear' && pilled;\n const animatedClass = animated ? classes.tabItemAnimated : undefined;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n const selectedClass = isActive || selected ? classes.selectedTabsItem : undefined;\n const truncateClass = maxWidth !== 'auto' ? classes.tabsTruncate : undefined;\n\n const hasKeyNavigation = itemIndex !== undefined && onIndexChange !== undefined;\n const navigationTabIndex = !disabled && refs?.current === itemIndex ? 0 : -1;\n\n useEffect(() => {\n if (!refs) {\n return;\n }\n\n refs.register(innerRef);\n\n return () => refs.unregister(innerRef);\n }, [refs]);\n\n useLayoutEffect(() => {\n if (!selected) {\n return;\n }\n\n innerRef.current?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [selected]);\n\n const onItemFocus = useCallback<React.FocusEventHandler>(\n (event) => {\n if (disabled) {\n return;\n }\n\n if (!hasKeyNavigation && innerRef?.current) {\n innerRef.current.scrollTo({\n top: 0,\n left: innerRef.current.offsetLeft,\n behavior: 'smooth',\n });\n\n return;\n }\n\n if (!refs) {\n return;\n }\n\n const focusIndex = refs.items.findIndex((itemRef) => itemRef.current === event.target);\n\n if (focusIndex === refs.current) {\n return;\n }\n\n onIndexChange?.(focusIndex);\n refs.setCurrent(focusIndex);\n },\n [refs, innerRef, onIndexChange, disabled],\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!onClick) {\n return;\n }\n\n onClick(event);\n };\n\n return (\n <Root\n ref={ref}\n disabled={disabled}\n pilled={pilled}\n role={role}\n view={view}\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n onFocus={onItemFocus}\n tabIndex={hasKeyNavigation ? navigationTabIndex : tabIndex}\n className={cx(pilledClass, selectedClass, animatedClass, truncateClass, className)}\n onClick={handleClick}\n {...rest}\n style={{\n ...rest.style,\n maxWidth,\n }}\n >\n <>\n {contentLeft && <LeftContent className={classes.tabLeftContent}>{contentLeft}</LeftContent>}\n <StyledContent className={classes.tabContent}>{children}</StyledContent>\n {!contentRight && value && <TabItemValue>{value}</TabItemValue>}\n {!value && contentRight && (\n <RightContent className={classes.tabRightContent}>{contentRight}</RightContent>\n )}\n </>\n </Root>\n );\n });\n\nexport const horizontalTabItemConfig = {\n name: 'HorizontalTabItem',\n tag: 'button',\n layout: horizontalTabItemRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["horizontalTabItemRoot","Root","forwardRef","props","outerRef","size","view","isActive","selected","_props$disabled","disabled","_props$pilled","pilled","children","value","contentLeft","contentRight","_props$animated","animated","onIndexChange","itemIndex","tabIndex","className","onClick","_props$maxItemWidth","maxItemWidth","maxWidth","rest","_objectWithoutProperties","_excluded","innerRef","useRef","ref","useForkRef","refs","useContext","TabsContext","role","pilledAttr","animatedClass","classes","tabItemAnimated","undefined","pilledClass","tabsPilled","selectedClass","selectedTabsItem","truncateClass","tabsTruncate","hasKeyNavigation","navigationTabIndex","current","useEffect","register","unregister","useLayoutEffect","_innerRef$current","scrollIntoView","block","inline","onItemFocus","useCallback","event","scrollTo","top","left","offsetLeft","behavior","focusIndex","items","findIndex","itemRef","target","setCurrent","handleClick","React","createElement","_extends","onFocus","cx","style","_objectSpread","Fragment","LeftContent","tabLeftContent","StyledContent","tabContent","TabItemValue","RightContent","tabRightContent","horizontalTabItemConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"HorizontalTabItem.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabItem/HorizontalTabItem.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useContext, useEffect, useCallback } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../../../engines';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabsContext } from '../../../TabsContext';\nimport { HorizontalTabItemProps } from '../../../TabItem.types';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { LeftContent, RightContent, StyledContent, TabItemValue, base } from './HorizontalTabItem.styles';\n\nexport const horizontalTabItemRoot = (Root: RootProps<HTMLDivElement, HorizontalTabItemProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabItemProps>((props, outerRef) => {\n const {\n size,\n view,\n isActive,\n selected,\n disabled = false,\n pilled = false,\n children,\n value,\n contentLeft,\n contentRight,\n animated = true,\n onIndexChange,\n itemIndex,\n tabIndex,\n className,\n onClick,\n maxItemWidth: maxWidth = 'auto',\n ...rest\n } = props;\n\n const innerRef = useRef<HTMLDivElement>(null);\n const ref = useForkRef(outerRef, innerRef);\n const refs = useContext(TabsContext);\n\n const role = 'tab';\n\n const pilledAttr = view !== 'clear' && pilled;\n const animatedClass = animated ? classes.tabItemAnimated : undefined;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n const selectedClass = isActive || selected ? classes.selectedTabsItem : undefined;\n const truncateClass = maxWidth !== 'auto' ? classes.tabsTruncate : undefined;\n\n const hasKeyNavigation = itemIndex !== undefined && onIndexChange !== undefined;\n const navigationTabIndex = !disabled && refs?.current === itemIndex ? 0 : -1;\n\n useEffect(() => {\n if (!refs) {\n return;\n }\n\n refs.register(innerRef);\n\n return () => refs.unregister(innerRef);\n }, [refs]);\n\n const onItemFocus = useCallback<React.FocusEventHandler>(\n (event) => {\n if (disabled) {\n return;\n }\n\n if (!hasKeyNavigation && innerRef?.current) {\n innerRef.current.scrollTo({\n top: 0,\n left: innerRef.current.offsetLeft,\n behavior: 'smooth',\n });\n\n return;\n }\n\n if (!refs) {\n return;\n }\n\n const focusIndex = refs.items.findIndex((itemRef) => itemRef.current === event.target);\n\n if (focusIndex === refs.current) {\n return;\n }\n\n onIndexChange?.(focusIndex);\n refs.setCurrent(focusIndex);\n },\n [refs, innerRef, onIndexChange, disabled],\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.currentTarget.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n if (!onClick) {\n return;\n }\n\n onClick(event);\n };\n\n return (\n <Root\n ref={ref}\n disabled={disabled}\n pilled={pilled}\n role={role}\n view={view}\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n onFocus={onItemFocus}\n tabIndex={hasKeyNavigation ? navigationTabIndex : tabIndex}\n className={cx(pilledClass, selectedClass, animatedClass, truncateClass, className)}\n onClick={handleClick}\n {...rest}\n style={{\n ...rest.style,\n maxWidth,\n }}\n >\n <>\n {contentLeft && <LeftContent className={classes.tabLeftContent}>{contentLeft}</LeftContent>}\n <StyledContent className={classes.tabContent}>{children}</StyledContent>\n {!contentRight && value && <TabItemValue>{value}</TabItemValue>}\n {!value && contentRight && (\n <RightContent className={classes.tabRightContent}>{contentRight}</RightContent>\n )}\n </>\n </Root>\n );\n });\n\nexport const horizontalTabItemConfig = {\n name: 'HorizontalTabItem',\n tag: 'button',\n layout: horizontalTabItemRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["horizontalTabItemRoot","Root","forwardRef","props","outerRef","size","view","isActive","selected","_props$disabled","disabled","_props$pilled","pilled","children","value","contentLeft","contentRight","_props$animated","animated","onIndexChange","itemIndex","tabIndex","className","onClick","_props$maxItemWidth","maxItemWidth","maxWidth","rest","_objectWithoutProperties","_excluded","innerRef","useRef","ref","useForkRef","refs","useContext","TabsContext","role","pilledAttr","animatedClass","classes","tabItemAnimated","undefined","pilledClass","tabsPilled","selectedClass","selectedTabsItem","truncateClass","tabsTruncate","hasKeyNavigation","navigationTabIndex","current","useEffect","register","unregister","onItemFocus","useCallback","event","scrollTo","top","left","offsetLeft","behavior","focusIndex","items","findIndex","itemRef","target","setCurrent","handleClick","currentTarget","scrollIntoView","block","inline","React","createElement","_extends","onFocus","cx","style","_objectSpread","Fragment","LeftContent","tabLeftContent","StyledContent","tabContent","TabItemValue","RightContent","tabRightContent","horizontalTabItemConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","defaults"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import React, { forwardRef, useState, useMemo, useRef, useCallback, useLayoutEffect } from 'react';
2
+ import React, { forwardRef, useState, useMemo, useRef, useCallback, useEffect } from 'react';
3
3
  import { safeUseId } from '@salutejs/plasma-core';
4
4
  import { classes } from '../../../tokens.js';
5
5
  import { cx } from '../../../../../utils/index.js';
6
6
  import { TabItemRefs, TabsContext } from '../../../TabsContext.js';
7
- import { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils/index.js';
8
7
  import { base as base$1 } from './variations/_size/base.js';
9
8
  import { base as base$2 } from './variations/_view/base.js';
10
9
  import { base as base$3 } from './variations/_disabled/base.js';
@@ -77,7 +76,13 @@ var horizontalTabsRoot = function horizontalTabsRoot(Root) {
77
76
  return;
78
77
  }
79
78
  var scrollLeft = Math.round(scrollRef.current.scrollLeft);
80
- var firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollLeft);
79
+ var firstOverflowingTab = refs.items.slice().reverse().find(function (item) {
80
+ if (!item.current || item.current.offsetLeft === undefined) {
81
+ return;
82
+ }
83
+ var tabStartX = item.current.offsetLeft;
84
+ return tabStartX < scrollLeft;
85
+ });
81
86
  firstOverflowingTab === null || firstOverflowingTab === void 0 || (_firstOverflowingTab$ = firstOverflowingTab.current) === null || _firstOverflowingTab$ === void 0 || _firstOverflowingTab$.scrollIntoView({
82
87
  block: 'nearest',
83
88
  inline: 'start'
@@ -89,7 +94,13 @@ var horizontalTabsRoot = function horizontalTabsRoot(Root) {
89
94
  return;
90
95
  }
91
96
  var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
92
- var lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight);
97
+ var lastOverflowingTab = refs.items.find(function (item) {
98
+ if (!item.current || item.current.offsetLeft === undefined) {
99
+ return;
100
+ }
101
+ var tabEndX = item.current.offsetLeft + item.current.offsetWidth;
102
+ return tabEndX > scrollRight;
103
+ });
93
104
  lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c = lastOverflowingTab.current) === null || _lastOverflowingTab$c === void 0 || _lastOverflowingTab$c.scrollIntoView({
94
105
  block: 'nearest',
95
106
  inline: 'end'
@@ -164,22 +175,18 @@ var horizontalTabsRoot = function horizontalTabsRoot(Root) {
164
175
  });
165
176
  }
166
177
  }, [index]);
167
- useLayoutEffect(function () {
178
+ useEffect(function () {
168
179
  var _scrollRef$current, _scrollRef$current2;
169
180
  setLastItemVisible(((_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollWidth) === ((_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientWidth));
170
181
  }, []);
171
182
 
172
183
  // Этот хук компенсирует появление левой стрелки при прокрутке
173
- useLayoutEffect(function () {
174
- var _lastOverflowingTab$c2;
184
+ useEffect(function () {
175
185
  if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {
176
186
  return;
177
187
  }
178
- var scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);
179
- var lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight);
180
- lastOverflowingTab === null || lastOverflowingTab === void 0 || (_lastOverflowingTab$c2 = lastOverflowingTab.current) === null || _lastOverflowingTab$c2 === void 0 || _lastOverflowingTab$c2.scrollIntoView({
181
- block: 'nearest',
182
- inline: 'end'
188
+ scrollRef.current.scrollTo({
189
+ left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth)
183
190
  });
184
191
  }, [firstItemVisible, scrollRef, leftArrowRef]);
185
192
  return /*#__PURE__*/React.createElement(TabsContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalTabs.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useRef, KeyboardEvent, useLayoutEffect } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines/types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { HorizontalTabsProps } from '../../../Tabs.types';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { StyledArrow, StyledContent, StyledContentWrapper, base } from './HorizontalTabs.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nconst getIconSize = (size?: string) => {\n return size === 'h1' || size === 'h2' ? 'm' : 's';\n};\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const horizontalTabsRoot = (Root: RootProps<HTMLDivElement, HorizontalTabsProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabsProps>((props, outerRef) => {\n const {\n id,\n stretch = false,\n disabled = false,\n clip = 'scroll',\n size,\n view,\n children,\n pilled = false,\n index,\n className,\n hasDivider = true,\n ...rest\n } = props;\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(true);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const isFilled = view === 'filled'; // outer padding is only for filled view\n const pilledAttr = view !== 'clear' && pilled;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;\n const hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;\n const hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollLeft = Math.round(scrollRef.current.scrollLeft);\n const firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollLeft);\n\n firstOverflowingTab?.current?.scrollIntoView({ block: 'nearest', inline: 'start' });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight);\n\n lastOverflowingTab?.current?.scrollIntoView({ block: 'nearest', inline: 'end' });\n }, [disabled, scrollRef, refs]);\n\n const PreviousButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n ref={leftArrowRef}\n isLeftArrow\n >\n <IconDisclosureLeft size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onPrev, size, disabled, isFilled],\n );\n\n const NextButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n >\n <IconDisclosureRight size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onNext, size, disabled, isFilled],\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= 0);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth);\n }, []);\n\n // Этот хук компенсирует появление левой стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight);\n\n lastOverflowingTab?.current?.scrollIntoView({ block: 'nearest', inline: 'end' });\n }, [firstItemVisible, scrollRef, leftArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n pilled={pilled}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(\n pilledClass,\n stretchClass,\n hasLeftArrowClass,\n hasRightArrowClass,\n noDividerClass,\n className,\n )}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const horizontalTabsConfig = {\n name: 'HorizontalTabs',\n tag: 'div',\n layout: horizontalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getIconSize","size","horizontalTabsRoot","Root","forwardRef","props","outerRef","id","_props$stretch","stretch","_props$disabled","disabled","_props$clip","clip","view","children","_props$pilled","pilled","index","className","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","isFilled","pilledAttr","pilledClass","classes","tabsPilled","undefined","noDividerClass","tabsNoDivider","stretchClass","tabsStretch","hasLeftArrowClass","tabsHasLeftArrow","hasRightArrowClass","tabsHasRightArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","leftArrowRef","onPrev","useCallback","_firstOverflowingTab$","current","scrollLeft","Math","round","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","scrollIntoView","block","inline","onNext","_lastOverflowingTab$c","scrollRight","clientWidth","lastOverflowingTab","getLastOverflowingTab","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","isLeftArrow","IconDisclosureLeft","color","NextButton","IconDisclosureRight","handleScroll","event","stopPropagation","maxScrollLeft","currentTarget","scrollWidth","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","left","right","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","_lastOverflowingTab$c2","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","horizontalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","stretchCSS","pilledCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"HorizontalTabs.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines/types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { HorizontalTabsProps } from '../../../Tabs.types';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { StyledArrow, StyledContent, StyledContentWrapper, base } from './HorizontalTabs.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nconst getIconSize = (size?: string) => {\n return size === 'h1' || size === 'h2' ? 'm' : 's';\n};\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const horizontalTabsRoot = (Root: RootProps<HTMLDivElement, HorizontalTabsProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabsProps>((props, outerRef) => {\n const {\n id,\n stretch = false,\n disabled = false,\n clip = 'scroll',\n size,\n view,\n children,\n pilled = false,\n index,\n className,\n hasDivider = true,\n ...rest\n } = props;\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(true);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const isFilled = view === 'filled'; // outer padding is only for filled view\n const pilledAttr = view !== 'clear' && pilled;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;\n const hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;\n const hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollLeft = Math.round(scrollRef.current.scrollLeft);\n const firstOverflowingTab = refs.items\n .slice()\n .reverse()\n .find((item: MutableRefObject<HTMLElement | null>) => {\n if (!item.current || item.current.offsetLeft === undefined) {\n return;\n }\n const tabStartX = item.current.offsetLeft;\n\n return tabStartX < scrollLeft;\n });\n\n firstOverflowingTab?.current?.scrollIntoView({ block: 'nearest', inline: 'start' });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = refs.items.find((item: MutableRefObject<HTMLElement | null>) => {\n if (!item.current || item.current.offsetLeft === undefined) {\n return;\n }\n const tabEndX = item.current.offsetLeft + item.current.offsetWidth;\n\n return tabEndX > scrollRight;\n });\n\n lastOverflowingTab?.current?.scrollIntoView({ block: 'nearest', inline: 'end' });\n }, [disabled, scrollRef, refs]);\n\n const PreviousButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n ref={leftArrowRef}\n isLeftArrow\n >\n <IconDisclosureLeft size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onPrev, size, disabled, isFilled],\n );\n\n const NextButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n >\n <IconDisclosureRight size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onNext, size, disabled, isFilled],\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= 0);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth);\n }, []);\n\n // Этот хук компенсирует появление левой стрелки при прокрутке\n useEffect(() => {\n if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n\n scrollRef.current.scrollTo({\n left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth),\n });\n }, [firstItemVisible, scrollRef, leftArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n pilled={pilled}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(\n pilledClass,\n stretchClass,\n hasLeftArrowClass,\n hasRightArrowClass,\n noDividerClass,\n className,\n )}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const horizontalTabsConfig = {\n name: 'HorizontalTabs',\n tag: 'div',\n layout: horizontalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getIconSize","size","horizontalTabsRoot","Root","forwardRef","props","outerRef","id","_props$stretch","stretch","_props$disabled","disabled","_props$clip","clip","view","children","_props$pilled","pilled","index","className","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","isFilled","pilledAttr","pilledClass","classes","tabsPilled","undefined","noDividerClass","tabsNoDivider","stretchClass","tabsStretch","hasLeftArrowClass","tabsHasLeftArrow","hasRightArrowClass","tabsHasRightArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","leftArrowRef","onPrev","useCallback","_firstOverflowingTab$","current","scrollLeft","Math","round","firstOverflowingTab","items","slice","reverse","find","item","offsetLeft","tabStartX","scrollIntoView","block","inline","onNext","_lastOverflowingTab$c","scrollRight","clientWidth","lastOverflowingTab","tabEndX","offsetWidth","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","isLeftArrow","IconDisclosureLeft","color","NextButton","IconDisclosureRight","handleScroll","event","stopPropagation","maxScrollLeft","currentTarget","scrollWidth","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","left","right","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","behavior","useEffect","_scrollRef$current","_scrollRef$current2","scrollTo","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","horizontalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","stretchCSS","pilledCSS","defaults"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, objectSpread2 as _objectSpread2 } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import React, { forwardRef, useRef, useContext, useEffect, useLayoutEffect, useCallback } from 'react';
2
+ import React, { forwardRef, useRef, useContext, useEffect, useCallback } from 'react';
3
3
  import { useForkRef } from '@salutejs/plasma-core';
4
4
  import { classes } from '../../../tokens.js';
5
5
  import { cx } from '../../../../../utils/index.js';
@@ -46,16 +46,6 @@ var verticalTabItemRoot = function verticalTabItemRoot(Root) {
46
46
  return refs.unregister(innerRef);
47
47
  };
48
48
  }, [refs]);
49
- useLayoutEffect(function () {
50
- var _innerRef$current;
51
- if (!selected) {
52
- return;
53
- }
54
- (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 || _innerRef$current.scrollIntoView({
55
- block: 'nearest',
56
- inline: 'nearest'
57
- });
58
- }, [selected]);
59
49
  var onItemFocus = useCallback(function (event) {
60
50
  if (disabled) {
61
51
  return;
@@ -80,6 +70,10 @@ var verticalTabItemRoot = function verticalTabItemRoot(Root) {
80
70
  refs.setCurrent(focusIndex);
81
71
  }, [refs, innerRef, onIndexChange, disabled]);
82
72
  var handleClick = function handleClick(event) {
73
+ event.currentTarget.scrollIntoView({
74
+ block: 'nearest',
75
+ inline: 'nearest'
76
+ });
83
77
  if (!onClick) {
84
78
  return;
85
79
  }