{"version":3,"file":"Skeleton.cjs","sources":["../../../../../../packages/components/skeleton/src/Skeleton.tsx"],"sourcesContent":["import { classNames, initDefaultProps } from '@antdv/utils';\nimport { defineComponent } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport Element from './Element';\nimport Paragraph from './Paragraph';\nimport {\n  type SkeletonAvatarProps as AvatarProps,\n  type SkeletonParagraphProps,\n  skeletonProps,\n  type SkeletonTitleProps,\n} from './props';\nimport Title from './Title';\n\n/* This only for skeleton internal. */\ntype SkeletonAvatarProps = Omit<AvatarProps, 'active'>;\n\nfunction getComponentProps<T>(prop: T | boolean | undefined): T | {} {\n  if (prop && typeof prop === 'object')\n    return prop;\n\n  return {};\n}\n\nfunction getAvatarBasicProps(hasTitle: boolean, hasParagraph: boolean): SkeletonAvatarProps {\n  if (hasTitle && !hasParagraph) {\n    // Square avatar\n    return { size: 'large', shape: 'square' };\n  }\n\n  return { size: 'large', shape: 'circle' };\n}\n\nfunction getTitleBasicProps(hasAvatar: boolean, hasParagraph: boolean): SkeletonTitleProps {\n  if (!hasAvatar && hasParagraph)\n    return { width: '38%' };\n\n  if (hasAvatar && hasParagraph)\n    return { width: '50%' };\n\n  return {};\n}\n\nfunction getParagraphBasicProps(hasAvatar: boolean, hasTitle: boolean): SkeletonParagraphProps {\n  const basicProps: SkeletonParagraphProps = {};\n\n  // Width\n  if (!hasAvatar || !hasTitle)\n    basicProps.width = '61%';\n\n  // Rows\n  if (!hasAvatar && hasTitle)\n    basicProps.rows = 3;\n  else\n    basicProps.rows = 2;\n\n  return basicProps;\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ASkeleton',\n  inheritAttrs: false,\n  props: initDefaultProps(skeletonProps(), {\n    avatar: false,\n    title: true,\n    paragraph: true,\n  }),\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction } = useConfigInject('skeleton', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    return () => {\n      const { loading, avatar, title, paragraph, active, round } = props;\n      const pre = prefixCls.value;\n      if (loading || props.loading === undefined) {\n        const hasAvatar = !!avatar || (avatar as string) === '';\n        const hasTitle = !!title || (title as string) === '';\n        const hasParagraph = !!paragraph || (paragraph as string) === '';\n\n        // Avatar\n        let avatarNode;\n        if (hasAvatar) {\n          const avatarProps = {\n            prefixCls: `${pre}-avatar`,\n            ...getAvatarBasicProps(hasTitle, hasParagraph),\n            ...getComponentProps(avatar),\n          };\n\n          avatarNode = (\n            <div class={`${pre}-header`}>\n              <Element {...avatarProps} />\n            </div>\n          );\n        }\n\n        let contentNode;\n        if (hasTitle || hasParagraph) {\n          // Title\n          let $title;\n          if (hasTitle) {\n            const titleProps = {\n              prefixCls: `${pre}-title`,\n              ...getTitleBasicProps(hasAvatar, hasParagraph),\n              ...getComponentProps(title),\n            };\n\n            $title = <Title {...titleProps} />;\n          }\n\n          // Paragraph\n          let paragraphNode;\n          if (hasParagraph) {\n            const paragraphProps = {\n              prefixCls: `${pre}-paragraph`,\n              ...getParagraphBasicProps(hasAvatar, hasTitle),\n              ...getComponentProps(paragraph),\n            };\n\n            paragraphNode = <Paragraph {...paragraphProps} />;\n          }\n\n          contentNode = (\n            <div class={`${pre}-content`}>\n              {$title}\n              {paragraphNode}\n            </div>\n          );\n        }\n\n        const cls = classNames(pre, {\n          [`${pre}-with-avatar`]: hasAvatar,\n          [`${pre}-active`]: active,\n          [`${pre}-rtl`]: direction.value === 'rtl',\n          [`${pre}-round`]: round,\n          [hashId.value]: true,\n          [`${attrs.class}`]: true,\n        });\n\n        return wrapSSR(\n          <div class={cls}>\n            {avatarNode}\n            {contentNode}\n          </div>,\n        );\n      }\n      return slots.default?.();\n    };\n  },\n});\n"],"names":["getComponentProps","prop","getAvatarBasicProps","hasTitle","hasParagraph","size","shape","getTitleBasicProps","hasAvatar","width","getParagraphBasicProps","basicProps","rows","defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","skeletonProps","avatar","title","paragraph","setup","slots","attrs","prefixCls","direction","useConfigInject","wrapSSR","hashId","useStyle","loading","active","round","pre","value","undefined","avatarNode","avatarProps","_createVNode","Element","contentNode","$title","titleProps","Title","paragraphNode","paragraphProps","Paragraph","cls","classNames","class","default"],"mappings":"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"}