@builttocreate/engine-utils 1.1.0 → 1.2.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/constants/Table.js +56 -1
- package/dist/tableHelper.js +39 -52
- package/package.json +1 -1
package/dist/constants/Table.js
CHANGED
|
@@ -3,7 +3,62 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = exports.inputGroupFieldTypes = exports.viewTypes = exports.operandLetters = void 0;
|
|
6
|
+
exports["default"] = exports.inputGroupFieldTypes = exports.viewTypes = exports.operandLetters = exports.operandLetterIndexes = void 0;
|
|
7
|
+
var operandLetterIndexes = {
|
|
8
|
+
'A': 0,
|
|
9
|
+
'B': 1,
|
|
10
|
+
'C': 2,
|
|
11
|
+
'D': 3,
|
|
12
|
+
'E': 4,
|
|
13
|
+
'F': 5,
|
|
14
|
+
'G': 6,
|
|
15
|
+
'H': 7,
|
|
16
|
+
'I': 8,
|
|
17
|
+
'J': 9,
|
|
18
|
+
'K': 10,
|
|
19
|
+
'L': 11,
|
|
20
|
+
'M': 12,
|
|
21
|
+
'N': 13,
|
|
22
|
+
'O': 14,
|
|
23
|
+
'P': 15,
|
|
24
|
+
'Q': 16,
|
|
25
|
+
'R': 17,
|
|
26
|
+
'S': 18,
|
|
27
|
+
'T': 19,
|
|
28
|
+
'U': 20,
|
|
29
|
+
'V': 21,
|
|
30
|
+
'W': 22,
|
|
31
|
+
'X': 23,
|
|
32
|
+
'Y': 24,
|
|
33
|
+
'Z': 25,
|
|
34
|
+
'AA': 26,
|
|
35
|
+
'AB': 27,
|
|
36
|
+
'AC': 28,
|
|
37
|
+
'AD': 29,
|
|
38
|
+
'AE': 30,
|
|
39
|
+
'AF': 31,
|
|
40
|
+
'AG': 32,
|
|
41
|
+
'AH': 33,
|
|
42
|
+
'AI': 34,
|
|
43
|
+
'AJ': 35,
|
|
44
|
+
'AK': 36,
|
|
45
|
+
'AL': 37,
|
|
46
|
+
'AM': 38,
|
|
47
|
+
'AN': 39,
|
|
48
|
+
'AO': 40,
|
|
49
|
+
'AP': 41,
|
|
50
|
+
'AQ': 42,
|
|
51
|
+
'AR': 43,
|
|
52
|
+
'AS': 44,
|
|
53
|
+
'AT': 45,
|
|
54
|
+
'AU': 46,
|
|
55
|
+
'AV': 47,
|
|
56
|
+
'AW': 48,
|
|
57
|
+
'AX': 49,
|
|
58
|
+
'AY': 50,
|
|
59
|
+
'AZ': 51
|
|
60
|
+
};
|
|
61
|
+
exports.operandLetterIndexes = operandLetterIndexes;
|
|
7
62
|
var operandLetters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'];
|
|
8
63
|
exports.operandLetters = operandLetters;
|
|
9
64
|
var viewTypes = {
|
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.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;
|
|
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;
|
|
11
11
|
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
|
@@ -158,6 +158,36 @@ exports.getColumns = getColumns;
|
|
|
158
158
|
var getColumnOperand = function getColumnOperand(index) {
|
|
159
159
|
return String.fromCharCode(65 + index);
|
|
160
160
|
};
|
|
161
|
+
/**
|
|
162
|
+
* Return rowIndex and columnIndex for cellOperand
|
|
163
|
+
*
|
|
164
|
+
* Operand examples: A1, B12, etc.
|
|
165
|
+
*
|
|
166
|
+
* @param {String} cellOperand
|
|
167
|
+
* @returns {Object}
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
exports.getColumnOperand = getColumnOperand;
|
|
172
|
+
|
|
173
|
+
var getIndexesFromTableCellOperand = function getIndexesFromTableCellOperand(cellOperand) {
|
|
174
|
+
var letter = cellOperand.match(/[A-Z]*/gi).find(function (value) {
|
|
175
|
+
return value;
|
|
176
|
+
});
|
|
177
|
+
var rowIndex = cellOperand.match(/[0-9]*/gi).find(function (value) {
|
|
178
|
+
return value;
|
|
179
|
+
});
|
|
180
|
+
return {
|
|
181
|
+
columnIndex: _Table.operandLetterIndexes[letter],
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Cell operands start at an index of 1. So to get the true
|
|
185
|
+
* index for the rowIndex we need to substract 1 so we can
|
|
186
|
+
* use a 0 based index.
|
|
187
|
+
*/
|
|
188
|
+
rowIndex: rowIndex - 1
|
|
189
|
+
};
|
|
190
|
+
};
|
|
161
191
|
/**
|
|
162
192
|
* Get operand lookup for all table/inputGroup fields in a template.
|
|
163
193
|
*
|
|
@@ -168,7 +198,7 @@ var getColumnOperand = function getColumnOperand(index) {
|
|
|
168
198
|
*/
|
|
169
199
|
|
|
170
200
|
|
|
171
|
-
exports.
|
|
201
|
+
exports.getIndexesFromTableCellOperand = getIndexesFromTableCellOperand;
|
|
172
202
|
|
|
173
203
|
var getTemplateColumnOperandLookup = function getTemplateColumnOperandLookup(template) {
|
|
174
204
|
var operandLookup = {};
|
|
@@ -276,7 +306,7 @@ var generateTableFieldLookups = function generateTableFieldLookups(doc, template
|
|
|
276
306
|
return tableLookups;
|
|
277
307
|
};
|
|
278
308
|
/**
|
|
279
|
-
* Organize the table lookup on a row by row basis
|
|
309
|
+
* Organize the table lookup on a row by row basis
|
|
280
310
|
* @param {Array} rows
|
|
281
311
|
* @param {Array} columns
|
|
282
312
|
* @retuns {Object}
|
|
@@ -303,7 +333,9 @@ var generateTableLookupForRows = function generateTableLookupForRows(rows, colum
|
|
|
303
333
|
var tableLookup = generateTableLookup(rows, columns);
|
|
304
334
|
var rowLookup = {};
|
|
305
335
|
Object.keys(tableLookup).forEach(function (key) {
|
|
306
|
-
var rowIndex = key.match(/[0-9]*/gi)
|
|
336
|
+
var rowIndex = key.match(/[0-9]*/gi).find(function (value) {
|
|
337
|
+
return value;
|
|
338
|
+
});
|
|
307
339
|
if (!rowLookup[rowIndex]) rowLookup[rowIndex] = {};
|
|
308
340
|
rowLookup[rowIndex][key] = tableLookup[key];
|
|
309
341
|
});
|
|
@@ -371,8 +403,8 @@ var generateTableLookup = function generateTableLookup(rows, columns) {
|
|
|
371
403
|
} else if (cellValue && formulaCell && containsOperands) {
|
|
372
404
|
formulaCells.push(cellKey);
|
|
373
405
|
tableLookup[cellKey] = cellValue;
|
|
374
|
-
} else
|
|
375
|
-
tableLookup[cellKey] = cellValue;
|
|
406
|
+
} else {
|
|
407
|
+
tableLookup[cellKey] = cellValue || '';
|
|
376
408
|
}
|
|
377
409
|
});
|
|
378
410
|
});
|
|
@@ -746,52 +778,6 @@ var handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, cal
|
|
|
746
778
|
targetRowIndex: targetRowIndex
|
|
747
779
|
});
|
|
748
780
|
};
|
|
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
|
-
|
|
795
781
|
|
|
796
782
|
exports.handleMoveTableRowDown = handleMoveTableRowDown;
|
|
797
783
|
var _default = {
|
|
@@ -800,6 +786,7 @@ var _default = {
|
|
|
800
786
|
generateInputGroupFields: generateInputGroupFields,
|
|
801
787
|
getColumnOperand: getColumnOperand,
|
|
802
788
|
getCellOperand: getCellOperand,
|
|
789
|
+
getIndexesFromTableCellOperand: getIndexesFromTableCellOperand,
|
|
803
790
|
getRows: getRows,
|
|
804
791
|
getDefaultRow: getDefaultRow,
|
|
805
792
|
getRowMap: getRowMap,
|