@element-plus/nightly 0.0.20220104 → 0.0.20220105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +392 -408
  3. package/dist/index.full.min.js +8 -8
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +8 -8
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +392 -408
  8. package/es/components/index.mjs +1 -1
  9. package/es/components/skeleton/index.mjs +2 -2
  10. package/es/components/skeleton/src/skeleton.mjs +5 -24
  11. package/es/components/skeleton/src/skeleton.mjs.map +1 -1
  12. package/es/components/skeleton/src/skeleton.vue_vue_type_script_lang.mjs +1 -1
  13. package/es/components/skeleton/src/skeleton2.mjs +24 -5
  14. package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
  15. package/es/components/table/index.d.ts +9 -0
  16. package/es/components/table/src/table/style-helper.d.ts +7 -0
  17. package/es/components/table/src/table/style-helper.mjs +20 -17
  18. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  19. package/es/components/table/src/table-body/index.mjs +5 -3
  20. package/es/components/table/src/table-body/index.mjs.map +1 -1
  21. package/es/components/table/src/table-body/styles-helper.d.ts +0 -1
  22. package/es/components/table/src/table-body/styles-helper.mjs +10 -17
  23. package/es/components/table/src/table-body/styles-helper.mjs.map +1 -1
  24. package/es/components/table/src/table-column/defaults.d.ts +1 -0
  25. package/es/components/table/src/table-column/defaults.mjs.map +1 -1
  26. package/es/components/table/src/table-column/index.mjs +1 -0
  27. package/es/components/table/src/table-column/index.mjs.map +1 -1
  28. package/es/components/table/src/table-footer/index.d.ts +4 -2
  29. package/es/components/table/src/table-footer/index.mjs +33 -18
  30. package/es/components/table/src/table-footer/index.mjs.map +1 -1
  31. package/es/components/table/src/table-footer/style-helper.d.ts +4 -2
  32. package/es/components/table/src/table-footer/style-helper.mjs +28 -31
  33. package/es/components/table/src/table-footer/style-helper.mjs.map +1 -1
  34. package/es/components/table/src/table-header/index.d.ts +3 -2
  35. package/es/components/table/src/table-header/index.mjs +89 -51
  36. package/es/components/table/src/table-header/index.mjs.map +1 -1
  37. package/es/components/table/src/table-header/style.helper.d.ts +1 -1
  38. package/es/components/table/src/table-header/style.helper.mjs +14 -24
  39. package/es/components/table/src/table-header/style.helper.mjs.map +1 -1
  40. package/es/components/table/src/table-header/utils-helper.mjs +1 -0
  41. package/es/components/table/src/table-header/utils-helper.mjs.map +1 -1
  42. package/es/components/table/src/table-layout.d.ts +1 -0
  43. package/es/components/table/src/table-layout.mjs +7 -1
  44. package/es/components/table/src/table-layout.mjs.map +1 -1
  45. package/es/components/table/src/table.vue.d.ts +9 -0
  46. package/es/components/table/src/table.vue_vue_type_script_lang.mjs +12 -2
  47. package/es/components/table/src/table.vue_vue_type_script_lang.mjs.map +1 -1
  48. package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs +62 -213
  49. package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs.map +1 -1
  50. package/es/components/table/src/util.d.ts +14 -0
  51. package/es/components/table/src/util.mjs +90 -1
  52. package/es/components/table/src/util.mjs.map +1 -1
  53. package/es/index.mjs +1 -1
  54. package/es/version.d.ts +1 -1
  55. package/es/version.mjs +1 -1
  56. package/es/version.mjs.map +1 -1
  57. package/lib/components/index.js +1 -1
  58. package/lib/components/skeleton/index.js +2 -2
  59. package/lib/components/skeleton/src/skeleton.js +5 -23
  60. package/lib/components/skeleton/src/skeleton.js.map +1 -1
  61. package/lib/components/skeleton/src/skeleton.vue_vue_type_script_lang.js +1 -1
  62. package/lib/components/skeleton/src/skeleton2.js +23 -5
  63. package/lib/components/skeleton/src/skeleton2.js.map +1 -1
  64. package/lib/components/table/index.d.ts +9 -0
  65. package/lib/components/table/src/table/style-helper.d.ts +7 -0
  66. package/lib/components/table/src/table/style-helper.js +20 -21
  67. package/lib/components/table/src/table/style-helper.js.map +1 -1
  68. package/lib/components/table/src/table-body/index.js +5 -3
  69. package/lib/components/table/src/table-body/index.js.map +1 -1
  70. package/lib/components/table/src/table-body/styles-helper.d.ts +0 -1
  71. package/lib/components/table/src/table-body/styles-helper.js +10 -17
  72. package/lib/components/table/src/table-body/styles-helper.js.map +1 -1
  73. package/lib/components/table/src/table-column/defaults.d.ts +1 -0
  74. package/lib/components/table/src/table-column/defaults.js.map +1 -1
  75. package/lib/components/table/src/table-column/index.js +1 -0
  76. package/lib/components/table/src/table-column/index.js.map +1 -1
  77. package/lib/components/table/src/table-footer/index.d.ts +4 -2
  78. package/lib/components/table/src/table-footer/index.js +32 -17
  79. package/lib/components/table/src/table-footer/index.js.map +1 -1
  80. package/lib/components/table/src/table-footer/style-helper.d.ts +4 -2
  81. package/lib/components/table/src/table-footer/style-helper.js +28 -31
  82. package/lib/components/table/src/table-footer/style-helper.js.map +1 -1
  83. package/lib/components/table/src/table-header/index.d.ts +3 -2
  84. package/lib/components/table/src/table-header/index.js +89 -51
  85. package/lib/components/table/src/table-header/index.js.map +1 -1
  86. package/lib/components/table/src/table-header/style.helper.d.ts +1 -1
  87. package/lib/components/table/src/table-header/style.helper.js +14 -24
  88. package/lib/components/table/src/table-header/style.helper.js.map +1 -1
  89. package/lib/components/table/src/table-header/utils-helper.js +1 -0
  90. package/lib/components/table/src/table-header/utils-helper.js.map +1 -1
  91. package/lib/components/table/src/table-layout.d.ts +1 -0
  92. package/lib/components/table/src/table-layout.js +7 -1
  93. package/lib/components/table/src/table-layout.js.map +1 -1
  94. package/lib/components/table/src/table.vue.d.ts +9 -0
  95. package/lib/components/table/src/table.vue_vue_type_script_lang.js +12 -2
  96. package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
  97. package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js +62 -213
  98. package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js.map +1 -1
  99. package/lib/components/table/src/util.d.ts +14 -0
  100. package/lib/components/table/src/util.js +95 -0
  101. package/lib/components/table/src/util.js.map +1 -1
  102. package/lib/index.js +1 -1
  103. package/lib/version.d.ts +1 -1
  104. package/lib/version.js +1 -1
  105. package/lib/version.js.map +1 -1
  106. package/package.json +2 -2
  107. package/theme-chalk/el-table.css +1 -1
  108. package/theme-chalk/index.css +1 -1
  109. package/theme-chalk/src/table.scss +176 -124
  110. package/web-types.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, h } from 'vue';
2
- import { hColgroup, hGutter } from '../h-helper.mjs';
2
+ import { hColgroup } from '../h-helper.mjs';
3
3
  import useStyle from './style-helper.mjs';
4
4
 
5
5
  var TableFooter = defineComponent({
@@ -27,27 +27,39 @@ var TableFooter = defineComponent({
27
27
  }
28
28
  },
29
29
  setup(props) {
30
- const { hasGutter, getRowClasses, columns } = useStyle(props);
30
+ const { hasGutter, getCellClasses, getCellStyles, columns, gutterWidth } = useStyle(props);
31
31
  return {
32
- getRowClasses,
32
+ getCellClasses,
33
+ getCellStyles,
33
34
  hasGutter,
35
+ gutterWidth,
34
36
  columns
35
37
  };
36
38
  },
37
39
  render() {
40
+ const {
41
+ hasGutter,
42
+ gutterWidth,
43
+ columns,
44
+ getCellStyles,
45
+ getCellClasses,
46
+ summaryMethod,
47
+ sumText
48
+ } = this;
49
+ const data = this.store.states.data.value;
38
50
  let sums = [];
39
- if (this.summaryMethod) {
40
- sums = this.summaryMethod({
41
- columns: this.columns,
42
- data: this.store.states.data.value
51
+ if (summaryMethod) {
52
+ sums = summaryMethod({
53
+ columns,
54
+ data
43
55
  });
44
56
  } else {
45
- this.columns.forEach((column, index) => {
57
+ columns.forEach((column, index) => {
46
58
  if (index === 0) {
47
- sums[index] = this.sumText;
59
+ sums[index] = sumText;
48
60
  return;
49
61
  }
50
- const values = this.store.states.data.value.map((item) => Number(item[column.property]));
62
+ const values = data.map((item) => Number(item[column.property]));
51
63
  const precisions = [];
52
64
  let notNumber = true;
53
65
  values.forEach((value) => {
@@ -78,25 +90,28 @@ var TableFooter = defineComponent({
78
90
  cellpadding: "0",
79
91
  border: "0"
80
92
  }, [
81
- hColgroup(this.columns, this.hasGutter),
93
+ hColgroup(columns, hasGutter),
82
94
  h("tbody", {
83
- class: [{ "has-gutter": this.hasGutter }]
95
+ class: [{ "has-gutter": hasGutter }]
84
96
  }, [
85
97
  h("tr", {}, [
86
- ...this.columns.map((column, cellIndex) => h("td", {
98
+ ...columns.map((column, cellIndex) => h("td", {
87
99
  key: cellIndex,
88
100
  colspan: column.colSpan,
89
101
  rowspan: column.rowSpan,
90
- class: [
91
- ...this.getRowClasses(column, cellIndex),
92
- "el-table__cell"
93
- ]
102
+ class: getCellClasses(columns, cellIndex, hasGutter),
103
+ style: getCellStyles(column, cellIndex, hasGutter)
94
104
  }, [
95
105
  h("div", {
96
106
  class: ["cell", column.labelClassName]
97
107
  }, [sums[cellIndex]])
98
108
  ])),
99
- this.hasGutter && hGutter()
109
+ hasGutter && h("td", {
110
+ class: "el-table__fixed-right-patch el-table__cell",
111
+ style: {
112
+ width: `${gutterWidth}px`
113
+ }
114
+ })
100
115
  ])
101
116
  ])
102
117
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/table-footer/index.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { hGutter, hColgroup } from '../h-helper'\nimport useStyle from './style-helper'\nimport type { Store } from '../store'\n\nimport type { PropType } from 'vue'\nimport type { DefaultRow, Sort, SummaryMethod } from '../table/defaults'\nexport interface TableFooter<T> {\n fixed: string\n store: Store<T>\n summaryMethod: SummaryMethod<T>\n sumText: string\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'ElTableFooter',\n\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableFooter<DefaultRow>['store']>,\n },\n summaryMethod: Function as PropType<\n TableFooter<DefaultRow>['summaryMethod']\n >,\n sumText: String,\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableFooter<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props) {\n const { hasGutter, getRowClasses, columns } = useStyle(\n props as TableFooter<DefaultRow>\n )\n return {\n getRowClasses,\n hasGutter,\n columns,\n }\n },\n render() {\n let sums = []\n if (this.summaryMethod) {\n sums = this.summaryMethod({\n columns: this.columns,\n data: this.store.states.data.value,\n })\n } else {\n this.columns.forEach((column, index) => {\n if (index === 0) {\n sums[index] = this.sumText\n return\n }\n const values = this.store.states.data.value.map((item) =>\n Number(item[column.property])\n )\n const precisions = []\n let notNumber = true\n values.forEach((value) => {\n if (!isNaN(value)) {\n notNumber = false\n const decimal = `${value}`.split('.')[1]\n precisions.push(decimal ? decimal.length : 0)\n }\n })\n const precision = Math.max.apply(null, precisions)\n if (!notNumber) {\n sums[index] = values.reduce((prev, curr) => {\n const value = Number(curr)\n if (!isNaN(value)) {\n return parseFloat((prev + curr).toFixed(Math.min(precision, 20)))\n } else {\n return prev\n }\n }, 0)\n } else {\n sums[index] = ''\n }\n })\n }\n return h(\n 'table',\n {\n class: 'el-table__footer',\n cellspacing: '0',\n cellpadding: '0',\n border: '0',\n },\n [\n hColgroup(this.columns, this.hasGutter),\n h(\n 'tbody',\n {\n class: [{ 'has-gutter': this.hasGutter }],\n },\n [\n h('tr', {}, [\n ...this.columns.map((column, cellIndex) =>\n h(\n 'td',\n {\n key: cellIndex,\n colspan: column.colSpan,\n rowspan: column.rowSpan,\n class: [\n ...this.getRowClasses(column, cellIndex),\n 'el-table__cell',\n ],\n },\n [\n h(\n 'div',\n {\n class: ['cell', column.labelClassName],\n },\n [sums[cellIndex]]\n ),\n ]\n )\n ),\n this.hasGutter && hGutter(),\n ]),\n ]\n ),\n ]\n )\n },\n})\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/table-footer/index.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { hColgroup } from '../h-helper'\nimport useStyle from './style-helper'\nimport type { Store } from '../store'\n\nimport type { PropType } from 'vue'\nimport type { DefaultRow, Sort, SummaryMethod } from '../table/defaults'\nexport interface TableFooter<T> {\n fixed: string\n store: Store<T>\n summaryMethod: SummaryMethod<T>\n sumText: string\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'ElTableFooter',\n\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableFooter<DefaultRow>['store']>,\n },\n summaryMethod: Function as PropType<\n TableFooter<DefaultRow>['summaryMethod']\n >,\n sumText: String,\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableFooter<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props) {\n const { hasGutter, getCellClasses, getCellStyles, columns, gutterWidth } =\n useStyle(props as TableFooter<DefaultRow>)\n return {\n getCellClasses,\n getCellStyles,\n hasGutter,\n gutterWidth,\n columns,\n }\n },\n render() {\n const {\n hasGutter,\n gutterWidth,\n columns,\n getCellStyles,\n getCellClasses,\n summaryMethod,\n sumText,\n } = this\n const data = this.store.states.data.value\n let sums = []\n if (summaryMethod) {\n sums = summaryMethod({\n columns,\n data,\n })\n } else {\n columns.forEach((column, index) => {\n if (index === 0) {\n sums[index] = sumText\n return\n }\n const values = data.map((item) => Number(item[column.property]))\n const precisions = []\n let notNumber = true\n values.forEach((value) => {\n if (!isNaN(value)) {\n notNumber = false\n const decimal = `${value}`.split('.')[1]\n precisions.push(decimal ? decimal.length : 0)\n }\n })\n const precision = Math.max.apply(null, precisions)\n if (!notNumber) {\n sums[index] = values.reduce((prev, curr) => {\n const value = Number(curr)\n if (!isNaN(value)) {\n return parseFloat((prev + curr).toFixed(Math.min(precision, 20)))\n } else {\n return prev\n }\n }, 0)\n } else {\n sums[index] = ''\n }\n })\n }\n return h(\n 'table',\n {\n class: 'el-table__footer',\n cellspacing: '0',\n cellpadding: '0',\n border: '0',\n },\n [\n hColgroup(columns, hasGutter),\n h(\n 'tbody',\n {\n class: [{ 'has-gutter': hasGutter }],\n },\n [\n h('tr', {}, [\n ...columns.map((column, cellIndex) =>\n h(\n 'td',\n {\n key: cellIndex,\n colspan: column.colSpan,\n rowspan: column.rowSpan,\n class: getCellClasses(columns, cellIndex, hasGutter),\n style: getCellStyles(column, cellIndex, hasGutter),\n },\n [\n h(\n 'div',\n {\n class: ['cell', column.labelClassName],\n },\n [sums[cellIndex]]\n ),\n ]\n )\n ),\n hasGutter &&\n h('td', {\n class: 'el-table__fixed-right-patch el-table__cell',\n style: {\n width: `${gutterWidth}px`,\n },\n }),\n ]),\n ]\n ),\n ]\n )\n },\n})\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import type { TableColumnCtx } from '../table-column/defaults';
2
2
  import type { TableFooter } from '.';
3
3
  declare function useStyle<T>(props: TableFooter<T>): {
4
- hasGutter: import("vue").ComputedRef<boolean>;
5
- getRowClasses: (column: TableColumnCtx<T>, cellIndex: number) => string[];
4
+ hasGutter: import("vue").ComputedRef<boolean | 0 | null>;
5
+ gutterWidth: import("vue").ComputedRef<number>;
6
+ getCellClasses: (columns: TableColumnCtx<T>[], cellIndex: number, hasGutter: boolean) => string[];
7
+ getCellStyles: (column: TableColumnCtx<T>, cellIndex: number, hasGutter: boolean) => any;
6
8
  columns: any;
7
9
  };
8
10
  export default useStyle;
@@ -1,52 +1,49 @@
1
1
  import { getCurrentInstance, computed } from 'vue';
2
+ import { getFixedColumnsClass, getFixedColumnOffset, ensureRightFixedStyle, ensurePosition } from '../util.mjs';
2
3
  import useMapState from './mapState-helper.mjs';
3
4
 
4
5
  function useStyle(props) {
5
6
  const instance = getCurrentInstance();
6
7
  const table = instance.parent;
7
- const store = table.store;
8
- const {
9
- leftFixedLeafCount,
10
- rightFixedLeafCount,
11
- columnsCount,
12
- leftFixedCount,
13
- rightFixedCount,
14
- columns
15
- } = useMapState();
8
+ const { columns } = useMapState();
16
9
  const hasGutter = computed(() => {
17
- return !props.fixed && !table.layout.gutterWidth;
10
+ return !props.fixed && table.layout.gutterWidth > 0 && table.layout.height.value && table.layout.bodyScrollHeight.value > table.layout.bodyHeight.value;
18
11
  });
19
- const isCellHidden = (index, columns2, column) => {
20
- if (props.fixed || props.fixed === "left") {
21
- return index >= leftFixedLeafCount.value;
22
- } else if (props.fixed === "right") {
23
- let before = 0;
24
- for (let i = 0; i < index; i++) {
25
- before += columns2[i].colSpan;
26
- }
27
- return before < columnsCount.value - rightFixedLeafCount.value;
28
- } else if (!props.fixed && column.fixed) {
29
- return true;
30
- } else {
31
- return index < leftFixedCount.value || index >= columnsCount.value - rightFixedCount.value;
32
- }
33
- };
34
- const getRowClasses = (column, cellIndex) => {
35
- const classes = [column.id, column.align, column.labelClassName];
12
+ const gutterWidth = computed(() => {
13
+ return table.layout.gutterWidth;
14
+ });
15
+ const getCellClasses = (columns2, cellIndex, hasGutter2) => {
16
+ const column = columns2[cellIndex];
17
+ const classes = [
18
+ "el-table__cell",
19
+ column.id,
20
+ column.align,
21
+ column.labelClassName,
22
+ ...getFixedColumnsClass(cellIndex, column.fixed, props.store)
23
+ ];
36
24
  if (column.className) {
37
25
  classes.push(column.className);
38
26
  }
39
- if (isCellHidden(cellIndex, store.states.columns.value, column)) {
40
- classes.push("is-hidden");
41
- }
42
27
  if (!column.children) {
43
28
  classes.push("is-leaf");
44
29
  }
30
+ if (hasGutter2 && cellIndex === columns2.length - 1) {
31
+ classes.push("last");
32
+ }
45
33
  return classes;
46
34
  };
35
+ const getCellStyles = (column, cellIndex, hasGutter2) => {
36
+ const fixedStyle = getFixedColumnOffset(cellIndex, column.fixed, props.store);
37
+ ensureRightFixedStyle(fixedStyle, hasGutter2);
38
+ ensurePosition(fixedStyle, "left");
39
+ ensurePosition(fixedStyle, "right");
40
+ return fixedStyle;
41
+ };
47
42
  return {
48
43
  hasGutter,
49
- getRowClasses,
44
+ gutterWidth,
45
+ getCellClasses,
46
+ getCellStyles,
50
47
  columns
51
48
  };
52
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"style-helper.mjs","sources":["../../../../../../../packages/components/table/src/table-footer/style-helper.ts"],"sourcesContent":["import { computed, getCurrentInstance } from 'vue'\nimport useMapState from './mapState-helper'\n\nimport type { Table } from '../table/defaults'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { TableFooter } from '.'\n\nfunction useStyle<T>(props: TableFooter<T>) {\n const instance = getCurrentInstance()\n const table = instance.parent as Table<T>\n const store = table.store\n\n const {\n leftFixedLeafCount,\n rightFixedLeafCount,\n columnsCount,\n leftFixedCount,\n rightFixedCount,\n columns,\n } = useMapState<T>()\n\n const hasGutter = computed(() => {\n return !props.fixed && !table.layout.gutterWidth\n })\n const isCellHidden = (\n index: number,\n columns: TableColumnCtx<T>[],\n column: TableColumnCtx<T>\n ) => {\n if (props.fixed || props.fixed === 'left') {\n return index >= leftFixedLeafCount.value\n } else if (props.fixed === 'right') {\n let before = 0\n for (let i = 0; i < index; i++) {\n before += columns[i].colSpan\n }\n return before < columnsCount.value - rightFixedLeafCount.value\n } else if (!props.fixed && column.fixed) {\n // hide cell when footer instance is not fixed and column is fixed\n return true\n } else {\n return (\n index < leftFixedCount.value ||\n index >= columnsCount.value - rightFixedCount.value\n )\n }\n }\n const getRowClasses = (column: TableColumnCtx<T>, cellIndex: number) => {\n const classes = [column.id, column.align, column.labelClassName]\n if (column.className) {\n classes.push(column.className)\n }\n if (isCellHidden(cellIndex, store.states.columns.value, column)) {\n classes.push('is-hidden')\n }\n if (!column.children) {\n classes.push('is-leaf')\n }\n return classes\n }\n\n return {\n hasGutter,\n getRowClasses,\n columns,\n }\n}\n\nexport default useStyle\n"],"names":[],"mappings":";;;AAEA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;AAChC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,EAAE,MAAM;AACR,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,YAAY;AAChB,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,OAAO;AACX,GAAG,GAAG,WAAW,EAAE,CAAC;AACpB,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AACrD,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK;AACpD,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE;AAC/C,MAAM,OAAO,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC;AAC/C,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE;AACxC,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AACrB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACtC,QAAQ,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACtC,OAAO;AACP,MAAM,OAAO,MAAM,GAAG,YAAY,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AACrE,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE;AAC7C,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,MAAM;AACX,MAAM,OAAO,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;AACjG,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK;AAC/C,IAAI,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;AACrE,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;AACrE,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC1B,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"style-helper.mjs","sources":["../../../../../../../packages/components/table/src/table-footer/style-helper.ts"],"sourcesContent":["import { computed, getCurrentInstance } from 'vue'\nimport {\n getFixedColumnOffset,\n getFixedColumnsClass,\n ensurePosition,\n ensureRightFixedStyle,\n} from '../util'\nimport useMapState from './mapState-helper'\nimport type { Table } from '../table/defaults'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { TableFooter } from '.'\n\nfunction useStyle<T>(props: TableFooter<T>) {\n const instance = getCurrentInstance()\n const table = instance.parent as Table<T>\n\n const { columns } = useMapState<T>()\n\n const hasGutter = computed(() => {\n return (\n !props.fixed &&\n table.layout.gutterWidth > 0 &&\n table.layout.height.value &&\n table.layout.bodyScrollHeight.value > table.layout.bodyHeight.value\n )\n })\n\n const gutterWidth = computed(() => {\n return table.layout.gutterWidth\n })\n const getCellClasses = (\n columns: TableColumnCtx<T>[],\n cellIndex: number,\n hasGutter: boolean\n ) => {\n const column = columns[cellIndex]\n const classes = [\n 'el-table__cell',\n column.id,\n column.align,\n column.labelClassName,\n ...getFixedColumnsClass(cellIndex, column.fixed, props.store),\n ]\n if (column.className) {\n classes.push(column.className)\n }\n if (!column.children) {\n classes.push('is-leaf')\n }\n if (hasGutter && cellIndex === columns.length - 1) {\n classes.push('last')\n }\n return classes\n }\n\n const getCellStyles = (\n column: TableColumnCtx<T>,\n cellIndex: number,\n hasGutter: boolean\n ) => {\n const fixedStyle = getFixedColumnOffset(\n cellIndex,\n column.fixed,\n props.store\n )\n ensureRightFixedStyle(fixedStyle, hasGutter)\n ensurePosition(fixedStyle, 'left')\n ensurePosition(fixedStyle, 'right')\n return fixedStyle\n }\n\n return {\n hasGutter,\n gutterWidth,\n getCellClasses,\n getCellStyles,\n columns,\n }\n}\n\nexport default useStyle\n"],"names":[],"mappings":";;;;AAQA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;AAChC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;AACpC,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AAC5J,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACrC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AACpC,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,KAAK;AAC9D,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,gBAAgB;AACtB,MAAM,MAAM,CAAC,EAAE;AACf,MAAM,MAAM,CAAC,KAAK;AAClB,MAAM,MAAM,CAAC,cAAc;AAC3B,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACnE,KAAK,CAAC;AACN,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC1B,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,UAAU,IAAI,SAAS,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,KAAK;AAC3D,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAClF,IAAI,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAClD,IAAI,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvC,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACxC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}
@@ -34,14 +34,15 @@ declare const _default: import("vue").DefineComponent<{
34
34
  }, {
35
35
  columns: any;
36
36
  filterPanels: Ref<{}>;
37
- hasGutter: import("vue").ComputedRef<number | false>;
37
+ hasGutter: import("vue").ComputedRef<boolean>;
38
+ gutterWidth: import("vue").ComputedRef<number>;
38
39
  onColumnsChange: (layout: import("../table-layout").default<unknown>) => void;
39
40
  onScrollableChange: (layout: import("../table-layout").default<unknown>) => void;
40
41
  columnRows: import("vue").ComputedRef<import("../table-column/defaults").TableColumnCtx<unknown>[]>;
41
42
  getHeaderRowClass: (rowIndex: number) => string;
42
43
  getHeaderRowStyle: (rowIndex: number) => any;
43
44
  getHeaderCellClass: (rowIndex: number, columnIndex: number, row: unknown, column: import("../table-column/defaults").TableColumnCtx<unknown>) => string;
44
- getHeaderCellStyle: (rowIndex: number, columnIndex: number, row: unknown, column: import("../table-column/defaults").TableColumnCtx<unknown>) => any;
45
+ getHeaderCellStyle: (rowIndex: number, columnIndex: number, row: unknown, column: import("../table-column/defaults").TableColumnCtx<unknown>, hasGutter: boolean) => any;
45
46
  handleHeaderClick: (event: Event, column: import("../table-column/defaults").TableColumnCtx<unknown>) => void;
46
47
  handleHeaderContextMenu: (event: Event, column: import("../table-column/defaults").TableColumnCtx<unknown>) => void;
47
48
  handleMouseDown: (event: MouseEvent, column: import("../table-column/defaults").TableColumnCtx<unknown>) => void;
@@ -40,7 +40,10 @@ var TableHeader = defineComponent({
40
40
  const filterPanels = ref({});
41
41
  const { tableLayout, onColumnsChange, onScrollableChange } = useLayoutObserver(parent);
42
42
  const hasGutter = computed(() => {
43
- return !props.fixed && tableLayout.gutterWidth;
43
+ return !props.fixed && tableLayout.gutterWidth > 0 && tableLayout.bodyScrollHeight.value > tableLayout.bodyHeight.value;
44
+ });
45
+ const gutterWidth = computed(() => {
46
+ return tableLayout.gutterWidth;
44
47
  });
45
48
  onMounted(() => {
46
49
  nextTick(() => {
@@ -74,6 +77,7 @@ var TableHeader = defineComponent({
74
77
  columns: storeData.columns,
75
78
  filterPanels,
76
79
  hasGutter,
80
+ gutterWidth,
77
81
  onColumnsChange,
78
82
  onScrollableChange,
79
83
  columnRows,
@@ -93,67 +97,101 @@ var TableHeader = defineComponent({
93
97
  };
94
98
  },
95
99
  render() {
100
+ const {
101
+ columns,
102
+ isGroup,
103
+ hasGutter,
104
+ columnRows,
105
+ gutterWidth,
106
+ getHeaderCellStyle,
107
+ getHeaderCellClass,
108
+ getHeaderRowClass,
109
+ getHeaderRowStyle,
110
+ handleHeaderClick,
111
+ handleHeaderContextMenu,
112
+ handleMouseDown,
113
+ handleMouseMove,
114
+ handleSortClick,
115
+ handleMouseOut,
116
+ store,
117
+ $parent
118
+ } = this;
119
+ let rowSpan = 1;
96
120
  return h("table", {
97
121
  border: "0",
98
122
  cellpadding: "0",
99
123
  cellspacing: "0",
100
124
  class: "el-table__header"
101
125
  }, [
102
- hColgroup(this.columns, this.hasGutter),
126
+ hColgroup(columns, hasGutter),
103
127
  h("thead", {
104
- class: { "is-group": this.isGroup, "has-gutter": this.hasGutter }
105
- }, this.columnRows.map((subColumns, rowIndex) => h("tr", {
106
- class: this.getHeaderRowClass(rowIndex),
128
+ class: { "is-group": isGroup, "has-gutter": hasGutter }
129
+ }, columnRows.map((subColumns, rowIndex) => h("tr", {
130
+ class: getHeaderRowClass(rowIndex),
107
131
  key: rowIndex,
108
- style: this.getHeaderRowStyle(rowIndex)
109
- }, subColumns.map((column, cellIndex) => h("th", {
110
- class: this.getHeaderCellClass(rowIndex, cellIndex, subColumns, column),
111
- colspan: column.colSpan,
112
- key: `${column.id}-thead`,
113
- rowSpan: column.rowSpan,
114
- style: this.getHeaderCellStyle(rowIndex, cellIndex, subColumns, column),
115
- onClick: ($event) => this.handleHeaderClick($event, column),
116
- onContextmenu: ($event) => this.handleHeaderContextMenu($event, column),
117
- onMousedown: ($event) => this.handleMouseDown($event, column),
118
- onMousemove: ($event) => this.handleMouseMove($event, column),
119
- onMouseout: this.handleMouseOut
120
- }, [
121
- h("div", {
122
- class: [
123
- "cell",
124
- column.filteredValue && column.filteredValue.length > 0 ? "highlight" : "",
125
- column.labelClassName
126
- ]
132
+ style: getHeaderRowStyle(rowIndex)
133
+ }, subColumns.map((column, cellIndex) => {
134
+ if (column.rowSpan > rowSpan) {
135
+ rowSpan = column.rowSpan;
136
+ }
137
+ return h("th", {
138
+ class: getHeaderCellClass(rowIndex, cellIndex, subColumns, column),
139
+ colspan: column.colSpan,
140
+ key: `${column.id}-thead`,
141
+ rowSpan: column.rowSpan,
142
+ style: getHeaderCellStyle(rowIndex, cellIndex, subColumns, column, hasGutter),
143
+ onClick: ($event) => handleHeaderClick($event, column),
144
+ onContextmenu: ($event) => handleHeaderContextMenu($event, column),
145
+ onMousedown: ($event) => handleMouseDown($event, column),
146
+ onMousemove: ($event) => handleMouseMove($event, column),
147
+ onMouseout: handleMouseOut
127
148
  }, [
128
- column.renderHeader ? column.renderHeader({
129
- column,
130
- $index: cellIndex,
131
- store: this.store,
132
- _self: this.$parent
133
- }) : column.label,
134
- column.sortable && h("span", {
135
- onClick: ($event) => this.handleSortClick($event, column),
136
- class: "caret-wrapper"
149
+ h("div", {
150
+ class: [
151
+ "cell",
152
+ column.filteredValue && column.filteredValue.length > 0 ? "highlight" : "",
153
+ column.labelClassName
154
+ ]
137
155
  }, [
138
- h("i", {
139
- onClick: ($event) => this.handleSortClick($event, column, "ascending"),
140
- class: "sort-caret ascending"
141
- }),
142
- h("i", {
143
- onClick: ($event) => this.handleSortClick($event, column, "descending"),
144
- class: "sort-caret descending"
156
+ column.renderHeader ? column.renderHeader({
157
+ column,
158
+ $index: cellIndex,
159
+ store,
160
+ _self: $parent
161
+ }) : column.label,
162
+ column.sortable && h("span", {
163
+ onClick: ($event) => handleSortClick($event, column),
164
+ class: "caret-wrapper"
165
+ }, [
166
+ h("i", {
167
+ onClick: ($event) => handleSortClick($event, column, "ascending"),
168
+ class: "sort-caret ascending"
169
+ }),
170
+ h("i", {
171
+ onClick: ($event) => handleSortClick($event, column, "descending"),
172
+ class: "sort-caret descending"
173
+ })
174
+ ]),
175
+ column.filterable && h(script, {
176
+ store: $parent.store,
177
+ placement: column.filterPlacement || "bottom-start",
178
+ column,
179
+ upDataColumn: (key, value) => {
180
+ column[key] = value;
181
+ }
145
182
  })
146
- ]),
147
- column.filterable && h(script, {
148
- store: this.$parent.store,
149
- placement: column.filterPlacement || "bottom-start",
150
- column,
151
- upDataColumn: (key, value) => {
152
- column[key] = value;
153
- }
154
- })
155
- ])
156
- ])))))
183
+ ])
184
+ ]);
185
+ }).concat(hasGutter && rowIndex === 0 ? [
186
+ h("th", {
187
+ class: "el-table__fixed-right-patch el-table__cell",
188
+ key: `el-table--scrollbar`,
189
+ rowSpan,
190
+ style: {
191
+ width: `${gutterWidth}px`
192
+ }
193
+ }, [])
194
+ ] : []))))
157
195
  ]);
158
196
  }
159
197
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/table-header/index.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n computed,\n onMounted,\n nextTick,\n ref,\n h,\n} from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport FilterPanel from '../filter-panel.vue'\nimport useLayoutObserver from '../layout-observer'\nimport { hColgroup } from '../h-helper'\nimport useEvent from './event-helper'\nimport useStyle from './style.helper'\nimport useUtils from './utils-helper'\n\nimport type { ComponentInternalInstance, Ref, PropType } from 'vue'\nimport type { DefaultRow, Sort, Table } from '../table/defaults'\nimport type { Store } from '../store'\nexport interface TableHeader extends ComponentInternalInstance {\n state: {\n onColumnsChange\n onScrollableChange\n }\n filterPanels: Ref<unknown>\n}\nexport interface TableHeaderProps<T> {\n fixed: string\n store: Store<T>\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'ElTableHeader',\n components: {\n ElCheckbox,\n },\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableHeaderProps<DefaultRow>['store']>,\n },\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableHeaderProps<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props, { emit }) {\n const instance = getCurrentInstance() as TableHeader\n const parent = instance.parent as Table<unknown>\n const storeData = parent.store.states\n const filterPanels = ref({})\n const { tableLayout, onColumnsChange, onScrollableChange } =\n useLayoutObserver(parent)\n const hasGutter = computed(() => {\n return !props.fixed && tableLayout.gutterWidth\n })\n onMounted(() => {\n nextTick(() => {\n const { prop, order } = props.defaultSort\n const init = true\n parent.store.commit('sort', { prop, order, init })\n })\n })\n const {\n handleHeaderClick,\n handleHeaderContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleMouseOut,\n handleSortClick,\n handleFilterClick,\n } = useEvent(props as TableHeaderProps<unknown>, emit)\n const {\n getHeaderRowStyle,\n getHeaderRowClass,\n getHeaderCellStyle,\n getHeaderCellClass,\n } = useStyle(props as TableHeaderProps<unknown>)\n const { isGroup, toggleAllSelection, columnRows } = useUtils(\n props as TableHeaderProps<unknown>\n )\n\n instance.state = {\n onColumnsChange,\n onScrollableChange,\n }\n // eslint-disable-next-line\n instance.filterPanels = filterPanels\n\n return {\n columns: storeData.columns,\n filterPanels,\n hasGutter,\n onColumnsChange,\n onScrollableChange,\n columnRows,\n getHeaderRowClass,\n getHeaderRowStyle,\n getHeaderCellClass,\n getHeaderCellStyle,\n handleHeaderClick,\n handleHeaderContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleMouseOut,\n handleSortClick,\n handleFilterClick,\n isGroup,\n toggleAllSelection,\n }\n },\n render() {\n return h(\n 'table',\n {\n border: '0',\n cellpadding: '0',\n cellspacing: '0',\n class: 'el-table__header',\n },\n [\n hColgroup(this.columns, this.hasGutter),\n h(\n 'thead',\n {\n class: { 'is-group': this.isGroup, 'has-gutter': this.hasGutter },\n },\n this.columnRows.map((subColumns, rowIndex) =>\n h(\n 'tr',\n {\n class: this.getHeaderRowClass(rowIndex),\n key: rowIndex,\n style: this.getHeaderRowStyle(rowIndex),\n },\n subColumns.map((column, cellIndex) =>\n h(\n 'th',\n {\n class: this.getHeaderCellClass(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n colspan: column.colSpan,\n key: `${column.id}-thead`,\n rowSpan: column.rowSpan,\n style: this.getHeaderCellStyle(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n onClick: ($event) => this.handleHeaderClick($event, column),\n onContextmenu: ($event) =>\n this.handleHeaderContextMenu($event, column),\n onMousedown: ($event) =>\n this.handleMouseDown($event, column),\n onMousemove: ($event) =>\n this.handleMouseMove($event, column),\n onMouseout: this.handleMouseOut,\n },\n [\n h(\n 'div',\n {\n class: [\n 'cell',\n column.filteredValue &&\n column.filteredValue.length > 0\n ? 'highlight'\n : '',\n column.labelClassName,\n ],\n },\n [\n column.renderHeader\n ? column.renderHeader({\n column,\n $index: cellIndex,\n store: this.store,\n _self: this.$parent,\n })\n : column.label,\n column.sortable &&\n h(\n 'span',\n {\n onClick: ($event) =>\n this.handleSortClick($event, column),\n class: 'caret-wrapper',\n },\n [\n h('i', {\n onClick: ($event) =>\n this.handleSortClick(\n $event,\n column,\n 'ascending'\n ),\n class: 'sort-caret ascending',\n }),\n h('i', {\n onClick: ($event) =>\n this.handleSortClick(\n $event,\n column,\n 'descending'\n ),\n class: 'sort-caret descending',\n }),\n ]\n ),\n column.filterable &&\n h(FilterPanel, {\n store: this.$parent.store,\n placement: column.filterPlacement || 'bottom-start',\n column,\n upDataColumn: (key, value) => {\n column[key] = value\n },\n }),\n ]\n ),\n ]\n )\n )\n )\n )\n ),\n ]\n )\n },\n})\n"],"names":["FilterPanel"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/table-header/index.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n computed,\n onMounted,\n nextTick,\n ref,\n h,\n} from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport FilterPanel from '../filter-panel.vue'\nimport useLayoutObserver from '../layout-observer'\nimport { hColgroup } from '../h-helper'\nimport useEvent from './event-helper'\nimport useStyle from './style.helper'\nimport useUtils from './utils-helper'\n\nimport type { ComponentInternalInstance, Ref, PropType } from 'vue'\nimport type { DefaultRow, Sort, Table } from '../table/defaults'\nimport type { Store } from '../store'\nexport interface TableHeader extends ComponentInternalInstance {\n state: {\n onColumnsChange\n onScrollableChange\n }\n filterPanels: Ref<unknown>\n}\nexport interface TableHeaderProps<T> {\n fixed: string\n store: Store<T>\n border: boolean\n defaultSort: Sort\n}\n\nexport default defineComponent({\n name: 'ElTableHeader',\n components: {\n ElCheckbox,\n },\n props: {\n fixed: {\n type: String,\n default: '',\n },\n store: {\n required: true,\n type: Object as PropType<TableHeaderProps<DefaultRow>['store']>,\n },\n border: Boolean,\n defaultSort: {\n type: Object as PropType<TableHeaderProps<DefaultRow>['defaultSort']>,\n default: () => {\n return {\n prop: '',\n order: '',\n }\n },\n },\n },\n setup(props, { emit }) {\n const instance = getCurrentInstance() as TableHeader\n const parent = instance.parent as Table<unknown>\n const storeData = parent.store.states\n const filterPanels = ref({})\n const { tableLayout, onColumnsChange, onScrollableChange } =\n useLayoutObserver(parent)\n const hasGutter = computed(() => {\n return (\n !props.fixed &&\n tableLayout.gutterWidth > 0 &&\n tableLayout.bodyScrollHeight.value > tableLayout.bodyHeight.value\n )\n })\n const gutterWidth = computed(() => {\n return tableLayout.gutterWidth\n })\n onMounted(() => {\n nextTick(() => {\n const { prop, order } = props.defaultSort\n const init = true\n parent.store.commit('sort', { prop, order, init })\n })\n })\n const {\n handleHeaderClick,\n handleHeaderContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleMouseOut,\n handleSortClick,\n handleFilterClick,\n } = useEvent(props as TableHeaderProps<unknown>, emit)\n const {\n getHeaderRowStyle,\n getHeaderRowClass,\n getHeaderCellStyle,\n getHeaderCellClass,\n } = useStyle(props as TableHeaderProps<unknown>)\n const { isGroup, toggleAllSelection, columnRows } = useUtils(\n props as TableHeaderProps<unknown>\n )\n\n instance.state = {\n onColumnsChange,\n onScrollableChange,\n }\n // eslint-disable-next-line\n instance.filterPanels = filterPanels\n\n return {\n columns: storeData.columns,\n filterPanels,\n hasGutter,\n gutterWidth,\n onColumnsChange,\n onScrollableChange,\n columnRows,\n getHeaderRowClass,\n getHeaderRowStyle,\n getHeaderCellClass,\n getHeaderCellStyle,\n handleHeaderClick,\n handleHeaderContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleMouseOut,\n handleSortClick,\n handleFilterClick,\n isGroup,\n toggleAllSelection,\n }\n },\n render() {\n const {\n columns,\n isGroup,\n hasGutter,\n columnRows,\n gutterWidth,\n getHeaderCellStyle,\n getHeaderCellClass,\n getHeaderRowClass,\n getHeaderRowStyle,\n handleHeaderClick,\n handleHeaderContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleSortClick,\n handleMouseOut,\n store,\n $parent,\n } = this\n let rowSpan = 1\n return h(\n 'table',\n {\n border: '0',\n cellpadding: '0',\n cellspacing: '0',\n class: 'el-table__header',\n },\n [\n hColgroup(columns, hasGutter),\n h(\n 'thead',\n {\n class: { 'is-group': isGroup, 'has-gutter': hasGutter },\n },\n columnRows.map((subColumns, rowIndex) =>\n h(\n 'tr',\n {\n class: getHeaderRowClass(rowIndex),\n key: rowIndex,\n style: getHeaderRowStyle(rowIndex),\n },\n subColumns\n .map((column, cellIndex) => {\n if (column.rowSpan > rowSpan) {\n rowSpan = column.rowSpan\n }\n return h(\n 'th',\n {\n class: getHeaderCellClass(\n rowIndex,\n cellIndex,\n subColumns,\n column\n ),\n colspan: column.colSpan,\n key: `${column.id}-thead`,\n rowSpan: column.rowSpan,\n style: getHeaderCellStyle(\n rowIndex,\n cellIndex,\n subColumns,\n column,\n hasGutter\n ),\n onClick: ($event) => handleHeaderClick($event, column),\n onContextmenu: ($event) =>\n handleHeaderContextMenu($event, column),\n onMousedown: ($event) => handleMouseDown($event, column),\n onMousemove: ($event) => handleMouseMove($event, column),\n onMouseout: handleMouseOut,\n },\n [\n h(\n 'div',\n {\n class: [\n 'cell',\n column.filteredValue &&\n column.filteredValue.length > 0\n ? 'highlight'\n : '',\n column.labelClassName,\n ],\n },\n [\n column.renderHeader\n ? column.renderHeader({\n column,\n $index: cellIndex,\n store,\n _self: $parent,\n })\n : column.label,\n column.sortable &&\n h(\n 'span',\n {\n onClick: ($event) =>\n handleSortClick($event, column),\n class: 'caret-wrapper',\n },\n [\n h('i', {\n onClick: ($event) =>\n handleSortClick(\n $event,\n column,\n 'ascending'\n ),\n class: 'sort-caret ascending',\n }),\n h('i', {\n onClick: ($event) =>\n handleSortClick(\n $event,\n column,\n 'descending'\n ),\n class: 'sort-caret descending',\n }),\n ]\n ),\n column.filterable &&\n h(FilterPanel, {\n store: $parent.store,\n placement:\n column.filterPlacement || 'bottom-start',\n column,\n upDataColumn: (key, value) => {\n column[key] = value\n },\n }),\n ]\n ),\n ]\n )\n })\n .concat(\n hasGutter && rowIndex === 0\n ? [\n h(\n 'th',\n {\n class: 'el-table__fixed-right-patch el-table__cell',\n key: `el-table--scrollbar`,\n rowSpan,\n style: {\n width: `${gutterWidth}px`,\n },\n },\n []\n ),\n ]\n : []\n )\n )\n )\n ),\n ]\n )\n },\n})\n"],"names":["FilterPanel"],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { TableHeaderProps } from '.';
3
3
  declare function useStyle<T>(props: TableHeaderProps<T>): {
4
4
  getHeaderRowStyle: (rowIndex: number) => any;
5
5
  getHeaderRowClass: (rowIndex: number) => string;
6
- getHeaderCellStyle: (rowIndex: number, columnIndex: number, row: T, column: TableColumnCtx<T>) => any;
6
+ getHeaderCellStyle: (rowIndex: number, columnIndex: number, row: T, column: TableColumnCtx<T>, hasGutter: boolean) => any;
7
7
  getHeaderCellClass: (rowIndex: number, columnIndex: number, row: T, column: TableColumnCtx<T>) => string;
8
8
  };
9
9
  export default useStyle;
@@ -1,23 +1,9 @@
1
1
  import { getCurrentInstance } from 'vue';
2
+ import { getFixedColumnOffset, ensureRightFixedStyle, ensurePosition, getFixedColumnsClass } from '../util.mjs';
2
3
 
3
4
  function useStyle(props) {
4
5
  const instance = getCurrentInstance();
5
6
  const parent = instance.parent;
6
- const storeData = parent.store.states;
7
- const isCellHidden = (index, columns) => {
8
- let start = 0;
9
- for (let i = 0; i < index; i++) {
10
- start += columns[i].colSpan;
11
- }
12
- const after = start + columns[index].colSpan - 1;
13
- if (props.fixed === "left") {
14
- return after >= storeData.fixedLeafColumnsLength.value;
15
- } else if (props.fixed === "right") {
16
- return start < storeData.columns.value.length - storeData.rightFixedLeafColumnsLength.value;
17
- } else {
18
- return after < storeData.fixedLeafColumnsLength.value || start >= storeData.columns.value.length - storeData.rightFixedLeafColumnsLength.value;
19
- }
20
- };
21
7
  const getHeaderRowStyle = (rowIndex) => {
22
8
  const headerRowStyle = parent.props.headerRowStyle;
23
9
  if (typeof headerRowStyle === "function") {
@@ -35,29 +21,33 @@ function useStyle(props) {
35
21
  }
36
22
  return classes.join(" ");
37
23
  };
38
- const getHeaderCellStyle = (rowIndex, columnIndex, row, column) => {
39
- const headerCellStyle = parent.props.headerCellStyle;
40
- if (typeof headerCellStyle === "function") {
41
- return headerCellStyle.call(null, {
24
+ const getHeaderCellStyle = (rowIndex, columnIndex, row, column, hasGutter) => {
25
+ var _a;
26
+ let headerCellStyles = (_a = parent.props.headerCellStyle) != null ? _a : {};
27
+ if (typeof headerCellStyles === "function") {
28
+ headerCellStyles = headerCellStyles.call(null, {
42
29
  rowIndex,
43
30
  columnIndex,
44
31
  row,
45
32
  column
46
33
  });
47
34
  }
48
- return headerCellStyle;
35
+ const fixedStyle = getFixedColumnOffset(columnIndex, column.fixed, props.store, row);
36
+ ensureRightFixedStyle(fixedStyle, hasGutter);
37
+ ensurePosition(fixedStyle, "left");
38
+ ensurePosition(fixedStyle, "right");
39
+ return Object.assign({}, headerCellStyles, fixedStyle);
49
40
  };
50
41
  const getHeaderCellClass = (rowIndex, columnIndex, row, column) => {
42
+ const fixedClasses = column.isSubColumn ? [] : getFixedColumnsClass(columnIndex, column.fixed, props.store, row);
51
43
  const classes = [
52
44
  column.id,
53
45
  column.order,
54
46
  column.headerAlign,
55
47
  column.className,
56
- column.labelClassName
48
+ column.labelClassName,
49
+ ...fixedClasses
57
50
  ];
58
- if (rowIndex === 0 && isCellHidden(columnIndex, row)) {
59
- classes.push("is-hidden");
60
- }
61
51
  if (!column.children) {
62
52
  classes.push("is-leaf");
63
53
  }