@semcore/dropdown-menu 16.2.2 → 17.0.0-prerelease.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["_core","require","_button","_interopRequireDefault","_assignProps13","_findComponent","_isFocusInside","_setFocus","_ref30","_uniqueID","_dropdown","_interopRequireWildcard","_flexBox","_scrollArea","_typography","_react","_Context","_VirtualList","_intergalacticDynamicLocales","style","sstyled","insert","menuItemContext","React","createContext","DropdownMenuRoot","_AbstractDropdown","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","createRef","_inherits2","_createClass2","key","value","uncontrolledProps","_this2","_objectSpread2","_superPropGet2","visible","setTimeout","focusAndScrollToSelected","get","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","_this$menuRef$current","_this3","_this$menuElements","menuElements","isFocusAlreadyInPopper","isFocusInside","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","from","indexOf","handlers","highlightedIndex","afterOpenPopper","_this$menuRef$current2","_this$menuElements2","itemRef","props","index","node","document","activeElement","getTriggerProps","_this$asProps","Children","uid","hasMenu","isAdvanceMode","DropdownMenu","Menu","displayName","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","undefined","getListProps","onKeyDown","handleArrowKeyDown","getVirtualListProps","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemTabIndex","itemIndex","disabled","_this$asProps2","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","_props$index","_this4","realIndex","itemProps","tabIndex","tag","ButtonComponent","_props$use","_props$theme","_props$size","use","theme","size","innerOutline","onClick","place","_this5","e","_this5$menuRef$curren","_e$target$getAttribut","_this5$asProps","placement","inlineActions","contains","target","stopPropagation","show","startsWith","hide","isMenuItem","getAttribute","_this5$itemRefs$highl","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","setFocus","render","_ref","_this$asProps3","interaction","timeout","createElement","selectedIndexContext","Provider","Dropdown","assignProps","AbstractDropdown","Object","values","enhance","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","localizedMessages","locale","trigger","popper","List","_ref22","_ref2","arguments[0]","_ref13","styles","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","ListBoxContextProvider","cn","Container","Actions","_ref23","_ref3","_ref14","SDropdownMenuActions","Flex","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends2","role","Item","_ref24","_ref5","_ref15","id","forwardRef","ariaChecked","SDropdownMenuItemContainer","useRef","_React$useState","useState","_React$useState2","_slicedToArray2","highlighted","setHighlighted","menuItemContextValue","contentId","forkRef","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","useUID","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","lastInteraction","isKeyboard","Addon","_ref6","_ref16","SDropdownMenuItemAddon","Box","Trigger","_ref7","ItemContent","_ref25","_ref8","_ref17","SItemContent","menuItemCtxValue","useContext","subMenu","_React$useState3","Set","_React$useState4","describedby","setDescribedby","element","parent","parentElement","prev","add","_toConsumableArray2","join","ItemContentText","_ref26","_ref9","_ref18","SItemContentText","Text","ItemHint","_ref27","_ref0","_ref19","SItemHint","_React$useContext","_ref1","_ref20","Title","_ref10","_ref21","Nesting","_ref28","_ref11","NestingTrigger","_ref29","_ref12","createComponent","VirtualList","ItemTitle","Group","_default","exports"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Flex, Box } from '@semcore/flex-box';\nimport ScrollAreaComponent from '@semcore/scroll-area';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './components/Context';\nimport { VirtualList } from './components/VirtualList';\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst menuItemContext = React.createContext({});\n\nclass DropdownMenuRoot extends AbstractDropdown {\n static displayName = 'DropdownMenu';\n static style = style;\n static enhance = Object.values(enhance);\n\n static defaultProps = {\n size: 'm',\n defaultVisible: false,\n defaultHighlightedIndex: 0,\n defaultSelectedIndex: 0,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n inlineActions: false,\n placement: 'bottom-start',\n timeout: 0,\n };\n\n static nestedMenuInteraction = {\n trigger: [\n ['onClick', 'onMouseEnter'],\n ['onClick', 'onMouseLeave'],\n ],\n popper: [['onMouseEnter'], ['onMouseLeave']],\n };\n\n actionsRef = React.createRef();\n role = 'menu';\n\n /**\n * TODO: It needs to be reconsidered in a future implementation so that component accepts items as a prop instead of JSX.\n * Tab index recalculation flag.\n *\n * When an item becomes disabled while highlighted, we need to transfer focus\n * to the next available focusable item. This flag ensures the focus lock\n * remains within proper boundaries during the initial render cycle.\n */\n shouldRecalculateItemTabIndex = false;\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n setTimeout(() => {\n this.focusAndScrollToSelected();\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 50);\n }\n },\n ],\n };\n }\n\n get menuElements() {\n const menuElement = this.menuRef.current;\n\n if (!menuElement) {\n return { selected: null, options: null };\n }\n\n const options = menuElement.querySelectorAll(\n '[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n );\n const selected = menuElement.querySelector('[aria-checked=\"true\"]:not([disabled])');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n let { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.menuRef.current?.dataset.isVirtual || isFocusAlreadyInPopper) return;\n\n this.scrollToNodeAsync(selected, true).then(() => {\n if (this.asProps.visible) {\n selected.focus({ preventScroll: true });\n }\n });\n\n const selectedIndex = Array.from(options).indexOf(selected);\n\n if (selectedIndex !== -1) {\n this.handlers.highlightedIndex(selectedIndex);\n }\n }\n\n afterOpenPopper() {\n const { selected, options } = this.menuElements;\n\n if (selected && options && !this.menuRef.current?.dataset.isVirtual) return;\n\n super.afterOpenPopper();\n }\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n if (node === document.activeElement) {\n super.scrollToNode(node);\n }\n }\n\n getTriggerProps() {\n const { Children, uid, visible } = this.asProps;\n const hasMenu = isAdvanceMode(Children, [DropdownMenu.Menu.displayName]);\n const ariaControls = hasMenu ? `igc-${uid}-list` : `igc-${uid}-popper`;\n\n return {\n ...super.getTriggerProps(),\n 'onKeyDown': callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleOpenKeyDown.bind(this),\n this.handleKeyDownForMenu('trigger'),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': hasMenu ? 'true' : 'dialog',\n };\n }\n\n getListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getVirtualListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n ),\n };\n }\n\n getActionsProps() {\n return {\n ...this.getListProps(),\n ref: this.actionsRef,\n onKeyDown: callAllEventHandlers(\n this.handlePreventTabOnActions.bind(this),\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getItemTabIndex(props, itemIndex) {\n const { disabled, index } = props;\n const { highlightedIndex, visible } = this.asProps;\n\n if (!visible) return -1;\n\n const isHighlighted = (index ?? itemIndex) === highlightedIndex;\n if (isHighlighted && !disabled) {\n return 0;\n }\n\n if (disabled && isHighlighted) {\n this.shouldRecalculateItemTabIndex = true;\n }\n\n if (!isHighlighted && !disabled && this.shouldRecalculateItemTabIndex) {\n this.shouldRecalculateItemTabIndex = false;\n return 0;\n }\n\n return -1;\n }\n\n getItemProps(props, index) {\n const realIndex = props.index ?? index;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: this.getItemTabIndex(props, index),\n ref: (node) => this.itemRef(props, realIndex, node),\n actionsRef: this.actionsRef,\n };\n\n if (props.tag === ButtonComponent) {\n itemProps.use = props.use ?? 'tertiary';\n itemProps.theme = props.theme ?? 'muted';\n itemProps.size = props.size ?? 's';\n itemProps.innerOutline = false;\n }\n\n if (props.selected) {\n itemProps['aria-checked'] = true;\n }\n\n if (super.childRole === 'menuitemradio') {\n itemProps.onClick = () => {\n this.handlers.visible(false);\n };\n }\n\n return itemProps;\n }\n\n handleKeyDownForMenu(place) {\n return (e) => {\n const { visible, placement, inlineActions } = this.asProps;\n\n // stop propagation keyboard events if it calls not on DropdownMenu.Items\n if (place === 'list' && !this.menuRef.current?.contains(e.target) && !inlineActions) {\n e.stopPropagation();\n return false;\n }\n\n const show =\n (e.key === 'ArrowRight' && placement?.startsWith('right')) ||\n (e.key === 'ArrowLeft' && placement?.startsWith('left')) ||\n ((e.key === 'Enter' || e.key === ' ') && !inlineActions);\n const hide =\n (e.key === 'ArrowLeft' && placement?.startsWith('right')) ||\n (e.key === 'ArrowRight' && placement?.startsWith('left')) ||\n e.key === 'Escape';\n const isMenuItem = e.target.getAttribute('role')?.startsWith(super.childRole);\n\n if (place === 'trigger' && show && isMenuItem) {\n this.handlers.visible(true);\n this.handlers.highlightedIndex(0);\n setTimeout(() => {\n let { highlightedIndex } = this.asProps;\n const highlightedIndexProps = this.itemProps[highlightedIndex];\n\n if (highlightedIndexProps?.disabled) {\n highlightedIndex = this.itemProps.findIndex((p) => !p.disabled);\n }\n\n if (highlightedIndex === -1) return;\n\n this.itemRefs[highlightedIndex]?.focus();\n }, 0);\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (place === 'list' && visible && hide && isMenuItem) {\n if (\n !inlineActions ||\n (inlineActions && (e.key === 'Escape' || this.asProps.highlightedIndex === 0))\n ) {\n this.handlers.visible(false);\n if (this.triggerRef.current) {\n setFocus(this.triggerRef.current);\n }\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n };\n }\n\n handlePreventTabOnActions(e) {\n if (e.key === 'Tab') {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n render() {\n const { Children, selectedIndex, interaction, timeout } = this.asProps;\n\n this.itemProps = [];\n\n return (\n <selectedIndexContext.Provider value={selectedIndex}>\n <Root\n render={Dropdown}\n timeout={timeout || (interaction === 'hover' ? [0, 100] : undefined)}\n >\n <Children />\n </Root>\n </selectedIndexContext.Provider>\n );\n }\n}\n\nfunction List({ styles, Children }) {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <ScrollAreaComponent.Container tabIndex={undefined}>\n <Children />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n}\nfunction Actions({ styles }) {\n const SDropdownMenuActions = Root;\n\n return sstyled(styles)(<SDropdownMenuActions render={Flex} />);\n}\n\nfunction Menu(props) {\n const {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n } = props;\n const popperProps = {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n };\n return (\n <ListBoxContextProvider>\n <DropdownMenu.Popper {...popperProps} role={null}>\n <Root render={DropdownMenu.List} />\n </DropdownMenu.Popper>\n </ListBoxContextProvider>\n );\n}\n\nfunction Item({\n id,\n styles,\n disabled,\n Children,\n forwardRef,\n role,\n tabIndex,\n actionsRef,\n 'aria-checked': ariaChecked,\n}) {\n const SDropdownMenuItemContainer = Root;\n const itemRef = React.useRef();\n\n const [highlighted, setHighlighted] = React.useState(false);\n\n const menuItemContextValue = {\n contentId: id,\n ref: forkRef(forwardRef, itemRef),\n role,\n tabIndex,\n ariaChecked,\n disabled,\n };\n const ariaDescribes = [];\n\n const hasSubMenu = isAdvanceMode(Children, [DropdownMenu.displayName], true);\n const hasHint = isAdvanceMode(Children, [DropdownMenu.Item.Hint.displayName], true);\n const advancedMode =\n isAdvanceMode(Children, [DropdownMenu.Item.Content.displayName], true) || hasSubMenu || hasHint;\n\n if (hasHint) {\n const hintId = `igc-${useUID()}-option-hint`;\n\n menuItemContextValue.hintId = hintId;\n ariaDescribes.push(hintId);\n }\n\n if (hasSubMenu) {\n menuItemContextValue.hasSubMenu = true;\n }\n\n menuItemContextValue.ariaDescribes = ariaDescribes;\n\n React.useEffect(() => {\n const onFocus = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(true);\n\n if (hasSubMenu) {\n e.stopPropagation();\n }\n }\n };\n const onBlur = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(false);\n\n if (actionsRef.current) {\n itemRef.current.tabIndex = -1;\n }\n }\n };\n\n document.addEventListener('focus', onFocus, { capture: true });\n document.addEventListener('blur', onBlur, { capture: true });\n\n return () => {\n document.removeEventListener('focus', onFocus, { capture: true });\n document.removeEventListener('blur', onBlur, { capture: true });\n };\n }, [itemRef.current]);\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : menuItemContextValue.ref}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles }) {\n const SItemContentText = Root;\n return sstyled(styles)(<SItemContentText render={Text} />);\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\n/**\n * @deprecated Use Item hint\n */\nfunction Hint(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='hint' />,\n );\n}\n/**\n * @deprecated Use Group with title prop\n */\nfunction Title(props) {\n const SDropdownMenuItemContainer = Root;\n return sstyled(props.styles)(\n <SDropdownMenuItemContainer render={Dropdown.Item} variant='title' />,\n );\n}\n\n/**\n * @deprecated\n */\nfunction Nesting({ forwardRef }) {\n return <Root render={DropdownMenu.Item} ref={forwardRef} />;\n}\n\n/**\n * @deprecated\n */\nfunction NestingTrigger({ forwardRef }) {\n return (\n <Root\n render={DropdownMenu.Item.Content}\n tag={DropdownMenu.Trigger}\n ref={forwardRef}\n use:role='menuitem'\n />\n );\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n /**\n * @deprecated. Use just Item. See examples on\n */\n Nesting: [Nesting, { Trigger: NestingTrigger, Addon }],\n ItemTitle: Title,\n ItemHint: Hint,\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DropdownMenu.js","names":["_core","require","_baseComponents","_button","_interopRequireDefault","_assignProps1","_findComponent","_isFocusInside","_setFocus","_ref16","_uniqueID","_dropdown","_interopRequireWildcard","_typography","_react","_Context","_VirtualList","_intergalacticDynamicLocales","style","sstyled","insert","menuItemContext","React","createContext","DropdownMenuRoot","AbstractDropdown","constructor","args","_defineProperty2","default","createRef","uncontrolledProps","visible","setTimeout","focusAndScrollToSelected","menuElements","menuElement","menuRef","current","selected","options","querySelectorAll","querySelector","isFocusAlreadyInPopper","isFocusInside","popperRef","dataset","isVirtual","scrollToNodeAsync","then","asProps","focus","preventScroll","selectedIndex","Array","from","indexOf","handlers","highlightedIndex","afterOpenPopper","itemRef","props","index","node","document","activeElement","scrollToNode","getTriggerProps","Children","uid","hasMenu","isAdvanceMode","DropdownMenu","Menu","displayName","ariaControls","callAllEventHandlers","handlePreventCommonKeyDown","bind","handleOpenKeyDown","handleKeyDownForMenu","undefined","getListProps","onKeyDown","handleArrowKeyDown","getVirtualListProps","getPopperProps","handlePreventPopperKeyDown","getActionsProps","ref","actionsRef","handlePreventTabOnActions","getItemTabIndex","itemIndex","disabled","isHighlighted","shouldRecalculateItemTabIndex","getItemProps","realIndex","itemProps","tabIndex","tag","ButtonComponent","use","theme","size","innerOutline","childRole","onClick","place","e","placement","inlineActions","contains","target","stopPropagation","show","key","startsWith","hide","isMenuItem","getAttribute","highlightedIndexProps","findIndex","p","itemRefs","preventDefault","triggerRef","setFocus","render","_ref","interaction","timeout","createElement","selectedIndexContext","Provider","value","Dropdown","assignProps","Object","values","enhance","defaultVisible","defaultHighlightedIndex","defaultSelectedIndex","i18n","localizedMessages","locale","trigger","popper","List","styles","_ref2","arguments[0]","_ref1","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","ListBoxContextProvider","cn","ScrollArea","Container","Actions","_ref3","_ref10","SDropdownMenuActions","Flex","_ref4","disablePortal","ignorePortalsStacking","disableEnforceFocus","autoFocus","animationsDisabled","popperProps","Popper","_extends2","role","Item","id","forwardRef","ariaChecked","_ref5","_ref11","SDropdownMenuItemContainer","useRef","highlighted","setHighlighted","useState","menuItemContextValue","contentId","ariaDescribes","hasSubMenu","hasHint","Hint","advancedMode","Content","hintId","useUID","push","useEffect","onFocus","onBlur","addEventListener","capture","removeEventListener","forkRef","lastInteraction","isKeyboard","Addon","_ref6","_ref12","SDropdownMenuItemAddon","Box","Trigger","_ref7","ItemContent","_ref8","_ref13","SItemContent","menuItemCtxValue","useContext","subMenu","describedby","setDescribedby","Set","element","parent","parentElement","prev","add","join","ItemContentText","ellipsis","hintProps","_ref9","_ref14","SItemContentText","Text","Fragment","ItemHint","_ref0","_ref15","SItemHint","createComponent","VirtualList","Group","_default","exports"],"sources":["../../src/DropdownMenu.jsx"],"sourcesContent":["import { Flex, ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport ButtonComponent from '@semcore/button';\nimport { createComponent, sstyled, Root, lastInteraction } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport { isFocusInside } from '@semcore/core/lib/utils/focus-lock/isFocusInside';\nimport { setFocus } from '@semcore/core/lib/utils/focus-lock/setFocus';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { useUID } from '@semcore/core/lib/utils/uniqueID';\nimport Dropdown, { AbstractDropdown, selectedIndexContext, enhance } from '@semcore/dropdown';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './components/Context';\nimport { VirtualList } from './components/VirtualList';\nimport style from './style/dropdown-menu.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nconst menuItemContext = React.createContext({});\n\nclass DropdownMenuRoot extends AbstractDropdown {\n static displayName = 'DropdownMenu';\n static style = style;\n static enhance = Object.values(enhance);\n\n static defaultProps = {\n size: 'm',\n defaultVisible: false,\n defaultHighlightedIndex: 0,\n defaultSelectedIndex: 0,\n i18n: localizedMessages,\n locale: 'en',\n interaction: 'click',\n inlineActions: false,\n placement: 'bottom-start',\n timeout: 0,\n };\n\n static nestedMenuInteraction = {\n trigger: [\n ['onClick', 'onMouseEnter'],\n ['onClick', 'onMouseLeave'],\n ],\n popper: [['onMouseEnter'], ['onMouseLeave']],\n };\n\n actionsRef = React.createRef();\n role = 'menu';\n\n /**\n * TODO: It needs to be reconsidered in a future implementation so that component accepts items as a prop instead of JSX.\n * Tab index recalculation flag.\n *\n * When an item becomes disabled while highlighted, we need to transfer focus\n * to the next available focusable item. This flag ensures the focus lock\n * remains within proper boundaries during the initial render cycle.\n */\n shouldRecalculateItemTabIndex = false;\n\n uncontrolledProps() {\n return {\n ...super.uncontrolledProps(),\n visible: [\n null,\n (visible) => {\n if (visible === true) {\n setTimeout(() => {\n this.focusAndScrollToSelected();\n // for some reason, Google Chrome optimizes this timeout with 0 value with previous render (when we set aria-selected)\n // and that's why its skip scrollToNodes. We selected the appropriate timeout manually.\n }, 50);\n }\n },\n ],\n };\n }\n\n get menuElements() {\n const menuElement = this.menuRef.current;\n\n if (!menuElement) {\n return { selected: null, options: null };\n }\n\n const options = menuElement.querySelectorAll(\n '[role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]',\n );\n const selected = menuElement.querySelector('[aria-checked=\"true\"]:not([disabled])');\n\n return { selected, options };\n }\n\n focusAndScrollToSelected() {\n let { selected, options } = this.menuElements;\n\n const isFocusAlreadyInPopper = isFocusInside(this.popperRef.current);\n\n if (!selected || !options || this.menuRef.current?.dataset.isVirtual || isFocusAlreadyInPopper) return;\n\n this.scrollToNodeAsync(selected, true).then(() => {\n if (this.asProps.visible) {\n selected.focus({ preventScroll: true });\n }\n });\n\n const selectedIndex = Array.from(options).indexOf(selected);\n\n if (selectedIndex !== -1) {\n this.handlers.highlightedIndex(selectedIndex);\n }\n }\n\n afterOpenPopper() {\n const { selected, options } = this.menuElements;\n\n if (selected && options && !this.menuRef.current?.dataset.isVirtual) return;\n\n super.afterOpenPopper();\n }\n\n itemRef(props, index, node) {\n super.itemRef(props, index, node);\n\n if (node === document.activeElement) {\n super.scrollToNode(node);\n }\n }\n\n getTriggerProps() {\n const { Children, uid, visible } = this.asProps;\n const hasMenu = isAdvanceMode(Children, [DropdownMenu.Menu.displayName]);\n const ariaControls = hasMenu ? `igc-${uid}-list` : `igc-${uid}-popper`;\n\n return {\n ...super.getTriggerProps(),\n 'onKeyDown': callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleOpenKeyDown.bind(this),\n this.handleKeyDownForMenu('trigger'),\n ),\n 'aria-controls': visible ? ariaControls : undefined,\n 'aria-haspopup': hasMenu ? 'true' : 'dialog',\n };\n }\n\n getListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getVirtualListProps() {\n return {\n ...super.getListProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getPopperProps() {\n return {\n ...super.getPopperProps(),\n onKeyDown: callAllEventHandlers(\n this.handlePreventCommonKeyDown.bind(this),\n this.handlePreventPopperKeyDown.bind(this),\n ),\n };\n }\n\n getActionsProps() {\n return {\n ...this.getListProps(),\n ref: this.actionsRef,\n onKeyDown: callAllEventHandlers(\n this.handlePreventTabOnActions.bind(this),\n this.handlePreventCommonKeyDown.bind(this),\n this.handleKeyDownForMenu('list'),\n this.handleArrowKeyDown.bind(this),\n ),\n };\n }\n\n getItemTabIndex(props, itemIndex) {\n const { disabled, index } = props;\n const { highlightedIndex, visible } = this.asProps;\n\n if (!visible) return -1;\n\n const isHighlighted = (index ?? itemIndex) === highlightedIndex;\n if (isHighlighted && !disabled) {\n return 0;\n }\n\n if (disabled && isHighlighted) {\n this.shouldRecalculateItemTabIndex = true;\n }\n\n if (!isHighlighted && !disabled && this.shouldRecalculateItemTabIndex) {\n this.shouldRecalculateItemTabIndex = false;\n return 0;\n }\n\n return -1;\n }\n\n getItemProps(props, index) {\n const realIndex = props.index ?? index;\n const itemProps = {\n ...super.getItemProps(props, realIndex),\n tabIndex: this.getItemTabIndex(props, index),\n ref: (node) => this.itemRef(props, realIndex, node),\n actionsRef: this.actionsRef,\n };\n\n if (props.tag === ButtonComponent) {\n itemProps.use = props.use ?? 'tertiary';\n itemProps.theme = props.theme ?? 'muted';\n itemProps.size = props.size ?? 's';\n itemProps.innerOutline = false;\n }\n\n if (props.selected) {\n itemProps['aria-checked'] = true;\n }\n\n if (super.childRole === 'menuitemradio') {\n itemProps.onClick = () => {\n this.handlers.visible(false);\n };\n }\n\n return itemProps;\n }\n\n handleKeyDownForMenu(place) {\n return (e) => {\n const { visible, placement, inlineActions } = this.asProps;\n\n // stop propagation keyboard events if it calls not on DropdownMenu.Items\n if (place === 'list' && !this.menuRef.current?.contains(e.target) && !inlineActions) {\n e.stopPropagation();\n return false;\n }\n\n const show =\n (e.key === 'ArrowRight' && placement?.startsWith('right')) ||\n (e.key === 'ArrowLeft' && placement?.startsWith('left')) ||\n ((e.key === 'Enter' || e.key === ' ') && !inlineActions);\n const hide =\n (e.key === 'ArrowLeft' && placement?.startsWith('right')) ||\n (e.key === 'ArrowRight' && placement?.startsWith('left')) ||\n e.key === 'Escape';\n const isMenuItem = e.target.getAttribute('role')?.startsWith(super.childRole);\n\n if (place === 'trigger' && show && isMenuItem) {\n this.handlers.visible(true);\n this.handlers.highlightedIndex(0);\n setTimeout(() => {\n let { highlightedIndex } = this.asProps;\n const highlightedIndexProps = this.itemProps[highlightedIndex];\n\n if (highlightedIndexProps?.disabled) {\n highlightedIndex = this.itemProps.findIndex((p) => !p.disabled);\n }\n\n if (highlightedIndex === -1) return;\n\n this.itemRefs[highlightedIndex]?.focus();\n }, 0);\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (place === 'list' && visible && hide && isMenuItem) {\n if (\n !inlineActions ||\n (inlineActions && (e.key === 'Escape' || this.asProps.highlightedIndex === 0))\n ) {\n this.handlers.visible(false);\n if (this.triggerRef.current) {\n setFocus(this.triggerRef.current);\n }\n\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n };\n }\n\n handlePreventTabOnActions(e) {\n if (e.key === 'Tab') {\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n render() {\n const { Children, selectedIndex, interaction, timeout } = this.asProps;\n\n this.itemProps = [];\n\n return (\n <selectedIndexContext.Provider value={selectedIndex}>\n <Root\n render={Dropdown}\n timeout={timeout || (interaction === 'hover' ? [0, 100] : undefined)}\n >\n <Children />\n </Root>\n </selectedIndexContext.Provider>\n );\n }\n}\n\nfunction List({ styles, Children }) {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList render={ScrollAreaComponent} shadow={true} shadowSize={16} shadowTheme='light'>\n <ScrollAreaComponent.Container tabIndex={undefined}>\n <Children />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n}\nfunction Actions({ styles }) {\n const SDropdownMenuActions = Root;\n\n return sstyled(styles)(<SDropdownMenuActions render={Flex} />);\n}\n\nfunction Menu(props) {\n const {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n } = props;\n const popperProps = {\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n interaction,\n autoFocus,\n animationsDisabled,\n };\n return (\n <ListBoxContextProvider>\n <DropdownMenu.Popper {...popperProps} role={null}>\n <Root render={DropdownMenu.List} />\n </DropdownMenu.Popper>\n </ListBoxContextProvider>\n );\n}\n\nfunction Item({\n id,\n styles,\n disabled,\n Children,\n forwardRef,\n role,\n tabIndex,\n actionsRef,\n 'aria-checked': ariaChecked,\n}) {\n const SDropdownMenuItemContainer = Root;\n const itemRef = React.useRef();\n\n const [highlighted, setHighlighted] = React.useState(false);\n\n const menuItemContextValue = {\n contentId: id,\n ref: itemRef,\n forwardRef,\n role,\n tabIndex,\n ariaChecked,\n disabled,\n };\n const ariaDescribes = [];\n\n const hasSubMenu = isAdvanceMode(Children, [DropdownMenu.displayName], true);\n const hasHint = isAdvanceMode(Children, [DropdownMenu.Item.Hint.displayName], true);\n const advancedMode =\n isAdvanceMode(Children, [DropdownMenu.Item.Content.displayName], true) || hasSubMenu || hasHint;\n\n if (hasHint) {\n const hintId = `igc-${useUID()}-option-hint`;\n\n menuItemContextValue.hintId = hintId;\n ariaDescribes.push(hintId);\n }\n\n if (hasSubMenu) {\n menuItemContextValue.hasSubMenu = true;\n }\n\n menuItemContextValue.ariaDescribes = ariaDescribes;\n\n React.useEffect(() => {\n const onFocus = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(true);\n\n if (hasSubMenu) {\n e.stopPropagation();\n }\n }\n };\n const onBlur = (e) => {\n if (e.target === itemRef.current) {\n setHighlighted(false);\n\n if (actionsRef.current) {\n itemRef.current.tabIndex = -1;\n }\n }\n };\n\n document.addEventListener('focus', onFocus, { capture: true });\n document.addEventListener('blur', onBlur, { capture: true });\n\n return () => {\n document.removeEventListener('focus', onFocus, { capture: true });\n document.removeEventListener('blur', onBlur, { capture: true });\n };\n });\n\n return sstyled(styles)(\n <menuItemContext.Provider value={menuItemContextValue}>\n <SDropdownMenuItemContainer\n render={Dropdown.Item}\n ref={advancedMode ? undefined : forkRef(itemRef, forwardRef)}\n use:highlighted={!disabled && highlighted && lastInteraction.isKeyboard()}\n use:role={advancedMode ? undefined : role}\n use:id={advancedMode ? undefined : id}\n use:tabIndex={advancedMode ? undefined : tabIndex}\n use:aria-checked={advancedMode ? undefined : ariaChecked}\n >\n <Children />\n </SDropdownMenuItemContainer>\n </menuItemContext.Provider>,\n );\n}\n\nfunction Addon(props) {\n const SDropdownMenuItemAddon = Root;\n return sstyled(props.styles)(<SDropdownMenuItemAddon render={Box} />);\n}\n\nfunction Trigger() {\n return <Root render={Dropdown.Trigger} />;\n}\n\nfunction ItemContent({ styles }) {\n const SItemContent = Root;\n const ref = React.useRef();\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n let subMenu = undefined;\n\n if (menuItemCtxValue.hasSubMenu) {\n subMenu = 'true';\n }\n\n const [describedby, setDescribedby] = React.useState(new Set(menuItemCtxValue.ariaDescribes));\n\n React.useEffect(() => {\n const element = ref.current;\n const parent = element?.parentElement;\n\n if (\n parent.getAttribute('aria-haspopup') === 'true' &&\n parent.getAttribute('aria-describedby')\n ) {\n setDescribedby((prev) => {\n prev.add(parent.getAttribute('aria-describedby'));\n\n return new Set(prev);\n });\n }\n }, [menuItemCtxValue.ariaDescribes]);\n\n return sstyled(styles)(\n <SItemContent\n render={Flex}\n role={menuItemCtxValue.role}\n id={menuItemCtxValue.contentId}\n tabIndex={menuItemCtxValue.tabIndex}\n ref={forkRef(menuItemCtxValue.ref, menuItemCtxValue.forwardRef, ref)}\n use:aria-describedby={[...describedby].join(' ')}\n aria-haspopup={menuItemCtxValue.hasSubMenu ? 'true' : undefined}\n aria-expanded={subMenu}\n aria-checked={menuItemCtxValue.ariaChecked}\n alignItems='center'\n justifyContent={menuItemCtxValue.hasSubMenu ? 'space-between' : undefined}\n disabled={menuItemCtxValue.disabled}\n />,\n );\n}\n\nfunction ItemContentText({ styles, ellipsis = false, hintProps = {} }) {\n const SItemContentText = Root;\n const menuItemCtxValue = React.useContext(menuItemContext);\n\n if (menuItemCtxValue.ref) {\n hintProps.triggerRef = menuItemCtxValue.ref;\n }\n\n return sstyled(styles)(\n <>\n <SItemContentText\n render={Text}\n ellipsis={ellipsis}\n hintProps={hintProps}\n />\n </>,\n );\n}\n\nfunction ItemHint({ styles }) {\n const SItemHint = Root;\n const { hintId } = React.useContext(menuItemContext);\n\n return sstyled(styles)(<SItemHint render={Flex} id={hintId} aria-hidden='true' />);\n}\n\nconst DropdownMenu = createComponent(\n DropdownMenuRoot,\n {\n Trigger,\n Popper: Dropdown.Popper,\n List,\n VirtualList,\n Actions,\n Menu,\n Item: [Item, { Addon, Content: ItemContent, Text: ItemContentText, Hint: ItemHint }],\n Group: Dropdown.Group,\n },\n {\n parent: [Dropdown],\n },\n);\n\nDropdownMenu.selectedIndexContext = selectedIndexContext;\n\nexport default DropdownMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ListBoxContextProvider = void 0;
8
- var _scrollArea = require("@semcore/scroll-area");
8
+ var _baseComponents = require("@semcore/base-components");
9
9
  var _react = _interopRequireDefault(require("react"));
10
- var ListBoxContextProvider = exports.ListBoxContextProvider = function ListBoxContextProvider(_ref) {
11
- var children = _ref.children;
12
- return /*#__PURE__*/_react["default"].createElement(_scrollArea.hideScrollBarsFromScreenReadersContext.Provider, {
13
- value: true
14
- }, children);
15
- };
10
+ const ListBoxContextProvider = ({
11
+ children
12
+ }) => /*#__PURE__*/_react.default.createElement(_baseComponents.hideScrollBarsFromScreenReadersContext.Provider, {
13
+ value: true
14
+ }, children);
15
+ exports.ListBoxContextProvider = ListBoxContextProvider;
16
16
  //# sourceMappingURL=Context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["_scrollArea","require","_react","_interopRequireDefault","ListBoxContextProvider","exports","_ref","children","createElement","hideScrollBarsFromScreenReadersContext","Provider","value"],"sources":["../../../src/components/Context.tsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext } from '@semcore/scroll-area';\nimport React from 'react';\n\nexport const ListBoxContextProvider = ({ children }: React.PropsWithChildren) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEO,IAAMG,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,SAAzBA,sBAAsBA,CAAAE,IAAA;EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAAA,oBAC/CL,MAAA,YAAAM,aAAA,CAACR,WAAA,CAAAS,sCAAsC,CAACC,QAAQ;IAACC,KAAK,EAAE;EAAK,GAC1DJ,QAC8C,CAAC;AAAA,CACnD","ignoreList":[]}
1
+ {"version":3,"file":"Context.js","names":["_baseComponents","require","_react","_interopRequireDefault","ListBoxContextProvider","children","default","createElement","hideScrollBarsFromScreenReadersContext","Provider","value","exports"],"sources":["../../../src/components/Context.tsx"],"sourcesContent":["import { hideScrollBarsFromScreenReadersContext } from '@semcore/base-components';\nimport React from 'react';\n\nexport const ListBoxContextProvider = ({ children }: React.PropsWithChildren) => (\n <hideScrollBarsFromScreenReadersContext.Provider value={true}>\n {children}\n </hideScrollBarsFromScreenReadersContext.Provider>\n);\n"],"mappings":";;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEO,MAAMG,sBAAsB,GAAGA,CAAC;EAAEC;AAAkC,CAAC,kBAC1EH,MAAA,CAAAI,OAAA,CAAAC,aAAA,CAACP,eAAA,CAAAQ,sCAAsC,CAACC,QAAQ;EAACC,KAAK,EAAE;AAAK,GAC1DL,QAC8C,CAClD;AAACM,OAAA,CAAAP,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1,148 +1,131 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.VirtualList = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
9
  var _core = require("@semcore/core");
15
10
  var _baseComponents = require("@semcore/base-components");
16
- var _scrollArea = _interopRequireDefault(require("@semcore/scroll-area"));
17
11
  var _react = _interopRequireDefault(require("react"));
18
12
  var _Context = require("./Context");
19
13
  /*!__reshadow-styles__:"../style/dropdown-menu.shadow.css"*/
20
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1ulzv_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1ulzv_gg_ .___SBar_1ulzv_gg_{z-index:3}.___SDropdownMenuList_1ulzv_gg_ .___SShadowHorizontal_1ulzv_gg_:after,.___SDropdownMenuList_1ulzv_gg_ .___SShadowHorizontal_1ulzv_gg_:before,.___SDropdownMenuList_1ulzv_gg_ .___SShadowVertical_1ulzv_gg_:after,.___SDropdownMenuList_1ulzv_gg_ .___SShadowVertical_1ulzv_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1ulzv_gg_ .___SItemContent_1ulzv_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1ulzv_gg_.__nesting-trigger_1ulzv_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1ulzv_gg_,.___SItemContentText_1ulzv_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1ulzv_gg_:first-child,.___SItemContentText_1ulzv_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1ulzv_gg_:last-child,.___SItemContentText_1ulzv_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1ulzv_gg_,.___SDropdownMenuNesting_1ulzv_gg_._size_l_1ulzv_gg_,.___SDropdownMenuNesting_1ulzv_gg_._size_m_1ulzv_gg_{padding:0}.___SDropdownMenuNesting_1ulzv_gg_.__highlighted_1ulzv_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1ulzv_gg_._size_l_1ulzv_gg_,.___SDropdownNestingItem_1ulzv_gg_._size_m_1ulzv_gg_{padding-right:0}.___SDropdownNestingItem_1ulzv_gg_ .___SDropdownMenuItemContainer_1ulzv_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1ulzv_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1ulzv_gg_"),
14
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SDropdownMenuList_1r615_gg_{max-height:240px;padding:var(--intergalactic-spacing-1x, 4px)0;position:relative;min-height:26px;min-width:32px;box-sizing:content-box;z-index:0;color:var(--intergalactic-text-primary, #191b23)}.___SDropdownMenuList_1r615_gg_ .___SBar_1r615_gg_{z-index:3}.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowHorizontal_1r615_gg_:before,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:after,.___SDropdownMenuList_1r615_gg_ .___SShadowVertical_1r615_gg_:before{border-radius:var(--intergalactic-control-rounded, 6px)}.___SDropdownMenuItemContainer_1r615_gg_ .___SItemContent_1r615_gg_:focus-visible{outline:0}.___SDropdownMenuItemContainer_1r615_gg_.__nesting-trigger_1r615_gg_{justify-content:space-between}.___SDropdownMenuItemAddon_1r615_gg_,.___SItemContentText_1r615_gg_{display:inline-flex;margin-left:var(--intergalactic-spacing-1x, 4px);margin-right:var(--intergalactic-spacing-1x, 4px)}.___SDropdownMenuItemAddon_1r615_gg_:first-child,.___SItemContentText_1r615_gg_:first-child{margin-left:0}.___SDropdownMenuItemAddon_1r615_gg_:last-child,.___SItemContentText_1r615_gg_:last-child{margin-right:0}.___SDropdownMenuNesting_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_l_1r615_gg_,.___SDropdownMenuNesting_1r615_gg_._size_m_1r615_gg_{padding:0}.___SDropdownMenuNesting_1r615_gg_.__highlighted_1r615_gg_{z-index:1;outline-color:var(--intergalactic-keyboard-focus-outline, #008ff8);outline-style:solid;outline-width:2px;outline-offset:-2px;transition-duration:calc(var(--intergalactic-duration-extra-fast, 100)*1ms);transition-timing-function:ease-in-out;transition-property:outline-color,outline-width,outline-offset}.___SDropdownNestingItem_1r615_gg_._size_l_1r615_gg_,.___SDropdownNestingItem_1r615_gg_._size_m_1r615_gg_{padding-right:0}.___SDropdownNestingItem_1r615_gg_ .___SDropdownMenuItemContainer_1r615_gg_{width:auto;padding-top:0;padding-bottom:0;padding-left:0;min-height:auto}.___SItemHint_1r615_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}", /*__inner_css_end__*/"1r615_gg_"),
21
15
  /*__reshadow_css_end__*/
22
16
  {
23
- "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1ulzv_gg_",
24
- "_nesting-trigger": "__nesting-trigger_1ulzv_gg_",
25
- "__SDropdownMenuNesting": "___SDropdownMenuNesting_1ulzv_gg_",
26
- "_size_l": "_size_l_1ulzv_gg_",
27
- "_size_m": "_size_m_1ulzv_gg_",
28
- "_highlighted": "__highlighted_1ulzv_gg_",
29
- "__SDropdownNestingItem": "___SDropdownNestingItem_1ulzv_gg_",
30
- "__SItemHint": "___SItemHint_1ulzv_gg_",
31
- "__SDropdownMenuList": "___SDropdownMenuList_1ulzv_gg_",
32
- "__SBar": "___SBar_1ulzv_gg_",
33
- "__SShadowHorizontal": "___SShadowHorizontal_1ulzv_gg_",
34
- "__SShadowVertical": "___SShadowVertical_1ulzv_gg_",
35
- "__SItemContent": "___SItemContent_1ulzv_gg_",
36
- "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1ulzv_gg_",
37
- "__SItemContentText": "___SItemContentText_1ulzv_gg_"
17
+ "__SDropdownMenuItemContainer": "___SDropdownMenuItemContainer_1r615_gg_",
18
+ "_nesting-trigger": "__nesting-trigger_1r615_gg_",
19
+ "__SDropdownMenuNesting": "___SDropdownMenuNesting_1r615_gg_",
20
+ "_size_l": "_size_l_1r615_gg_",
21
+ "_size_m": "_size_m_1r615_gg_",
22
+ "_highlighted": "__highlighted_1r615_gg_",
23
+ "__SDropdownNestingItem": "___SDropdownNestingItem_1r615_gg_",
24
+ "__SItemHint": "___SItemHint_1r615_gg_",
25
+ "__SDropdownMenuList": "___SDropdownMenuList_1r615_gg_",
26
+ "__SBar": "___SBar_1r615_gg_",
27
+ "__SShadowHorizontal": "___SShadowHorizontal_1r615_gg_",
28
+ "__SShadowVertical": "___SShadowVertical_1r615_gg_",
29
+ "__SItemContent": "___SItemContent_1r615_gg_",
30
+ "__SDropdownMenuItemAddon": "___SDropdownMenuItemAddon_1r615_gg_",
31
+ "__SItemContentText": "___SItemContentText_1r615_gg_"
38
32
  });
39
- var VirtualListRoot = /*#__PURE__*/function (_Component) {
40
- function VirtualListRoot() {
41
- var _this;
42
- (0, _classCallCheck2["default"])(this, VirtualListRoot);
43
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
44
- args[_key] = arguments[_key];
45
- }
46
- _this = (0, _callSuper2["default"])(this, VirtualListRoot, [].concat(args));
47
- (0, _defineProperty2["default"])(_this, "containerRef", /*#__PURE__*/_react["default"].createRef());
48
- (0, _defineProperty2["default"])(_this, "listRef", /*#__PURE__*/_react["default"].createRef());
49
- (0, _defineProperty2["default"])(_this, "state", {
33
+ class VirtualListRoot extends _core.Component {
34
+ constructor(...args) {
35
+ super(...args);
36
+ (0, _defineProperty2.default)(this, "containerRef", /*#__PURE__*/_react.default.createRef());
37
+ (0, _defineProperty2.default)(this, "listRef", /*#__PURE__*/_react.default.createRef());
38
+ (0, _defineProperty2.default)(this, "state", {
50
39
  scrollTop: 0,
51
40
  scrollDirection: 'down'
52
41
  });
53
- (0, _defineProperty2["default"])(_this, "handleScroll", function (e) {
42
+ (0, _defineProperty2.default)(this, "handleScroll", e => {
54
43
  if (e.target instanceof HTMLElement) {
55
- var scrollDirection = e.target.scrollTop > _this.state.scrollTop ? 'down' : 'up';
56
- _this.setState({
57
- scrollDirection: scrollDirection,
44
+ const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';
45
+ this.setState({
46
+ scrollDirection,
58
47
  scrollTop: e.target.scrollTop
59
48
  });
60
49
  }
61
50
  });
62
- return _this;
63
51
  }
64
- (0, _inherits2["default"])(VirtualListRoot, _Component);
65
- return (0, _createClass2["default"])(VirtualListRoot, [{
66
- key: "componentDidMount",
67
- value: function componentDidMount() {
68
- var _this2 = this;
69
- var _this$asProps = this.asProps,
70
- index = _this$asProps.index,
71
- rowHeight = _this$asProps.rowHeight,
72
- rowsBuffer = _this$asProps.rowsBuffer;
73
- setTimeout(function () {
74
- var _this2$listRef$curren, _this2$listRef$curren2, _this2$containerRef$c;
75
- var listHeight = ((_this2$listRef$curren = (_this2$listRef$curren2 = _this2.listRef.current) === null || _this2$listRef$curren2 === void 0 ? void 0 : _this2$listRef$curren2.getBoundingClientRect().height) !== null && _this2$listRef$curren !== void 0 ? _this2$listRef$curren : 0) / 2;
76
- (_this2$containerRef$c = _this2.containerRef.current) === null || _this2$containerRef$c === void 0 || _this2$containerRef$c.scrollTo({
77
- top: index * rowHeight - listHeight + rowHeight / 2
78
- });
79
- if (index <= rowsBuffer) {
80
- _this2.forceUpdate(); // we need this for correct render all items with calculated container height
81
- }
82
- }, 10); // 10 for correct work in safari
83
- }
84
- }, {
85
- key: "render",
86
- value: function render() {
87
- var _ref = this.asProps,
88
- _ref2,
89
- _this$listRef$current,
90
- _this$listRef$current2;
91
- var SDropdownMenuList = _scrollArea["default"];
92
- var SBar = _scrollArea["default"].Bar;
93
- var _this$state = this.state,
94
- scrollDirection = _this$state.scrollDirection,
95
- scrollTop = _this$state.scrollTop;
96
- var _this$asProps2 = this.asProps,
97
- rows = _this$asProps2.rows,
98
- rowHeight = _this$asProps2.rowHeight,
99
- rowsBuffer = _this$asProps2.rowsBuffer,
100
- styles = _this$asProps2.styles,
101
- RenderRow = _this$asProps2.renderRow,
102
- customData = _this$asProps2.customData;
103
- var offsetHeight = (_this$listRef$current = (_this$listRef$current2 = this.listRef.current) === null || _this$listRef$current2 === void 0 ? void 0 : _this$listRef$current2.offsetHeight) !== null && _this$listRef$current !== void 0 ? _this$listRef$current : 0;
104
- var prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;
105
- var nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;
106
- var startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);
107
- var lastIndex = Math.min(Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared, rows.length);
108
- var rowsToRender = rows.slice(startIndex, lastIndex);
109
- var rowMarginTop = rowHeight * startIndex;
110
- var rowMarginBottom = rowHeight * (rows.length - lastIndex);
111
- return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_Context.ListBoxContextProvider, _ref2.cn("ListBoxContextProvider", {}), /*#__PURE__*/_react["default"].createElement(SDropdownMenuList, _ref2.cn("SDropdownMenuList", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
52
+ componentDidMount() {
53
+ const {
54
+ index,
55
+ rowHeight,
56
+ rowsBuffer
57
+ } = this.asProps;
58
+ setTimeout(() => {
59
+ const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;
60
+ this.containerRef.current?.scrollTo({
61
+ top: index * rowHeight - listHeight + rowHeight / 2
62
+ });
63
+ if (index <= rowsBuffer) {
64
+ this.forceUpdate(); // we need this for correct render all items with calculated container height
65
+ }
66
+ }, 10); // 10 for correct work in safari
67
+ }
68
+ render() {
69
+ var _ref = this.asProps,
70
+ _ref2;
71
+ const SDropdownMenuList = _baseComponents.ScrollArea;
72
+ const SBar = _baseComponents.ScrollArea.Bar;
73
+ const {
74
+ scrollDirection,
75
+ scrollTop
76
+ } = this.state;
77
+ const {
78
+ rows,
79
+ rowHeight,
80
+ rowsBuffer,
81
+ styles,
82
+ renderRow: RenderRow,
83
+ customData
84
+ } = this.asProps;
85
+ const offsetHeight = this.listRef.current?.offsetHeight ?? 0;
86
+ const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;
87
+ const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;
88
+ const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);
89
+ const lastIndex = Math.min(Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared, rows.length);
90
+ const rowsToRender = rows.slice(startIndex, lastIndex);
91
+ const rowMarginTop = rowHeight * startIndex;
92
+ const rowMarginBottom = rowHeight * (rows.length - lastIndex);
93
+ return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_Context.ListBoxContextProvider, _ref2.cn("ListBoxContextProvider", {}), /*#__PURE__*/_react.default.createElement(SDropdownMenuList, _ref2.cn("SDropdownMenuList", {
94
+ ...(0, _core.assignProps)({
112
95
  "shadow": true,
113
96
  "shadowSize": 16,
114
97
  "shadowTheme": 'light',
115
98
  "onScroll": this.handleScroll,
116
99
  "data-is-virtual": 'true',
117
100
  "ref": this.listRef
118
- }, _ref))), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Container, {
119
- ref: this.containerRef,
120
- tabIndex: undefined,
121
- h: rows.length * rowHeight
122
- }, /*#__PURE__*/_react["default"].createElement(_baseComponents.Box, _ref2.cn("Box", {
123
- "h": rowMarginTop
124
- })), rowsToRender.map(function (item, index) {
125
- // @ts-ignore
126
- return /*#__PURE__*/_react["default"].createElement(RenderRow, {
127
- key: startIndex + index,
128
- row: item,
129
- index: startIndex + index,
130
- data: customData
131
- });
132
- }), /*#__PURE__*/_react["default"].createElement(_baseComponents.Box, _ref2.cn("Box", {
133
- "h": rowMarginBottom
134
- }))), /*#__PURE__*/_react["default"].createElement(SBar, _ref2.cn("SBar", {
135
- "orientation": 'horizontal'
136
- })), /*#__PURE__*/_react["default"].createElement(SBar, _ref2.cn("SBar", {
137
- "orientation": 'vertical'
138
- }))));
139
- }
140
- }]);
141
- }(_core.Component);
142
- (0, _defineProperty2["default"])(VirtualListRoot, "displayName", 'VirtualList');
143
- (0, _defineProperty2["default"])(VirtualListRoot, "style", style);
144
- (0, _defineProperty2["default"])(VirtualListRoot, "defaultProps", {
101
+ }, _ref)
102
+ }), /*#__PURE__*/_react.default.createElement(_baseComponents.ScrollArea.Container, {
103
+ ref: this.containerRef,
104
+ tabIndex: undefined,
105
+ h: rows.length * rowHeight
106
+ }, /*#__PURE__*/_react.default.createElement(_baseComponents.Box, _ref2.cn("Box", {
107
+ "h": rowMarginTop
108
+ })), rowsToRender.map((item, index) => {
109
+ // @ts-ignore
110
+ return /*#__PURE__*/_react.default.createElement(RenderRow, {
111
+ key: startIndex + index,
112
+ row: item,
113
+ index: startIndex + index,
114
+ data: customData
115
+ });
116
+ }), /*#__PURE__*/_react.default.createElement(_baseComponents.Box, _ref2.cn("Box", {
117
+ "h": rowMarginBottom
118
+ }))), /*#__PURE__*/_react.default.createElement(SBar, _ref2.cn("SBar", {
119
+ "orientation": 'horizontal'
120
+ })), /*#__PURE__*/_react.default.createElement(SBar, _ref2.cn("SBar", {
121
+ "orientation": 'vertical'
122
+ }))));
123
+ }
124
+ }
125
+ (0, _defineProperty2.default)(VirtualListRoot, "displayName", 'VirtualList');
126
+ (0, _defineProperty2.default)(VirtualListRoot, "style", style);
127
+ (0, _defineProperty2.default)(VirtualListRoot, "defaultProps", {
145
128
  rowsBuffer: 6
146
129
  });
147
- var VirtualList = exports.VirtualList = (0, _core.createComponent)(VirtualListRoot);
130
+ const VirtualList = exports.VirtualList = (0, _core.createComponent)(VirtualListRoot);
148
131
  //# sourceMappingURL=VirtualList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.js","names":["_core","require","_baseComponents","_scrollArea","_interopRequireDefault","_react","_Context","style","sstyled","insert","VirtualListRoot","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","React","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","_inherits2","_createClass2","key","value","componentDidMount","_this2","_this$asProps","asProps","index","rowHeight","rowsBuffer","setTimeout","_this2$listRef$curren","_this2$listRef$curren2","_this2$containerRef$c","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","_this$listRef$current","_this$listRef$current2","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","_this$state","_this$asProps2","rows","styles","RenderRow","renderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","ListBoxContextProvider","cn","_objectSpread2","assignProps","handleScroll","Container","ref","tabIndex","undefined","h","Box","map","item","row","data","Component","VirtualList","exports","createComponent"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport ScrollAreaComponent from '@semcore/scroll-area';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './Context';\nimport style from '../style/dropdown-menu.shadow.css';\n\nexport type RenderRowProps<T, D = never> = {\n index: number;\n row: T;\n data: [D] extends [never] ? undefined : D;\n};\n\ntype VirtualListProps<T, D extends object = never> = {\n /** List of all rows in ddMenu */\n rows: T[];\n /** Method for render row, it's better to wrap it via React.memo */\n renderRow: (props: RenderRowProps<T, D>) => React.ReactNode;\n /** The height of row. For now, you should calculate it on your side. */\n rowHeight: number;\n /** The buffer of rows out of visible rows\n * @default 10\n */\n rowsBuffer?: number;\n} & ([D] extends [never] ? { customData?: undefined } : {\n /** Some custom data for each renderRow function */\n customData: D;\n});\n\ntype State = {\n scrollTop: number;\n scrollDirection: 'up' | 'down';\n};\n\nclass VirtualListRoot<T = string, D extends object = never> extends Component<VirtualListProps<T, D>, {}, State, [], { rowsBuffer: number; index: number }> {\n static displayName = 'VirtualList';\n static style = style;\n\n static defaultProps = {\n rowsBuffer: 6,\n };\n\n containerRef = React.createRef<HTMLDivElement>();\n listRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n scrollTop: 0,\n scrollDirection: 'down',\n };\n\n componentDidMount() {\n const { index, rowHeight, rowsBuffer } = this.asProps;\n\n setTimeout(() => {\n const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;\n this.containerRef.current?.scrollTo({ top: index * rowHeight - listHeight + rowHeight / 2 });\n\n if (index <= rowsBuffer) {\n this.forceUpdate(); // we need this for correct render all items with calculated container height\n }\n }, 10); // 10 for correct work in safari\n }\n\n handleScroll = (e: React.SyntheticEvent<HTMLDivElement>) => {\n if (e.target instanceof HTMLElement) {\n const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';\n\n this.setState({\n scrollDirection,\n scrollTop: e.target.scrollTop,\n });\n }\n };\n\n render() {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n const { scrollDirection, scrollTop } = this.state;\n const { rows, rowHeight, rowsBuffer, styles, renderRow: RenderRow, customData } = this.asProps;\n\n const offsetHeight = this.listRef.current?.offsetHeight ?? 0;\n const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;\n const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;\n\n const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);\n\n const lastIndex = Math.min(\n Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared,\n rows.length,\n );\n\n const rowsToRender = rows.slice(startIndex, lastIndex);\n const rowMarginTop = rowHeight * startIndex;\n const rowMarginBottom = rowHeight * (rows.length - lastIndex);\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList\n render={ScrollAreaComponent}\n shadow={true}\n shadowSize={16}\n shadowTheme='light'\n onScroll={this.handleScroll}\n data-is-virtual='true'\n ref={this.listRef}\n >\n <ScrollAreaComponent.Container ref={this.containerRef} tabIndex={undefined} h={rows.length * rowHeight}>\n <Box h={rowMarginTop} />\n {rowsToRender.map((item, index) => {\n // @ts-ignore\n return <RenderRow key={startIndex + index} row={item} index={startIndex + index} data={customData} />;\n })}\n <Box h={rowMarginBottom} />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n }\n}\n\nexport type VirtualListComponent = (<\n T = string,\n D extends object = never,\n>(\n props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<typeof Box, 'div', VirtualListProps<T, D>>, 'tag' | 'children'>\n) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<typeof Box, 'div', VirtualListProps<any, any>>;\n\nexport const VirtualList = createComponent(VirtualListRoot) as VirtualListComponent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VirtualList.js","names":["_core","require","_baseComponents","_react","_interopRequireDefault","_Context","style","sstyled","insert","VirtualListRoot","Component","constructor","args","_defineProperty2","default","React","createRef","scrollTop","scrollDirection","e","target","HTMLElement","state","setState","componentDidMount","index","rowHeight","rowsBuffer","asProps","setTimeout","listHeight","listRef","current","getBoundingClientRect","height","containerRef","scrollTo","top","forceUpdate","render","_ref","_ref2","SDropdownMenuList","ScrollAreaComponent","SBar","Bar","rows","styles","renderRow","RenderRow","customData","offsetHeight","prevPrepared","nextPrepared","startIndex","Math","max","floor","lastIndex","min","ceil","length","rowsToRender","slice","rowMarginTop","rowMarginBottom","createElement","ListBoxContextProvider","cn","assignProps","handleScroll","ScrollArea","Container","ref","tabIndex","undefined","h","Box","map","item","key","row","data","VirtualList","exports","createComponent"],"sources":["../../../src/components/VirtualList.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaComponent, Box } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport { Root, Component, createComponent, sstyled } from '@semcore/core';\nimport React from 'react';\n\nimport { ListBoxContextProvider } from './Context';\nimport style from '../style/dropdown-menu.shadow.css';\n\nexport type RenderRowProps<T, D = never> = {\n index: number;\n row: T;\n data: [D] extends [never] ? undefined : D;\n};\n\ntype VirtualListProps<T, D extends object = never> = {\n /** List of all rows in ddMenu */\n rows: T[];\n /** Method for render row, it's better to wrap it via React.memo */\n renderRow: (props: RenderRowProps<T, D>) => React.ReactNode;\n /** The height of row. For now, you should calculate it on your side. */\n rowHeight: number;\n /** The buffer of rows out of visible rows\n * @default 10\n */\n rowsBuffer?: number;\n} & ([D] extends [never] ? { customData?: undefined } : {\n /** Some custom data for each renderRow function */\n customData: D;\n});\n\ntype State = {\n scrollTop: number;\n scrollDirection: 'up' | 'down';\n};\n\nclass VirtualListRoot<T = string, D extends object = never> extends Component<VirtualListProps<T, D>, [], Readonly<{}>, { rowsBuffer: number; index: number }, State> {\n static displayName = 'VirtualList';\n static style = style;\n\n static defaultProps = {\n rowsBuffer: 6,\n };\n\n containerRef = React.createRef<HTMLDivElement>();\n listRef = React.createRef<HTMLDivElement>();\n\n state: State = {\n scrollTop: 0,\n scrollDirection: 'down',\n };\n\n componentDidMount() {\n const { index, rowHeight, rowsBuffer } = this.asProps;\n\n setTimeout(() => {\n const listHeight = (this.listRef.current?.getBoundingClientRect().height ?? 0) / 2;\n this.containerRef.current?.scrollTo({ top: index * rowHeight - listHeight + rowHeight / 2 });\n\n if (index <= rowsBuffer) {\n this.forceUpdate(); // we need this for correct render all items with calculated container height\n }\n }, 10); // 10 for correct work in safari\n }\n\n handleScroll = (e: React.SyntheticEvent<HTMLDivElement>) => {\n if (e.target instanceof HTMLElement) {\n const scrollDirection = e.target.scrollTop > this.state.scrollTop ? 'down' : 'up';\n\n this.setState({\n scrollDirection,\n scrollTop: e.target.scrollTop,\n });\n }\n };\n\n render() {\n const SDropdownMenuList = Root;\n const SBar = ScrollAreaComponent.Bar;\n\n const { scrollDirection, scrollTop } = this.state;\n const { rows, rowHeight, rowsBuffer, styles, renderRow: RenderRow, customData } = this.asProps;\n\n const offsetHeight = this.listRef.current?.offsetHeight ?? 0;\n const prevPrepared = scrollDirection === 'down' ? rowsBuffer / 2 : rowsBuffer;\n const nextPrepared = scrollDirection === 'up' ? rowsBuffer / 2 : rowsBuffer;\n\n const startIndex = Math.max(Math.floor(scrollTop / rowHeight) - prevPrepared, 0);\n\n const lastIndex = Math.min(\n Math.ceil((scrollTop + offsetHeight) / rowHeight) + nextPrepared,\n rows.length,\n );\n\n const rowsToRender = rows.slice(startIndex, lastIndex);\n const rowMarginTop = rowHeight * startIndex;\n const rowMarginBottom = rowHeight * (rows.length - lastIndex);\n\n return sstyled(styles)(\n <ListBoxContextProvider>\n <SDropdownMenuList\n render={ScrollAreaComponent}\n shadow={true}\n shadowSize={16}\n shadowTheme='light'\n onScroll={this.handleScroll}\n data-is-virtual='true'\n ref={this.listRef}\n >\n <ScrollAreaComponent.Container ref={this.containerRef} tabIndex={undefined} h={rows.length * rowHeight}>\n <Box h={rowMarginTop} />\n {rowsToRender.map((item, index) => {\n // @ts-ignore\n return <RenderRow key={startIndex + index} row={item} index={startIndex + index} data={customData} />;\n })}\n <Box h={rowMarginBottom} />\n </ScrollAreaComponent.Container>\n <SBar orientation='horizontal' />\n <SBar orientation='vertical' />\n </SDropdownMenuList>\n </ListBoxContextProvider>,\n );\n }\n}\n\nexport type VirtualListComponent = (<\n T = string,\n D extends object = never,\n>(\n props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<typeof Box, 'div', VirtualListProps<T, D>>, 'tag' | 'children'>\n) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<typeof Box, 'div', VirtualListProps<any, any>>;\n\nexport const VirtualList = createComponent(VirtualListRoot) as VirtualListComponent;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport type {\n DropdownContext,\n DropdownProps,\n DropdownHandlers,\n DropdownTriggerProps,\n DropdownPopperAriaProps,\n} from '@semcore/dropdown';\nimport type Dropdown from '@semcore/dropdown';\nimport type { Box, BoxProps, FlexProps, Flex } from '@semcore/flex-box';\nimport type { eventInteraction } from '@semcore/popper';\nimport type { ScrollAreaProps } from '@semcore/scroll-area';\nimport type { Text } from '@semcore/typography';\n\nimport type { VirtualList, RenderRowProps } from './components/VirtualList';\n\nexport type DropdownMenuSize = 'm' | 'l';\n\n/** @deprecated */\nexport interface IDropdownMenuProps extends DropdownMenuProps, UnknownProperties {}\nexport type DropdownMenuProps = DropdownProps & {\n /**\n * Set role `menuitemradio` (or `menuitemcheckbox` if `multiselect`) for Dropdown.Item\n */\n selectable?: boolean;\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Size of the menu\n * @default m\n */\n size?: DropdownMenuSize;\n /**\n * Index of the element selected by default\n */\n defaultHighlightedIndex?: number | null;\n /**\n * Index of the selected item\n */\n highlightedIndex?: number | null;\n /**\n * Callback for highlightedIndex change\n * highlightedIndex - Index of the selected item\n */\n onHighlightedIndexChange?: (highlightedIndex: number | null) => void;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * Flag for menu that using as actions on DropdownMenu.Item\n */\n inlineActions?: boolean;\n\n /**\n * Count of menu items (for virtual lists only)\n */\n itemsCount?: number;\n};\n\n/** @deprecated */\nexport interface IDropdownMenuListProps extends DropdownMenuListProps, UnknownProperties {}\nexport type DropdownMenuListProps = BoxProps &\n ScrollAreaProps & {\n /**\n * Size of the menu\n * @default m\n */\n size?: DropdownMenuSize;\n };\n\n/** @deprecated */\nexport interface IDropdownMenuMenuProps extends DropdownMenuMenuProps, UnknownProperties {}\nexport type DropdownMenuMenuProps = DropdownMenuListProps & {};\n\n/** @deprecated */\nexport interface IDropdownMenuItemProps extends DropdownMenuItemProps, UnknownProperties {}\nexport type DropdownMenuItemProps = FlexProps & {\n /**\n * Enables selected state. For selectable dropdowns only.\n */\n selected?: boolean;\n /**\n * Disables item\n */\n disabled?: boolean;\n /**\n * Adds focus styles around\n * @deprecated set focus manually by `.focus()` method to the same behaviour\n */\n highlighted?: boolean;\n /**\n * Disables hover state\n * @deprecated use `disabled` instead\n */\n notInteractive?: boolean;\n /**\n * Size of the component\n * @default m\n */\n size?: DropdownMenuSize;\n /**\n * Index of item (used in virtualized lists)\n */\n index?: number;\n};\n\n/** @deprecated */\nexport interface IDropdownMenuItemHintProps extends DropdownMenuItemHintProps, UnknownProperties {}\nexport type DropdownMenuItemHintProps = FlexProps & {\n /**\n * Size of the component\n * @default m\n */\n size?: DropdownMenuSize;\n};\n\n/** @deprecated */\nexport interface IDropdownMenuItemTitleProps\n extends DropdownMenuItemTitleProps,\n UnknownProperties {}\nexport type DropdownMenuItemTitleProps = FlexProps & {\n /**\n * Size of the component\n * @default m\n */\n size?: DropdownMenuSize;\n};\n\n/** @deprecated */\nexport interface IDropdownMenuContext extends DropdownMenuContext, UnknownProperties {}\nexport type DropdownMenuContext = DropdownContext & {\n /**\n * Tracks which menu item is currently highlighted/focused for keyboard navigation\n **/\n highlightedIndex?: number;\n /**\n * Returns props for the menu list container\n **/\n getListProps: PropGetterFn;\n /**\n * Returns props for individual menu items\n **/\n getItemProps: PropGetterFn;\n /**\n * Returns props for item hint/description elements\n **/\n getItemHintProps: PropGetterFn;\n /**\n * Returns props for item title elements\n **/\n getItemTitleProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface IDropdownMenuHandlers extends DropdownMenuHandlers, UnknownProperties {}\nexport type DropdownMenuHandlers = DropdownHandlers & {\n highlightedIndex: (index: number) => void;\n};\n\nexport type DropdownMenuTriggerProps = DropdownTriggerProps;\n\ndeclare const DropdownMenu: Intergalactic.Component<\n 'div',\n DropdownMenuProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n> & {\n Trigger: typeof Dropdown.Trigger;\n Popper: Intergalactic.Component<'div', DropdownMenuProps & DropdownPopperAriaProps>;\n List: Intergalactic.Component<\n 'div',\n DropdownMenuListProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Actions: Intergalactic.Component<\n typeof Flex,\n DropdownMenuListProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Menu: Intergalactic.Component<\n 'div',\n DropdownMenuMenuProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Item: Intergalactic.Component<\n typeof Dropdown.Item,\n DropdownMenuItemProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n > & {\n Addon: typeof Box;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n /**\n * @deprecated Use Group with title prop\n */\n ItemTitle: Intergalactic.Component<'div', DropdownMenuItemTitleProps>;\n /**\n * @deprecated Use prop subTitle on Group or Item component\n */\n ItemHint: Intergalactic.Component<'div', DropdownMenuItemHintProps>;\n Group: typeof Dropdown.Group;\n\n VirtualList: typeof VirtualList;\n\n /**\n * @deprecated Use Item instead of Nesting\n */\n Nesting: Intergalactic.Component<\n 'div',\n DropdownMenuItemProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n > & {\n /**\n * @deprecated Use Item instead of Nesting\n */\n Trigger: Intergalactic.Component<'div', DropdownMenuItemProps>;\n /**\n * @deprecated Use Item instead of Nesting\n */\n Item: Intergalactic.Component<'div', DropdownMenuItemProps>;\n /**\n * @deprecated Use Item instead of Nesting\n */\n Addon: typeof Box;\n };\n\n selectedIndexContext: React.Context<number>;\n nestedMenuInteraction: eventInteraction;\n};\n\nexport default DropdownMenu;\n\nexport {\n RenderRowProps,\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { Box, BoxProps, FlexProps, Flex, eventInteraction, ScrollAreaProps } from '@semcore/base-components';\nimport type { PropGetterFn, Intergalactic } from '@semcore/core';\nimport type {\n DropdownContext,\n DropdownProps,\n DropdownHandlers,\n DropdownTriggerProps,\n DropdownPopperAriaProps,\n} from '@semcore/dropdown';\nimport type Dropdown from '@semcore/dropdown';\nimport type { Text } from '@semcore/typography';\n\nimport type { VirtualList, RenderRowProps } from './components/VirtualList';\n\nexport type DropdownMenuSize = 'm' | 'l';\n\nexport type DropdownMenuProps = DropdownProps & {\n /**\n * Set role `menuitemradio` (or `menuitemcheckbox` if `multiselect`) for Dropdown.Item\n */\n selectable?: boolean;\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Size of the menu\n * @default m\n */\n size?: DropdownMenuSize;\n /**\n * Index of the element selected by default\n */\n defaultHighlightedIndex?: number | null;\n /**\n * Index of the selected item\n */\n highlightedIndex?: number | null;\n /**\n * Callback for highlightedIndex change\n * highlightedIndex - Index of the selected item\n */\n onHighlightedIndexChange?: (highlightedIndex: number | null) => void;\n /** Specifies the locale for i18n support */\n locale?: string;\n /**\n * Flag for menu that using as actions on DropdownMenu.Item\n */\n inlineActions?: boolean;\n\n /**\n * Count of menu items (for virtual lists only)\n */\n itemsCount?: number;\n};\n\nexport type DropdownMenuListProps = BoxProps &\n ScrollAreaProps & {\n /**\n * Size of the menu\n * @default m\n */\n size?: DropdownMenuSize;\n };\n\nexport type DropdownMenuMenuProps = DropdownMenuListProps & {};\n\nexport type DropdownMenuItemProps = FlexProps & {\n /**\n * Enables selected state. For selectable dropdowns only.\n */\n selected?: boolean;\n /**\n * Disables item\n */\n disabled?: boolean;\n /**\n * Size of the component\n * @default m\n */\n size?: DropdownMenuSize;\n /**\n * Index of item (used in virtualized lists)\n */\n index?: number;\n};\n\nexport type DropdownMenuContext = DropdownContext & {\n /**\n * Tracks which menu item is currently highlighted/focused for keyboard navigation\n **/\n highlightedIndex?: number;\n /**\n * Returns props for the menu list container\n **/\n getListProps: PropGetterFn;\n /**\n * Returns props for individual menu items\n **/\n getItemProps: PropGetterFn;\n /**\n * Returns props for item hint/description elements\n **/\n getItemHintProps: PropGetterFn;\n /**\n * Returns props for item title elements\n **/\n getItemTitleProps: PropGetterFn;\n};\n\nexport type DropdownMenuHandlers = DropdownHandlers & {\n highlightedIndex: (index: number) => void;\n};\n\nexport type DropdownMenuTriggerProps = DropdownTriggerProps;\n\ndeclare const DropdownMenu: Intergalactic.Component<\n 'div',\n DropdownMenuProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n> & {\n Trigger: typeof Dropdown.Trigger;\n Popper: Intergalactic.Component<'div', DropdownMenuProps & DropdownPopperAriaProps>;\n List: Intergalactic.Component<\n 'div',\n DropdownMenuListProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Actions: Intergalactic.Component<\n typeof Flex,\n DropdownMenuListProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Menu: Intergalactic.Component<\n 'div',\n DropdownMenuMenuProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n >;\n Item: Intergalactic.Component<\n typeof Dropdown.Item,\n DropdownMenuItemProps,\n DropdownMenuContext,\n [handlers: DropdownMenuHandlers]\n > & {\n Addon: typeof Box;\n Content: typeof Flex;\n Text: typeof Text;\n Hint: typeof Flex;\n };\n\n Group: typeof Dropdown.Group;\n\n VirtualList: typeof VirtualList;\n\n selectedIndexContext: React.Context<number>;\n nestedMenuInteraction: eventInteraction;\n};\n\nexport default DropdownMenu;\n\nexport {\n RenderRowProps,\n};\n"],"mappings":"","ignoreList":[]}