blob: cee7d0c9739e2f25ebe25b0a84daea47d4867085 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
const BVTableSelectableMixin = {
data() {
return {
tableHeaderCheckboxModel: false,
tableHeaderCheckboxIndeterminate: false,
selectedRows: [],
};
},
methods: {
clearSelectedRows(tableRef) {
if (tableRef) tableRef.clearSelected();
},
toggleSelectRow(tableRef, rowIndex) {
if (tableRef && rowIndex !== undefined) {
tableRef.isRowSelected(rowIndex)
? tableRef.unselectRow(rowIndex)
: tableRef.selectRow(rowIndex);
}
},
onRowSelected(selectedRows, totalRowsCount) {
if (selectedRows && totalRowsCount !== undefined) {
this.selectedRows = selectedRows;
if (selectedRows.length === 0) {
this.tableHeaderCheckboxIndeterminate = false;
this.tableHeaderCheckboxModel = false;
} else if (selectedRows.length === totalRowsCount) {
this.tableHeaderCheckboxIndeterminate = false;
this.tableHeaderCheckboxModel = true;
} else {
this.tableHeaderCheckboxIndeterminate = true;
this.tableHeaderCheckboxModel = false;
}
}
},
onChangeHeaderCheckbox(tableRef) {
if (tableRef) {
if (this.tableHeaderCheckboxModel) tableRef.clearSelected();
else tableRef.selectAllRows();
}
},
},
};
export default BVTableSelectableMixin;
|