{"version":3,"file":"Card.cjs","sources":["../../../../../../packages/components/card/src/Card.tsx"],"sourcesContent":["import type { CustomSlotsType, SizeType } from '@antdv/types';\nimport type { VNode, VNodeTypes } from 'vue';\nimport type { CardTabListType } from './interface';\nimport { customRenderSlot, devWarning, filterEmptyWithUndefined, flattenChildren, isEmptyElement } from '@antdv/utils';\nimport { isPlainObject } from 'lodash-es';\nimport { defineComponent, isVNode } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport Skeleton from '../../skeleton';\nimport Tabs from '../../tabs';\nimport useStyle from '../style';\nimport { cardProps } from './props';\n\nconst { TabPane } = Tabs;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ACard',\n  inheritAttrs: false,\n  props: cardProps(),\n  slots: Object as CustomSlotsType<{\n    title: any\n    extra: any\n    tabBarExtraContent: any\n    actions: any\n    cover: any\n    customTab: CardTabListType\n    default: any\n  }>,\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction, size } = useConfigInject('card', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const getAction = (actions: VNodeTypes[]) => {\n      const actionList = actions.map((action, index) => (isVNode(action) && !isEmptyElement(action)) || !isVNode(action)\n        ? (\n            <li style={{ width: `${100 / actions.length}%` }} key={`action-${index}`}>\n              <span>{action}</span>\n            </li>\n          )\n        : null,\n      );\n      return actionList;\n    };\n    const triggerTabChange = (key: string) => {\n      props.onTabChange?.(key);\n    };\n    const isContainGrid = (obj: VNode[] = []) => {\n      let containGrid: boolean;\n      obj.forEach((element) => {\n        if (element && isPlainObject(element.type) && (element.type as any).__ANT_CARD_GRID)\n          containGrid = true;\n      });\n      return containGrid;\n    };\n\n    return () => {\n      const {\n        headStyle = {},\n        bodyStyle = {},\n        loading,\n        bordered = true,\n        type,\n        tabList,\n        hoverable,\n        activeTabKey,\n        defaultActiveTabKey,\n        tabBarExtraContent = filterEmptyWithUndefined(slots.tabBarExtraContent?.()),\n        title = filterEmptyWithUndefined(slots.title?.()),\n        extra = filterEmptyWithUndefined(slots.extra?.()),\n        actions = filterEmptyWithUndefined(slots.actions?.()),\n        cover = filterEmptyWithUndefined(slots.cover?.()),\n      } = props;\n      const children = flattenChildren(slots.default?.());\n      const pre = prefixCls.value;\n      const classString = {\n        [`${pre}`]: true,\n        [hashId.value]: true,\n        [`${pre}-loading`]: loading,\n        [`${pre}-bordered`]: bordered,\n        [`${pre}-hoverable`]: !!hoverable,\n        [`${pre}-contain-grid`]: isContainGrid(children),\n        [`${pre}-contain-tabs`]: tabList && tabList.length,\n        [`${pre}-${size.value}`]: size.value,\n        [`${pre}-type-${type}`]: !!type,\n        [`${pre}-rtl`]: direction.value === 'rtl',\n      };\n      const loadingBlock = (\n        <Skeleton loading active paragraph={{ rows: 4 }} title={false}>\n          {children}\n        </Skeleton>\n      );\n\n      const hasActiveTabKey = activeTabKey !== undefined;\n      const tabsProps = {\n        size: 'large' as SizeType,\n        [hasActiveTabKey ? 'activeKey' : 'defaultActiveKey']: hasActiveTabKey\n          ? activeTabKey\n          : defaultActiveTabKey,\n        onChange: triggerTabChange,\n        class: `${pre}-head-tabs`,\n      };\n\n      let head;\n      const tabs\n        = tabList && tabList.length\n          ? (\n              <Tabs\n                {...tabsProps}\n                v-slots={{ rightExtra: tabBarExtraContent ? () => tabBarExtraContent : null }}\n              >\n                {tabList.map((item) => {\n                  const { tab: temp, slots: itemSlots } = item as CardTabListType;\n                  const name = itemSlots?.tab;\n                  devWarning(\n                    !itemSlots,\n                    'Card',\n                    'tabList slots is deprecated, Please use `customTab` instead.',\n                  );\n                  let tab = temp !== undefined ? temp : slots[name] ? slots[name](item) : null;\n                  tab = customRenderSlot(slots, 'customTab', item as any, () => [tab]);\n                  return <TabPane tab={tab} key={item.key} disabled={item.disabled} />;\n                })}\n              </Tabs>\n            )\n          : null;\n      if (title || extra || tabs) {\n        head = (\n          <div class={`${pre}-head`} style={headStyle}>\n            <div class={`${pre}-head-wrapper`}>\n              {title && <div class={`${pre}-head-title`}>{title}</div>}\n              {extra && <div class={`${pre}-extra`}>{extra}</div>}\n            </div>\n            {tabs}\n          </div>\n        );\n      }\n\n      const coverDom = cover ? <div class={`${pre}-cover`}>{cover}</div> : null;\n      const body = (\n        <div class={`${pre}-body`} style={bodyStyle}>\n          <div v-show={loading}>{loadingBlock}</div>\n          <div v-show={!loading}>{children}</div>\n        </div>\n      );\n      const actionDom\n        = actions && actions.length ? <ul class={`${pre}-actions`}>{getAction(actions)}</ul> : null;\n\n      return wrapSSR(\n        <div ref=\"cardContainerRef\" {...attrs} class={[classString, attrs.class]}>\n          {head}\n          {coverDom}\n          {children && children.length ? body : null}\n          {actionDom}\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["TabPane","Tabs","defineComponent","compatConfig","MODE","name","inheritAttrs","props","cardProps","slots","Object","setup","attrs","prefixCls","direction","size","useConfigInject","wrapSSR","hashId","useStyle","getAction","actions","actionList","map","action","index","isVNode","isEmptyElement","_createVNode","width","length","triggerTabChange","key","onTabChange","isContainGrid","obj","containGrid","forEach","element","isPlainObject","type","__ANT_CARD_GRID","headStyle","bodyStyle","loading","bordered","tabList","hoverable","activeTabKey","defaultActiveTabKey","tabBarExtraContent","filterEmptyWithUndefined","title","extra","cover","children","flattenChildren","default","pre","value","classString","loadingBlock","Skeleton","rows","hasActiveTabKey","undefined","tabsProps","onChange","class","head","tabs","item","tab","temp","itemSlots","devWarning","customRenderSlot","disabled","rightExtra","coverDom","body","_withDirectives","_vShow","actionDom"],"mappings":"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"}