{"version":3,"file":"descriptions-cell.mjs","sources":["../../../../../../../packages/components/descriptions/src/descriptions-cell.ts"],"sourcesContent":["import { defineComponent, h, inject, withDirectives } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { addUnit, getNormalizedProps } from '@hd-front-end/utils'\nimport { useNamespace } from '@hd-front-end/hooks'\nimport { descriptionsKey } from './token'\n\nimport type { DirectiveArguments, PropType, VNode } from 'vue'\nimport type {\n  IDescriptionsInject,\n  IDescriptionsItemInject,\n} from './descriptions.type'\nimport type { DescriptionItemVNode } from './description-item'\n\nexport default defineComponent({\n  name: 'ElDescriptionsCell',\n  props: {\n    cell: {\n      type: Object as PropType<DescriptionItemVNode>,\n    },\n    tag: {\n      type: String,\n      default: 'td',\n    },\n    type: {\n      type: String,\n    },\n  },\n  setup() {\n    const descriptions = inject(descriptionsKey, {} 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 directives = (this.cell?.dirs || []).map((dire) => {\n      const { dir, arg, modifiers, value } = dire\n      return [dir, value, arg, modifiers]\n    }) as DirectiveArguments\n\n    const { border, direction } = this.descriptions\n    const isVertical = direction === 'vertical'\n    const renderLabel = () => this.cell?.children?.label?.() || item.label\n    const renderContent = () => this.cell?.children?.default?.()\n    const span = item.span\n    const rowspan = item.rowspan\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 width =\n      this.type === 'label'\n        ? item.labelWidth || this.descriptions.labelWidth || item.width\n        : item.width\n\n    const style = {\n      width: addUnit(width),\n      minWidth: addUnit(item.minWidth),\n    }\n    const ns = useNamespace('descriptions')\n\n    switch (this.type) {\n      case 'label':\n        return withDirectives(\n          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              rowspan: isVertical ? 1 : rowspan,\n            },\n            renderLabel()\n          ),\n          directives\n        )\n      case 'content':\n        return withDirectives(\n          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              rowspan: isVertical ? rowspan * 2 - 1 : rowspan,\n            },\n            renderContent()\n          ),\n          directives\n        )\n      default: {\n        const label = renderLabel()\n        const labelStyle: Record<string, any> = {}\n        const width = addUnit(item.labelWidth || this.descriptions.labelWidth)\n        if (width) {\n          labelStyle.width = width\n          labelStyle.display = 'inline-block'\n        }\n        return withDirectives(\n          h(\n            'td',\n            {\n              style,\n              class: [ns.e('cell'), align],\n              colSpan: span,\n              rowspan,\n            },\n            [\n              !isNil(label)\n                ? h(\n                    'span',\n                    {\n                      style: labelStyle,\n                      class: [ns.e('label'), labelClassName],\n                    },\n                    label\n                  )\n                : undefined,\n              h(\n                'span',\n                {\n                  class: [ns.e('content'), className],\n                },\n                renderContent()\n              ),\n            ]\n          ),\n          directives\n        )\n      }\n    }\n  },\n})\n"],"names":["_a","width"],"mappings":"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"}