{"version":3,"file":"Item.mjs","sources":["../../../../../../packages/components/list/src/Item.tsx"],"sourcesContent":["import type { CustomSlotsType } from '@antdv/types';\nimport { classNames, cloneElement, flattenChildren, isEmptyElement, isStringElement } from '@antdv/utils';\nimport { defineComponent, inject, ref } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { Col } from '../../grid';\nimport { ListContextKey } from './contextKey';\nimport ItemMeta from './ItemMeta';\nimport { listItemProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AListItem',\n  inheritAttrs: false,\n  Meta: ItemMeta,\n  props: listItemProps(),\n  slots: Object as CustomSlotsType<{\n    actions: any\n    extra: any\n    default: any\n  }>,\n  setup(props, { slots, attrs }) {\n    const { itemLayout, grid } = inject(ListContextKey, {\n      grid: ref(),\n      itemLayout: ref(),\n    });\n    const { prefixCls } = useConfigInject('list', props);\n\n    const isItemContainsTextNodeAndNotSingular = () => {\n      const children = slots.default?.() || [];\n      let result;\n      children.forEach((element) => {\n        if (isStringElement(element) && !isEmptyElement(element))\n          result = true;\n      });\n      return result && children.length > 1;\n    };\n\n    const isFlexMode = () => {\n      const extra = props.extra ?? slots.extra?.();\n      if (itemLayout.value === 'vertical')\n        return !!extra;\n\n      return !isItemContainsTextNodeAndNotSingular();\n    };\n\n    return () => {\n      const { class: className, ...restAttrs } = attrs;\n      const pre = prefixCls.value;\n      const extra = props.extra ?? slots.extra?.();\n      const children = slots.default?.();\n      let actions = props.actions ?? flattenChildren(slots.actions?.());\n      actions = actions && !Array.isArray(actions) ? [actions] : actions;\n      const actionsContent = actions && actions.length > 0 && (\n        <ul class={`${pre}-item-action`} key=\"actions\">\n          {actions.map((action, i) => {\n            return (\n              <li key={`${pre}-item-action-${i}`}>\n                {action}\n                {i !== actions.length - 1 && <em class={`${pre}-item-action-split`} />}\n              </li>\n            );\n          })}\n        </ul>\n      );\n      const Element = grid.value ? 'div' : 'li';\n      const itemChildren = (\n        <Element\n          {...(restAttrs as any)} // `li` element `onCopy` prop args is not same as `div`\n          class={classNames(\n            `${pre}-item`,\n            {\n              [`${pre}-item-no-flex`]: !isFlexMode(),\n            },\n            className,\n          )}\n        >\n          {itemLayout.value === 'vertical' && extra\n            ? [\n                <div class={`${pre}-item-main`} key=\"content\">\n                  {children}\n                  {actionsContent}\n                </div>,\n                <div class={`${pre}-item-extra`} key=\"extra\">\n                  {extra}\n                </div>,\n              ]\n            : [children, actionsContent, cloneElement(extra, { key: 'extra' })]}\n        </Element>\n      );\n      return grid.value\n        ? (\n            <Col flex={1} style={props.colStyle}>\n              {itemChildren}\n            </Col>\n          )\n        : itemChildren;\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","Meta","ItemMeta","props","listItemProps","slots","Object","setup","attrs","itemLayout","grid","inject","ListContextKey","ref","prefixCls","useConfigInject","isItemContainsTextNodeAndNotSingular","children","default","result","forEach","element","isStringElement","isEmptyElement","length","isFlexMode","extra","value","class","className","restAttrs","pre","actions","flattenChildren","Array","isArray","actionsContent","_createVNode","map","action","i","Element","itemChildren","classNames","cloneElement","key","Col","colStyle"],"mappings":"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"}