@salutejs/plasma-new-hope 0.327.0-canary.2025.15756358809.0 → 0.327.0-canary.2029.15755421746.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/Drawer/Drawer.js +3 -2
- package/cjs/components/Drawer/Drawer.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/Modal/Modal.js +2 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Popup/Popup.js +2 -1
- package/cjs/components/Popup/Popup.js.map +1 -1
- package/cjs/components/Popup/PopupContext.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 +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -3
- package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +6 -7
- package/emotion/cjs/components/Drawer/Drawer.js +7 -7
- package/emotion/cjs/components/Dropdown/Dropdown.js +1 -2
- 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/Modal/Modal.js +5 -4
- package/emotion/cjs/components/Popup/Popup.js +1 -1
- package/emotion/cjs/components/Popup/PopupContext.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/Drawer/Drawer.js +2 -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/Modal/Modal.js +3 -2
- package/emotion/es/components/Popup/Popup.js +2 -2
- package/emotion/es/components/Popup/PopupContext.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/Drawer/Drawer.js +3 -2
- package/es/components/Drawer/Drawer.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/Modal/Modal.js +2 -1
- package/es/components/Modal/Modal.js.map +1 -1
- package/es/components/Popup/Popup.js +2 -1
- package/es/components/Popup/Popup.js.map +1 -1
- package/es/components/Popup/PopupContext.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 +2 -2
- 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 +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -3
- package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +6 -7
- package/styled-components/cjs/components/Drawer/Drawer.js +7 -7
- package/styled-components/cjs/components/Dropdown/Dropdown.js +1 -2
- 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/Modal/Modal.js +5 -4
- package/styled-components/cjs/components/Popup/Popup.js +1 -1
- package/styled-components/cjs/components/Popup/PopupContext.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/Drawer/Drawer.js +2 -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/Modal/Modal.js +3 -2
- package/styled-components/es/components/Popup/Popup.js +2 -2
- package/styled-components/es/components/Popup/PopupContext.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/Drawer/Drawer.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/Modal/Modal.d.ts +1 -1
- package/types/components/Modal/Modal.d.ts.map +1 -1
- package/types/components/Popup/Popup.d.ts +1 -1
- package/types/components/Popup/Popup.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":"SegmentGroup.js","sources":["../../../../../src/components/Segment/ui/SegmentGroup/SegmentGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport type { RefObject, MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../engines/types';\nimport {\n IconDisclosureLeftWithOffset,\n IconDisclosureRightWithOffset,\n IconDisclosureDownWithOffset,\n IconDisclosureUpWithOffset,\n} from '../../../_Icon';\nimport { classes, tokens } from '../../tokens';\nimport { cx } from '../../../../utils';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as filledBackgroundCSS } from './variations/_filledBackgound/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { base as orientationCSS } from './variations/_orientation/base';\nimport type { SegmentGroupProps } from './SegmentGroup.types';\nimport {\n StyledContent,\n StyledContentWrapper,\n base,\n StyledLeftArrow,\n StyledRightArrow,\n StyledTopArrow,\n StyledBottomArrow,\n} from './SegmentGroup.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nexport const getChildNodes = (wrapper: HTMLElement | null) => {\n const container = wrapper?.firstChild;\n return container ? (Array.from(container?.childNodes) as HTMLElement[]) : [];\n};\n\nexport const segmentGroupRoot = (Root: RootProps<HTMLDivElement, SegmentGroupProps>) =>\n forwardRef<HTMLDivElement, SegmentGroupProps>((props, outerRef) => {\n const {\n id,\n selectionMode,\n pilled,\n stretch,\n clip = true,\n orientation = 'horizontal',\n filledBackground = false,\n hasBackground = false,\n disabled = false,\n size,\n view,\n children,\n ...rest\n } = props;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const { setSelectionMode, setDisabledGroup } = useSegmentInner();\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(true);\n\n const uniqId = safeUseId();\n const segmentGroupId = id || uniqId;\n\n const canClip = clip && !stretch;\n\n const isVertical = orientation === 'vertical';\n const stretchClass =\n (clip ? firstItemVisible && lastItemVisible : true) && stretch ? classes.segmentStretch : undefined;\n\n const orientationClass = isVertical ? classes.segmentVertical : undefined;\n const clipScrollClass = canClip ? classes.segmentGroupClipScroll : undefined;\n\n const pilledAttr = (view !== 'clear' || hasBackground) && pilled;\n const filledBackgroundAttr = (view !== 'clear' && filledBackground) || hasBackground;\n\n const pilledClass = pilledAttr ? classes.segmentPilled : undefined;\n const filledClass = filledBackgroundAttr ? classes.segmentGroupFilledBackground : undefined;\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const scrollLeft = Math.round(scrollRef.current.scrollLeft);\n const firstOverflowingTab = childNodes\n .slice()\n .reverse()\n .find((child: HTMLElement | null) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabStartX = child.offsetLeft;\n\n return tabStartX < scrollLeft;\n });\n\n firstOverflowingTab?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const lastOverflowingChild = childNodes.find((child) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabEndX = child.offsetLeft + child.offsetWidth;\n\n return tabEndX > scrollRight;\n });\n\n lastOverflowingChild?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onKeyDown = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n const childNodes = getChildNodes(scrollRef?.current);\n\n const index = childNodes.findIndex((child) => document.activeElement === child);\n\n const minIndex = 0;\n const maxIndex = childNodes.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n childNodes[nextIndex]?.focus();\n childNodes[nextIndex]?.scrollIntoView({\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }, []);\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation?.();\n\n if (!canClip) {\n setFirstItemVisible(true);\n setLastItemVisible(true);\n return;\n }\n\n if (isVertical) {\n const maxScrollTop = event.currentTarget.scrollHeight - event.currentTarget.clientHeight;\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= 0);\n setLastItemVisible(scrollTop >= maxScrollTop);\n return;\n }\n\n const maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= 0);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [isVertical, canClip],\n );\n\n useEffect(() => {\n handleScroll(({ currentTarget: scrollRef.current } as unknown) as React.UIEvent<HTMLElement>);\n }, [handleScroll]);\n\n useEffect(() => {\n if (!canClip) {\n setLastItemVisible(true);\n return;\n }\n\n setLastItemVisible(\n isVertical\n ? scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight\n : scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth,\n );\n }, [isVertical, canClip]);\n\n // Этот хук компенсирует появление левой/верхней стрелки при прокрутке\n useEffect(() => {\n if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n\n if (isVertical) {\n scrollRef.current.scrollTo({\n top: Math.round(scrollRef.current.scrollTop + leftArrowRef.current.clientHeight),\n });\n return;\n }\n\n scrollRef.current.scrollTo({\n left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth),\n });\n }, [firstItemVisible, isVertical]);\n\n const PreviousButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledTopArrow : StyledLeftArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Предыдущий сегмент\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureUpWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureLeftWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onPrev, isVertical]);\n\n const NextButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledBottomArrow : StyledRightArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Следующий сегмент\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureDownWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureRightWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onNext, isVertical]);\n\n useEffect(() => {\n selectionMode && setSelectionMode(selectionMode);\n setDisabledGroup(disabled);\n }, [selectionMode, disabled]);\n\n return (\n <Root\n view={view}\n size={size}\n orientation={orientation}\n id={segmentGroupId}\n ref={outerRef}\n filledBackground={filledBackgroundAttr}\n disabled={disabled}\n pilled={pilledAttr}\n className={cx(pilledClass, filledClass, stretchClass, orientationClass)}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass)}\n ref={scrollRef as RefObject<HTMLDivElement>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>{children}</StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n );\n });\n\nexport const segmentGroupConfig = {\n name: 'SegmentGroup',\n tag: 'div',\n layout: segmentGroupRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n orientation: {\n css: orientationCSS,\n },\n filledBackground: {\n css: filledBackgroundCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getChildNodes","wrapper","container","firstChild","Array","from","childNodes","segmentGroupRoot","Root","forwardRef","props","outerRef","id","selectionMode","pilled","stretch","_props$clip","clip","_props$orientation","orientation","_props$filledBackgrou","filledBackground","_props$hasBackground","hasBackground","_props$disabled","disabled","size","view","children","rest","_objectWithoutProperties","_excluded","scrollRef","useRef","trackRef","leftArrowRef","_useSegmentInner","useSegmentInner","setSelectionMode","setDisabledGroup","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","uniqId","safeUseId","segmentGroupId","canClip","isVertical","stretchClass","classes","segmentStretch","undefined","orientationClass","segmentVertical","clipScrollClass","segmentGroupClipScroll","pilledAttr","filledBackgroundAttr","pilledClass","segmentPilled","filledClass","segmentGroupFilledBackground","onPrev","useCallback","current","scrollLeft","Math","round","firstOverflowingTab","slice","reverse","find","child","offsetLeft","tabStartX","scrollIntoView","block","inline","onNext","scrollRight","clientWidth","lastOverflowingChild","tabEndX","offsetWidth","onKeyDown","event","index","findIndex","document","activeElement","minIndex","maxIndex","length","nextIndex","keyCode","end","left","right","home","_childNodes$nextIndex","_childNodes$nextIndex2","preventDefault","focus","behavior","handleScroll","_event$stopPropagatio","stopPropagation","call","maxScrollTop","currentTarget","scrollHeight","clientHeight","scrollTop","maxScrollLeft","scrollWidth","useEffect","_scrollRef$current","_scrollRef$current2","_scrollRef$current3","_scrollRef$current4","scrollTo","top","PreviousButton","useMemo","ArrowNode","StyledTopArrow","StyledLeftArrow","React","createElement","type","onClick","tabIndex","IconDisclosureUpWithOffset","color","concat","tokens","arrowColor","IconDisclosureLeftWithOffset","NextButton","StyledBottomArrow","StyledRightArrow","IconDisclosureDownWithOffset","IconDisclosureRightWithOffset","_extends","ref","className","cx","StyledContentWrapper","onScroll","StyledContent","segmentGroupConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","stretchCSS","orientationCSS","filledBackgroundCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"SegmentGroup.js","sources":["../../../../../src/components/Segment/ui/SegmentGroup/SegmentGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport type { RefObject, MutableRefObject } from 'react';\nimport { safeUseId, cx } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport {\n IconDisclosureLeftWithOffset,\n IconDisclosureRightWithOffset,\n IconDisclosureDownWithOffset,\n IconDisclosureUpWithOffset,\n} from '../../../_Icon';\nimport { classes, tokens } from '../../tokens';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as filledBackgroundCSS } from './variations/_filledBackgound/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { base as orientationCSS } from './variations/_orientation/base';\nimport type { SegmentGroupProps } from './SegmentGroup.types';\nimport {\n StyledContent,\n StyledContentWrapper,\n base,\n StyledLeftArrow,\n StyledRightArrow,\n StyledTopArrow,\n StyledBottomArrow,\n} from './SegmentGroup.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nexport const getChildNodes = (wrapper: HTMLElement | null) => {\n const container = wrapper?.firstChild;\n return container ? (Array.from(container?.childNodes) as HTMLElement[]) : [];\n};\n\nexport const segmentGroupRoot = (Root: RootProps<HTMLDivElement, SegmentGroupProps>) =>\n forwardRef<HTMLDivElement, SegmentGroupProps>((props, outerRef) => {\n const {\n id,\n selectionMode,\n pilled,\n stretch,\n clip = true,\n orientation = 'horizontal',\n filledBackground = false,\n hasBackground = false,\n disabled = false,\n size,\n view,\n children,\n ...rest\n } = props;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const { setSelectionMode, setDisabledGroup } = useSegmentInner();\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(true);\n\n const uniqId = safeUseId();\n const segmentGroupId = id || uniqId;\n\n const canClip = clip && !stretch;\n\n const isVertical = orientation === 'vertical';\n const stretchClass =\n (clip ? firstItemVisible && lastItemVisible : true) && stretch ? classes.segmentStretch : undefined;\n\n const orientationClass = isVertical ? classes.segmentVertical : undefined;\n const clipScrollClass = canClip ? classes.segmentGroupClipScroll : undefined;\n\n const pilledAttr = (view !== 'clear' || hasBackground) && pilled;\n const filledBackgroundAttr = (view !== 'clear' && filledBackground) || hasBackground;\n\n const pilledClass = pilledAttr ? classes.segmentPilled : undefined;\n const filledClass = filledBackgroundAttr ? classes.segmentGroupFilledBackground : undefined;\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const scrollLeft = Math.round(scrollRef.current.scrollLeft);\n const firstOverflowingTab = childNodes\n .slice()\n .reverse()\n .find((child: HTMLElement | null) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabStartX = child.offsetLeft;\n\n return tabStartX < scrollLeft;\n });\n\n firstOverflowingTab?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const lastOverflowingChild = childNodes.find((child) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabEndX = child.offsetLeft + child.offsetWidth;\n\n return tabEndX > scrollRight;\n });\n\n lastOverflowingChild?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onKeyDown = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n const childNodes = getChildNodes(scrollRef?.current);\n\n const index = childNodes.findIndex((child) => document.activeElement === child);\n\n const minIndex = 0;\n const maxIndex = childNodes.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n childNodes[nextIndex]?.focus();\n childNodes[nextIndex]?.scrollIntoView({\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }, []);\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation?.();\n\n if (!canClip) {\n setFirstItemVisible(true);\n setLastItemVisible(true);\n return;\n }\n\n if (isVertical) {\n const maxScrollTop = event.currentTarget.scrollHeight - event.currentTarget.clientHeight;\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= 0);\n setLastItemVisible(scrollTop >= maxScrollTop);\n return;\n }\n\n const maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= 0);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [isVertical, canClip],\n );\n\n useEffect(() => {\n handleScroll(({ currentTarget: scrollRef.current } as unknown) as React.UIEvent<HTMLElement>);\n }, [handleScroll]);\n\n useEffect(() => {\n if (!canClip) {\n setLastItemVisible(true);\n return;\n }\n\n setLastItemVisible(\n isVertical\n ? scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight\n : scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth,\n );\n }, [isVertical, canClip]);\n\n // Этот хук компенсирует появление левой/верхней стрелки при прокрутке\n useEffect(() => {\n if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n\n if (isVertical) {\n scrollRef.current.scrollTo({\n top: Math.round(scrollRef.current.scrollTop + leftArrowRef.current.clientHeight),\n });\n return;\n }\n\n scrollRef.current.scrollTo({\n left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth),\n });\n }, [firstItemVisible, isVertical]);\n\n const PreviousButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledTopArrow : StyledLeftArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Предыдущий сегмент\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureUpWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureLeftWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onPrev, isVertical]);\n\n const NextButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledBottomArrow : StyledRightArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Следующий сегмент\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureDownWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureRightWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onNext, isVertical]);\n\n useEffect(() => {\n selectionMode && setSelectionMode(selectionMode);\n setDisabledGroup(disabled);\n }, [selectionMode, disabled]);\n\n return (\n <Root\n view={view}\n size={size}\n orientation={orientation}\n id={segmentGroupId}\n ref={outerRef}\n filledBackground={filledBackgroundAttr}\n disabled={disabled}\n pilled={pilledAttr}\n className={cx(pilledClass, filledClass, stretchClass, orientationClass)}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass)}\n ref={scrollRef as RefObject<HTMLDivElement>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>{children}</StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n );\n });\n\nexport const segmentGroupConfig = {\n name: 'SegmentGroup',\n tag: 'div',\n layout: segmentGroupRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n orientation: {\n css: orientationCSS,\n },\n filledBackground: {\n css: filledBackgroundCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getChildNodes","wrapper","container","firstChild","Array","from","childNodes","segmentGroupRoot","Root","forwardRef","props","outerRef","id","selectionMode","pilled","stretch","_props$clip","clip","_props$orientation","orientation","_props$filledBackgrou","filledBackground","_props$hasBackground","hasBackground","_props$disabled","disabled","size","view","children","rest","_objectWithoutProperties","_excluded","scrollRef","useRef","trackRef","leftArrowRef","_useSegmentInner","useSegmentInner","setSelectionMode","setDisabledGroup","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","uniqId","safeUseId","segmentGroupId","canClip","isVertical","stretchClass","classes","segmentStretch","undefined","orientationClass","segmentVertical","clipScrollClass","segmentGroupClipScroll","pilledAttr","filledBackgroundAttr","pilledClass","segmentPilled","filledClass","segmentGroupFilledBackground","onPrev","useCallback","current","scrollLeft","Math","round","firstOverflowingTab","slice","reverse","find","child","offsetLeft","tabStartX","scrollIntoView","block","inline","onNext","scrollRight","clientWidth","lastOverflowingChild","tabEndX","offsetWidth","onKeyDown","event","index","findIndex","document","activeElement","minIndex","maxIndex","length","nextIndex","keyCode","end","left","right","home","_childNodes$nextIndex","_childNodes$nextIndex2","preventDefault","focus","behavior","handleScroll","_event$stopPropagatio","stopPropagation","call","maxScrollTop","currentTarget","scrollHeight","clientHeight","scrollTop","maxScrollLeft","scrollWidth","useEffect","_scrollRef$current","_scrollRef$current2","_scrollRef$current3","_scrollRef$current4","scrollTo","top","PreviousButton","useMemo","ArrowNode","StyledTopArrow","StyledLeftArrow","React","createElement","type","onClick","tabIndex","IconDisclosureUpWithOffset","color","concat","tokens","arrowColor","IconDisclosureLeftWithOffset","NextButton","StyledBottomArrow","StyledRightArrow","IconDisclosureDownWithOffset","IconDisclosureRightWithOffset","_extends","ref","className","cx","StyledContentWrapper","onScroll","StyledContent","segmentGroupConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","stretchCSS","orientationCSS","filledBackgroundCSS","defaults"],"mappings":"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"}
|
@@ -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 = require('../../../../utils/index.js');
|
9
8
|
var tokens = require('../../tokens.js');
|
10
9
|
var SegmentProvider = require('../../SegmentProvider/SegmentProvider.js');
|
@@ -13,6 +12,7 @@ var base$1 = require('./variations/_view/base.js');
|
|
13
12
|
var base$2 = require('./variations/_disabled/base.js');
|
14
13
|
var base$3 = require('./variations/_pilled/base.js');
|
15
14
|
var SegmentItem_styles = require('./SegmentItem.styles.js');
|
15
|
+
var react = require('../../../../utils/react.js');
|
16
16
|
var extractTextFrom = require('../../../../utils/extractTextFrom.js');
|
17
17
|
|
18
18
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -39,7 +39,7 @@ var segmentItemRoot = function segmentItemRoot(Root) {
|
|
39
39
|
disabledGroup = _useSegmentInner.disabledGroup,
|
40
40
|
handleSelect = _useSegmentInner.handleSelect,
|
41
41
|
selectedSegmentItems = _useSegmentInner.selectedSegmentItems;
|
42
|
-
var uniqId =
|
42
|
+
var uniqId = react.safeUseId();
|
43
43
|
var segmentId = id || "label-".concat(uniqId);
|
44
44
|
var ariaLabelDefault = React.useMemo(function () {
|
45
45
|
return extractTextFrom.extractTextFrom(label);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SegmentItem.js","sources":["../../../../../src/components/Segment/ui/SegmentItem/SegmentItem.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport type { MouseEvent } from 'react';\nimport
|
1
|
+
{"version":3,"file":"SegmentItem.js","sources":["../../../../../src/components/Segment/ui/SegmentItem/SegmentItem.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport type { MouseEvent } from 'react';\nimport type { RootProps } from 'src/engines/types';\nimport { cx, safeUseId, extractTextFrom } from 'src/utils';\n\nimport { classes } from '../../tokens';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport type { SegmentItemProps } from './SegmentItem.types';\nimport { StyledContent, base, LeftContent, RightContent } from './SegmentItem.styles';\n\nexport const segmentItemRoot = (Root: RootProps<HTMLLabelElement, SegmentItemProps>) =>\n forwardRef<HTMLLabelElement, SegmentItemProps>((props, outerRef) => {\n const {\n size,\n view = 'default',\n className,\n id,\n label,\n value,\n pilled,\n contentLeft,\n contentRight,\n customHandleSelect,\n 'aria-label': ariaLabelExternal,\n ...rest\n } = props;\n const { disabledGroup, handleSelect, selectedSegmentItems } = useSegmentInner();\n\n const uniqId = safeUseId();\n const segmentId = id || `label-${uniqId}`;\n\n const ariaLabelDefault = useMemo(() => extractTextFrom(label), [label]);\n const pilledClass = pilled ? classes.segmentPilled : undefined;\n const xsSize = size === 'xs' ? classes.segmentXsSize : undefined;\n\n const isSelected = selectedSegmentItems?.includes(value || ariaLabelDefault);\n const selectedClass = isSelected ? classes.selectedSegmentItem : undefined;\n\n const handleSelectSegment = (event: MouseEvent<HTMLButtonElement>) => {\n if (disabledGroup) {\n return;\n }\n\n customHandleSelect?.(event);\n handleSelect?.(value || ariaLabelDefault);\n };\n\n return (\n <Root\n view={view}\n size={size}\n id={segmentId}\n ref={outerRef}\n aria-label={ariaLabelExternal || ariaLabelDefault}\n value={value}\n pilled={pilled}\n className={cx(selectedClass, pilledClass, xsSize, className)}\n onClick={handleSelectSegment}\n tabIndex={disabledGroup ? -1 : 0}\n disabled={disabledGroup}\n {...rest}\n >\n {contentLeft && <LeftContent>{contentLeft}</LeftContent>}\n <StyledContent>{label || value}</StyledContent>\n {contentRight && (\n <RightContent className={typeof contentRight === 'string' ? classes.segmentAdditionalText : ''}>\n {contentRight}\n </RightContent>\n )}\n </Root>\n );\n });\n\nexport const segmentItemConfig = {\n name: 'SegmentItem',\n tag: 'button',\n layout: segmentItemRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'xs',\n },\n};\n"],"names":["segmentItemRoot","Root","forwardRef","props","outerRef","size","_props$view","view","className","id","label","value","pilled","contentLeft","contentRight","customHandleSelect","ariaLabelExternal","rest","_objectWithoutProperties","_excluded","_useSegmentInner","useSegmentInner","disabledGroup","handleSelect","selectedSegmentItems","uniqId","safeUseId","segmentId","concat","ariaLabelDefault","useMemo","extractTextFrom","pilledClass","classes","segmentPilled","undefined","xsSize","segmentXsSize","isSelected","includes","selectedClass","selectedSegmentItem","handleSelectSegment","event","React","createElement","_extends","ref","cx","onClick","tabIndex","disabled","LeftContent","StyledContent","RightContent","segmentAdditionalText","segmentItemConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","defaults"],"mappings":"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"}
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
6
6
|
var react = require('@floating-ui/react');
|
7
7
|
var React = require('react');
|
8
|
-
var plasmaCore = require('@salutejs/plasma-core');
|
9
8
|
var getPlacement = require('./utils/getPlacement.js');
|
10
9
|
var getFallbackPlacements = require('./utils/getFallbackPlacements.js');
|
10
|
+
var react$1 = require('../../utils/react.js');
|
11
11
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
13
13
|
|
@@ -52,7 +52,7 @@ var FloatingPopover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
52
52
|
}),
|
53
53
|
refs = _useFloating.refs,
|
54
54
|
floatingStyles = _useFloating.floatingStyles;
|
55
|
-
var wrappedId =
|
55
|
+
var wrappedId = react$1.safeUseId();
|
56
56
|
var handleClick = function handleClick() {
|
57
57
|
if (onToggle) {
|
58
58
|
onToggle(!opened);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Select/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n size,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from '
|
1
|
+
{"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Select/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n size,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { getPlacement, getFallbackPlacements } from './utils';\nimport type { FloatingPopoverProps } from './Select.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, listWidth, zIndex, isInner }, 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: getPlacement(placement),\n open: opened,\n middleware: [\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : 0,\n alignmentAxis: isInner ? -LIST_PADDING : 0,\n }),\n flip({ fallbackPlacements: getFallbackPlacements(placement) }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width:\n listWidth ||\n `${isInner ? rects.reference.width + LIST_PADDING * 2 : rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId} style={{ position: 'relative' }}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: zIndex || 1000 }}>\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","_ref","ref","target","children","opened","onToggle","placement","portal","listWidth","zIndex","isInner","_useFloating","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","getPlacement","open","middleware","offsetMiddleware","mainAxis","alignmentAxis","flip","fallbackPlacements","getFallbackPlacements","shift","size","apply","_ref2","rects","elements","Object","assign","floating","style","width","concat","reference","refs","floatingStyles","wrappedId","safeUseId","handleClick","isTargetAsFunction","React","createElement","id","position","undefined","setReference","onClick","FloatingPortal","getFloatingPortalProps","setFloating","_objectSpread","root"],"mappings":"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"}
|
@@ -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 useKeyboardNavigation = require('./hooks/useKeyboardNavigation.js');
|
9
8
|
var usePathMaps = require('./hooks/usePathMaps.js');
|
10
9
|
var Select_styles = require('./Select.styles.js');
|
@@ -14,6 +13,7 @@ var Select_context = require('./Select.context.js');
|
|
14
13
|
var initialItemsTransform = require('./utils/initialItemsTransform.js');
|
15
14
|
var pathReducer = require('./reducers/pathReducer.js');
|
16
15
|
var focusedPathReducer = require('./reducers/focusedPathReducer.js');
|
16
|
+
var react = require('../../utils/react.js');
|
17
17
|
var useOutsideClick = require('../../hooks/useOutsideClick.js');
|
18
18
|
var isEmpty = require('../../utils/isEmpty.js');
|
19
19
|
var updateDescendants = require('./utils/updateDescendants.js');
|
@@ -128,7 +128,7 @@ var selectRoot = function selectRoot(Root) {
|
|
128
128
|
var isCurrentListOpen = Boolean(path[0]);
|
129
129
|
var activeDescendantItemValue = ((_getItemByFocused = useKeyboardNavigation.getItemByFocused(focusedPath, focusedToValueMap)) === null || _getItemByFocused === void 0 ? void 0 : _getItemByFocused.value.toString()) || '';
|
130
130
|
var closeAfterSelect = outerCloseAfterSelect !== null && outerCloseAfterSelect !== void 0 ? outerCloseAfterSelect : !props.multiselect;
|
131
|
-
var treeId =
|
131
|
+
var treeId = react.safeUseId();
|
132
132
|
var view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView.getView(status, outerView);
|
133
133
|
|
134
134
|
// Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { RootProps } from 'src/engines';\nimport { isEmpty } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n ref={targetRef}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","_props$target","target","items","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","listOverflow","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","_props$virtual","virtual","onToggle","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","multiselect","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","hintProps","targetRef","useOutsideClick","type","onChange","newValue","item","Array","isArray","_typeof","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","Target","selectProps","inputWrapperRef","isInner","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { RootProps } from 'src/engines';\nimport { isEmpty, safeUseId } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n ref={targetRef}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","_getItemByFocused","id","outerValue","value","_props$target","target","items","_props$placement","placement","label","labelPlacement","placeholder","helperText","_props$disabled","disabled","_props$readOnly","readOnly","outerView","view","size","listOverflow","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","_props$variant","variant","portal","renderValue","renderItem","status","onItemSelect","separator","outerCloseAfterSelect","closeAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","_props$virtual","virtual","onToggle","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","rest","_objectWithoutProperties","_excluded","transformedItems","useMemo","initialItemsTransform","_usePathMaps","usePathMaps","_usePathMaps2","_slicedToArray","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","_useState","useState","multiselect","_useState2","internalValue","setInternalValue","undefined","floatingPopoverRef","useRef","_useReducer","useReducer","pathReducer","_useReducer2","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useState3","_useState4","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","hintProps","targetRef","useOutsideClick","type","onChange","newValue","item","Array","isArray","_typeof","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","_useKeyNavigation","useKeyNavigation","onKeyDown","useLayoutEffect","_","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","Target","selectProps","inputWrapperRef","isInner","ListWrapper","Ul","role","concat","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
|
@@ -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 Select_styles = require('../../Select.styles.js');
|
8
7
|
var FloatingPopover = require('../../FloatingPopover.js');
|
9
8
|
var Item = require('./ui/Item/Item.js');
|
9
|
+
var react = require('../../../../utils/react.js');
|
10
10
|
var isEmpty = require('../../../../utils/isEmpty.js');
|
11
11
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -35,7 +35,7 @@ var Inner = function Inner(_ref) {
|
|
35
35
|
}
|
36
36
|
};
|
37
37
|
var isCurrentListOpen = path[currentLevel + 1] === item.value.toString();
|
38
|
-
var treeId =
|
38
|
+
var treeId = react.safeUseId();
|
39
39
|
var listId = "".concat(treeId, "_tree_level_").concat(currentLevel + 2);
|
40
40
|
var nextLevel = currentLevel + 1;
|
41
41
|
if (!isEmpty.isEmpty(item === null || item === void 0 ? void 0 : item.items)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/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/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { isEmpty, safeUseId } from 'src/utils';\n\nimport { Ul, ListWrapper } from '../../Select.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\n\nimport type { MergedDropdownNodeTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui/Item/Item';\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'}\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: MergedDropdownNodeTransformed, 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","_ref","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","concat","nextLevel","isEmpty","items","_item$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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"}
|
@@ -4,12 +4,12 @@ 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 base$1 = require('./variations/_view/base.js');
|
9
8
|
var base = require('./variations/_size/base.js');
|
10
9
|
var SpinnerSvg = require('./SpinnerSvg.js');
|
11
10
|
var Spinner_styles = require('./Spinner.styles.js');
|
12
11
|
var index = require('./hooks/index.js');
|
12
|
+
var react = require('../../utils/react.js');
|
13
13
|
|
14
14
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
15
15
|
|
@@ -27,7 +27,7 @@ var spinnerRoot = function spinnerRoot(Root) {
|
|
27
27
|
svgHeight: 'var(--plasma-spinner-size)',
|
28
28
|
color: 'currentColor'
|
29
29
|
});
|
30
|
-
var uniqId =
|
30
|
+
var uniqId = react.safeUseId;
|
31
31
|
var innerId = id || uniqId();
|
32
32
|
return /*#__PURE__*/React__default.default.createElement(Root, _rollupPluginBabelHelpers.extends({
|
33
33
|
ref: ref,
|