summaryrefslogtreecommitdiff
path: root/src/components/_sila/Mixins/BVTableSelectableMixin.js
diff options
context:
space:
mode:
authorAndrey V.Kosteltsev <AKosteltsev@IBS.RU>2022-07-04 23:59:32 +0300
committerAndrey V.Kosteltsev <AKosteltsev@IBS.RU>2022-07-04 23:59:32 +0300
commit8047ae3d83ba0718fb7a42907036157e5c680b85 (patch)
tree600b017fe3a75ab4d1577eb9367afe8548401f9f /src/components/_sila/Mixins/BVTableSelectableMixin.js
parent3f4094d08b873e17464a51c817ea7d41177f848d (diff)
downloadwebui-vue-8047ae3d83ba0718fb7a42907036157e5c680b85.tar.xz
IBS: _sila UI theme
Diffstat (limited to 'src/components/_sila/Mixins/BVTableSelectableMixin.js')
-rw-r--r--src/components/_sila/Mixins/BVTableSelectableMixin.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/components/_sila/Mixins/BVTableSelectableMixin.js b/src/components/_sila/Mixins/BVTableSelectableMixin.js
new file mode 100644
index 00000000..b4f0b953
--- /dev/null
+++ b/src/components/_sila/Mixins/BVTableSelectableMixin.js
@@ -0,0 +1,41 @@
+export const selectedRows = [];
+export const tableHeaderCheckboxModel = false;
+export const tableHeaderCheckboxIndeterminate = false;
+
+const BVTableSelectableMixin = {
+ 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 = true;
+ }
+ }
+ },
+ onChangeHeaderCheckbox(tableRef) {
+ if (tableRef) {
+ if (this.tableHeaderCheckboxModel) tableRef.selectAllRows();
+ else tableRef.clearSelected();
+ }
+ },
+ },
+};
+
+export default BVTableSelectableMixin;