descriptions-cell.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. require('../../../utils/index.js');
  5. require('../../../hooks/index.js');
  6. var token = require('./token.js');
  7. var vnode = require('../../../utils/vue/vnode.js');
  8. var style = require('../../../utils/dom/style.js');
  9. var index = require('../../../hooks/use-namespace/index.js');
  10. var ElDescriptionsCell = vue.defineComponent({
  11. name: "ElDescriptionsCell",
  12. props: {
  13. cell: {
  14. type: Object
  15. },
  16. tag: {
  17. type: String
  18. },
  19. type: {
  20. type: String
  21. }
  22. },
  23. setup() {
  24. const descriptions = vue.inject(token.descriptionsKey, {});
  25. return {
  26. descriptions
  27. };
  28. },
  29. render() {
  30. var _a, _b, _c, _d, _e, _f;
  31. const item = vnode.getNormalizedProps(this.cell);
  32. const { border, direction } = this.descriptions;
  33. const isVertical = direction === "vertical";
  34. const label = ((_c = (_b = (_a = this.cell) == null ? void 0 : _a.children) == null ? void 0 : _b.label) == null ? void 0 : _c.call(_b)) || item.label;
  35. const content = (_f = (_e = (_d = this.cell) == null ? void 0 : _d.children) == null ? void 0 : _e.default) == null ? void 0 : _f.call(_e);
  36. const span = item.span;
  37. const align = item.align ? `is-${item.align}` : "";
  38. const labelAlign = item.labelAlign ? `is-${item.labelAlign}` : align;
  39. const className = item.className;
  40. const labelClassName = item.labelClassName;
  41. const style$1 = {
  42. width: style.addUnit(item.width),
  43. minWidth: style.addUnit(item.minWidth)
  44. };
  45. const ns = index.useNamespace("descriptions");
  46. switch (this.type) {
  47. case "label":
  48. return vue.h(this.tag, {
  49. style: style$1,
  50. class: [
  51. ns.e("cell"),
  52. ns.e("label"),
  53. ns.is("bordered-label", border),
  54. ns.is("vertical-label", isVertical),
  55. labelAlign,
  56. labelClassName
  57. ],
  58. colSpan: isVertical ? span : 1
  59. }, label);
  60. case "content":
  61. return vue.h(this.tag, {
  62. style: style$1,
  63. class: [
  64. ns.e("cell"),
  65. ns.e("content"),
  66. ns.is("bordered-content", border),
  67. ns.is("vertical-content", isVertical),
  68. align,
  69. className
  70. ],
  71. colSpan: isVertical ? span : span * 2 - 1
  72. }, content);
  73. default:
  74. return vue.h("td", {
  75. style: style$1,
  76. class: [ns.e("cell"), align],
  77. colSpan: span
  78. }, [
  79. vue.h("span", {
  80. class: [ns.e("label"), labelClassName]
  81. }, label),
  82. vue.h("span", {
  83. class: [ns.e("content"), className]
  84. }, content)
  85. ]);
  86. }
  87. }
  88. });
  89. exports["default"] = ElDescriptionsCell;
  90. //# sourceMappingURL=descriptions-cell.js.map