diff options
-rw-r--r-- | src/components/_sila/Mixins/TableFilterMixin.js | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/components/_sila/Mixins/TableFilterMixin.js b/src/components/_sila/Mixins/TableFilterMixin.js index 7a2cc540..295ca7e5 100644 --- a/src/components/_sila/Mixins/TableFilterMixin.js +++ b/src/components/_sila/Mixins/TableFilterMixin.js @@ -1,5 +1,3 @@ -import { includes } from 'lodash'; - const TableFilterMixin = { methods: { getFilteredTableData(tableData = [], filters = []) { @@ -9,19 +7,19 @@ const TableFilterMixin = { // If no filters are active, then return all table data if (filterItems.length === 0) return tableData; - // Check if row property value is included in list of - // active filters - return tableData.filter((row) => { - let returnRow = false; - for (const { key, values } of filters) { - const rowProperty = row[key]; - if (rowProperty && includes(values, rowProperty)) { - returnRow = true; - break; - } - } - return returnRow; + // remove empty filters + filters = filters.filter((filter) => { + return filter.values && filter.values.length > 0; }); + + let result = tableData; + filters.forEach((filter) => { + result = result.filter((row) => + filter.values.includes(row[filter.key]) + ); + }); + + return result; }, getFilteredTableDataByDate( tableData = [], |