@builttocreate/engine-utils 1.8.1-rc.1.3.3 → 1.8.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.
@@ -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.addDocumentDataToActivities = exports.getFormattedActivity = void 0;
8
+ exports["default"] = exports.getFormattedActivity = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -13,10 +13,6 @@ var _ActivityTypes = _interopRequireDefault(require("./constants/ActivityTypes")
13
13
 
14
14
  var _FileTypes = _interopRequireDefault(require("./constants/FileTypes"));
15
15
 
16
- var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
17
-
18
- var _tableHelper = require("./tableHelper");
19
-
20
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
21
17
 
22
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -69,118 +65,9 @@ var getFormattedActivity = function getFormattedActivity(comments, deficiencies,
69
65
  });
70
66
  return activity;
71
67
  };
72
- /**
73
- *
74
- * Template should be a template that is using the new getTemplateWithLookups
75
- */
76
-
77
68
 
78
69
  exports.getFormattedActivity = getFormattedActivity;
79
-
80
- var addDocumentDataToActivities = function addDocumentDataToActivities(activities, doc, template) {
81
- var templateFieldLookup = {};
82
-
83
- if (template.fields && template.fields.length > 0) {
84
- template.fields.forEach(function (field) {
85
- return templateFieldLookup[field._id] = field;
86
- });
87
- }
88
-
89
- var fieldValues = doc && doc.fields ? doc.fields : null;
90
- if (!activities || activities.length < 1 || !templateFieldLookup || !fieldValues) return activities;
91
- var fieldRowsLookup = {};
92
- var fieldRowIndexLookup = {};
93
- var nextActivities = [];
94
- activities.forEach(function (activity) {
95
- var nextActivity = _objectSpread({}, activity);
96
-
97
- if (activity.document && activity.document._id && activity.document.field) {
98
- var docFieldValue = fieldValues[activity.document.field];
99
- var templateField = templateFieldLookup[activity.document.field];
100
- nextActivity.document.title = templateField.title;
101
- nextActivity.document.type = templateField.type;
102
- nextActivity.document.columns = templateField.tableColumns;
103
-
104
- if (docFieldValue && templateField.type === _FieldTypes["default"].table) {
105
- /**
106
- * Table Step 1: create an easy way to lookup a row with the dropdown cells populated.
107
- *
108
- * We only need to generate the row 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
- * Removing deleted rows from doc field value
114
- * Added as a fix for table bug that did not display proper output for formula cells
115
- * as rowIndex was messy
116
- */
117
- var nextDocFieldValue = (0, _tableHelper.getRows)(docFieldValue);
118
-
119
- if (!fieldRowsLookup[templateField._id]) {
120
- fieldRowsLookup[templateField._id] = (0, _tableHelper.getTableRowLookupWithPopulatedDropdownCells)(templateField.tableColumns, nextDocFieldValue);
121
- }
122
- /**
123
- * Table Step 2: create an easy way to lookup a row index so we can use it in our row
124
- * display component.
125
- *
126
- * We only need to generate the row index lookup once per field to help increase performance,
127
- * just incase we have other deficiencies that reference the same table field.
128
- */
129
-
130
-
131
- if (!fieldRowIndexLookup[templateField._id]) {
132
- fieldRowIndexLookup[templateField._id] = (0, _tableHelper.getRowIndexLookup)(templateField._id, template.fieldSettings, docFieldValue);
133
- }
134
- /**
135
- * Table Step 3: Add row and rowIndex to the activity.document object for easy reference.
136
- *
137
- * nextActivity.document.value will now contain the single row object with all cell values populated ready to be displayed
138
- */
139
-
140
-
141
- nextActivity.document.value = fieldRowsLookup[activity.document.field][activity.document.row];
142
- nextActivity.document.rowIndex = fieldRowIndexLookup[activity.document.field][activity.document.row];
143
- } else if (docFieldValue && templateField.type === _FieldTypes["default"].inputGroup) {
144
- /**
145
- * Input Group Step 1: create an easy way to lookup a row with the dropdown cells populated.
146
- *
147
- * We only need to generate the row lookup once per field (since input groups are just rows)
148
- * to help increase performance, just incase we have other deficiencies that reference the same table field.
149
- */
150
- if (!fieldRowsLookup[templateField._id]) fieldRowsLookup[templateField._id] = (0, _tableHelper.getInputGroupRowLookupWithPopulatedDropdownCells)(templateField.tableColumns, docFieldValue);
151
- /**
152
- * Input Group Step 2: Add invidual row.cell value. We only add the invidual cell value and not the
153
- * whole row because input group display components are treated like regular field and not like table rows.
154
- */
155
-
156
- nextActivity.document.value = fieldRowsLookup[activity.document.field][activity.document.row].cells[activity.document.column];
157
- } else if (docFieldValue && templateField.type === _FieldTypes["default"].multiSelect) {
158
- var parsedDocFieldValue = docFieldValue && typeof docFieldValue === 'string' ? docFieldValue.split(',') : docFieldValue;
159
- var _nextDocFieldValue = '';
160
-
161
- if (parsedDocFieldValue.length > 0) {
162
- parsedDocFieldValue.forEach(function (item) {
163
- var option = templateField.optionsLookup[item];
164
- _nextDocFieldValue = _nextDocFieldValue.concat(' ', option.value);
165
- });
166
- }
167
-
168
- nextActivity.document.value = _nextDocFieldValue;
169
- } //This should handle adding the display value for selection and regular input fields
170
- else {
171
- var option = templateField.optionsLookup[docFieldValue];
172
- nextActivity.document.value = option && option.value ? option.value : docFieldValue;
173
- }
174
- }
175
-
176
- nextActivities.push(nextActivity);
177
- });
178
- return nextActivities;
179
- };
180
-
181
- exports.addDocumentDataToActivities = addDocumentDataToActivities;
182
70
  var _default = {
183
- getFormattedActivity: getFormattedActivity,
184
- addDocumentDataToActivities: addDocumentDataToActivities
71
+ getFormattedActivity: getFormattedActivity
185
72
  };
186
73
  exports["default"] = _default;
@@ -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.getTemplateWithLookups = exports.getImportFieldValues = exports.getDefaultFieldValuesFromTemplate = exports.getMultiSelectFieldValue = exports.getChartFieldValue = void 0;
8
+ exports["default"] = exports.getImportFieldValues = exports.getDefaultFieldValuesFromTemplate = exports.getMultiSelectFieldValue = exports.getChartFieldValue = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -108,7 +108,7 @@ var getDefaultFieldValuesFromTemplate = function getDefaultFieldValuesFromTempla
108
108
  }
109
109
 
110
110
  if (field.type === _FieldTypes["default"].date) {
111
- fields[field._id] = field.blockAutoPopulate ? '' : field.value || new Date().getTime();
111
+ fields[field._id] = field.value || new Date().getTime();
112
112
  }
113
113
  });
114
114
  return fields;
@@ -177,62 +177,12 @@ var getImportFieldValues = function getImportFieldValues(template, importSource,
177
177
  });
178
178
  return fields;
179
179
  };
180
- /**
181
- * Generate optionsLookup and fieldLookup for template fields
182
- * Note: Options lookup will be used by dropdown, mutliSelect, table and inputGroup fields
183
- * to display value in dropdowns
184
- * @param {} template
185
- * @returns template
186
- */
187
-
188
180
 
189
181
  exports.getImportFieldValues = getImportFieldValues;
190
-
191
- var getTemplateWithLookups = function getTemplateWithLookups(template) {
192
- var nextTemplate = _objectSpread({}, template);
193
-
194
- nextTemplate.fields = [];
195
- nextTemplate.fieldLookup = {};
196
- template.fields.forEach(function (field) {
197
- var nextField = _objectSpread({}, field);
198
-
199
- nextField.optionsLookup = {};
200
-
201
- if (nextField.options) {
202
- nextField.options.forEach(function (option) {
203
- return nextField.optionsLookup[option._id] = option;
204
- });
205
- }
206
-
207
- if (nextField.tableColumns) {
208
- nextField.tableColumnsLookup = {};
209
- nextField.tableColumns.forEach(function (column, index) {
210
- var nextColumn = _objectSpread(_objectSpread({}, column), {}, {
211
- optionsLookup: {}
212
- });
213
-
214
- if (nextColumn.options) {
215
- nextColumn.options.forEach(function (option) {
216
- return nextColumn.optionsLookup[option._id] = option;
217
- });
218
- }
219
-
220
- nextField.tableColumns[index] = nextColumn;
221
- });
222
- }
223
-
224
- nextTemplate.fields.push(nextField);
225
- nextTemplate.fieldLookup[nextField._id] = nextField;
226
- });
227
- return nextTemplate;
228
- };
229
-
230
- exports.getTemplateWithLookups = getTemplateWithLookups;
231
182
  var _default = {
232
183
  getChartFieldValue: getChartFieldValue,
233
184
  getMultiSelectFieldValue: getMultiSelectFieldValue,
234
185
  getDefaultFieldValuesFromTemplate: getDefaultFieldValuesFromTemplate,
235
- getImportFieldValues: getImportFieldValues,
236
- getTemplateWithLookups: getTemplateWithLookups
186
+ getImportFieldValues: getImportFieldValues
237
187
  };
238
188
  exports["default"] = _default;
@@ -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.getRowIndexLookup = exports.getInputGroupRowLookupWithPopulatedDropdownCells = exports.getTableRowLookupWithPopulatedDropdownCells = 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.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,98 +712,6 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
712
712
  });
713
713
  return tableReferences;
714
714
  };
715
- /**
716
- * Populate table rows with values
717
- * - Dropdown cells will have chosen values
718
- * - Formula cells will have the formula result
719
- *
720
- * Note: Columns should already have the options lookup populated before
721
- * being sent into this function
722
- *
723
- * @param {*} columns -
724
- * @param {*} rows
725
- * @returns
726
- */
727
-
728
-
729
- exports.generateInputGroupFields = generateInputGroupFields;
730
-
731
- var getTableRowLookupWithPopulatedDropdownCells = function getTableRowLookupWithPopulatedDropdownCells(columns, rows) {
732
- var rowsLookup = {};
733
- var tableLookup = generateTableLookup(rows, columns);
734
- var validRows = getRows(rows);
735
- var validColumns = getColumns(columns);
736
- validRows.forEach(function (row, rowIndex) {
737
- var nextRow = _objectSpread(_objectSpread({}, row), {}, {
738
- cells: _objectSpread({}, row.cells)
739
- });
740
-
741
- validColumns.forEach(function (column) {
742
- var cellOperand = getCellOperand(column.operand, rowIndex + 1);
743
- var value = tableLookup[cellOperand];
744
-
745
- if (value && column.type === _FieldTableColumnTypes["default"].dropdown) {
746
- nextRow.cells[column._id] = column.optionsLookup[value] ? column.optionsLookup[value].value : value;
747
- } else {
748
- nextRow.cells[column._id] = value;
749
- }
750
- });
751
- rowsLookup[nextRow._id] = nextRow;
752
- });
753
- return rowsLookup;
754
- };
755
- /**
756
- * Populate inputGroup dropdown questions with chosen value
757
- *
758
- * Note: Columns should already have the options lookup populated before
759
- * being sent into this function
760
- *
761
- * @param {*} columns
762
- * @param {*} rows
763
- * @returns
764
- */
765
-
766
-
767
- exports.getTableRowLookupWithPopulatedDropdownCells = getTableRowLookupWithPopulatedDropdownCells;
768
-
769
- var getInputGroupRowLookupWithPopulatedDropdownCells = function getInputGroupRowLookupWithPopulatedDropdownCells(columns, rows) {
770
- var rowsLookup = {};
771
- var validRows = typeof row === 'string' ? JSON.parse(rows) : rows;
772
- validRows.forEach(function (row) {
773
- var nextRow = _objectSpread(_objectSpread({}, row), {}, {
774
- cells: _objectSpread({}, row.cells)
775
- });
776
-
777
- columns.forEach(function (column) {
778
- var optionId = nextRow.cells[column._id];
779
-
780
- if (optionId && column.type === _FieldTableColumnTypes["default"].dropdown) {
781
- nextRow.cells[column._id] = column.optionsLookup[optionId] ? column.optionsLookup[optionId].value : optionId;
782
- }
783
- });
784
- rowsLookup[nextRow._id] = nextRow;
785
- });
786
- return rowsLookup;
787
- };
788
- /**
789
- * Generate row index lookup:
790
- * @param {*} fieldId
791
- * @param {*} fieldSettings
792
- * @param {*} rows
793
- * @returns
794
- */
795
-
796
-
797
- exports.getInputGroupRowLookupWithPopulatedDropdownCells = getInputGroupRowLookupWithPopulatedDropdownCells;
798
-
799
- var getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows) {
800
- var rowOrder = getTableFieldRowOrder(fieldId, fieldSettings, rows);
801
- var rowIndexLookup = {};
802
- rowOrder.forEach(function (rowId, index) {
803
- rowIndexLookup[rowId] = index;
804
- });
805
- return rowIndexLookup;
806
- };
807
715
  /**
808
716
  * Handle Table Cell Change
809
717
  *
@@ -815,7 +723,7 @@ var getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows)
815
723
  */
816
724
 
817
725
 
818
- exports.getRowIndexLookup = getRowIndexLookup;
726
+ exports.generateInputGroupFields = generateInputGroupFields;
819
727
 
820
728
  var handleTableCellChange = function handleTableCellChange(rows, rowId, columnId, val, callback) {
821
729
  var targetRowIndex = rows.findIndex(function (row) {
@@ -950,9 +858,6 @@ var _default = {
950
858
  spreadOperandRange: spreadOperandRange,
951
859
  getTableFieldLookupKey: getTableFieldLookupKey,
952
860
  getTableFieldRowOrder: getTableFieldRowOrder,
953
- getTableRowLookupWithPopulatedDropdownCells: getTableRowLookupWithPopulatedDropdownCells,
954
- getInputGroupRowLookupWithPopulatedDropdownCells: getInputGroupRowLookupWithPopulatedDropdownCells,
955
- getRowIndexLookup: getRowIndexLookup,
956
861
  handleTableCellChange: handleTableCellChange,
957
862
  handleInsertTableRow: handleInsertTableRow,
958
863
  handleCreateTableRow: handleCreateTableRow,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "1.8.1-rc.1.3.3",
3
+ "version": "1.8.1",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [