@salutejs/plasma-new-hope 0.327.0-canary.1741.15775036215.0 → 0.327.0-canary.1741.15776056320.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +2 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.js +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/cjs/components/Radiobox/Radiobox.js +3 -2
- package/cjs/components/Radiobox/Radiobox.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/cjs/components/Select/FloatingPopover.js +2 -2
- package/cjs/components/Select/FloatingPopover.js.map +1 -1
- package/cjs/components/Select/Select.js +2 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/ui/Inner/Inner.js +2 -2
- package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +2 -2
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/cjs/components/TextField/TextField.js +4 -3
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Checkbox/Checkbox.js +3 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
- package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
- package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
- package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
- package/emotion/cjs/components/Dropdown/Dropdown.js +8 -8
- package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
- package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
- package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
- package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
- package/emotion/cjs/components/Select/Select.js +1 -2
- package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -2
- package/emotion/cjs/components/Spinner/Spinner.js +2 -2
- package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
- package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
- package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/cjs/components/TextField/TextField.js +4 -4
- package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
- package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/emotion/es/components/Checkbox/Checkbox.js +2 -1
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/emotion/es/components/Dropdown/Dropdown.js +1 -1
- package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
- package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/es/components/Radiobox/Radiobox.js +2 -2
- package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
- package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/emotion/es/components/Select/FloatingPopover.js +1 -1
- package/emotion/es/components/Select/Select.js +1 -2
- package/emotion/es/components/Select/ui/Inner/Inner.js +1 -2
- package/emotion/es/components/Spinner/Spinner.js +1 -1
- package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
- package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
- package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/TextField/TextField.js +3 -3
- package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js.map +1 -1
- package/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/es/components/Checkbox/Checkbox.js +2 -1
- package/es/components/Checkbox/Checkbox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/es/components/Dropdown/Dropdown.js +1 -1
- package/es/components/Dropdown/Dropdown.js.map +1 -1
- package/es/components/Dropdown/FloatingPopover.js +1 -1
- package/es/components/Dropdown/FloatingPopover.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/es/components/Radiobox/Radiobox.js +3 -2
- package/es/components/Radiobox/Radiobox.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/es/components/Select/FloatingPopover.js +1 -1
- package/es/components/Select/FloatingPopover.js.map +1 -1
- package/es/components/Select/Select.js +1 -1
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/ui/Inner/Inner.js +1 -1
- package/es/components/Select/ui/Inner/Inner.js.map +1 -1
- package/es/components/Spinner/Spinner.js +1 -1
- package/es/components/Spinner/Spinner.js.map +1 -1
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/es/components/TextField/TextField.js +2 -1
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/package.json +4 -4
- package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Checkbox/Checkbox.js +3 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
- package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
- package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
- package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
- package/styled-components/cjs/components/Dropdown/Dropdown.js +8 -8
- package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
- package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
- package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
- package/styled-components/cjs/components/Select/Select.js +1 -2
- package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -2
- package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
- package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
- package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
- package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/cjs/components/TextField/TextField.js +3 -3
- package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
- package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/styled-components/es/components/Checkbox/Checkbox.js +2 -1
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
- package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
- package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
- package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/styled-components/es/components/Select/FloatingPopover.js +1 -1
- package/styled-components/es/components/Select/Select.js +1 -2
- package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -2
- package/styled-components/es/components/Spinner/Spinner.js +1 -1
- package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
- package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
- package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/TextField/TextField.js +2 -2
- package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
- package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
- package/types/components/Radiobox/Radiobox.d.ts +2 -2
- package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
- package/types/components/Spinner/Spinner.d.ts +1 -1
- package/types/components/Spinner/Spinner.d.ts.map +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
- package/types/components/TextField/TextField.d.ts +1 -1
- package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Inner.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '
|
1
|
+
{"version":3,"file":"Inner.js","sources":["../../../../../../src/components/Combobox/ComboboxNew/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { isEmpty } from '../../../../../utils';\nimport { Ul, ListWrapper } from '../../Combobox.styles';\n\nimport type { ItemOptionTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right-start'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: ItemOptionTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","nextLevel","isEmpty","items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":"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"}
|
@@ -11,6 +11,7 @@ var base = require('./variations/_view/base.js');
|
|
11
11
|
var base$1 = require('./variations/_size/base.js');
|
12
12
|
var Combobox_styles = require('./Combobox.styles.js');
|
13
13
|
var useForceUpdate = require('../../../hooks/useForceUpdate.js');
|
14
|
+
var react = require('../../../utils/react.js');
|
14
15
|
var useDidMountEffect = require('../../../hooks/useDidMountEffect.js');
|
15
16
|
var useKeyNavigation = require('./hooks/useKeyNavigation.js');
|
16
17
|
var ComboboxTarget = require('./ui/ComboboxTarget/ComboboxTarget.js');
|
@@ -48,7 +49,7 @@ const comboboxRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
48
49
|
...rest
|
49
50
|
}, outerRootRef) => {
|
50
51
|
const forceUpdate = useForceUpdate.useForceUpdate();
|
51
|
-
const uniqId =
|
52
|
+
const uniqId = react.safeUseId();
|
52
53
|
const innerId = id || uniqId;
|
53
54
|
const {
|
54
55
|
valueType = 'single',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxOld/Combobox.tsx"],"sourcesContent":["import React, { Children, forwardRef, useEffect, useRef, useState } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../../engines';\nimport { cx, getPlacements } from '../../../utils';\nimport { useDidMountEffect, useForceUpdate } from '../../../hooks';\n\nimport { getChildren, getNewSelected, getValues } from './utils';\nimport { useKeyNavigation } from './hooks';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { ComboboxTarget } from './ui';\nimport { ComboboxItemNotFound, StyledPopover, StyledRoot, StyledCombobox, StyledNativeSelect } from './Combobox.styles';\nimport type { ComboboxPrimitiveValue, ComboboxProps } from './Combobox.types';\n\n/**\n * Выпадающий список без внешнего контроля видимости.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, ComboboxProps>) =>\n forwardRef<HTMLInputElement, ComboboxProps>(\n (\n {\n name,\n form,\n readOnly,\n disabled,\n label,\n placeholder,\n id,\n children,\n role,\n view,\n size,\n frame,\n usePortal,\n negativeResultContent = 'Элементы не найдены',\n enumerationType = 'comma',\n opened = false,\n alwaysOpened = false,\n placement = 'bottom',\n onToggle,\n onKeyDown,\n filterFunction,\n ...rest\n },\n outerRootRef,\n ) => {\n const forceUpdate = useForceUpdate();\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const { valueType = 'single', value } = rest;\n const offset = [0, 4] as [number, number];\n\n const [ref, setRef] = useState<HTMLInputElement | null>(null);\n\n const targetRef = useRef<HTMLInputElement>(null);\n const chipsRefs = useRef<Array<HTMLButtonElement>>([]);\n const comboboxRef = useRef<HTMLDivElement>(null);\n const itemsRefs = useRef<Array<HTMLDivElement>>([]);\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef<HTMLInputElement>(targetRef, outerRootRef);\n const controlledRefs = { targetRef, chipsRefs, selectRef: comboboxRef, itemsRefs, inputRef };\n\n const [isVisible, setIsVisible] = useState(alwaysOpened || opened);\n const [search, setSearch] = useState<string | undefined>('');\n const [filterValue, setFilterValue] = useState(search);\n\n // INFO: нужно высчитывать для корректной работы портала\n const dynamicTargetWidth = targetRef.current?.offsetWidth;\n\n // INFO: Из-за того, что классы передаются через ref,\n // состояние пропсов после изменения view, size\n // всегда предыдущее, поэтому нужно делать форс-ререндер\n useDidMountEffect(() => {\n forceUpdate();\n }, [view, size]);\n\n useEffect(() => {\n if (disabled || readOnly) {\n return;\n }\n\n setIsVisible(alwaysOpened || opened);\n }, [opened, alwaysOpened, disabled, readOnly]);\n\n useEffect(() => {\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (alwaysOpened || opened) {\n setFilterValue('');\n }\n }, []);\n\n const onInnerToggle = (openValue: boolean, event: React.SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (!isVisible) {\n setFilterValue('');\n }\n\n if (onToggle) {\n onToggle(alwaysOpened || openValue, event);\n\n return;\n }\n\n setIsVisible(alwaysOpened || openValue);\n };\n\n const closedWithoutChanges = useRef(true);\n\n const updateValue = (item: HTMLElement, event: React.SyntheticEvent | Event) => {\n const {\n dataset: { value: newValue },\n } = item;\n\n if (rest.valueType === 'multiple') {\n const newSelected = getNewSelected(rest.value, newValue, rest.valueType);\n rest.onChangeValue?.(newSelected);\n\n return;\n }\n\n const newSelected = getNewSelected(rest.value, newValue, 'single');\n\n rest.onChangeValue?.(newSelected);\n\n onInnerToggle?.(alwaysOpened || false, event);\n\n closedWithoutChanges.current = false;\n };\n\n const onClickChildrenItem = (event: React.MouseEvent<HTMLDivElement>) => {\n // INFO: Для корректной работы компонента Popper\n event.stopPropagation();\n\n const item = event.currentTarget as HTMLElement;\n\n updateValue(item, event);\n };\n\n const onChangeChipValue = (newValue?: Array<ComboboxPrimitiveValue>) => {\n if (rest.valueType !== 'multiple') {\n return;\n }\n\n rest.onChangeValue?.(newValue);\n };\n\n const { onKeyDownTarget, onKeyDownSelect } = useKeyNavigation({\n controlledRefs,\n opened: isVisible,\n enumerationType,\n valueType,\n componentType: 'combobox',\n value,\n search: filterValue,\n updateOpened: onInnerToggle,\n updateValue,\n });\n\n const childrenArray = Children.toArray(children) as React.ReactElement[];\n\n const childrenMemo = getChildren(\n childrenArray,\n { onClick: onClickChildrenItem, childrenRefs: itemsRefs },\n value,\n filterValue,\n filterFunction,\n ).filter(Boolean);\n\n const values = getValues(childrenArray, value);\n\n const onSearch = (newSearch?: string, newOpened?: boolean) => {\n setSearch(newSearch);\n setFilterValue(newSearch);\n setIsVisible(newOpened ?? true);\n };\n\n const onKeyDownHandle = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n onKeyDownTarget(event);\n };\n\n useEffect(() => {\n if (alwaysOpened && rest.valueType === 'single') {\n setSearch(String(value));\n }\n }, [value, alwaysOpened]);\n\n return (\n <StyledRoot ref={comboboxRef}>\n <StyledNativeSelect\n aria-invalid=\"false\"\n aria-hidden=\"true\"\n aria-readonly={readOnly}\n tabIndex={-1}\n form={form}\n name={name}\n value={`${value}`}\n disabled={disabled || readOnly}\n />\n <StyledPopover\n role={role}\n opened={isVisible}\n onToggle={onInnerToggle}\n target={\n <ComboboxTarget\n opened={isVisible}\n values={values}\n label={label}\n placeholder={placeholder}\n search={search}\n enumerationType={enumerationType}\n valueType={valueType}\n readOnly={readOnly}\n disabled={disabled}\n size={size}\n closedWithoutChanges={closedWithoutChanges}\n ref={handleRef}\n chipsRefs={chipsRefs}\n inputRef={inputRef}\n id={innerId}\n onChange={onChangeChipValue}\n onSearch={onSearch}\n onKeyDown={onKeyDownHandle}\n {...rest}\n />\n }\n className={cx(ref?.classList.toString())} // INFO: Прокидываем стили для Popover\n id={innerId}\n offset={offset}\n placement={getPlacements(placement)}\n usePortal={usePortal}\n selectWidth={dynamicTargetWidth}\n frame={frame}\n trigger=\"click\"\n isFocusTrapped={false}\n preventOverflow={false}\n closeOnEsc={false}\n closeOnOverlayClick\n >\n <Root ref={setRef} view={view} size={size}>\n <StyledCombobox onKeyDown={onKeyDownSelect}>\n {childrenMemo.length ? (\n childrenMemo\n ) : (\n <ComboboxItemNotFound>{negativeResultContent}</ComboboxItemNotFound>\n )}\n </StyledCombobox>\n </Root>\n </StyledPopover>\n </StyledRoot>\n );\n },\n );\n\nexport const comboboxConfig = {\n name: 'Combobox',\n tag: 'div',\n layout: comboboxRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","name","form","readOnly","disabled","label","placeholder","id","children","role","view","size","frame","usePortal","negativeResultContent","enumerationType","opened","alwaysOpened","placement","onToggle","onKeyDown","filterFunction","rest","outerRootRef","forceUpdate","useForceUpdate","uniqId","safeUseId","innerId","valueType","value","offset","ref","setRef","useState","targetRef","useRef","chipsRefs","comboboxRef","itemsRefs","inputRef","handleRef","useForkRef","controlledRefs","selectRef","isVisible","setIsVisible","search","setSearch","filterValue","setFilterValue","dynamicTargetWidth","current","offsetWidth","useDidMountEffect","useEffect","onInnerToggle","openValue","event","closedWithoutChanges","updateValue","item","dataset","newValue","newSelected","getNewSelected","onChangeValue","onClickChildrenItem","stopPropagation","currentTarget","onChangeChipValue","onKeyDownTarget","onKeyDownSelect","useKeyNavigation","componentType","updateOpened","childrenArray","Children","toArray","childrenMemo","getChildren","onClick","childrenRefs","filter","Boolean","values","getValues","onSearch","newSearch","newOpened","onKeyDownHandle","String","React","createElement","StyledRoot","StyledNativeSelect","tabIndex","StyledPopover","target","ComboboxTarget","_extends","onChange","className","cx","classList","toString","getPlacements","selectWidth","trigger","isFocusTrapped","preventOverflow","closeOnEsc","closeOnOverlayClick","StyledCombobox","length","ComboboxItemNotFound","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA;AACA;AACA;MACaA,YAAY,GAAIC,IAAgD,iBACzEC,gBAAU,CACN,CACI;EACIC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,EAAE;EACFC,QAAQ;EACRC,IAAI;EACJC,IAAI;EACJC,IAAI;EACJC,KAAK;EACLC,SAAS;AACTC,EAAAA,qBAAqB,GAAG,qBAAqB;AAC7CC,EAAAA,eAAe,GAAG,OAAO;AACzBC,EAAAA,MAAM,GAAG,KAAK;AACdC,EAAAA,YAAY,GAAG,KAAK;AACpBC,EAAAA,SAAS,GAAG,QAAQ;EACpBC,QAAQ;EACRC,SAAS;EACTC,cAAc;EACd,GAAGC,IAAAA;AACP,CAAC,EACDC,YAAY,KACX;AACD,EAAA,MAAMC,WAAW,GAAGC,6BAAc,EAAE,CAAA;AACpC,EAAA,MAAMC,MAAM,GAAGC,oBAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGrB,EAAE,IAAImB,MAAM,CAAA;EAC5B,MAAM;AAAEG,IAAAA,SAAS,GAAG,QAAQ;AAAEC,IAAAA,KAAAA;AAAM,GAAC,GAAGR,IAAI,CAAA;AAC5C,EAAA,MAAMS,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAA;EAEzC,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAGC,cAAQ,CAA0B,IAAI,CAAC,CAAA;AAE7D,EAAA,MAAMC,SAAS,GAAGC,YAAM,CAAmB,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMC,SAAS,GAAGD,YAAM,CAA2B,EAAE,CAAC,CAAA;AACtD,EAAA,MAAME,WAAW,GAAGF,YAAM,CAAiB,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMG,SAAS,GAAGH,YAAM,CAAwB,EAAE,CAAC,CAAA;AACnD,EAAA,MAAMI,QAAQ,GAAGJ,YAAM,CAAmB,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAMK,SAAS,GAAGC,qBAAU,CAAmBP,SAAS,EAAEZ,YAAY,CAAC,CAAA;AACvE,EAAA,MAAMoB,cAAc,GAAG;IAAER,SAAS;IAAEE,SAAS;AAAEO,IAAAA,SAAS,EAAEN,WAAW;IAAEC,SAAS;AAAEC,IAAAA,QAAAA;GAAU,CAAA;EAE5F,MAAM,CAACK,SAAS,EAAEC,YAAY,CAAC,GAAGZ,cAAQ,CAACjB,YAAY,IAAID,MAAM,CAAC,CAAA;EAClE,MAAM,CAAC+B,MAAM,EAAEC,SAAS,CAAC,GAAGd,cAAQ,CAAqB,EAAE,CAAC,CAAA;EAC5D,MAAM,CAACe,WAAW,EAAEC,cAAc,CAAC,GAAGhB,cAAQ,CAACa,MAAM,CAAC,CAAA;;AAEtD;AACA,EAAA,MAAMI,kBAAkB,GAAGhB,SAAS,CAACiB,OAAO,EAAEC,WAAW,CAAA;;AAEzD;AACA;AACA;AACAC,EAAAA,mCAAiB,CAAC,MAAM;AACpB9B,IAAAA,WAAW,EAAE,CAAA;AACjB,GAAC,EAAE,CAACd,IAAI,EAAEC,IAAI,CAAC,CAAC,CAAA;AAEhB4C,EAAAA,eAAS,CAAC,MAAM;IACZ,IAAInD,QAAQ,IAAID,QAAQ,EAAE;AACtB,MAAA,OAAA;AACJ,KAAA;AAEA2C,IAAAA,YAAY,CAAC7B,YAAY,IAAID,MAAM,CAAC,CAAA;GACvC,EAAE,CAACA,MAAM,EAAEC,YAAY,EAAEb,QAAQ,EAAED,QAAQ,CAAC,CAAC,CAAA;AAE9CoD,EAAAA,eAAS,CAAC,MAAM;AACZ;IACA,IAAItC,YAAY,IAAID,MAAM,EAAE;MACxBkC,cAAc,CAAC,EAAE,CAAC,CAAA;AACtB,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMM,aAAa,GAAGA,CAACC,SAAkB,EAAEC,KAAmC,KAAK;IAC/E,IAAItD,QAAQ,IAAID,QAAQ,EAAE;AACtB,MAAA,OAAA;AACJ,KAAA;;AAEA;IACA,IAAI,CAAC0C,SAAS,EAAE;MACZK,cAAc,CAAC,EAAE,CAAC,CAAA;AACtB,KAAA;AAEA,IAAA,IAAI/B,QAAQ,EAAE;AACVA,MAAAA,QAAQ,CAACF,YAAY,IAAIwC,SAAS,EAAEC,KAAK,CAAC,CAAA;AAE1C,MAAA,OAAA;AACJ,KAAA;AAEAZ,IAAAA,YAAY,CAAC7B,YAAY,IAAIwC,SAAS,CAAC,CAAA;GAC1C,CAAA;AAED,EAAA,MAAME,oBAAoB,GAAGvB,YAAM,CAAC,IAAI,CAAC,CAAA;AAEzC,EAAA,MAAMwB,WAAW,GAAGA,CAACC,IAAiB,EAAEH,KAAmC,KAAK;IAC5E,MAAM;AACFI,MAAAA,OAAO,EAAE;AAAEhC,QAAAA,KAAK,EAAEiC,QAAAA;AAAS,OAAA;AAC/B,KAAC,GAAGF,IAAI,CAAA;AAER,IAAA,IAAIvC,IAAI,CAACO,SAAS,KAAK,UAAU,EAAE;AAC/B,MAAA,MAAMmC,WAAW,GAAGC,oBAAc,CAAC3C,IAAI,CAACQ,KAAK,EAAEiC,QAAQ,EAAEzC,IAAI,CAACO,SAAS,CAAC,CAAA;AACxEP,MAAAA,IAAI,CAAC4C,aAAa,GAAGF,WAAW,CAAC,CAAA;AAEjC,MAAA,OAAA;AACJ,KAAA;IAEA,MAAMA,WAAW,GAAGC,oBAAc,CAAC3C,IAAI,CAACQ,KAAK,EAAEiC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAElEzC,IAAAA,IAAI,CAAC4C,aAAa,GAAGF,WAAW,CAAC,CAAA;AAEjCR,IAAAA,aAAa,GAAGvC,YAAY,IAAI,KAAK,EAAEyC,KAAK,CAAC,CAAA;IAE7CC,oBAAoB,CAACP,OAAO,GAAG,KAAK,CAAA;GACvC,CAAA;EAED,MAAMe,mBAAmB,GAAIT,KAAuC,IAAK;AACrE;IACAA,KAAK,CAACU,eAAe,EAAE,CAAA;AAEvB,IAAA,MAAMP,IAAI,GAAGH,KAAK,CAACW,aAA4B,CAAA;AAE/CT,IAAAA,WAAW,CAACC,IAAI,EAAEH,KAAK,CAAC,CAAA;GAC3B,CAAA;EAED,MAAMY,iBAAiB,GAAIP,QAAwC,IAAK;AACpE,IAAA,IAAIzC,IAAI,CAACO,SAAS,KAAK,UAAU,EAAE;AAC/B,MAAA,OAAA;AACJ,KAAA;AAEAP,IAAAA,IAAI,CAAC4C,aAAa,GAAGH,QAAQ,CAAC,CAAA;GACjC,CAAA;EAED,MAAM;IAAEQ,eAAe;AAAEC,IAAAA,eAAAA;GAAiB,GAAGC,iCAAgB,CAAC;IAC1D9B,cAAc;AACd3B,IAAAA,MAAM,EAAE6B,SAAS;IACjB9B,eAAe;IACfc,SAAS;AACT6C,IAAAA,aAAa,EAAE,UAAU;IACzB5C,KAAK;AACLiB,IAAAA,MAAM,EAAEE,WAAW;AACnB0B,IAAAA,YAAY,EAAEnB,aAAa;AAC3BI,IAAAA,WAAAA;AACJ,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMgB,aAAa,GAAGC,cAAQ,CAACC,OAAO,CAACtE,QAAQ,CAAyB,CAAA;AAExE,EAAA,MAAMuE,YAAY,GAAGC,iBAAW,CAC5BJ,aAAa,EACb;AAAEK,IAAAA,OAAO,EAAEd,mBAAmB;AAAEe,IAAAA,YAAY,EAAE3C,SAAAA;GAAW,EACzDT,KAAK,EACLmB,WAAW,EACX5B,cACJ,CAAC,CAAC8D,MAAM,CAACC,OAAO,CAAC,CAAA;AAEjB,EAAA,MAAMC,MAAM,GAAGC,eAAS,CAACV,aAAa,EAAE9C,KAAK,CAAC,CAAA;AAE9C,EAAA,MAAMyD,QAAQ,GAAGA,CAACC,SAAkB,EAAEC,SAAmB,KAAK;IAC1DzC,SAAS,CAACwC,SAAS,CAAC,CAAA;IACpBtC,cAAc,CAACsC,SAAS,CAAC,CAAA;AACzB1C,IAAAA,YAAY,CAAC2C,SAAS,IAAI,IAAI,CAAC,CAAA;GAClC,CAAA;EAED,MAAMC,eAAe,GAAIhC,KAA4C,IAAK;IACtEtC,SAAS,GAAGsC,KAAK,CAAC,CAAA;IAClBa,eAAe,CAACb,KAAK,CAAC,CAAA;GACzB,CAAA;AAEDH,EAAAA,eAAS,CAAC,MAAM;AACZ,IAAA,IAAItC,YAAY,IAAIK,IAAI,CAACO,SAAS,KAAK,QAAQ,EAAE;AAC7CmB,MAAAA,SAAS,CAAC2C,MAAM,CAAC7D,KAAK,CAAC,CAAC,CAAA;AAC5B,KAAA;AACJ,GAAC,EAAE,CAACA,KAAK,EAAEb,YAAY,CAAC,CAAC,CAAA;AAEzB,EAAA,oBACI2E,sBAAA,CAAAC,aAAA,CAACC,0BAAU,EAAA;AAAC9D,IAAAA,GAAG,EAAEM,WAAAA;AAAY,GAAA,eACzBsD,sBAAA,CAAAC,aAAA,CAACE,kCAAkB,EAAA;AACf,IAAA,cAAA,EAAa,OAAO;AACpB,IAAA,aAAA,EAAY,MAAM;AAClB,IAAA,eAAA,EAAe5F,QAAS;IACxB6F,QAAQ,EAAE,CAAC,CAAE;AACb9F,IAAAA,IAAI,EAAEA,IAAK;AACXD,IAAAA,IAAI,EAAEA,IAAK;IACX6B,KAAK,EAAE,CAAGA,EAAAA,KAAK,CAAG,CAAA;IAClB1B,QAAQ,EAAEA,QAAQ,IAAID,QAAAA;AAAS,GAClC,CAAC,eACFyF,sBAAA,CAAAC,aAAA,CAACI,6BAAa,EAAA;AACVxF,IAAAA,IAAI,EAAEA,IAAK;AACXO,IAAAA,MAAM,EAAE6B,SAAU;AAClB1B,IAAAA,QAAQ,EAAEqC,aAAc;AACxB0C,IAAAA,MAAM,eACFN,sBAAA,CAAAC,aAAA,CAACM,6BAAc,EAAAC,iCAAA,CAAA;AACXpF,MAAAA,MAAM,EAAE6B,SAAU;AAClBwC,MAAAA,MAAM,EAAEA,MAAO;AACfhF,MAAAA,KAAK,EAAEA,KAAM;AACbC,MAAAA,WAAW,EAAEA,WAAY;AACzByC,MAAAA,MAAM,EAAEA,MAAO;AACfhC,MAAAA,eAAe,EAAEA,eAAgB;AACjCc,MAAAA,SAAS,EAAEA,SAAU;AACrB1B,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,QAAQ,EAAEA,QAAS;AACnBO,MAAAA,IAAI,EAAEA,IAAK;AACXgD,MAAAA,oBAAoB,EAAEA,oBAAqB;AAC3C3B,MAAAA,GAAG,EAAES,SAAU;AACfJ,MAAAA,SAAS,EAAEA,SAAU;AACrBG,MAAAA,QAAQ,EAAEA,QAAS;AACnBjC,MAAAA,EAAE,EAAEqB,OAAQ;AACZyE,MAAAA,QAAQ,EAAE/B,iBAAkB;AAC5BiB,MAAAA,QAAQ,EAAEA,QAAS;AACnBnE,MAAAA,SAAS,EAAEsE,eAAAA;KACPpE,EAAAA,IAAI,CACX,CACJ;IACDgF,SAAS,EAAEC,UAAE,CAACvE,GAAG,EAAEwE,SAAS,CAACC,QAAQ,EAAE,CAAE;AAAC;AAC1ClG,IAAAA,EAAE,EAAEqB,OAAQ;AACZG,IAAAA,MAAM,EAAEA,MAAO;AACfb,IAAAA,SAAS,EAAEwF,iCAAa,CAACxF,SAAS,CAAE;AACpCL,IAAAA,SAAS,EAAEA,SAAU;AACrB8F,IAAAA,WAAW,EAAExD,kBAAmB;AAChCvC,IAAAA,KAAK,EAAEA,KAAM;AACbgG,IAAAA,OAAO,EAAC,OAAO;AACfC,IAAAA,cAAc,EAAE,KAAM;AACtBC,IAAAA,eAAe,EAAE,KAAM;AACvBC,IAAAA,UAAU,EAAE,KAAM;IAClBC,mBAAmB,EAAA,IAAA;AAAA,GAAA,eAEnBpB,sBAAA,CAAAC,aAAA,CAAC9F,IAAI,EAAA;AAACiC,IAAAA,GAAG,EAAEC,MAAO;AAACvB,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACtCiF,sBAAA,CAAAC,aAAA,CAACoB,8BAAc,EAAA;AAAC7F,IAAAA,SAAS,EAAEoD,eAAAA;AAAgB,GAAA,EACtCO,YAAY,CAACmC,MAAM,GAChBnC,YAAY,gBAEZa,sBAAA,CAAAC,aAAA,CAACsB,oCAAoB,EAAErG,IAAAA,EAAAA,qBAA4C,CAE3D,CACd,CACK,CACP,CAAC,CAAA;AAErB,CACJ,EAAC;AAEE,MAAMsG,cAAc,GAAG;AAC1BnH,EAAAA,IAAI,EAAE,UAAU;AAChBoH,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAExH,YAAY;AACpByH,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACR9G,IAAAA,IAAI,EAAE;AACF+G,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACD/G,IAAAA,IAAI,EAAE;AACF8G,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNlH,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
|
1
|
+
{"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/ComboboxOld/Combobox.tsx"],"sourcesContent":["import React, { Children, forwardRef, useEffect, useRef, useState } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { safeUseId } from 'src/utils';\n\nimport { RootProps } from '../../../engines';\nimport { cx, getPlacements } from '../../../utils';\nimport { useDidMountEffect, useForceUpdate } from '../../../hooks';\n\nimport { getChildren, getNewSelected, getValues } from './utils';\nimport { useKeyNavigation } from './hooks';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { ComboboxTarget } from './ui';\nimport { ComboboxItemNotFound, StyledPopover, StyledRoot, StyledCombobox, StyledNativeSelect } from './Combobox.styles';\nimport type { ComboboxPrimitiveValue, ComboboxProps } from './Combobox.types';\n\n/**\n * Выпадающий список без внешнего контроля видимости.\n */\nexport const comboboxRoot = (Root: RootProps<HTMLInputElement, ComboboxProps>) =>\n forwardRef<HTMLInputElement, ComboboxProps>(\n (\n {\n name,\n form,\n readOnly,\n disabled,\n label,\n placeholder,\n id,\n children,\n role,\n view,\n size,\n frame,\n usePortal,\n negativeResultContent = 'Элементы не найдены',\n enumerationType = 'comma',\n opened = false,\n alwaysOpened = false,\n placement = 'bottom',\n onToggle,\n onKeyDown,\n filterFunction,\n ...rest\n },\n outerRootRef,\n ) => {\n const forceUpdate = useForceUpdate();\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const { valueType = 'single', value } = rest;\n const offset = [0, 4] as [number, number];\n\n const [ref, setRef] = useState<HTMLInputElement | null>(null);\n\n const targetRef = useRef<HTMLInputElement>(null);\n const chipsRefs = useRef<Array<HTMLButtonElement>>([]);\n const comboboxRef = useRef<HTMLDivElement>(null);\n const itemsRefs = useRef<Array<HTMLDivElement>>([]);\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef<HTMLInputElement>(targetRef, outerRootRef);\n const controlledRefs = { targetRef, chipsRefs, selectRef: comboboxRef, itemsRefs, inputRef };\n\n const [isVisible, setIsVisible] = useState(alwaysOpened || opened);\n const [search, setSearch] = useState<string | undefined>('');\n const [filterValue, setFilterValue] = useState(search);\n\n // INFO: нужно высчитывать для корректной работы портала\n const dynamicTargetWidth = targetRef.current?.offsetWidth;\n\n // INFO: Из-за того, что классы передаются через ref,\n // состояние пропсов после изменения view, size\n // всегда предыдущее, поэтому нужно делать форс-ререндер\n useDidMountEffect(() => {\n forceUpdate();\n }, [view, size]);\n\n useEffect(() => {\n if (disabled || readOnly) {\n return;\n }\n\n setIsVisible(alwaysOpened || opened);\n }, [opened, alwaysOpened, disabled, readOnly]);\n\n useEffect(() => {\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (alwaysOpened || opened) {\n setFilterValue('');\n }\n }, []);\n\n const onInnerToggle = (openValue: boolean, event: React.SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n // INFO: Для кейсов, когда значение выбрано и нужно вывести весь список\n if (!isVisible) {\n setFilterValue('');\n }\n\n if (onToggle) {\n onToggle(alwaysOpened || openValue, event);\n\n return;\n }\n\n setIsVisible(alwaysOpened || openValue);\n };\n\n const closedWithoutChanges = useRef(true);\n\n const updateValue = (item: HTMLElement, event: React.SyntheticEvent | Event) => {\n const {\n dataset: { value: newValue },\n } = item;\n\n if (rest.valueType === 'multiple') {\n const newSelected = getNewSelected(rest.value, newValue, rest.valueType);\n rest.onChangeValue?.(newSelected);\n\n return;\n }\n\n const newSelected = getNewSelected(rest.value, newValue, 'single');\n\n rest.onChangeValue?.(newSelected);\n\n onInnerToggle?.(alwaysOpened || false, event);\n\n closedWithoutChanges.current = false;\n };\n\n const onClickChildrenItem = (event: React.MouseEvent<HTMLDivElement>) => {\n // INFO: Для корректной работы компонента Popper\n event.stopPropagation();\n\n const item = event.currentTarget as HTMLElement;\n\n updateValue(item, event);\n };\n\n const onChangeChipValue = (newValue?: Array<ComboboxPrimitiveValue>) => {\n if (rest.valueType !== 'multiple') {\n return;\n }\n\n rest.onChangeValue?.(newValue);\n };\n\n const { onKeyDownTarget, onKeyDownSelect } = useKeyNavigation({\n controlledRefs,\n opened: isVisible,\n enumerationType,\n valueType,\n componentType: 'combobox',\n value,\n search: filterValue,\n updateOpened: onInnerToggle,\n updateValue,\n });\n\n const childrenArray = Children.toArray(children) as React.ReactElement[];\n\n const childrenMemo = getChildren(\n childrenArray,\n { onClick: onClickChildrenItem, childrenRefs: itemsRefs },\n value,\n filterValue,\n filterFunction,\n ).filter(Boolean);\n\n const values = getValues(childrenArray, value);\n\n const onSearch = (newSearch?: string, newOpened?: boolean) => {\n setSearch(newSearch);\n setFilterValue(newSearch);\n setIsVisible(newOpened ?? true);\n };\n\n const onKeyDownHandle = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n onKeyDownTarget(event);\n };\n\n useEffect(() => {\n if (alwaysOpened && rest.valueType === 'single') {\n setSearch(String(value));\n }\n }, [value, alwaysOpened]);\n\n return (\n <StyledRoot ref={comboboxRef}>\n <StyledNativeSelect\n aria-invalid=\"false\"\n aria-hidden=\"true\"\n aria-readonly={readOnly}\n tabIndex={-1}\n form={form}\n name={name}\n value={`${value}`}\n disabled={disabled || readOnly}\n />\n <StyledPopover\n role={role}\n opened={isVisible}\n onToggle={onInnerToggle}\n target={\n <ComboboxTarget\n opened={isVisible}\n values={values}\n label={label}\n placeholder={placeholder}\n search={search}\n enumerationType={enumerationType}\n valueType={valueType}\n readOnly={readOnly}\n disabled={disabled}\n size={size}\n closedWithoutChanges={closedWithoutChanges}\n ref={handleRef}\n chipsRefs={chipsRefs}\n inputRef={inputRef}\n id={innerId}\n onChange={onChangeChipValue}\n onSearch={onSearch}\n onKeyDown={onKeyDownHandle}\n {...rest}\n />\n }\n className={cx(ref?.classList.toString())} // INFO: Прокидываем стили для Popover\n id={innerId}\n offset={offset}\n placement={getPlacements(placement)}\n usePortal={usePortal}\n selectWidth={dynamicTargetWidth}\n frame={frame}\n trigger=\"click\"\n isFocusTrapped={false}\n preventOverflow={false}\n closeOnEsc={false}\n closeOnOverlayClick\n >\n <Root ref={setRef} view={view} size={size}>\n <StyledCombobox onKeyDown={onKeyDownSelect}>\n {childrenMemo.length ? (\n childrenMemo\n ) : (\n <ComboboxItemNotFound>{negativeResultContent}</ComboboxItemNotFound>\n )}\n </StyledCombobox>\n </Root>\n </StyledPopover>\n </StyledRoot>\n );\n },\n );\n\nexport const comboboxConfig = {\n name: 'Combobox',\n tag: 'div',\n layout: comboboxRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["comboboxRoot","Root","forwardRef","name","form","readOnly","disabled","label","placeholder","id","children","role","view","size","frame","usePortal","negativeResultContent","enumerationType","opened","alwaysOpened","placement","onToggle","onKeyDown","filterFunction","rest","outerRootRef","forceUpdate","useForceUpdate","uniqId","safeUseId","innerId","valueType","value","offset","ref","setRef","useState","targetRef","useRef","chipsRefs","comboboxRef","itemsRefs","inputRef","handleRef","useForkRef","controlledRefs","selectRef","isVisible","setIsVisible","search","setSearch","filterValue","setFilterValue","dynamicTargetWidth","current","offsetWidth","useDidMountEffect","useEffect","onInnerToggle","openValue","event","closedWithoutChanges","updateValue","item","dataset","newValue","newSelected","getNewSelected","onChangeValue","onClickChildrenItem","stopPropagation","currentTarget","onChangeChipValue","onKeyDownTarget","onKeyDownSelect","useKeyNavigation","componentType","updateOpened","childrenArray","Children","toArray","childrenMemo","getChildren","onClick","childrenRefs","filter","Boolean","values","getValues","onSearch","newSearch","newOpened","onKeyDownHandle","String","React","createElement","StyledRoot","StyledNativeSelect","tabIndex","StyledPopover","target","ComboboxTarget","_extends","onChange","className","cx","classList","toString","getPlacements","selectWidth","trigger","isFocusTrapped","preventOverflow","closeOnEsc","closeOnOverlayClick","StyledCombobox","length","ComboboxItemNotFound","comboboxConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBabelHelpers.js');
|
6
6
|
var React = require('react');
|
7
|
-
var
|
7
|
+
var index$1 = require('../../../../../utils/index.js');
|
8
8
|
var Combobox_tokens = require('../../Combobox.tokens.js');
|
9
9
|
var index = require('../../utils/index.js');
|
10
|
-
var index$1 = require('../../../../../utils/index.js');
|
11
10
|
var base = require('./variations/_view/base.js');
|
12
11
|
var base$1 = require('./variations/_size/base.js');
|
13
12
|
var ComboboxItem_styles = require('./ComboboxItem.styles.js');
|
13
|
+
var react = require('../../../../../utils/react.js');
|
14
14
|
|
15
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
16
16
|
|
@@ -36,7 +36,7 @@ const comboboxItemRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
36
36
|
onChange,
|
37
37
|
...rest
|
38
38
|
}, outerRootRef) => {
|
39
|
-
const uniqId =
|
39
|
+
const uniqId = react.safeUseId();
|
40
40
|
const innerId = id || uniqId;
|
41
41
|
const withComboboxItemIsSelected = checked || isSelected ? Combobox_tokens.classes.comboboxItemIsSelected : undefined;
|
42
42
|
const withComboboxItemIsDisabled = disabled ? Combobox_tokens.classes.comboboxItemIsDisabled : undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ComboboxItem.js","sources":["../../../../../../src/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport { safeUseId } from '
|
1
|
+
{"version":3,"file":"ComboboxItem.js","sources":["../../../../../../src/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport type { RootProps } from '../../../../../engines';\nimport { classes } from '../../Combobox.tokens';\nimport { getValidComponent } from '../../utils';\nimport { cx } from '../../../../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledContentLeft, StyledContentRight, StyledText, base } from './ComboboxItem.styles';\nimport { ComboboxItemProps } from './ComboboxItem.type';\n\nexport const comboboxItemRoot = (Root: RootProps<HTMLDivElement, ComboboxItemProps>) =>\n forwardRef<HTMLDivElement, ComboboxItemProps>(\n (\n {\n id,\n className,\n children,\n text,\n isSelected,\n name,\n checked,\n value,\n view,\n size,\n disabled,\n role = 'option',\n contentLeft: ContentLeftComponent,\n contentRight: ContentRightComponent,\n onSelect,\n onClick,\n onChange,\n ...rest\n },\n outerRootRef,\n ) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n const withComboboxItemIsSelected = checked || isSelected ? classes.comboboxItemIsSelected : undefined;\n const withComboboxItemIsDisabled = disabled ? classes.comboboxItemIsDisabled : undefined;\n\n const handleOnClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n onClick?.(event);\n\n if (onSelect && !ContentLeftComponent) {\n onSelect(value, text);\n }\n },\n [onSelect, disabled],\n );\n\n const handleOnChange = useCallback(\n (event: React.MouseEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n\n onChange?.(event);\n\n if (onSelect && ContentLeftComponent) {\n onSelect(value, text);\n }\n },\n [onSelect, disabled],\n );\n\n const contentProps = {\n name,\n value,\n checked: checked || isSelected,\n disabled,\n tabIndex: -1,\n ...(!disabled && { onChange: handleOnChange }),\n };\n\n const ContentLeft = useMemo(() => getValidComponent(ContentLeftComponent, contentProps), [\n ContentRightComponent,\n contentProps,\n ]);\n\n const ContentRight = useMemo(() => getValidComponent(ContentRightComponent, contentProps), [\n ContentRightComponent,\n contentProps,\n ]);\n\n return (\n <Root\n className={cx(withComboboxItemIsSelected, withComboboxItemIsDisabled, className)}\n view={view}\n size={size}\n id={innerId}\n isSelected={isSelected}\n role={role}\n ref={outerRootRef}\n tabIndex={0}\n aria-disabled={disabled}\n aria-selected={isSelected}\n onClick={handleOnClick}\n data-value={value}\n {...rest}\n >\n {text ? (\n <>\n <StyledContentLeft>{ContentLeftComponent && ContentLeft}</StyledContentLeft>\n <StyledText>{text}</StyledText>\n <StyledContentRight>{ContentRightComponent && ContentRight}</StyledContentRight>\n </>\n ) : (\n children\n )}\n </Root>\n );\n },\n );\n\nexport const comboboxItemConfig = {\n name: 'ComboboxItem',\n tag: 'div',\n layout: comboboxItemRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["comboboxItemRoot","Root","forwardRef","id","className","children","text","isSelected","name","checked","value","view","size","disabled","role","contentLeft","ContentLeftComponent","contentRight","ContentRightComponent","onSelect","onClick","onChange","rest","outerRootRef","uniqId","safeUseId","innerId","withComboboxItemIsSelected","classes","comboboxItemIsSelected","undefined","withComboboxItemIsDisabled","comboboxItemIsDisabled","handleOnClick","useCallback","event","handleOnChange","contentProps","tabIndex","ContentLeft","useMemo","getValidComponent","ContentRight","React","createElement","_extends","cx","ref","Fragment","StyledContentLeft","StyledText","StyledContentRight","comboboxItemConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;MAaaA,gBAAgB,GAAIC,IAAkD,iBAC/EC,gBAAU,CACN,CACI;EACIC,EAAE;EACFC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,UAAU;EACVC,IAAI;EACJC,OAAO;EACPC,KAAK;EACLC,IAAI;EACJC,IAAI;EACJC,QAAQ;AACRC,EAAAA,IAAI,GAAG,QAAQ;AACfC,EAAAA,WAAW,EAAEC,oBAAoB;AACjCC,EAAAA,YAAY,EAAEC,qBAAqB;EACnCC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACR,GAAGC,IAAAA;AACP,CAAC,EACDC,YAAY,KACX;AACD,EAAA,MAAMC,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGvB,EAAE,IAAIqB,MAAM,CAAA;EAE5B,MAAMG,0BAA0B,GAAGlB,OAAO,IAAIF,UAAU,GAAGqB,uBAAO,CAACC,sBAAsB,GAAGC,SAAS,CAAA;EACrG,MAAMC,0BAA0B,GAAGlB,QAAQ,GAAGe,uBAAO,CAACI,sBAAsB,GAAGF,SAAS,CAAA;AAExF,EAAA,MAAMG,aAAa,GAAGC,iBAAW,CAC5BC,KAAuC,IAAK;AACzC,IAAA,IAAItB,QAAQ,EAAE;AACV,MAAA,OAAA;AACJ,KAAA;IAEAO,OAAO,GAAGe,KAAK,CAAC,CAAA;AAEhB,IAAA,IAAIhB,QAAQ,IAAI,CAACH,oBAAoB,EAAE;AACnCG,MAAAA,QAAQ,CAACT,KAAK,EAAEJ,IAAI,CAAC,CAAA;AACzB,KAAA;AACJ,GAAC,EACD,CAACa,QAAQ,EAAEN,QAAQ,CACvB,CAAC,CAAA;AAED,EAAA,MAAMuB,cAAc,GAAGF,iBAAW,CAC7BC,KAAyC,IAAK;AAC3C,IAAA,IAAItB,QAAQ,EAAE;AACV,MAAA,OAAA;AACJ,KAAA;IAEAQ,QAAQ,GAAGc,KAAK,CAAC,CAAA;IAEjB,IAAIhB,QAAQ,IAAIH,oBAAoB,EAAE;AAClCG,MAAAA,QAAQ,CAACT,KAAK,EAAEJ,IAAI,CAAC,CAAA;AACzB,KAAA;AACJ,GAAC,EACD,CAACa,QAAQ,EAAEN,QAAQ,CACvB,CAAC,CAAA;AAED,EAAA,MAAMwB,YAAY,GAAG;IACjB7B,IAAI;IACJE,KAAK;IACLD,OAAO,EAAEA,OAAO,IAAIF,UAAU;IAC9BM,QAAQ;IACRyB,QAAQ,EAAE,CAAC,CAAC;IACZ,IAAI,CAACzB,QAAQ,IAAI;AAAEQ,MAAAA,QAAQ,EAAEe,cAAAA;KAAgB,CAAA;GAChD,CAAA;AAED,EAAA,MAAMG,WAAW,GAAGC,aAAO,CAAC,MAAMC,uBAAiB,CAACzB,oBAAoB,EAAEqB,YAAY,CAAC,EAAE,CACrFnB,qBAAqB,EACrBmB,YAAY,CACf,CAAC,CAAA;AAEF,EAAA,MAAMK,YAAY,GAAGF,aAAO,CAAC,MAAMC,uBAAiB,CAACvB,qBAAqB,EAAEmB,YAAY,CAAC,EAAE,CACvFnB,qBAAqB,EACrBmB,YAAY,CACf,CAAC,CAAA;AAEF,EAAA,oBACIM,sBAAA,CAAAC,aAAA,CAAC3C,IAAI,EAAA4C,iCAAA,CAAA;IACDzC,SAAS,EAAE0C,UAAE,CAACnB,0BAA0B,EAAEI,0BAA0B,EAAE3B,SAAS,CAAE;AACjFO,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,IAAI,EAAEA,IAAK;AACXT,IAAAA,EAAE,EAAEuB,OAAQ;AACZnB,IAAAA,UAAU,EAAEA,UAAW;AACvBO,IAAAA,IAAI,EAAEA,IAAK;AACXiC,IAAAA,GAAG,EAAExB,YAAa;AAClBe,IAAAA,QAAQ,EAAE,CAAE;AACZ,IAAA,eAAA,EAAezB,QAAS;AACxB,IAAA,eAAA,EAAeN,UAAW;AAC1Ba,IAAAA,OAAO,EAAEa,aAAc;IACvB,YAAYvB,EAAAA,KAAAA;GACRY,EAAAA,IAAI,GAEPhB,IAAI,gBACDqC,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAK,QAAA,EACIL,IAAAA,eAAAA,sBAAA,CAAAC,aAAA,CAACK,qCAAiB,EAAEjC,IAAAA,EAAAA,oBAAoB,IAAIuB,WAA+B,CAAC,eAC5EI,sBAAA,CAAAC,aAAA,CAACM,8BAAU,QAAE5C,IAAiB,CAAC,eAC/BqC,sBAAA,CAAAC,aAAA,CAACO,sCAAkB,QAAEjC,qBAAqB,IAAIwB,YAAiC,CACjF,CAAC,GAEHrC,QAEF,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAM+C,kBAAkB,GAAG;AAC9B5C,EAAAA,IAAI,EAAE,cAAc;AACpB6C,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEtD,gBAAgB;QACxBuD,wBAAI;AACJC,EAAAA,UAAU,EAAE;AACR7C,IAAAA,IAAI,EAAE;AACF8C,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACD9C,IAAAA,IAAI,EAAE;AACF6C,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNjD,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
6
6
|
var React = require('react');
|
7
|
-
var plasmaCore = require('@salutejs/plasma-core');
|
8
7
|
var index$1 = require('../../utils/index.js');
|
9
8
|
var pathReducer = require('./reducers/pathReducer.js');
|
10
9
|
var focusedPathReducer = require('./reducers/focusedPathReducer.js');
|
@@ -18,6 +17,7 @@ var useHashMaps = require('./hooks/useHashMaps.js');
|
|
18
17
|
var FloatingPopover = require('./FloatingPopover.js');
|
19
18
|
var Dropdown_context = require('./Dropdown.context.js');
|
20
19
|
var getItemByFocused = require('./utils/getItemByFocused.js');
|
20
|
+
var react = require('../../utils/react.js');
|
21
21
|
var useOutsideClick = require('../../hooks/useOutsideClick.js');
|
22
22
|
var getPlacement = require('./utils/getPlacement.js');
|
23
23
|
var getItemId = require('./utils/getItemId.js');
|
@@ -67,7 +67,7 @@ const dropdownRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
67
67
|
const [pathMap, focusedToValueMap] = useHashMaps.useHashMaps(items);
|
68
68
|
const activeDescendantItemValue = getItemByFocused.getItemByFocused(focusedPath, focusedToValueMap)?.value || '';
|
69
69
|
const floatingPopoverRef = React.useRef(null);
|
70
|
-
const treeId =
|
70
|
+
const treeId = react.safeUseId();
|
71
71
|
|
72
72
|
// Логика работы при клике за пределами выпадающего списка
|
73
73
|
const targetRef = useOutsideClick.useOutsideClick(event => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useReducer, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, base, ListWrapper } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\nimport { Context } from './Dropdown.context';\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement,\n offset,\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listMaxHeight,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n openByRightClick = false,\n variant = 'normal',\n hasArrow = true,\n alwaysOpened = false,\n portal,\n renderItem,\n zIndex,\n beforeList,\n afterList,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n\n if (alwaysOpened) {\n return;\n }\n\n handleGlobalToggle(!isCurrentListOpen, e);\n },\n [handleGlobalToggle, isCurrentListOpen, alwaysOpened],\n );\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n renderItem,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n onContextMenu: openByRightClick ? onContextMenu : undefined,\n })}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n >\n {beforeList}\n\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n listWidth={listWidth}\n />\n ))}\n\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["dropdownRoot","Root","forwardRef","items","children","placement","offset","closeOnOverlayClick","onToggle","size","view","itemRole","className","listMaxHeight","listWidth","listHeight","listOverflow","closeOnSelect","onHover","onItemSelect","onItemClick","trigger","openByRightClick","variant","hasArrow","alwaysOpened","portal","renderItem","zIndex","beforeList","afterList","rest","ref","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","isCurrentListOpen","Boolean","pathMap","focusedToValueMap","useHashMaps","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","type","handleGlobalToggle","opened","onContextMenu","useCallback","e","preventDefault","onKeyDown","useKeyNavigation","React","createElement","Context","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","getItemId","toString","undefined","isInner","_extends","cx","classes","style","display","ListWrapper","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useReducer, useRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, base, ListWrapper } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\nimport { Context } from './Dropdown.context';\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement,\n offset,\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listMaxHeight,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n openByRightClick = false,\n variant = 'normal',\n hasArrow = true,\n alwaysOpened = false,\n portal,\n renderItem,\n zIndex,\n beforeList,\n afterList,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const isCurrentListOpen = alwaysOpened || Boolean(path[0]);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n\n if (alwaysOpened) {\n return;\n }\n\n handleGlobalToggle(!isCurrentListOpen, e);\n },\n [handleGlobalToggle, isCurrentListOpen, alwaysOpened],\n );\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n renderItem,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n onContextMenu: openByRightClick ? onContextMenu : undefined,\n })}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n >\n {beforeList}\n\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n listWidth={listWidth}\n />\n ))}\n\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["dropdownRoot","Root","forwardRef","items","children","placement","offset","closeOnOverlayClick","onToggle","size","view","itemRole","className","listMaxHeight","listWidth","listHeight","listOverflow","closeOnSelect","onHover","onItemSelect","onItemClick","trigger","openByRightClick","variant","hasArrow","alwaysOpened","portal","renderItem","zIndex","beforeList","afterList","rest","ref","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","isCurrentListOpen","Boolean","pathMap","focusedToValueMap","useHashMaps","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","type","handleGlobalToggle","opened","onContextMenu","useCallback","e","preventDefault","onKeyDown","useKeyNavigation","React","createElement","Context","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","getItemId","toString","undefined","isInner","_extends","cx","classes","style","display","ListWrapper","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var react = require('@floating-ui/react');
|
6
6
|
var React = require('react');
|
7
|
-
var
|
7
|
+
var react$1 = require('../../utils/react.js');
|
8
8
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
10
10
|
|
@@ -44,7 +44,7 @@ const FloatingPopover = /*#__PURE__*/React.forwardRef(({
|
|
44
44
|
fallbackAxisSideDirection: 'end'
|
45
45
|
}), react.shift()]
|
46
46
|
});
|
47
|
-
const wrappedId =
|
47
|
+
const wrappedId = react$1.safeUseId();
|
48
48
|
const handleTargetClick = event => {
|
49
49
|
if (trigger === 'hover') {
|
50
50
|
return;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Dropdown/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoPlacement,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef, MouseEvent } from 'react';\nimport { safeUseId } from '
|
1
|
+
{"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Dropdown/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoPlacement,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef, MouseEvent } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { FloatingPopoverProps } from './Dropdown.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, offset, isInner, trigger, zIndex }, ref) => {\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted(referenceEl, floatingEl, update) {\n return autoUpdate(referenceEl, floatingEl, update, {\n ancestorScroll: false,\n ancestorResize: false,\n layoutShift: false,\n });\n },\n placement: placement === 'auto' ? undefined : placement,\n open: opened,\n middleware: [\n placement === 'auto' && autoPlacement(),\n offsetMiddleware({\n mainAxis: offset?.[1] || (isInner ? LIST_PADDING * 2 : 0),\n crossAxis: offset?.[0] || (isInner ? -LIST_PADDING : 0),\n }),\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n ],\n });\n const wrappedId = safeUseId();\n\n const handleTargetClick = (event: MouseEvent<HTMLDivElement>) => {\n if (trigger === 'hover') {\n return;\n }\n\n if (onToggle) {\n onToggle(!opened, event);\n }\n };\n\n const handleTargetMouseEnter = (event: MouseEvent<HTMLDivElement>) => {\n if (trigger === 'click' || opened) {\n return;\n }\n\n onToggle(true, event);\n };\n\n const handleTargetMouseLeave = (event: MouseEvent<HTMLDivElement>) => {\n if (event.relatedTarget instanceof HTMLElement && refs.floating.current instanceof HTMLElement) {\n if (\n trigger === 'click' ||\n !opened ||\n (event.relatedTarget && refs.floating && refs.floating.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n onToggle(false, event);\n }\n };\n\n const handleFloatingMouseLeave = (event: MouseEvent) => {\n if (event.relatedTarget instanceof HTMLElement && refs.reference.current instanceof HTMLElement) {\n if (\n trigger === 'click' ||\n !opened ||\n (event.relatedTarget && refs.reference && refs.reference.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n onToggle(false, event);\n }\n };\n\n return (\n <div\n ref={ref}\n id={wrappedId}\n style={{\n position: 'relative',\n display: isInner ? 'block' : 'inline-block',\n }}\n >\n <div\n ref={refs.setReference}\n onClick={handleTargetClick}\n onMouseEnter={handleTargetMouseEnter}\n onMouseLeave={handleTargetMouseLeave}\n >\n {target}\n </div>\n\n {opened && (\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div\n ref={refs.setFloating}\n onMouseLeave={handleFloatingMouseLeave}\n style={{\n ...floatingStyles,\n zIndex: zIndex || 1000,\n }}\n >\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\ntype FloatingPortalReturnedProps = {\n root?: React.RefObject<HTMLElement>;\n id?: string;\n};\n\n// root - принимает ref контейнера портала.\n// id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\nconst getFloatingPortalProps = (\n portal: FloatingPopoverProps['portal'],\n wrappedId: string,\n): FloatingPortalReturnedProps => {\n if (!portal) {\n return { id: wrappedId };\n }\n\n if (typeof portal === 'string') {\n return { id: portal };\n }\n\n return { root: portal };\n};\n\nexport { FloatingPopover };\n"],"names":["LIST_PADDING","FloatingPopover","forwardRef","target","children","opened","onToggle","placement","portal","offset","isInner","trigger","zIndex","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","undefined","open","middleware","autoPlacement","offsetMiddleware","mainAxis","crossAxis","flip","fallbackAxisSideDirection","shift","wrappedId","safeUseId","handleTargetClick","event","handleTargetMouseEnter","handleTargetMouseLeave","relatedTarget","HTMLElement","floating","current","contains","handleFloatingMouseLeave","reference","React","createElement","id","style","position","display","setReference","onClick","onMouseEnter","onMouseLeave","FloatingPortal","getFloatingPortalProps","setFloating","root"],"mappings":";;;;;;;;;;;;AAcA;AACA,MAAMA,YAAY,GAAG,CAAC,CAAA;AAEtB,MAAMC,eAAe,gBAAGC,gBAAU,CAC9B,CAAC;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,MAAM;EAAEC,MAAM;EAAEC,OAAO;EAAEC,OAAO;AAAEC,EAAAA,MAAAA;AAAO,CAAC,EAAEC,GAAG,KAAK;EAClG,MAAM;IAAEC,IAAI;AAAEC,IAAAA,cAAAA;GAAgB,GAAGC,iBAAW,CAAC;AACzCC,IAAAA,oBAAoBA,CAACC,WAAW,EAAEC,UAAU,EAAEC,MAAM,EAAE;AAClD,MAAA,OAAOC,gBAAU,CAACH,WAAW,EAAEC,UAAU,EAAEC,MAAM,EAAE;AAC/CE,QAAAA,cAAc,EAAE,KAAK;AACrBC,QAAAA,cAAc,EAAE,KAAK;AACrBC,QAAAA,WAAW,EAAE,KAAA;AACjB,OAAC,CAAC,CAAA;KACL;AACDjB,IAAAA,SAAS,EAAEA,SAAS,KAAK,MAAM,GAAGkB,SAAS,GAAGlB,SAAS;AACvDmB,IAAAA,IAAI,EAAErB,MAAM;IACZsB,UAAU,EAAE,CACRpB,SAAS,KAAK,MAAM,IAAIqB,mBAAa,EAAE,EACvCC,YAAgB,CAAC;AACbC,MAAAA,QAAQ,EAAErB,MAAM,GAAG,CAAC,CAAC,KAAKC,OAAO,GAAGV,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;MACzD+B,SAAS,EAAEtB,MAAM,GAAG,CAAC,CAAC,KAAKC,OAAO,GAAG,CAACV,YAAY,GAAG,CAAC,CAAA;KACzD,CAAC,EACFgC,UAAI,CAAC;AAAEC,MAAAA,yBAAyB,EAAE,KAAA;AAAM,KAAC,CAAC,EAC1CC,WAAK,EAAE,CAAA;AAEf,GAAC,CAAC,CAAA;AACF,EAAA,MAAMC,SAAS,GAAGC,iBAAS,EAAE,CAAA;EAE7B,MAAMC,iBAAiB,GAAIC,KAAiC,IAAK;IAC7D,IAAI3B,OAAO,KAAK,OAAO,EAAE;AACrB,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIL,QAAQ,EAAE;AACVA,MAAAA,QAAQ,CAAC,CAACD,MAAM,EAAEiC,KAAK,CAAC,CAAA;AAC5B,KAAA;GACH,CAAA;EAED,MAAMC,sBAAsB,GAAID,KAAiC,IAAK;AAClE,IAAA,IAAI3B,OAAO,KAAK,OAAO,IAAIN,MAAM,EAAE;AAC/B,MAAA,OAAA;AACJ,KAAA;AAEAC,IAAAA,QAAQ,CAAC,IAAI,EAAEgC,KAAK,CAAC,CAAA;GACxB,CAAA;EAED,MAAME,sBAAsB,GAAIF,KAAiC,IAAK;AAClE,IAAA,IAAIA,KAAK,CAACG,aAAa,YAAYC,WAAW,IAAI5B,IAAI,CAAC6B,QAAQ,CAACC,OAAO,YAAYF,WAAW,EAAE;MAC5F,IACI/B,OAAO,KAAK,OAAO,IACnB,CAACN,MAAM,IACNiC,KAAK,CAACG,aAAa,IAAI3B,IAAI,CAAC6B,QAAQ,IAAI7B,IAAI,CAAC6B,QAAQ,CAACC,OAAO,EAAEC,QAAQ,CAACP,KAAK,CAACG,aAAa,CAAE,EAChG;AACE,QAAA,OAAA;AACJ,OAAA;AAEAnC,MAAAA,QAAQ,CAAC,KAAK,EAAEgC,KAAK,CAAC,CAAA;AAC1B,KAAA;GACH,CAAA;EAED,MAAMQ,wBAAwB,GAAIR,KAAiB,IAAK;AACpD,IAAA,IAAIA,KAAK,CAACG,aAAa,YAAYC,WAAW,IAAI5B,IAAI,CAACiC,SAAS,CAACH,OAAO,YAAYF,WAAW,EAAE;MAC7F,IACI/B,OAAO,KAAK,OAAO,IACnB,CAACN,MAAM,IACNiC,KAAK,CAACG,aAAa,IAAI3B,IAAI,CAACiC,SAAS,IAAIjC,IAAI,CAACiC,SAAS,CAACH,OAAO,EAAEC,QAAQ,CAACP,KAAK,CAACG,aAAa,CAAE,EAClG;AACE,QAAA,OAAA;AACJ,OAAA;AAEAnC,MAAAA,QAAQ,CAAC,KAAK,EAAEgC,KAAK,CAAC,CAAA;AAC1B,KAAA;GACH,CAAA;EAED,oBACIU,sBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACIpC,IAAAA,GAAG,EAAEA,GAAI;AACTqC,IAAAA,EAAE,EAAEf,SAAU;AACdgB,IAAAA,KAAK,EAAE;AACHC,MAAAA,QAAQ,EAAE,UAAU;AACpBC,MAAAA,OAAO,EAAE3C,OAAO,GAAG,OAAO,GAAG,cAAA;AACjC,KAAA;GAEAsC,eAAAA,sBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACIpC,GAAG,EAAEC,IAAI,CAACwC,YAAa;AACvBC,IAAAA,OAAO,EAAElB,iBAAkB;AAC3BmB,IAAAA,YAAY,EAAEjB,sBAAuB;AACrCkB,IAAAA,YAAY,EAAEjB,sBAAAA;GAEbrC,EAAAA,MACA,CAAC,EAELE,MAAM,iBACH2C,sBAAA,CAAAC,aAAA,CAACS,oBAAc,EAAKC,sBAAsB,CAACnD,MAAM,EAAE2B,SAAS,CAAC,eACzDa,sBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACIpC,GAAG,EAAEC,IAAI,CAAC8C,WAAY;AACtBH,IAAAA,YAAY,EAAEX,wBAAyB;AACvCK,IAAAA,KAAK,EAAE;AACH,MAAA,GAAGpC,cAAc;MACjBH,MAAM,EAAEA,MAAM,IAAI,IAAA;AACtB,KAAA;GAECR,EAAAA,QACA,CACO,CAEnB,CAAC,CAAA;AAEd,CACJ,EAAC;AAOD;AACA;AACA,MAAMuD,sBAAsB,GAAGA,CAC3BnD,MAAsC,EACtC2B,SAAiB,KACa;EAC9B,IAAI,CAAC3B,MAAM,EAAE;IACT,OAAO;AAAE0C,MAAAA,EAAE,EAAEf,SAAAA;KAAW,CAAA;AAC5B,GAAA;AAEA,EAAA,IAAI,OAAO3B,MAAM,KAAK,QAAQ,EAAE;IAC5B,OAAO;AAAE0C,MAAAA,EAAE,EAAE1C,MAAAA;KAAQ,CAAA;AACzB,GAAA;EAEA,OAAO;AAAEqD,IAAAA,IAAI,EAAErD,MAAAA;GAAQ,CAAA;AAC3B,CAAC;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DropdownDivider.js","sources":["../../../../../src/components/Dropdown/ui/DropdownDivider/DropdownDivider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\
|
1
|
+
{"version":3,"file":"DropdownDivider.js","sources":["../../../../../src/components/Dropdown/ui/DropdownDivider/DropdownDivider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownDivider } from './DropdownDivider.styles';\nimport type { DropdownDividerProps } from './DropdownDivider.types';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownDividerRoot = (Root: RootProps<HTMLDivElement, DropdownDividerProps>) =>\n forwardRef<HTMLDivElement, DropdownDividerProps>(({ id, className, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownDivider className={className} {...rest} />\n </Root>\n );\n });\n\nexport const dropdownDividerConfig = {\n name: 'DropdownDivider',\n tag: 'div',\n layout: dropdownDividerRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownDividerRoot","Root","forwardRef","id","className","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownDivider","_extends","dropdownDividerConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;AASA;AACA;AACA;MACaA,mBAAmB,GAAIC,IAAqD,iBACrFC,gBAAU,CAAuC,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AACvG,EAAA,MAAMC,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGR,EAAE,IAAIM,MAAM,CAAA;AAE5B,EAAA,oBACIG,sBAAA,CAAAC,aAAA,CAACZ,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAEQ,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDM,sBAAA,CAAAC,aAAA,CAACE,4CAAqB,EAAAC,iCAAA,CAAA;AAACZ,IAAAA,SAAS,EAAEA,SAAAA;GAAeG,EAAAA,IAAI,CAAG,CACtD,CAAC,CAAA;AAEf,CAAC,EAAC;AAEC,MAAMU,qBAAqB,GAAG;AACjCC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEpB,mBAAmB;AAC3BqB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRjB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDlB,IAAAA,IAAI,EAAE;AACFiB,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNrB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DropdownFooter.js","sources":["../../../../../src/components/Dropdown/ui/DropdownFooter/DropdownFooter.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\
|
1
|
+
{"version":3,"file":"DropdownFooter.js","sources":["../../../../../src/components/Dropdown/ui/DropdownFooter/DropdownFooter.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownFooter } from './DropdownFooter.styles';\nimport type { DropdownFooterProps } from './DropdownFooter.type';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownFooterRoot = (Root: RootProps<HTMLDivElement, DropdownFooterProps>) =>\n forwardRef<HTMLDivElement, DropdownFooterProps>(\n ({ id, className, children, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownFooter className={className} {...rest}>\n {children}\n </StyledDropdownFooter>\n </Root>\n );\n },\n );\n\nexport const dropdownFooterConfig = {\n name: 'DropdownFooter',\n tag: 'div',\n layout: dropdownFooterRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownFooterRoot","Root","forwardRef","id","className","children","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownFooter","_extends","dropdownFooterConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;AASA;AACA;AACA;MACaA,kBAAkB,GAAIC,IAAoD,iBACnFC,gBAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAChE,EAAA,MAAMC,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGT,EAAE,IAAIO,MAAM,CAAA;AAE5B,EAAA,oBACIG,sBAAA,CAAAC,aAAA,CAACb,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAES,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDM,sBAAA,CAAAC,aAAA,CAACE,0CAAoB,EAAAC,iCAAA,CAAA;AAACb,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKI,IAAI,CAAA,EAC/CH,QACiB,CACpB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMa,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAErB,kBAAkB;AAC1BsB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRjB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDlB,IAAAA,IAAI,EAAE;AACFiB,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNrB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DropdownGroup.js","sources":["../../../../../src/components/Dropdown/ui/DropdownGroup/DropdownGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\
|
1
|
+
{"version":3,"file":"DropdownGroup.js","sources":["../../../../../src/components/Dropdown/ui/DropdownGroup/DropdownGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownGroup, StyledDropdownLabel } from './DropdownGroup.styles';\nimport type { DropdownGroupProps } from './DropdownGroup.type';\n\n/**\n * Элемент группы выпадающего списка\n */\nexport const dropdownGroupRoot = (Root: RootProps<HTMLDivElement, DropdownGroupProps>) =>\n forwardRef<HTMLDivElement, DropdownGroupProps>(\n ({ id, labelClassName, groupClassName, label, children, role, view, size, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size} role={role}>\n <StyledDropdownLabel className={labelClassName}>{label}</StyledDropdownLabel>\n <StyledDropdownGroup className={groupClassName} {...rest}>\n {children}\n </StyledDropdownGroup>\n </Root>\n );\n },\n );\n\nexport const dropdownGroupConfig = {\n name: 'DropdownGroup',\n tag: 'div',\n layout: dropdownGroupRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownGroupRoot","Root","forwardRef","id","labelClassName","groupClassName","label","children","role","view","size","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownLabel","className","StyledDropdownGroup","_extends","dropdownGroupConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;AASA;AACA;AACA;MACaA,iBAAiB,GAAIC,IAAmD,iBACjFC,gBAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,cAAc;EAAEC,cAAc;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,IAAI;EAAEC,IAAI;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAClG,EAAA,MAAMC,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGZ,EAAE,IAAIU,MAAM,CAAA;AAE5B,EAAA,oBACIG,sBAAA,CAAAC,aAAA,CAAChB,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAEY,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACH,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAK;AAACF,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACrEQ,sBAAA,CAAAC,aAAA,CAACE,wCAAmB,EAAA;AAACC,IAAAA,SAAS,EAAEhB,cAAAA;GAAiBE,EAAAA,KAA2B,CAAC,eAC7EU,sBAAA,CAAAC,aAAA,CAACI,wCAAmB,EAAAC,iCAAA,CAAA;AAACF,IAAAA,SAAS,EAAEf,cAAAA;AAAe,GAAA,EAAKM,IAAI,CAAA,EACnDJ,QACgB,CACnB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMgB,mBAAmB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,eAAe;AACrBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE1B,iBAAiB;AACzB2B,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRnB,IAAAA,IAAI,EAAE;AACFoB,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDpB,IAAAA,IAAI,EAAE;AACFmB,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNvB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DropdownHeader.js","sources":["../../../../../src/components/Dropdown/ui/DropdownHeader/DropdownHeader.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\
|
1
|
+
{"version":3,"file":"DropdownHeader.js","sources":["../../../../../src/components/Dropdown/ui/DropdownHeader/DropdownHeader.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { StyledDropdownHeader } from './DropdownHeader.styles';\nimport type { DropdownHeaderProps } from './DropdownHeader.type';\n\n/**\n * Элемент выпадающего списка\n */\nexport const dropdownHeaderRoot = (Root: RootProps<HTMLDivElement, DropdownHeaderProps>) =>\n forwardRef<HTMLDivElement, DropdownHeaderProps>(\n ({ id, className, view, size, children, ...rest }, outerRootRef) => {\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n\n return (\n <Root id={innerId} ref={outerRootRef} view={view} size={size}>\n <StyledDropdownHeader className={className} {...rest}>\n {children}\n </StyledDropdownHeader>\n </Root>\n );\n },\n );\n\nexport const dropdownHeaderConfig = {\n name: 'DropdownHeader',\n tag: 'div',\n layout: dropdownHeaderRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["dropdownHeaderRoot","Root","forwardRef","id","className","view","size","children","rest","outerRootRef","uniqId","safeUseId","innerId","React","createElement","ref","StyledDropdownHeader","_extends","dropdownHeaderConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;AASA;AACA;AACA;MACaA,kBAAkB,GAAIC,IAAoD,iBACnFC,gBAAU,CACN,CAAC;EAAEC,EAAE;EAAEC,SAAS;EAAEC,IAAI;EAAEC,IAAI;EAAEC,QAAQ;EAAE,GAAGC,IAAAA;AAAK,CAAC,EAAEC,YAAY,KAAK;AAChE,EAAA,MAAMC,MAAM,GAAGC,eAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,OAAO,GAAGT,EAAE,IAAIO,MAAM,CAAA;AAE5B,EAAA,oBACIG,sBAAA,CAAAC,aAAA,CAACb,IAAI,EAAA;AAACE,IAAAA,EAAE,EAAES,OAAQ;AAACG,IAAAA,GAAG,EAAEN,YAAa;AAACJ,IAAAA,IAAI,EAAEA,IAAK;AAACC,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,eACzDO,sBAAA,CAAAC,aAAA,CAACE,0CAAoB,EAAAC,iCAAA,CAAA;AAACb,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKI,IAAI,CAAA,EAC/CD,QACiB,CACpB,CAAC,CAAA;AAEf,CACJ,EAAC;AAEE,MAAMW,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAErB,kBAAkB;AAC1BsB,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRlB,IAAAA,IAAI,EAAE;AACFmB,MAAAA,GAAG,EAAEC,SAAAA;KACR;AACDnB,IAAAA,IAAI,EAAE;AACFkB,MAAAA,GAAG,EAAEE,WAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNtB,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;;"}
|
@@ -3,10 +3,10 @@
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
5
|
var React = require('react');
|
6
|
-
var plasmaCore = require('@salutejs/plasma-core');
|
7
6
|
var DropdownItem = require('../DropdownItem/DropdownItem.js');
|
8
7
|
var Dropdown_styles = require('../../Dropdown.styles.js');
|
9
8
|
var FloatingPopover = require('../../FloatingPopover.js');
|
9
|
+
var react = require('../../../../utils/react.js');
|
10
10
|
var getPlacement = require('../../utils/getPlacement.js');
|
11
11
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -39,7 +39,7 @@ const DropdownInner = ({
|
|
39
39
|
}
|
40
40
|
};
|
41
41
|
const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
|
42
|
-
const treeId =
|
42
|
+
const treeId = react.safeUseId();
|
43
43
|
const listId = `${treeId}_tree_level_${currentLevel + 2}`;
|
44
44
|
const nextLevel = currentLevel + 1;
|
45
45
|
if (item?.items) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DropdownInner.js","sources":["../../../../../src/components/Dropdown/ui/DropdownInner/DropdownInner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '
|
1
|
+
{"version":3,"file":"DropdownInner.js","sources":["../../../../../src/components/Dropdown/ui/DropdownInner/DropdownInner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { DropdownItem } from '../DropdownItem/DropdownItem';\nimport { Ul, ListWrapper } from '../../Dropdown.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\nimport { getPlacement } from '../../utils';\n\nimport { DropdownInnerProps } from './DropdownInner.type';\n\nconst DropdownInner: FC<DropdownInnerProps> = ({\n item,\n currentLevel,\n path,\n dispatchPath,\n index,\n trigger,\n listMaxHeight,\n listOverflow,\n listWidth,\n}) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (item?.items) {\n return (\n <FloatingPopover\n placement={getPlacement(item?.placement || 'right')}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n trigger={item.trigger || trigger}\n target={\n <DropdownItem\n item={item}\n index={index}\n path={path}\n currentLevel={currentLevel}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul id={listId} role=\"group\" listMaxHeight={listMaxHeight} listOverflow={listOverflow}>\n {item.items.map((innerItem, innerIndex) => (\n <DropdownInner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n trigger={trigger}\n listMaxHeight={listMaxHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <DropdownItem item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n\nexport { DropdownInner };\n"],"names":["DropdownInner","item","currentLevel","path","dispatchPath","index","trigger","listMaxHeight","listOverflow","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","nextLevel","items","React","createElement","FloatingPopover","placement","getPlacement","onToggle","target","DropdownItem","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","id","role","map","innerItem","innerIndex","key"],"mappings":"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"}
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
|
6
6
|
var React = require('react');
|
7
|
-
var plasmaCore = require('@salutejs/plasma-core');
|
8
|
-
var Dropdown_tokens = require('../../Dropdown.tokens.js');
|
9
7
|
var index$1 = require('../../../../utils/index.js');
|
8
|
+
var Dropdown_tokens = require('../../Dropdown.tokens.js');
|
10
9
|
var index = require('../../utils/index.js');
|
11
10
|
var base = require('./variations/_view/base.js');
|
12
11
|
var base$1 = require('./variations/_size/base.js');
|
13
12
|
var DropdownItem_styles = require('./DropdownItem.styles.js');
|
13
|
+
var react = require('../../../../utils/react.js');
|
14
14
|
|
15
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
16
16
|
|
@@ -39,7 +39,7 @@ const dropdownItemOldRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
39
39
|
onChange,
|
40
40
|
...rest
|
41
41
|
}, outerRootRef) => {
|
42
|
-
const uniqId =
|
42
|
+
const uniqId = react.safeUseId();
|
43
43
|
const innerId = id || uniqId;
|
44
44
|
const withDropdownItemIsSelected = checked || isSelected ? Dropdown_tokens.classes.dropdownItemIsSelected : undefined;
|
45
45
|
const withDropdownItemIsDisabled = disabled ? Dropdown_tokens.classes.dropdownItemIsDisabled : undefined;
|