@builttocreate/engine-utils 1.5.2 → 1.6.0

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.
@@ -7,7 +7,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports["default"] = exports.handleMoveTableRowDown = exports.handleMoveTableRowUp = exports.handleDuplicateTableRow = exports.handleCreateTableRow = exports.handleInsertTableRow = exports.handleTableCellChange = exports.generateInputGroupFields = exports.spreadOperandRange = exports.validFormulaString = exports.hasOperandRange = exports.hasCircularOperandReference = exports.resolveOperandValue = exports.getFormulaResult = exports.generateTableLookup = exports.generateTableLookupForRows = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.getCellOperand = exports.getTemplateColumnOperandLookup = exports.getIndexesFromTableCellOperand = exports.getColumnOperand = exports.getColumns = exports.getTableFieldRowOrder = exports.getRowMap = exports.sortRows = exports.getRows = exports.getDefaultRow = exports.getTableFieldLookupKey = void 0;
10
+ exports["default"] = exports.handleMoveTableRowDown = exports.handleMoveTableRowUp = exports.handleDuplicateTableRow = exports.handleCreateTableRow = exports.handleInsertTableRow = exports.handleTableCellChange = exports.generateInputGroupFields = exports.spreadOperandRange = exports.validFormulaString = exports.hasOperandRange = exports.hasCircularOperandReference = exports.resolveOperandValue = exports.getFormulaResult = exports.generateTableLookup = exports.generateTableLookupForRows = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.getCellOperand = exports.getTemplateColumnOperandLookup = exports.getIndexesFromTableCellOperand = exports.getColumnOperand = exports.getColumns = exports.getTableFieldRowOrder = exports.getRowMap = exports.getFilteredRowOrder = exports.sortRows = exports.getRows = exports.getDefaultRow = exports.getTableFieldLookupKey = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -77,6 +77,38 @@ var sortRows = function sortRows(rows, rowOrder) {
77
77
  });
78
78
  return sortedRows;
79
79
  };
80
+ /**
81
+ * Filter table rows by column values
82
+ *
83
+ * @param {Array} rows
84
+ * @param {Object} filters //{ colId: value, colId: value, ....}
85
+ */
86
+
87
+
88
+ exports.sortRows = sortRows;
89
+
90
+ var getFilteredRowOrder = function getFilteredRowOrder(rowOrder, rows, filters) {
91
+ var filteredColumnIds = filters ? Object.keys(filters) : [];
92
+
93
+ if (filteredColumnIds.length > 0) {
94
+ var matchedRows = {};
95
+ rows.forEach(function (row) {
96
+ if (row.deleted) return;
97
+ var rowMatched = true;
98
+ filteredColumnIds.forEach(function (columnId) {
99
+ var filter = filters[columnId] ? filters[columnId].toLowerCase() : '';
100
+ var value = row.cells && row.cells[columnId] ? row.cells[columnId].toLowerCase() : '';
101
+ if (filter && (!value || value.indexOf(filter) === -1)) rowMatched = false;
102
+ });
103
+ if (rowMatched) matchedRows[row._id] = true;
104
+ });
105
+ return rowOrder.filter(function (rowId) {
106
+ return matchedRows[rowId];
107
+ });
108
+ } else {
109
+ return rowOrder;
110
+ }
111
+ };
80
112
  /**
81
113
  * Create a table row map for simple value lookup
82
114
  *
@@ -92,7 +124,7 @@ var sortRows = function sortRows(rows, rowOrder) {
92
124
  */
93
125
 
94
126
 
95
- exports.sortRows = sortRows;
127
+ exports.getFilteredRowOrder = getFilteredRowOrder;
96
128
 
97
129
  var getRowMap = function getRowMap() {
98
130
  var rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
@@ -805,6 +837,7 @@ var _default = {
805
837
  getCellOperand: getCellOperand,
806
838
  getIndexesFromTableCellOperand: getIndexesFromTableCellOperand,
807
839
  getRows: getRows,
840
+ getFilteredRowOrder: getFilteredRowOrder,
808
841
  getDefaultRow: getDefaultRow,
809
842
  getRowMap: getRowMap,
810
843
  getColumns: getColumns,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [