UNPKG

tdesign-vue-next

Version:
1 lines 7.77 kB
{"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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"}