@builttocreate/engine-utils 1.0.3 → 1.1.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.
- package/dist/tableHelper.js +96 -9
- package/package.json +1 -1
package/dist/tableHelper.js
CHANGED
|
@@ -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
|
-
|
|
72
|
+
rowLookup[row._id] = row;
|
|
72
73
|
});
|
|
73
|
-
var
|
|
74
|
+
var sortedRows = [];
|
|
74
75
|
rowOrder.forEach(function (rowId) {
|
|
75
|
-
if (rowLookup[rowId])
|
|
76
|
+
if (rowLookup[rowId]) sortedRows.push(rowLookup[rowId]);
|
|
76
77
|
});
|
|
77
|
-
return
|
|
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.
|
|
332
|
+
exports.generateTableLookupForRows = generateTableLookupForRows;
|
|
299
333
|
|
|
300
334
|
var generateTableLookup = function generateTableLookup(rows, columns) {
|
|
301
335
|
var tableLookup = {};
|
|
@@ -544,6 +578,7 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
544
578
|
var rowOrder = getTableFieldRowOrder(field._id, fieldSettings, tableRows);
|
|
545
579
|
var sortedTableRows = sortRows(tableRows, rowOrder);
|
|
546
580
|
sortedTableRows.forEach(function (row, rowIndex) {
|
|
581
|
+
var firstRowIndex = rowIndex === 0;
|
|
547
582
|
var lastRowIndex = rowIndex === sortedTableRows.length - 1;
|
|
548
583
|
/**
|
|
549
584
|
* Step 1: Add InputGroup Row Header
|
|
@@ -556,6 +591,8 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
556
591
|
type: _Table.inputGroupFieldTypes.inputGroupRowHeader,
|
|
557
592
|
rowIndex: rowIndex,
|
|
558
593
|
rowId: row._id,
|
|
594
|
+
firstRowIndex: firstRowIndex,
|
|
595
|
+
lastRowIndex: lastRowIndex,
|
|
559
596
|
firstIndex: rowIndex === 0,
|
|
560
597
|
lastIndex: false
|
|
561
598
|
});
|
|
@@ -578,6 +615,8 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
578
615
|
columnIndex: columnIndex,
|
|
579
616
|
value: value,
|
|
580
617
|
displayValue: displayValue,
|
|
618
|
+
firstRowIndex: firstRowIndex,
|
|
619
|
+
lastRowIndex: lastRowIndex,
|
|
581
620
|
firstIndex: false,
|
|
582
621
|
lastIndex: lastRowIndex && lastColumnIndex
|
|
583
622
|
});
|
|
@@ -707,11 +746,57 @@ var handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, cal
|
|
|
707
746
|
targetRowIndex: targetRowIndex
|
|
708
747
|
});
|
|
709
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
|
+
|
|
710
795
|
|
|
711
796
|
exports.handleMoveTableRowDown = handleMoveTableRowDown;
|
|
712
797
|
var _default = {
|
|
713
798
|
generateTableLookup: generateTableLookup,
|
|
714
|
-
|
|
799
|
+
generateTableLookupForRows: generateTableLookupForRows,
|
|
715
800
|
generateInputGroupFields: generateInputGroupFields,
|
|
716
801
|
getColumnOperand: getColumnOperand,
|
|
717
802
|
getCellOperand: getCellOperand,
|
|
@@ -732,6 +817,8 @@ var _default = {
|
|
|
732
817
|
handleCreateTableRow: handleCreateTableRow,
|
|
733
818
|
handleDuplicateTableRow: handleDuplicateTableRow,
|
|
734
819
|
handleMoveTableRowUp: handleMoveTableRowUp,
|
|
735
|
-
handleMoveTableRowDown: handleMoveTableRowDown
|
|
820
|
+
handleMoveTableRowDown: handleMoveTableRowDown,
|
|
821
|
+
FieldTableColumnTypes: _FieldTableColumnTypes["default"],
|
|
822
|
+
FieldTableCustomColumnIds: _FieldTableCustomColumnIds["default"]
|
|
736
823
|
};
|
|
737
824
|
exports["default"] = _default;
|