@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.
- package/dist/index.css +1 -1
- package/dist/index.full.js +392 -408
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +8 -8
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +392 -408
- package/es/components/index.mjs +1 -1
- package/es/components/skeleton/index.mjs +2 -2
- package/es/components/skeleton/src/skeleton.mjs +5 -24
- package/es/components/skeleton/src/skeleton.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/skeleton/src/skeleton2.mjs +24 -5
- package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
- package/es/components/table/index.d.ts +9 -0
- package/es/components/table/src/table/style-helper.d.ts +7 -0
- package/es/components/table/src/table/style-helper.mjs +20 -17
- package/es/components/table/src/table/style-helper.mjs.map +1 -1
- package/es/components/table/src/table-body/index.mjs +5 -3
- package/es/components/table/src/table-body/index.mjs.map +1 -1
- package/es/components/table/src/table-body/styles-helper.d.ts +0 -1
- package/es/components/table/src/table-body/styles-helper.mjs +10 -17
- package/es/components/table/src/table-body/styles-helper.mjs.map +1 -1
- package/es/components/table/src/table-column/defaults.d.ts +1 -0
- package/es/components/table/src/table-column/defaults.mjs.map +1 -1
- package/es/components/table/src/table-column/index.mjs +1 -0
- package/es/components/table/src/table-column/index.mjs.map +1 -1
- package/es/components/table/src/table-footer/index.d.ts +4 -2
- package/es/components/table/src/table-footer/index.mjs +33 -18
- package/es/components/table/src/table-footer/index.mjs.map +1 -1
- package/es/components/table/src/table-footer/style-helper.d.ts +4 -2
- package/es/components/table/src/table-footer/style-helper.mjs +28 -31
- package/es/components/table/src/table-footer/style-helper.mjs.map +1 -1
- package/es/components/table/src/table-header/index.d.ts +3 -2
- package/es/components/table/src/table-header/index.mjs +89 -51
- package/es/components/table/src/table-header/index.mjs.map +1 -1
- package/es/components/table/src/table-header/style.helper.d.ts +1 -1
- package/es/components/table/src/table-header/style.helper.mjs +14 -24
- package/es/components/table/src/table-header/style.helper.mjs.map +1 -1
- package/es/components/table/src/table-header/utils-helper.mjs +1 -0
- package/es/components/table/src/table-header/utils-helper.mjs.map +1 -1
- package/es/components/table/src/table-layout.d.ts +1 -0
- package/es/components/table/src/table-layout.mjs +7 -1
- package/es/components/table/src/table-layout.mjs.map +1 -1
- package/es/components/table/src/table.vue.d.ts +9 -0
- package/es/components/table/src/table.vue_vue_type_script_lang.mjs +12 -2
- package/es/components/table/src/table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs +62 -213
- package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs.map +1 -1
- package/es/components/table/src/util.d.ts +14 -0
- package/es/components/table/src/util.mjs +90 -1
- package/es/components/table/src/util.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/index.js +1 -1
- package/lib/components/skeleton/index.js +2 -2
- package/lib/components/skeleton/src/skeleton.js +5 -23
- package/lib/components/skeleton/src/skeleton.js.map +1 -1
- package/lib/components/skeleton/src/skeleton.vue_vue_type_script_lang.js +1 -1
- package/lib/components/skeleton/src/skeleton2.js +23 -5
- package/lib/components/skeleton/src/skeleton2.js.map +1 -1
- package/lib/components/table/index.d.ts +9 -0
- package/lib/components/table/src/table/style-helper.d.ts +7 -0
- package/lib/components/table/src/table/style-helper.js +20 -21
- package/lib/components/table/src/table/style-helper.js.map +1 -1
- package/lib/components/table/src/table-body/index.js +5 -3
- package/lib/components/table/src/table-body/index.js.map +1 -1
- package/lib/components/table/src/table-body/styles-helper.d.ts +0 -1
- package/lib/components/table/src/table-body/styles-helper.js +10 -17
- package/lib/components/table/src/table-body/styles-helper.js.map +1 -1
- package/lib/components/table/src/table-column/defaults.d.ts +1 -0
- package/lib/components/table/src/table-column/defaults.js.map +1 -1
- package/lib/components/table/src/table-column/index.js +1 -0
- package/lib/components/table/src/table-column/index.js.map +1 -1
- package/lib/components/table/src/table-footer/index.d.ts +4 -2
- package/lib/components/table/src/table-footer/index.js +32 -17
- package/lib/components/table/src/table-footer/index.js.map +1 -1
- package/lib/components/table/src/table-footer/style-helper.d.ts +4 -2
- package/lib/components/table/src/table-footer/style-helper.js +28 -31
- package/lib/components/table/src/table-footer/style-helper.js.map +1 -1
- package/lib/components/table/src/table-header/index.d.ts +3 -2
- package/lib/components/table/src/table-header/index.js +89 -51
- package/lib/components/table/src/table-header/index.js.map +1 -1
- package/lib/components/table/src/table-header/style.helper.d.ts +1 -1
- package/lib/components/table/src/table-header/style.helper.js +14 -24
- package/lib/components/table/src/table-header/style.helper.js.map +1 -1
- package/lib/components/table/src/table-header/utils-helper.js +1 -0
- package/lib/components/table/src/table-header/utils-helper.js.map +1 -1
- package/lib/components/table/src/table-layout.d.ts +1 -0
- package/lib/components/table/src/table-layout.js +7 -1
- package/lib/components/table/src/table-layout.js.map +1 -1
- package/lib/components/table/src/table.vue.d.ts +9 -0
- package/lib/components/table/src/table.vue_vue_type_script_lang.js +12 -2
- package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js +62 -213
- package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js.map +1 -1
- package/lib/components/table/src/util.d.ts +14 -0
- package/lib/components/table/src/util.js +95 -0
- package/lib/components/table/src/util.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/theme-chalk/el-table.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/table.scss +176 -124
- package/web-types.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, h } from 'vue';
|
|
2
|
-
import { hColgroup
|
|
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,
|
|
30
|
+
const { hasGutter, getCellClasses, getCellStyles, columns, gutterWidth } = useStyle(props);
|
|
31
31
|
return {
|
|
32
|
-
|
|
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 (
|
|
40
|
-
sums =
|
|
41
|
-
columns
|
|
42
|
-
data
|
|
51
|
+
if (summaryMethod) {
|
|
52
|
+
sums = summaryMethod({
|
|
53
|
+
columns,
|
|
54
|
+
data
|
|
43
55
|
});
|
|
44
56
|
} else {
|
|
45
|
-
|
|
57
|
+
columns.forEach((column, index) => {
|
|
46
58
|
if (index === 0) {
|
|
47
|
-
sums[index] =
|
|
59
|
+
sums[index] = sumText;
|
|
48
60
|
return;
|
|
49
61
|
}
|
|
50
|
-
const values =
|
|
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(
|
|
93
|
+
hColgroup(columns, hasGutter),
|
|
82
94
|
h("tbody", {
|
|
83
|
-
class: [{ "has-gutter":
|
|
95
|
+
class: [{ "has-gutter": hasGutter }]
|
|
84
96
|
}, [
|
|
85
97
|
h("tr", {}, [
|
|
86
|
-
...
|
|
98
|
+
...columns.map((column, cellIndex) => h("td", {
|
|
87
99
|
key: cellIndex,
|
|
88
100
|
colspan: column.colSpan,
|
|
89
101
|
rowspan: column.rowSpan,
|
|
90
|
-
class:
|
|
91
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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 &&
|
|
10
|
+
return !props.fixed && table.layout.gutterWidth > 0 && table.layout.height.value && table.layout.bodyScrollHeight.value > table.layout.bodyHeight.value;
|
|
18
11
|
});
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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'\
|
|
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<
|
|
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
|
|
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(
|
|
126
|
+
hColgroup(columns, hasGutter),
|
|
103
127
|
h("thead", {
|
|
104
|
-
class: { "is-group":
|
|
105
|
-
},
|
|
106
|
-
class:
|
|
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:
|
|
109
|
-
}, subColumns.map((column, cellIndex) =>
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|
}
|