UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 6.34 kB
{"version":3,"file":"descriptions-cell.mjs","names":[],"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 '@element-plus/utils'\nimport { useNamespace } from '@element-plus/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"],"mappings":";;;;;;;;AAaA,gCAAe,gBAAgB;CAC7B,MAAM;CACN,OAAO;EACL,MAAM,EACJ,MAAM,QACP;EACD,KAAK;GACH,MAAM;GACN,SAAS;GACV;EACD,MAAM,EACJ,MAAM,QACP;EACF;CACD,QAAQ;AAGN,SAAO,EACL,cAHmB,OAAO,iBAAiB,EAAE,CAAwB,EAItE;;CAEH,SAAS;EACP,MAAM,OAAO,mBACX,KAAK,KACN;EAED,MAAM,cAAc,KAAK,MAAM,QAAQ,EAAE,EAAE,KAAK,SAAS;GACvD,MAAM,EAAE,KAAK,KAAK,WAAW,UAAU;AACvC,UAAO;IAAC;IAAK;IAAO;IAAK;IAAU;IACnC;EAEF,MAAM,EAAE,QAAQ,cAAc,KAAK;EACnC,MAAM,aAAa,cAAc;EACjC,MAAM,oBAAoB,KAAK,MAAM,UAAU,SAAS,IAAI,KAAK;EACjE,MAAM,sBAAsB,KAAK,MAAM,UAAU,WAAW;EAC5D,MAAM,OAAO,KAAK;EAClB,MAAM,UAAU,KAAK;EACrB,MAAM,QAAQ,KAAK,QAAQ,MAAM,KAAK,UAAU;EAChD,MAAM,aAAa,KAAK,aAAa,MAAM,KAAK,eAAe;EAC/D,MAAM,YAAY,KAAK;EACvB,MAAM,iBAAiB,KAAK;EAM5B,MAAM,QAAQ;GACZ,OAAO,QALP,KAAK,SAAS,UACT,KAAK,cAAc,KAAK,aAAa,cAAc,KAAK,QACzD,KAAK,MAGY;GACrB,UAAU,QAAQ,KAAK,SAAS;GACjC;EACD,MAAM,KAAK,aAAa,eAAe;AAEvC,UAAQ,KAAK,MAAb;GACE,KAAK,QACH,QAAO,eACL,EACE,KAAK,KACL;IACE;IACA,OAAO;KACL,GAAG,EAAE,OAAO;KACZ,GAAG,EAAE,QAAQ;KACb,GAAG,GAAG,kBAAkB,OAAO;KAC/B,GAAG,GAAG,kBAAkB,WAAW;KACnC;KACA;KACD;IACD,SAAS,aAAa,OAAO;IAC7B,SAAS,aAAa,IAAI;IAC3B,EACD,aAAa,CACd,EACD,WACD;GACH,KAAK,UACH,QAAO,eACL,EACE,KAAK,KACL;IACE;IACA,OAAO;KACL,GAAG,EAAE,OAAO;KACZ,GAAG,EAAE,UAAU;KACf,GAAG,GAAG,oBAAoB,OAAO;KACjC,GAAG,GAAG,oBAAoB,WAAW;KACrC;KACA;KACD;IACD,SAAS,aAAa,OAAO,OAAO,IAAI;IACxC,SAAS,aAAa,UAAU,IAAI,IAAI;IACzC,EACD,eAAe,CAChB,EACD,WACD;GACH,SAAS;IACP,MAAM,QAAQ,aAAa;IAC3B,MAAM,aAAkC,EAAE;IAC1C,MAAM,QAAQ,QAAQ,KAAK,cAAc,KAAK,aAAa,WAAW;AACtE,QAAI,OAAO;AACT,gBAAW,QAAQ;AACnB,gBAAW,UAAU;;AAEvB,WAAO,eACL,EACE,MACA;KACE;KACA,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM;KAC5B,SAAS;KACT;KACD,EACD,CACE,CAAC,MAAM,MAAM,GACT,EACE,QACA;KACE,OAAO;KACP,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe;KACvC,EACD,MACD,GACD,QACJ,EACE,QACA,EACE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EACpC,EACD,eAAe,CAChB,CACF,CACF,EACD,WACD;;;;CAIR,CAAC"}