{"version":3,"file":"Item.cjs","sources":["../../../../../../packages/vue-components/vc-overflow/src/Item.tsx"],"sourcesContent":["import type { Key, VueNode } from '@antdv/types';\nimport type { CSSProperties, HTMLAttributes, PropType } from 'vue';\nimport { classNames, PropTypes } from '@antdv/utils';\nimport { computed, defineComponent, onUnmounted, ref } from 'vue';\nimport ResizeObserver from '../../vc-resize-observer/src/index';\n\nconst UNDEFINED = undefined;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'Item',\n  props: {\n    prefixCls: String,\n    item: PropTypes.any,\n    renderItem: Function as PropType<(item: any) => VueNode>,\n    responsive: Boolean,\n    itemKey: { type: [String, Number] as PropType<string | number> },\n    registerSize: Function as PropType<(key: Key, width: number | null) => void>,\n    display: Boolean,\n    order: Number,\n    component: PropTypes.any,\n    invalidate: Boolean,\n  },\n  setup(props, { slots, expose }) {\n    const mergedHidden = computed(() => props.responsive && !props.display);\n    const itemNodeRef = ref();\n\n    expose({ itemNodeRef });\n\n    // ================================ Effect ================================\n    function internalRegisterSize(width: number | null) {\n      props.registerSize(props.itemKey, width);\n    }\n\n    onUnmounted(() => {\n      internalRegisterSize(null);\n    });\n\n    return () => {\n      const {\n        prefixCls,\n        invalidate,\n        item,\n        renderItem,\n        responsive,\n        registerSize,\n        itemKey,\n        display,\n        order,\n        component: Component = 'div',\n        ...restProps\n      } = props;\n      const children = slots.default?.();\n      // ================================ Render ================================\n      const childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n\n      let overflowStyle: CSSProperties | undefined;\n      if (!invalidate) {\n        overflowStyle = {\n          opacity: mergedHidden.value ? 0 : 1,\n          height: mergedHidden.value ? 0 : UNDEFINED,\n          overflowY: mergedHidden.value ? 'hidden' : UNDEFINED,\n          order: responsive ? order : UNDEFINED,\n          pointerEvents: mergedHidden.value ? 'none' : UNDEFINED,\n          position: mergedHidden.value ? 'absolute' : UNDEFINED,\n        };\n      }\n\n      const overflowProps: HTMLAttributes = {};\n      if (mergedHidden.value)\n        overflowProps['aria-hidden'] = true;\n\n      // 使用 disabled  避免结构不一致 导致子组件 rerender\n      return (\n        <ResizeObserver\n          disabled={!responsive}\n          onResize={({ offsetWidth }) => {\n            internalRegisterSize(offsetWidth);\n          }}\n          v-slots={{\n            default: () => (\n              <Component\n                class={classNames(!invalidate && prefixCls)}\n                style={overflowStyle}\n                {...overflowProps}\n                {...restProps}\n                ref={itemNodeRef}\n              >\n                {childNode}\n              </Component>\n            ),\n          }}\n        >\n        </ResizeObserver>\n      );\n    };\n  },\n});\n"],"names":["UNDEFINED","undefined","defineComponent","compatConfig","MODE","name","props","prefixCls","String","item","PropTypes","any","renderItem","Function","responsive","Boolean","itemKey","type","Number","registerSize","display","order","component","invalidate","setup","slots","expose","mergedHidden","computed","itemNodeRef","ref","internalRegisterSize","width","onUnmounted","Component","restProps","children","default","childNode","overflowStyle","opacity","value","height","overflowY","pointerEvents","position","overflowProps","_createVNode","ResizeObserver","onResize","offsetWidth","classNames"],"mappings":"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"}