{"version":3,"file":"descriptions-row.mjs","sources":["../../../components/descriptions/descriptions-row.tsx"],"sourcesContent":["import { computed, defineComponent, inject, PropType } from 'vue';\nimport { useConfig, usePrefixClass } from '@tdesign/shared-hooks';\nimport { descriptionsKey } from './constants';\nimport { ItemsType, TdDescriptionsItem } from './types';\nimport { renderVNodeTNode, itemTypeIsProps } from './utils';\n\nexport default defineComponent({\n  name: 'TDescriptionsRow',\n  props: {\n    row: Array as PropType<TdDescriptionsItem[]>,\n    itemType: String as PropType<ItemsType>,\n  },\n  setup(props) {\n    const descriptionsProps = inject(descriptionsKey);\n    const COMPONENT_NAME = usePrefixClass('descriptions');\n    const { globalConfig } = useConfig('descriptions');\n    const layoutIsHorizontal = computed(() => descriptionsProps.layout === 'horizontal');\n    const itemLayoutIsHorizontal = computed(() => descriptionsProps.itemLayout === 'horizontal');\n\n    const label = (node: TdDescriptionsItem) => {\n      const labelClass = [`${COMPONENT_NAME.value}__label`];\n\n      let label = null;\n      let span = null;\n      if (itemTypeIsProps(props.itemType, node)) {\n        label = node.label;\n        span = node.span;\n      } else {\n        label = renderVNodeTNode(node, 'label');\n        span = node.props.span;\n      }\n      // 当 layout 为 horizontal 时，span 设置将失效\n      const labelSpan = layoutIsHorizontal.value ? (itemLayoutIsHorizontal.value ? 1 : span) : 1;\n      return (\n        <td colspan={labelSpan} class={labelClass} {...{ style: descriptionsProps.labelStyle }}>\n          {label}\n          {descriptionsProps.colon && globalConfig.value.colonText}\n        </td>\n      );\n    };\n\n    const content = (node: TdDescriptionsItem) => {\n      const contentClass = [`${COMPONENT_NAME.value}__content`];\n\n      let content = null;\n      let span = null;\n      if (itemTypeIsProps(props.itemType, node)) {\n        content = node.content;\n        span = node.span;\n      } else {\n        content = renderVNodeTNode(node, 'content', 'default');\n        span = node.props.span;\n      }\n      const contentSpan = layoutIsHorizontal.value\n        ? span > 1 && itemLayoutIsHorizontal.value\n          ? span * 2 - 1\n          : span\n        : 1;\n\n      return (\n        <td colspan={contentSpan} class={contentClass} {...{ style: descriptionsProps.contentStyle }}>\n          {content}\n        </td>\n      );\n    };\n\n    // 总共有四种布局\n    // Layout horizontal vertical\n    // itemLayout horizontal vertical\n\n    const hh = () => (\n      <tr>\n        {props.row.map((node) => (\n          <>\n            {label(node)}\n            {content(node)}\n          </>\n        ))}\n      </tr>\n    );\n\n    const hv = () => (\n      <>\n        <tr>{props.row.map((node) => label(node))}</tr>\n        <tr>{props.row.map((node) => content(node))}</tr>\n      </>\n    );\n\n    const vh = () => (\n      <>\n        {props.row.map((node) => (\n          <tr>\n            {label(node)}\n            {content(node)}\n          </tr>\n        ))}\n      </>\n    );\n\n    const vv = () => (\n      <>\n        {props.row.map((node) => (\n          <>\n            <tr>{label(node)}</tr>\n            <tr>{content(node)}</tr>\n          </>\n        ))}\n      </>\n    );\n\n    return () => (\n      <>\n        {layoutIsHorizontal.value\n          ? itemLayoutIsHorizontal.value\n            ? hh()\n            : hv()\n          : itemLayoutIsHorizontal.value\n          ? vh()\n          : vv()}\n      </>\n    );\n  },\n});\n"],"names":["defineComponent","name","props","row","Array","itemType","String","setup","descriptionsProps","inject","descriptionsKey","COMPONENT_NAME","usePrefixClass","_useConfig","useConfig","globalConfig","layoutIsHorizontal","computed","layout","itemLayoutIsHorizontal","itemLayout","label","node","labelClass","concat","value","span","itemTypeIsProps","renderVNodeTNode","labelSpan","_createVNode","_mergeProps","style","labelStyle","colon","colonText","content","contentClass","contentSpan","contentStyle","hh","map","_Fragment","hv","vh","vv"],"mappings":"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"}