@builttocreate/engine-utils 1.7.1 → 1.8.1-rc.1.0.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/activityHelper.js +86 -2
- package/dist/changedKeys.js +37 -0
- package/dist/fieldHelper.js +44 -1
- package/dist/index.js +13 -1
- package/dist/tableHelper.js +53 -2
- package/package.json +1 -1
package/dist/activityHelper.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.getFormattedActivity = void 0;
|
|
8
|
+
exports["default"] = exports.addDocumentDataToActivities = exports.getFormattedActivity = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -65,9 +65,93 @@ var getFormattedActivity = function getFormattedActivity(comments, deficiencies,
|
|
|
65
65
|
});
|
|
66
66
|
return activity;
|
|
67
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
* Template should be a template that is using the new getTemplateWithLookups
|
|
71
|
+
*/
|
|
72
|
+
|
|
68
73
|
|
|
69
74
|
exports.getFormattedActivity = getFormattedActivity;
|
|
75
|
+
|
|
76
|
+
var addDocumentDataToActivities = function addDocumentDataToActivities(activities, doc, template) {
|
|
77
|
+
var fieldLookup = template && template.fieldLookup ? template.fieldLookup : null;
|
|
78
|
+
var fieldValues = doc && doc.fields ? doc.fields : null;
|
|
79
|
+
if (!activities || activities.length < 1 || !fieldLookup || !fieldValues) return activities;
|
|
80
|
+
var fieldRowLookups = {};
|
|
81
|
+
var fieldRowIndexLookups = {};
|
|
82
|
+
var nextActivities = [];
|
|
83
|
+
activities.forEach(function (activity) {
|
|
84
|
+
var nextActivity = _objectSpread({}, activity);
|
|
85
|
+
|
|
86
|
+
if (activity.document && activity.document._id && activity.document.field) {
|
|
87
|
+
var docFieldValue = fieldValues[activity.document.field];
|
|
88
|
+
var templateField = templateFieldLookup[activity.document.field];
|
|
89
|
+
var templateFieldColumn = templateFieldLookup.tableColumnLookup[activity.document.column];
|
|
90
|
+
nextActivity.document.title = templateField.title;
|
|
91
|
+
nextActivity.document.type = templateField.type;
|
|
92
|
+
nextActivity.document.columns = templateField.tableColumns;
|
|
93
|
+
|
|
94
|
+
if (docFieldValue && templateField.type === FieldTypes.table) {
|
|
95
|
+
/**
|
|
96
|
+
* Table Step 1: create an easy way to lookup a row with the dropdown cells populated.
|
|
97
|
+
*
|
|
98
|
+
* We only need to generate the row lookup once per field to help increase performance,
|
|
99
|
+
* just incase we have other deficiencies that reference the same table field.
|
|
100
|
+
*/
|
|
101
|
+
if (!fieldRowsLookup[templateField._id]) {
|
|
102
|
+
fieldRowsLookup[templateField._id] = getRowLookupWithPopulatedDropdownCells(docFieldValue);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Table Step 2: create an easy way to lookup a row index so we can use it in our row
|
|
106
|
+
* display component.
|
|
107
|
+
*
|
|
108
|
+
* We only need to generate the row index lookup once per field to help increase performance,
|
|
109
|
+
* just incase we have other deficiencies that reference the same table field.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
if (!fieldRowIndexLookup[templateField._id]) {
|
|
114
|
+
fieldRowIndexLookup[templateField._id] = getRowIndexLookup(templateField._id, template.fieldSettings, docFieldValue);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
;
|
|
118
|
+
/**
|
|
119
|
+
* Table Step 3: Add row and rowIndex to the activity.document object for easy reference.
|
|
120
|
+
*
|
|
121
|
+
* nextActivity.document.value will now contain the single row object with all cell values populated ready to be displayed
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
|
+
nextActivity.document.value = fieldRowsLookup[activity.document.field][activity.document.row];
|
|
125
|
+
nextActivity.document.rowIndex = fieldRowIndexLookup[activity.document.field][activity.document.row];
|
|
126
|
+
} else if (docFieldValue && templateField.type === FieldTypes.inputGroup) {
|
|
127
|
+
/**
|
|
128
|
+
* Input Group Step 1: create an easy way to lookup a row with the dropdown cells populated.
|
|
129
|
+
*
|
|
130
|
+
* We only need to generate the row lookup once per field (since input groups are just rows)
|
|
131
|
+
* to help increase performance, just incase we have other deficiencies that reference the same table field.
|
|
132
|
+
*/
|
|
133
|
+
if (fieldRowsLookup[templateField._id]) fieldRowsLookup[templateField._id] = getRowLookupWithPopulatedDropdownCells(docFieldValue);
|
|
134
|
+
/**
|
|
135
|
+
* Input Group Step 2: Add invidual row.cell value. We only add the invidual cell value and not the
|
|
136
|
+
* whole row because input group display components are treated like regular field and not like table rows.
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
nextActivity.document.value = fieldRowsLookup[activity.document.field][activity.document.row].cells[templateFieldColumn._id];
|
|
140
|
+
} //This should handle adding the display value for selection and regular input fields
|
|
141
|
+
else {
|
|
142
|
+
var option = templateField.optionsLookup[docFieldValue];
|
|
143
|
+
nextActivity.document.value = option && option.value ? option.value : docFieldValue;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
nextActivities.push(nextActivity);
|
|
148
|
+
});
|
|
149
|
+
return nextActivities;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
exports.addDocumentDataToActivities = addDocumentDataToActivities;
|
|
70
153
|
var _default = {
|
|
71
|
-
getFormattedActivity: getFormattedActivity
|
|
154
|
+
getFormattedActivity: getFormattedActivity,
|
|
155
|
+
addDocumentDataToDeficiencyActivities: addDocumentDataToDeficiencyActivities
|
|
72
156
|
};
|
|
73
157
|
exports["default"] = _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* See what keys have changed between two objects.
|
|
10
|
+
*
|
|
11
|
+
* Used primarily right now to compare what props have changed for
|
|
12
|
+
* a react component.
|
|
13
|
+
*
|
|
14
|
+
* @param {Object} o1
|
|
15
|
+
* @param {Object} o2
|
|
16
|
+
*
|
|
17
|
+
* @returns {Array}
|
|
18
|
+
*/
|
|
19
|
+
var changedKeys = function changedKeys() {
|
|
20
|
+
var o1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
21
|
+
var o2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
22
|
+
var o1Keys = Object.keys(o1);
|
|
23
|
+
var o2Keys = Object.keys(o2);
|
|
24
|
+
var keys = [];
|
|
25
|
+
o1Keys.forEach(function (key) {
|
|
26
|
+
if (keys.indexOf(key) === -1) keys.push(key);
|
|
27
|
+
});
|
|
28
|
+
o2Keys.forEach(function (key) {
|
|
29
|
+
if (keys.indexOf(key) === -1) keys.push(key);
|
|
30
|
+
});
|
|
31
|
+
return keys.filter(function (key) {
|
|
32
|
+
return o1[key] !== o2[key];
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var _default = changedKeys;
|
|
37
|
+
exports["default"] = _default;
|
package/dist/fieldHelper.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.getImportFieldValues = exports.getDefaultFieldValuesFromTemplate = exports.getMultiSelectFieldValue = exports.getChartFieldValue = void 0;
|
|
8
|
+
exports["default"] = exports.getTemplateWithLookups = exports.getImportFieldValues = exports.getDefaultFieldValuesFromTemplate = exports.getMultiSelectFieldValue = exports.getChartFieldValue = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -177,8 +177,51 @@ var getImportFieldValues = function getImportFieldValues(template, importSource,
|
|
|
177
177
|
});
|
|
178
178
|
return fields;
|
|
179
179
|
};
|
|
180
|
+
/**
|
|
181
|
+
* Generate options and table column lookups for template fields
|
|
182
|
+
* @param {} template
|
|
183
|
+
* @returns
|
|
184
|
+
*/
|
|
185
|
+
|
|
180
186
|
|
|
181
187
|
exports.getImportFieldValues = getImportFieldValues;
|
|
188
|
+
|
|
189
|
+
var getTemplateWithLookups = function getTemplateWithLookups(template) {
|
|
190
|
+
var nextTemplate = _objectSpread({}, template);
|
|
191
|
+
|
|
192
|
+
nextTemplate.fields = template.fields.map(function (field) {
|
|
193
|
+
var nextField = _objectSpread({}, field);
|
|
194
|
+
|
|
195
|
+
if (nextField.options) {
|
|
196
|
+
nextField.optionsLookup = {};
|
|
197
|
+
nextField.options.forEach(function (option) {
|
|
198
|
+
return nextField.optionsLookup[option._id] = option;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (nextField.tableColumns) {
|
|
203
|
+
nextField.tableColumnsLookup = {};
|
|
204
|
+
nextField.tableColumns.forEach(function (column) {
|
|
205
|
+
var nextColumn = _objectSpread(_objectSpread({}, column), {}, {
|
|
206
|
+
optionsLookup: {}
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
if (nextColumn.options) {
|
|
210
|
+
nextColumn.options.forEach(function (option) {
|
|
211
|
+
return nextColumn.optionsLookup[option._id] = option;
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
nextField.tableColumnsLookup[nextColumn._id] = nextColumn;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return nextField;
|
|
220
|
+
});
|
|
221
|
+
return nextTemplate;
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
exports.getTemplateWithLookups = getTemplateWithLookups;
|
|
182
225
|
var _default = {
|
|
183
226
|
getChartFieldValue: getChartFieldValue,
|
|
184
227
|
getMultiSelectFieldValue: getMultiSelectFieldValue,
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -17,6 +19,12 @@ Object.defineProperty(exports, "CALL_API", {
|
|
|
17
19
|
return _reduxApiMiddleware.CALL_API;
|
|
18
20
|
}
|
|
19
21
|
});
|
|
22
|
+
Object.defineProperty(exports, "changedKeys", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function get() {
|
|
25
|
+
return _changedKeys["default"];
|
|
26
|
+
}
|
|
27
|
+
});
|
|
20
28
|
exports.paginationHelper = exports.fileHelper = exports.activityHelper = exports.fieldHelper = exports.chartHelper = exports.tableHelper = exports["default"] = void 0;
|
|
21
29
|
|
|
22
30
|
var tableHelper = _interopRequireWildcard(require("./tableHelper"));
|
|
@@ -44,6 +52,9 @@ var _reduxApiMiddleware = _interopRequireWildcard(require("./reduxApiMiddleware"
|
|
|
44
52
|
var paginationHelper = _interopRequireWildcard(require("./paginationHelper"));
|
|
45
53
|
|
|
46
54
|
exports.paginationHelper = paginationHelper;
|
|
55
|
+
|
|
56
|
+
var _changedKeys = _interopRequireDefault(require("./changedKeys"));
|
|
57
|
+
|
|
47
58
|
var _default = {
|
|
48
59
|
fileHelper: fileHelper,
|
|
49
60
|
tableHelper: tableHelper,
|
|
@@ -52,6 +63,7 @@ var _default = {
|
|
|
52
63
|
activityHelper: activityHelper,
|
|
53
64
|
reduxApiMiddleware: _reduxApiMiddleware["default"],
|
|
54
65
|
CALL_API: _reduxApiMiddleware.CALL_API,
|
|
55
|
-
paginationHelper: paginationHelper
|
|
66
|
+
paginationHelper: paginationHelper,
|
|
67
|
+
changedKeys: _changedKeys["default"]
|
|
56
68
|
};
|
|
57
69
|
exports["default"] = _default;
|
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.getIndexesFromTableCellOperand = exports.getColumnOperand = exports.getColumns = exports.getTableFieldRowOrder = exports.getRowMap = exports.getFilteredRowOrder = 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.getRowIndexLookup = exports.getRowLookupWithPopulatedDropdownCells = 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
|
|
|
@@ -712,6 +712,55 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
712
712
|
});
|
|
713
713
|
return tableReferences;
|
|
714
714
|
};
|
|
715
|
+
/**
|
|
716
|
+
* Populate row cells with dropdown display values:
|
|
717
|
+
* @param {*} columns
|
|
718
|
+
* @param {*} rows
|
|
719
|
+
* @returns
|
|
720
|
+
*/
|
|
721
|
+
//Columns should have the options lookup already populated
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
exports.generateInputGroupFields = generateInputGroupFields;
|
|
725
|
+
|
|
726
|
+
var getRowLookupWithPopulatedDropdownCells = function getRowLookupWithPopulatedDropdownCells(columns, rows) {
|
|
727
|
+
var rowsLookup = {};
|
|
728
|
+
var validRows = getRows(rows);
|
|
729
|
+
validRows.forEach(function (row) {
|
|
730
|
+
var nextRow = _objectSpread(_objectSpread({}, row), {}, {
|
|
731
|
+
cells: _objectSpread({}, row.cells)
|
|
732
|
+
});
|
|
733
|
+
|
|
734
|
+
columns.forEach(function (column) {
|
|
735
|
+
var optionId = nextRow.cells[columnId];
|
|
736
|
+
|
|
737
|
+
if (cellValue && column.type === _FieldTableColumnTypes["default"].dropdown) {
|
|
738
|
+
nextRow.cells[columnId] = column.optionsLookup[optionId] ? column.optionsLookup[optionId].value : optionId;
|
|
739
|
+
}
|
|
740
|
+
});
|
|
741
|
+
rowsLookup[nextRow._id] = nextRow;
|
|
742
|
+
});
|
|
743
|
+
return rowsLookup;
|
|
744
|
+
};
|
|
745
|
+
/**
|
|
746
|
+
* Generate row index lookup:
|
|
747
|
+
* @param {*} fieldId
|
|
748
|
+
* @param {*} fieldSettings
|
|
749
|
+
* @param {*} rows
|
|
750
|
+
* @returns
|
|
751
|
+
*/
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
exports.getRowLookupWithPopulatedDropdownCells = getRowLookupWithPopulatedDropdownCells;
|
|
755
|
+
|
|
756
|
+
var getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows) {
|
|
757
|
+
var rowOrder = getTableFieldRowOrder(fieldId, fieldSettings, rows);
|
|
758
|
+
var rowIndexLookup = {};
|
|
759
|
+
rowOrder.forEach(function (rowId, index) {
|
|
760
|
+
rowIndexLookup[rowId] = index;
|
|
761
|
+
});
|
|
762
|
+
return rowIndexLookup;
|
|
763
|
+
};
|
|
715
764
|
/**
|
|
716
765
|
* Handle Table Cell Change
|
|
717
766
|
*
|
|
@@ -723,7 +772,7 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
|
|
|
723
772
|
*/
|
|
724
773
|
|
|
725
774
|
|
|
726
|
-
exports.
|
|
775
|
+
exports.getRowIndexLookup = getRowIndexLookup;
|
|
727
776
|
|
|
728
777
|
var handleTableCellChange = function handleTableCellChange(rows, rowId, columnId, val, callback) {
|
|
729
778
|
var targetRowIndex = rows.findIndex(function (row) {
|
|
@@ -858,6 +907,8 @@ var _default = {
|
|
|
858
907
|
spreadOperandRange: spreadOperandRange,
|
|
859
908
|
getTableFieldLookupKey: getTableFieldLookupKey,
|
|
860
909
|
getTableFieldRowOrder: getTableFieldRowOrder,
|
|
910
|
+
getRowLookupWithPopulatedDropdownCells: getRowLookupWithPopulatedDropdownCells,
|
|
911
|
+
getRowIndexLookup: getRowIndexLookup,
|
|
861
912
|
handleTableCellChange: handleTableCellChange,
|
|
862
913
|
handleInsertTableRow: handleInsertTableRow,
|
|
863
914
|
handleCreateTableRow: handleCreateTableRow,
|