{"version":3,"file":"descriptions-item.mjs","sources":["../../../../../../packages/components/descriptions/src/descriptions-item.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from 'vue'\nimport type { PropType, CSSProperties, VNodeChild } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { isFunction, isUndefined } from '../../../utils/is'\nimport { addUnit } from '../../../shared/utils'\nimport { descriptionsInjectionKey } from './context'\n\nexport default defineComponent({\n  name: getComponentNamespace('DescriptionsItem'),\n  props: {\n    label: {\n      type: [String, Number],\n      default: ''\n    },\n    value: {\n      type: [String, Number],\n      default: ''\n    },\n    span: {\n      type: Number,\n      default: 1\n    },\n    align: {\n      type: String as PropType<'left' | 'center' | 'right'>,\n      default: 'left'\n    },\n    labelAlign: {\n      type: String as PropType<'left' | 'center' | 'right'>,\n      default: 'left'\n    },\n    valueClassName: {\n      type: String,\n      default: undefined\n    },\n    labelClassName: {\n      type: String,\n      default: undefined\n    },\n    renderTag: {\n      type: String as PropType<'th' | 'td'>,\n      default: 'td'\n    },\n    renderValue: {\n      type: Function as PropType<(data: Record<'value', any>) => VNodeChild>,\n      default: undefined\n    },\n    renderLabel: {\n      type: Function as PropType<(data: Record<'label', any>) => VNodeChild>,\n      default: undefined\n    }\n  },\n  setup(props, { slots }) {\n    const descriptionsContext = inject(descriptionsInjectionKey)\n    const ns = getNamespace('descriptions-item')\n    const cls = computed(() => {\n      return [\n        ns,\n        `${ns}__cell`,\n        descriptionsContext?.border && 'is-border',\n        `${ns}--${descriptionsContext?.size}`\n      ]\n    })\n\n    const cellStyle = computed(() => {\n      const style: CSSProperties = {}\n      if (!isUndefined(descriptionsContext?.cellHeight)) {\n        style.height = addUnit(descriptionsContext!.cellHeight)\n      }\n      return style\n    })\n\n    const valueAlginCls = computed(() => [`is-align-${props.align}`])\n    const labelAlginCls = computed(() => [`is-align-${props.labelAlign}`])\n\n    const renderValue = () => {\n      let value: string | VNodeChild = props.value\n      if (isFunction(props.renderValue)) {\n        value = props.renderValue({ value: props.value })\n      } else if (isFunction(slots.default)) {\n        value = slots.default({ value: props.value })\n      }\n      return value\n    }\n\n    const renderLabel = () => {\n      let label: string | VNodeChild = props.label\n      if (isFunction(props.renderLabel)) {\n        label = props.renderLabel({ label: props.label })\n      } else if (isFunction(slots.label)) {\n        label = slots.label({ label: props.label })\n      }\n      return label\n    }\n\n    const renderContent = () => {\n      if (descriptionsContext?.border) {\n        if (descriptionsContext?.direction === 'horizontal') {\n          return (\n            <>\n              <td\n                style={cellStyle.value}\n                class={[...cls.value, `${ns}__label`, labelAlginCls.value, props.labelClassName]}\n                colspan={1}\n              >\n                {renderLabel()}\n              </td>\n              <td\n                style={cellStyle.value}\n                class={[...cls.value, `${ns}__value`, valueAlginCls.value, props.valueClassName]}\n                colspan={props.span}\n              >\n                {renderValue()}\n              </td>\n            </>\n          )\n        }\n\n        if (props.renderTag === 'th') {\n          // 表头\n          return (\n            <th\n              style={cellStyle.value}\n              class={[...cls.value, `${ns}__label`, labelAlginCls.value, props.labelClassName]}\n              colspan={props.span}\n            >\n              {renderLabel()}\n            </th>\n          )\n        }\n\n        return (\n          <td\n            style={cellStyle.value}\n            class={[...cls.value, `${ns}__value`, valueAlginCls.value, props.valueClassName]}\n            colspan={props.span}\n          >\n            {renderValue()}\n          </td>\n        )\n      }\n\n      if (descriptionsContext?.direction === 'horizontal') {\n        return (\n          <td class={cls.value} colspan={props.span}>\n            <span class={[`${ns}__label`, props.labelClassName]}>{renderLabel()}</span>\n            <span class={[`${ns}__value`, props.valueClassName]}>{renderValue()}</span>\n          </td>\n        )\n      }\n\n      if (props.renderTag === 'th') {\n        return (\n          <th\n            class={[...cls.value, `${ns}__label`, labelAlginCls.value, props.labelClassName]}\n            colspan={props.span}\n          >\n            {renderLabel()}\n          </th>\n        )\n      }\n\n      return (\n        <td\n          class={[...cls.value, `${ns}__value`, valueAlginCls.value, props.valueClassName]}\n          colspan={props.span}\n        >\n          {renderValue()}\n        </td>\n      )\n    }\n\n    return () => {\n      return renderContent()\n    }\n  }\n})\n"],"names":["name","getComponentNamespace","props","label","type","String","Number","default","value","span","align","labelAlign","valueClassName","undefined","labelClassName","renderTag","renderValue","Function","renderLabel","setup","slots","descriptionsContext","inject","descriptionsInjectionKey","ns","getNamespace","cls","computed","border","size","cellStyle","style","isUndefined","cellHeight","height","addUnit","valueAlginCls","labelAlginCls","isFunction","renderContent","direction","_createVNode","_Fragment"],"mappings":"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"}