import { defineComponent } from 'vue'; import classNames from '../_util/classNames'; import PropTypes from '../_util/vue-types'; import { OverflowContextProvider, useInjectOverflowContext } from './context'; import Item from './Item'; export default defineComponent({ name: 'RawItem', inheritAttrs: false, props: { component: PropTypes.any, title: PropTypes.any, id: String, onMouseenter: { type: Function }, onMouseleave: { type: Function }, onClick: { type: Function }, onKeydown: { type: Function }, onFocus: { type: Function }, }, setup(props, { slots, attrs }) { const context = useInjectOverflowContext(); return () => { // Render directly when context not provided if (!context.value) { const { component: Component = 'div', ...restProps } = props; return ( {slots.default?.()} ); } const { className: contextClassName, ...restContext } = context.value; const { class: className, ...restProps } = attrs; // Do not pass context to sub item to avoid multiple measure return ( ); }; }, });