{"version":3,"file":"descriptions-cell.mjs","sources":["../../../../../packages/components/descriptions/src/descriptions-cell.ts"],"sourcesContent":["import { defineComponent, h, inject } from 'vue'\nimport { addUnit, getNormalizedProps } from '@element-ultra/utils'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { elDescriptionsKey } from './token'\n\nimport type { VNode } from 'vue'\nimport type {\n  IDescriptionsInject,\n  IDescriptionsItemInject,\n} from './descriptions.type'\n\nexport default defineComponent({\n  name: 'ElDescriptionsCell',\n  props: {\n    cell: {\n      type: Object,\n    },\n    tag: {\n      type: String,\n    },\n    type: {\n      type: String,\n    },\n  },\n  setup() {\n    const descriptions = inject(elDescriptionsKey, {} as IDescriptionsInject)\n\n    return {\n      descriptions,\n    }\n  },\n  render() {\n    const item = getNormalizedProps(\n      this.cell as VNode\n    ) as IDescriptionsItemInject\n\n    const { border, direction } = this.descriptions\n    const isVertical = direction === 'vertical'\n    const label = this.cell?.children?.label?.() || item.label\n    const content = this.cell?.children?.default?.()\n    const span = item.span\n    const align = item.align ? `is-${item.align}` : ''\n    const labelAlign = item.labelAlign ? `is-${item.labelAlign}` : '' || align\n    const className = item.className\n    const labelClassName = item.labelClassName\n    const style = {\n      width: addUnit(item.width),\n      minWidth: addUnit(item.minWidth),\n    }\n    const ns = useNamespace('descriptions')\n\n    switch (this.type) {\n      case 'label':\n        return h(\n          this.tag,\n          {\n            style,\n            class: [\n              ns.e('cell'),\n              ns.e('label'),\n              ns.is('bordered-label', border),\n              ns.is('vertical-label', isVertical),\n              labelAlign,\n              labelClassName,\n            ],\n            colSpan: isVertical ? span : 1,\n          },\n          label\n        )\n      case 'content':\n        return h(\n          this.tag,\n          {\n            style,\n            class: [\n              ns.e('cell'),\n              ns.e('content'),\n              ns.is('bordered-content', border),\n              ns.is('vertical-content', isVertical),\n              align,\n              className,\n            ],\n            colSpan: isVertical ? span : span * 2 - 1,\n          },\n          content\n        )\n      default:\n        return h(\n          'td',\n          {\n            style,\n            class: [ns.e('cell'), align],\n            colSpan: span,\n          },\n          [\n            h(\n              'span',\n              {\n                class: [ns.e('label'), labelClassName],\n              },\n              label\n            ),\n            h(\n              'span',\n              {\n                class: [ns.e('content'), className],\n              },\n              content\n            ),\n          ]\n        )\n    }\n  },\n})\n"],"names":[],"mappings":"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"}