@builttocreate/engine-utils 1.0.0 → 1.0.2
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 +156 -10
- 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.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.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
|
|
|
@@ -531,6 +531,15 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
531
531
|
var fieldSettings = arguments.length > 3 ? arguments[3] : undefined;
|
|
532
532
|
var tableReferences = [];
|
|
533
533
|
var tableColumns = getColumns(columns);
|
|
534
|
+
var columnOptionValueLookup = {};
|
|
535
|
+
tableColumns.forEach(function (column) {
|
|
536
|
+
if (column.type === _FieldTableColumnTypes["default"].dropdown && column.options) {
|
|
537
|
+
columnOptionValueLookup[column._id] = {};
|
|
538
|
+
column.options.forEach(function (option) {
|
|
539
|
+
return columnOptionValueLookup[column._id][option._id] = option.value;
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
});
|
|
534
543
|
var tableRows = getRows(rows);
|
|
535
544
|
var rowOrder = getTableFieldRowOrder(field._id, fieldSettings, tableRows);
|
|
536
545
|
var sortedTableRows = sortRows(tableRows, rowOrder);
|
|
@@ -538,30 +547,161 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
538
547
|
/**
|
|
539
548
|
* Step 1: Add InputGroup Row Header
|
|
540
549
|
*/
|
|
541
|
-
tableReferences.push(
|
|
550
|
+
tableReferences.push({
|
|
551
|
+
uniqueId: "".concat(field._id, "-").concat(row._id),
|
|
552
|
+
_id: field._id,
|
|
553
|
+
title: field.title,
|
|
542
554
|
type: _Table.inputGroupFieldTypes.inputGroupRowHeader,
|
|
543
555
|
rowIndex: rowIndex,
|
|
544
|
-
|
|
545
|
-
})
|
|
556
|
+
rowId: row._id
|
|
557
|
+
});
|
|
546
558
|
/**
|
|
547
559
|
* Step 2: Add Input Group Row Cells
|
|
548
560
|
*/
|
|
549
561
|
|
|
550
562
|
tableColumns.forEach(function (column, columnIndex) {
|
|
551
|
-
|
|
563
|
+
var value = row && row.cells ? row.cells[column._id] : '';
|
|
564
|
+
var displayValue = column.type === _FieldTableColumnTypes["default"].dropdown ? columnOptionValueLookup[column._id][value] : value;
|
|
565
|
+
tableReferences.push({
|
|
566
|
+
uniqueId: "".concat(field._id, "-").concat(row._id, "-").concat(column._id),
|
|
567
|
+
_id: field._id,
|
|
568
|
+
title: column.title,
|
|
552
569
|
type: column.type === _FieldTableColumnTypes["default"].dropdown ? _Table.inputGroupFieldTypes.inputGroupDropdownCell : _Table.inputGroupFieldTypes.inputGroupTextCell,
|
|
553
570
|
rowIndex: rowIndex,
|
|
554
|
-
|
|
571
|
+
rowId: row._id,
|
|
572
|
+
columnId: column._id,
|
|
555
573
|
columnIndex: columnIndex,
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
})
|
|
574
|
+
value: value,
|
|
575
|
+
displayValue: displayValue
|
|
576
|
+
});
|
|
559
577
|
});
|
|
560
578
|
});
|
|
561
579
|
return tableReferences;
|
|
562
580
|
};
|
|
581
|
+
/**
|
|
582
|
+
* Handle Table Cell Change
|
|
583
|
+
*
|
|
584
|
+
* @param {Array} rows //List of current table rows
|
|
585
|
+
* @param {String} rowId
|
|
586
|
+
* @param {String} columnId
|
|
587
|
+
* @param {String} value
|
|
588
|
+
* @param {Func} callback
|
|
589
|
+
*/
|
|
590
|
+
|
|
563
591
|
|
|
564
592
|
exports.generateInputGroupFields = generateInputGroupFields;
|
|
593
|
+
|
|
594
|
+
var handleTableCellChange = function handleTableCellChange(rows, rowId, columnId, val, callback) {
|
|
595
|
+
var row = rows.find(function (row) {
|
|
596
|
+
return row._id === rowId;
|
|
597
|
+
});
|
|
598
|
+
var cells = row ? row.cells : {}; //Only save data if value has changed
|
|
599
|
+
|
|
600
|
+
if (cells[columnId] !== val && callback) {
|
|
601
|
+
callback({
|
|
602
|
+
row: {
|
|
603
|
+
_id: rowId,
|
|
604
|
+
cells: (0, _defineProperty2["default"])({}, columnId, val)
|
|
605
|
+
}
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
};
|
|
609
|
+
/**
|
|
610
|
+
* Handle Insert Table Row
|
|
611
|
+
*
|
|
612
|
+
* @param {Number} rowIndex
|
|
613
|
+
* @param {Func} callback
|
|
614
|
+
*/
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
exports.handleTableCellChange = handleTableCellChange;
|
|
618
|
+
|
|
619
|
+
var handleInsertTableRow = function handleInsertTableRow(rowIndex, callback) {
|
|
620
|
+
if (callback) callback({
|
|
621
|
+
targetRowIndex: rowIndex + 1,
|
|
622
|
+
row: getDefaultRow()
|
|
623
|
+
});
|
|
624
|
+
};
|
|
625
|
+
/**
|
|
626
|
+
* Handle Create New Table Row
|
|
627
|
+
*
|
|
628
|
+
* @param {Array} rows //List of current table rows
|
|
629
|
+
* @param {Func} callback
|
|
630
|
+
*/
|
|
631
|
+
|
|
632
|
+
|
|
633
|
+
exports.handleInsertTableRow = handleInsertTableRow;
|
|
634
|
+
|
|
635
|
+
var handleCreateTableRow = function handleCreateTableRow(rows, callback) {
|
|
636
|
+
var targetRowIndex = rows.length;
|
|
637
|
+
if (callback) callback({
|
|
638
|
+
targetRowIndex: targetRowIndex,
|
|
639
|
+
row: getDefaultRow()
|
|
640
|
+
});
|
|
641
|
+
};
|
|
642
|
+
/**
|
|
643
|
+
* Handle Duplicate Table Row
|
|
644
|
+
*
|
|
645
|
+
* @param {Array} rows //List of current table rows
|
|
646
|
+
* @param {String} rowId
|
|
647
|
+
* @param {Number} rowIndex
|
|
648
|
+
* @param {Func} callback
|
|
649
|
+
*/
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
exports.handleCreateTableRow = handleCreateTableRow;
|
|
653
|
+
|
|
654
|
+
var handleDuplicateTableRow = function handleDuplicateTableRow(rows, rowId, rowIndex, callback) {
|
|
655
|
+
var duplicateRow = rows.find(function (row) {
|
|
656
|
+
return row._id === rowId;
|
|
657
|
+
});
|
|
658
|
+
var newRow = getDefaultRow();
|
|
659
|
+
newRow.cells = duplicateRow && duplicateRow.cells ? _objectSpread({}, duplicateRow.cells) : {};
|
|
660
|
+
var targetRowIndex = rowIndex + 1;
|
|
661
|
+
if (callback) callback({
|
|
662
|
+
targetRowIndex: targetRowIndex,
|
|
663
|
+
row: newRow
|
|
664
|
+
});
|
|
665
|
+
};
|
|
666
|
+
/**
|
|
667
|
+
* Handle Duplicate Table Row
|
|
668
|
+
*
|
|
669
|
+
* @param {Number} rowIndex
|
|
670
|
+
* @param {Func} callback
|
|
671
|
+
*/
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
exports.handleDuplicateTableRow = handleDuplicateTableRow;
|
|
675
|
+
|
|
676
|
+
var handleMoveTableRowUp = function handleMoveTableRowUp(rowIndex, callback) {
|
|
677
|
+
//If first row then ignore
|
|
678
|
+
if (rowIndex === 0) return;
|
|
679
|
+
var targetRowIndex = rowIndex - 1;
|
|
680
|
+
if (callback) callback({
|
|
681
|
+
targetRowIndex: targetRowIndex
|
|
682
|
+
});
|
|
683
|
+
};
|
|
684
|
+
/**
|
|
685
|
+
* Handle Duplicate Table Row
|
|
686
|
+
*
|
|
687
|
+
* @param {Array} rows
|
|
688
|
+
* @param {Number} rowIndex
|
|
689
|
+
* @param {Func} callback
|
|
690
|
+
*/
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
exports.handleMoveTableRowUp = handleMoveTableRowUp;
|
|
694
|
+
|
|
695
|
+
var handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, callback) {
|
|
696
|
+
//If last row then ignore
|
|
697
|
+
if (rowIndex >= rows.length - 1) return;
|
|
698
|
+
var targetRowIndex = rowIndex + 1;
|
|
699
|
+
if (callback) callback({
|
|
700
|
+
targetRowIndex: targetRowIndex
|
|
701
|
+
});
|
|
702
|
+
};
|
|
703
|
+
|
|
704
|
+
exports.handleMoveTableRowDown = handleMoveTableRowDown;
|
|
565
705
|
var _default = {
|
|
566
706
|
generateTableLookup: generateTableLookup,
|
|
567
707
|
generateRowTableLookup: generateRowTableLookup,
|
|
@@ -579,6 +719,12 @@ var _default = {
|
|
|
579
719
|
hasOperandRange: hasOperandRange,
|
|
580
720
|
spreadOperandRange: spreadOperandRange,
|
|
581
721
|
getTableFieldLookupKey: getTableFieldLookupKey,
|
|
582
|
-
getTableFieldRowOrder: getTableFieldRowOrder
|
|
722
|
+
getTableFieldRowOrder: getTableFieldRowOrder,
|
|
723
|
+
handleTableCellChange: handleTableCellChange,
|
|
724
|
+
handleInsertTableRow: handleInsertTableRow,
|
|
725
|
+
handleCreateTableRow: handleCreateTableRow,
|
|
726
|
+
handleDuplicateTableRow: handleDuplicateTableRow,
|
|
727
|
+
handleMoveTableRowUp: handleMoveTableRowUp,
|
|
728
|
+
handleMoveTableRowDown: handleMoveTableRowDown
|
|
583
729
|
};
|
|
584
730
|
exports["default"] = _default;
|