@builttocreate/engine-utils 1.0.4 → 1.1.1

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.
Files changed (2) hide show
  1. package/dist/tableHelper.js +93 -11
  2. package/package.json +1 -1
@@ -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.generateTableFieldLookups = exports.generateRowTableLookup = exports.getCellOperand = exports.getTemplateColumnOperandLookup = 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.getColumnOperand = exports.getColumns = exports.getTableFieldRowOrder = exports.getRowMap = exports.sortRows = exports.getRows = exports.getDefaultRow = exports.getTableFieldLookupKey = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -66,15 +66,16 @@ var getRows = function getRows(rows) {
66
66
  exports.getRows = getRows;
67
67
 
68
68
  var sortRows = function sortRows(rows, rowOrder) {
69
+ if (!rowOrder) return rows;
69
70
  var rowLookup = {};
70
71
  rows.forEach(function (row) {
71
- return rowLookup[row._id] = row;
72
+ rowLookup[row._id] = row;
72
73
  });
73
- var validRows = [];
74
+ var sortedRows = [];
74
75
  rowOrder.forEach(function (rowId) {
75
- if (rowLookup[rowId]) validRows.push(rowLookup[rowId]);
76
+ if (rowLookup[rowId]) sortedRows.push(rowLookup[rowId]);
76
77
  });
77
- return validRows;
78
+ return sortedRows;
78
79
  };
79
80
  /**
80
81
  * Create a table row map for simple value lookup
@@ -274,6 +275,40 @@ var generateTableFieldLookups = function generateTableFieldLookups(doc, template
274
275
  });
275
276
  return tableLookups;
276
277
  };
278
+ /**
279
+ * Organize the table lookup on a row by row basis
280
+ * @param {Array} rows
281
+ * @param {Array} columns
282
+ * @retuns {Object}
283
+ *
284
+ * Example return object:
285
+ * {
286
+ * 1: {
287
+ * A1: 12,
288
+ * B1: 1,
289
+ * },
290
+ * 2: {
291
+ * A2: 10,
292
+ * B2: 4,
293
+ * },
294
+ * ...
295
+ * }
296
+ *
297
+ */
298
+
299
+
300
+ exports.generateTableFieldLookups = generateTableFieldLookups;
301
+
302
+ var generateTableLookupForRows = function generateTableLookupForRows(rows, columns) {
303
+ var tableLookup = generateTableLookup(rows, columns);
304
+ var rowLookup = {};
305
+ Object.keys(tableLookup).forEach(function (key) {
306
+ var rowIndex = key.match(/[0-9]*/gi)[1];
307
+ if (!rowLookup[rowIndex]) rowLookup[rowIndex] = {};
308
+ rowLookup[rowIndex][key] = tableLookup[key];
309
+ });
310
+ return rowLookup;
311
+ };
277
312
  /**
278
313
  * Generate Lookup Operand Lookup Table for Table Data. Supports converting
279
314
  * formula cells to the calculated value.
@@ -291,11 +326,10 @@ var generateTableFieldLookups = function generateTableFieldLookups(doc, template
291
326
  * A2: 2,
292
327
  * B2: 4,
293
328
  * }
294
- *
295
329
  */
296
330
 
297
331
 
298
- exports.generateTableFieldLookups = generateTableFieldLookups;
332
+ exports.generateTableLookupForRows = generateTableLookupForRows;
299
333
 
300
334
  var generateTableLookup = function generateTableLookup(rows, columns) {
301
335
  var tableLookup = {};
@@ -337,8 +371,8 @@ var generateTableLookup = function generateTableLookup(rows, columns) {
337
371
  } else if (cellValue && formulaCell && containsOperands) {
338
372
  formulaCells.push(cellKey);
339
373
  tableLookup[cellKey] = cellValue;
340
- } else if (cellValue) {
341
- tableLookup[cellKey] = cellValue;
374
+ } else {
375
+ tableLookup[cellKey] = cellValue || '';
342
376
  }
343
377
  });
344
378
  });
@@ -712,11 +746,57 @@ var handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, cal
712
746
  targetRowIndex: targetRowIndex
713
747
  });
714
748
  };
749
+ /**
750
+ * Get cell position lookup for table field data
751
+ *
752
+ * @param {Array} columns
753
+ * @param {Array} rows
754
+ * @param {Object} columnWidthLookup = { rowMenu: 20, rowNumber: 20, dropdown: 100, text: 100 }
755
+ * @return {Object}
756
+ *
757
+ */
758
+
759
+ /*const getTableFieldCellPositionLookup = (columns, rows, columnWidthLookup) => {
760
+
761
+ const columns = getColumns([...columns]);
762
+ const rows = getRows(rows);
763
+
764
+ const rowMenuColumnWidth = columnWidthLookup[FieldTableCustomColumnIds.rowMenu] || 0;
765
+ const rowNumberColumnWidth = columnWidthLookup[FieldTableCustomColumnIds.rowNumber] || 0;
766
+ const startingColumnWidth = rowMenuColumnWidth + rowNumberColumnWidth;
767
+
768
+ const cellLookup = {};
769
+
770
+ if (rows && rows.length > 0) {
771
+ rows.forEach((row, rowIndex) => {
772
+ columns.forEach((column, columnIndex) => {
773
+
774
+ const columnWidth = column.type === FieldTableColumnTypes.text ?
775
+ columnWidthLookup[FieldTableColumnTypes.text] : columnWidthLookup[FieldTableColumnTypes.dropdown];
776
+
777
+ cellLookup[`${rowIndex}-${columnIndex}`] = {
778
+ rowId: row._id,
779
+ rowIndex,
780
+ columnX: startingColumnWidth + (columnIndex * columnWidth),
781
+ columnId: column._id,
782
+ columnType: column.type
783
+ };
784
+
785
+ });
786
+
787
+ });
788
+
789
+ }
790
+
791
+ return cellLookup;
792
+
793
+ }*/
794
+
715
795
 
716
796
  exports.handleMoveTableRowDown = handleMoveTableRowDown;
717
797
  var _default = {
718
798
  generateTableLookup: generateTableLookup,
719
- generateRowTableLookup: generateRowTableLookup,
799
+ generateTableLookupForRows: generateTableLookupForRows,
720
800
  generateInputGroupFields: generateInputGroupFields,
721
801
  getColumnOperand: getColumnOperand,
722
802
  getCellOperand: getCellOperand,
@@ -737,6 +817,8 @@ var _default = {
737
817
  handleCreateTableRow: handleCreateTableRow,
738
818
  handleDuplicateTableRow: handleDuplicateTableRow,
739
819
  handleMoveTableRowUp: handleMoveTableRowUp,
740
- handleMoveTableRowDown: handleMoveTableRowDown
820
+ handleMoveTableRowDown: handleMoveTableRowDown,
821
+ FieldTableColumnTypes: _FieldTableColumnTypes["default"],
822
+ FieldTableCustomColumnIds: _FieldTableCustomColumnIds["default"]
741
823
  };
742
824
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "1.0.4",
3
+ "version": "1.1.1",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [