55bb55003eb7416a38cac976851d138f42a4d28d91ad16716ce288daa8cda6f765e11e240499a82d9e7ec4508506b6bbd0502379fb6d438881bcdc159ec630 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { defineComponent, createVNode } from 'vue';
  2. import { tableV2HeaderRowProps } from '../header-row.mjs';
  3. import { isArray } from '@vue/shared';
  4. const TableV2HeaderRow = defineComponent({
  5. name: "ElTableV2HeaderRow",
  6. props: tableV2HeaderRowProps,
  7. setup(props, {
  8. slots
  9. }) {
  10. return () => {
  11. const {
  12. columns,
  13. columnsStyles,
  14. headerIndex,
  15. style
  16. } = props;
  17. let Cells = columns.map((column, columnIndex) => {
  18. return slots.cell({
  19. columns,
  20. column,
  21. columnIndex,
  22. headerIndex,
  23. style: columnsStyles[column.key]
  24. });
  25. });
  26. if (slots.header) {
  27. Cells = slots.header({
  28. cells: Cells.map((node) => {
  29. if (isArray(node) && node.length === 1) {
  30. return node[0];
  31. }
  32. return node;
  33. }),
  34. columns,
  35. headerIndex
  36. });
  37. }
  38. return createVNode("div", {
  39. "class": props.class,
  40. "style": style,
  41. "role": "row"
  42. }, [Cells]);
  43. };
  44. }
  45. });
  46. var HeaderRow = TableV2HeaderRow;
  47. export { HeaderRow as default };
  48. //# sourceMappingURL=header-row.mjs.map