@builttocreate/engine-utils 2.9.1 → 2.10.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.
@@ -7,8 +7,20 @@ exports["default"] = void 0;
7
7
  var text = 'text';
8
8
  var dropdown = 'dropdown';
9
9
  var image = 'image';
10
+ var number = 'number';
11
+ var multiSelect = 'multiSelect';
12
+ var date = 'date';
13
+ var block = 'block';
14
+ var barcode = 'barcode';
15
+ var signature = 'signature';
10
16
  var _default = exports["default"] = {
11
17
  text: text,
12
18
  dropdown: dropdown,
13
- image: image
19
+ image: image,
20
+ number: number,
21
+ date: date,
22
+ block: block,
23
+ multiSelect: multiSelect,
24
+ barcode: barcode,
25
+ signature: signature
14
26
  };
@@ -25,6 +25,7 @@ var task = 'task';
25
25
  var table = 'table';
26
26
  var inputGroup = 'inputGroup';
27
27
  var chart = 'chart';
28
+ var collection = 'collection';
28
29
  var types = {
29
30
  uniqueId: uniqueId,
30
31
  image: image,
@@ -43,7 +44,8 @@ var types = {
43
44
  inputGroup: inputGroup,
44
45
  chart: chart,
45
46
  multiSelect: multiSelect,
46
- dropdown: dropdown
47
+ dropdown: dropdown,
48
+ collection: collection
47
49
  };
48
50
  types.all = Object.keys(types);
49
51
  types.titles = {
@@ -62,6 +64,7 @@ types.titles = {
62
64
  inputGroup: 'Field Group',
63
65
  chart: 'Performance Chart',
64
66
  multiSelect: 'Checkbox',
65
- dropdown: 'Dropdown'
67
+ dropdown: 'Dropdown',
68
+ collection: 'Collection'
66
69
  };
67
70
  var _default = exports["default"] = types;
@@ -265,6 +265,10 @@ var isFieldEmpty = exports.isFieldEmpty = function isFieldEmpty(fieldType, field
265
265
  return !item.deleted;
266
266
  }).length === 0)) {
267
267
  isEmpty = true;
268
+ } else if (fieldType === _FieldTypes["default"].collection && (!fieldValue || fieldValue && fieldValue.filter(function (item) {
269
+ return !item.deleted;
270
+ }).length === 0)) {
271
+ isEmpty = true;
268
272
  }
269
273
  return isEmpty;
270
274
  };
package/dist/index.js CHANGED
@@ -66,8 +66,7 @@ var _changedKeys = _interopRequireDefault(require("./changedKeys"));
66
66
  var _Roles = _interopRequireDefault(require("./constants/Roles"));
67
67
  var _generateObjectId = _interopRequireDefault(require("./generateObjectId"));
68
68
  var _validateObjectId = _interopRequireDefault(require("./validateObjectId"));
69
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
70
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) { if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } } return n["default"] = e, t && t.set(e, n), n; }
69
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
71
70
  var _default = exports["default"] = {
72
71
  fileHelper: fileHelper,
73
72
  tableHelper: tableHelper,
@@ -127,7 +127,7 @@ var getCleanedJoyDoc = exports.getCleanedJoyDoc = function getCleanedJoyDoc(doc)
127
127
  /**
128
128
  * Step 1.4: Replace view page ids and field ids if they are not valid
129
129
  */
130
- if ((nextFile === null || nextFile === void 0 ? void 0 : (_nextFile$views = nextFile.views) === null || _nextFile$views === void 0 ? void 0 : _nextFile$views.length) > 0) {
130
+ if ((nextFile === null || nextFile === void 0 || (_nextFile$views = nextFile.views) === null || _nextFile$views === void 0 ? void 0 : _nextFile$views.length) > 0) {
131
131
  nextFile.views = nextFile.views.map(function (view) {
132
132
  var nextView = _objectSpread({}, view);
133
133
  nextView.pages = getCleanedJoyDocPages(nextView.pages);
@@ -167,13 +167,13 @@ var removeOrphanedFieldsFromJoydoc = exports.removeOrphanedFieldsFromJoydoc = fu
167
167
  if (!doc) return getDefaultJoyDoc();
168
168
  var nextDoc = _objectSpread({}, doc);
169
169
  var associatedFieldIdLookup = {};
170
- nextDoc === null || nextDoc === void 0 ? void 0 : (_nextDoc$files = nextDoc.files) === null || _nextDoc$files === void 0 ? void 0 : _nextDoc$files.forEach(function (file) {
170
+ nextDoc === null || nextDoc === void 0 || (_nextDoc$files = nextDoc.files) === null || _nextDoc$files === void 0 || _nextDoc$files.forEach(function (file) {
171
171
  var _file$views;
172
172
  /**
173
173
  * Primary view
174
174
  */
175
175
  file.pages.forEach(function (page) {
176
- page === null || page === void 0 ? void 0 : page.fieldPositions.forEach(function (fieldPosition) {
176
+ page === null || page === void 0 || page.fieldPositions.forEach(function (fieldPosition) {
177
177
  return associatedFieldIdLookup[fieldPosition.field] = true;
178
178
  });
179
179
  });
@@ -181,10 +181,10 @@ var removeOrphanedFieldsFromJoydoc = exports.removeOrphanedFieldsFromJoydoc = fu
181
181
  /**
182
182
  * Alternative view
183
183
  */
184
- (_file$views = file.views) === null || _file$views === void 0 ? void 0 : _file$views.forEach(function (view) {
184
+ (_file$views = file.views) === null || _file$views === void 0 || _file$views.forEach(function (view) {
185
185
  var _view$pages;
186
- view === null || view === void 0 ? void 0 : (_view$pages = view.pages) === null || _view$pages === void 0 ? void 0 : _view$pages.forEach(function (page) {
187
- page === null || page === void 0 ? void 0 : page.fieldPositions.forEach(function (fieldPosition) {
186
+ view === null || view === void 0 || (_view$pages = view.pages) === null || _view$pages === void 0 || _view$pages.forEach(function (page) {
187
+ page === null || page === void 0 || page.fieldPositions.forEach(function (fieldPosition) {
188
188
  return associatedFieldIdLookup[fieldPosition.field] = true;
189
189
  });
190
190
  });
@@ -401,7 +401,7 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
401
401
  });
402
402
  var newPageId = (0, _generateObjectId["default"])();
403
403
  var fieldLookup = {};
404
- (_nextDoc$fields = nextDoc.fields) === null || _nextDoc$fields === void 0 ? void 0 : _nextDoc$fields.forEach(function (field) {
404
+ (_nextDoc$fields = nextDoc.fields) === null || _nextDoc$fields === void 0 || _nextDoc$fields.forEach(function (field) {
405
405
  if (field.file === fileId) fieldLookup[field._id] = field;
406
406
  });
407
407
 
@@ -596,7 +596,7 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
596
596
  */
597
597
  var getMobileViewFromFile = exports.getMobileViewFromFile = function getMobileViewFromFile(file) {
598
598
  var _file$views2;
599
- var mobileViewIndex = file !== null && file !== void 0 && file.views && (file === null || file === void 0 ? void 0 : (_file$views2 = file.views) === null || _file$views2 === void 0 ? void 0 : _file$views2.length) > 0 ? file.views.findIndex(function (view) {
599
+ var mobileViewIndex = file !== null && file !== void 0 && file.views && (file === null || file === void 0 || (_file$views2 = file.views) === null || _file$views2 === void 0 ? void 0 : _file$views2.length) > 0 ? file.views.findIndex(function (view) {
600
600
  return view.type === _FileViews["default"].mobile;
601
601
  }) : -1;
602
602
  if (mobileViewIndex !== -1) {
@@ -704,10 +704,10 @@ var generateMobilePageFieldPositions = exports.generateMobilePageFieldPositions
704
704
  */
705
705
  var mergeAssoicatedFieldPositionsForMobilePage = exports.mergeAssoicatedFieldPositionsForMobilePage = function mergeAssoicatedFieldPositionsForMobilePage(fieldPositions) {
706
706
  var filteredFieldPositions = [];
707
- fieldPositions === null || fieldPositions === void 0 ? void 0 : fieldPositions.forEach(function (fieldPosition) {
707
+ fieldPositions === null || fieldPositions === void 0 || fieldPositions.forEach(function (fieldPosition) {
708
708
  var fieldPositionIndex = filteredFieldPositions.findIndex(function (filtered) {
709
709
  var _filtered$field, _fieldPosition$field;
710
- return (filtered === null || filtered === void 0 ? void 0 : (_filtered$field = filtered.field) === null || _filtered$field === void 0 ? void 0 : _filtered$field.toString()) === (fieldPosition === null || fieldPosition === void 0 ? void 0 : (_fieldPosition$field = fieldPosition.field) === null || _fieldPosition$field === void 0 ? void 0 : _fieldPosition$field.toString());
710
+ return (filtered === null || filtered === void 0 || (_filtered$field = filtered.field) === null || _filtered$field === void 0 ? void 0 : _filtered$field.toString()) === (fieldPosition === null || fieldPosition === void 0 || (_fieldPosition$field = fieldPosition.field) === null || _fieldPosition$field === void 0 ? void 0 : _fieldPosition$field.toString());
711
711
  });
712
712
 
713
713
  //Only add field to the list if it hasn't already been added
@@ -5,7 +5,7 @@ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.validFormulaString = exports.spreadOperandRange = exports.sortRows = exports.sortColumns = exports.resolveOperandValue = exports.hasOperandRange = exports.hasCircularOperandReference = exports.handleTableCellChange = exports.handleMoveTableRowUp = exports.handleMoveTableRowDown = exports.handleMoveColumnRight = exports.handleMoveColumnLeft = exports.handleInsertTableRow = exports.handleDuplicateTableRow = exports.handleCreateTableRow = exports.getTemplateColumnOperandLookup = exports.getTargetColumnWithOperand = exports.getTableRowLookupWithPopulatedDropdownCells = exports.getTableFieldRowOrder = exports.getTableFieldLookupKey = exports.getRows = exports.getRowOrder = exports.getRowMap = exports.getRowIndexLookup = exports.getInputGroupRowLookupWithPopulatedDropdownCells = exports.getIndexesFromTableCellOperand = exports.getFormulaResult = exports.getFilteredRowOrder = exports.getDefaultTextColumn = exports.getDefaultRow = exports.getDefaultImageColumn = exports.getDefaultDropdownColumn = exports.getDefaultColumnOption = exports.getColumns = exports.getColumnOrder = exports.getColumnOperand = exports.getCleanedRowOrder = exports.getCleanedColumnOrder = exports.getCellOperand = exports.generateTableLookupForRows = exports.generateTableLookup = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.generateInputGroupFields = exports["default"] = void 0;
8
+ exports.validFormulaString = exports.spreadOperandRange = exports.sortRows = exports.sortColumns = exports.resolveOperandValue = exports.hasOperandRange = exports.hasCircularOperandReference = exports.handleTableCellChange = exports.handleMoveTableRowUp = exports.handleMoveTableRowDown = exports.handleMoveColumnRight = exports.handleMoveColumnLeft = exports.handleInsertTableRow = exports.handleDuplicateTableRow = exports.handleCreateTableRow = exports.getTemplateColumnOperandLookup = exports.getTargetColumnWithOperand = exports.getTableRowLookupWithPopulatedDropdownCells = exports.getTableFieldRowOrder = exports.getTableFieldLookupKey = exports.getRows = exports.getRowOrder = exports.getRowMap = exports.getRowIndexLookup = exports.getInputGroupRowLookupWithPopulatedDropdownCells = exports.getIndexesFromTableCellOperand = exports.getFormulaResult = exports.getFilteredRowOrder = exports.getDefaultTextColumn = exports.getDefaultSignatureColumn = exports.getDefaultRow = exports.getDefaultNumberColumn = exports.getDefaultMultiSelectColumn = exports.getDefaultImageColumn = exports.getDefaultDropdownColumn = exports.getDefaultDateColumn = exports.getDefaultColumnOption = exports.getDefaultBlockColumn = exports.getDefaultBarcodeColumn = exports.getColumns = exports.getColumnOrder = exports.getColumnOperand = exports.getCleanedRowOrder = exports.getCleanedColumnOrder = exports.getCellOperand = exports.generateTableLookupForRows = exports.generateTableLookup = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.generateInputGroupFields = exports["default"] = void 0;
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -15,8 +15,7 @@ var _Table = _interopRequireWildcard(require("./constants/Table"));
15
15
  var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
16
16
  var _FieldTableColumnTypes = _interopRequireDefault(require("./constants/FieldTableColumnTypes"));
17
17
  var _FieldTableCustomColumnIds = _interopRequireDefault(require("./constants/FieldTableCustomColumnIds"));
18
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) { if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } } return n["default"] = e, t && t.set(e, n), n; }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
20
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
21
  var parser = new _hotFormulaParser.Parser();
@@ -88,9 +87,29 @@ var getFilteredRowOrder = exports.getFilteredRowOrder = function getFilteredRowO
88
87
  if (row.deleted) return;
89
88
  var rowMatched = true;
90
89
  filteredColumnIds.forEach(function (columnId) {
91
- var filter = filters[columnId] ? filters[columnId].toLowerCase() : '';
92
- var value = row.cells && row.cells[columnId] ? row.cells[columnId].toLowerCase() : '';
93
- if (filter && (!value || value.indexOf(filter) === -1)) rowMatched = false;
90
+ /**
91
+ * The following logic compares the filter value with the cell value.
92
+ *
93
+ * 1. For table text columns, the cell value is a string.
94
+ * 2. For table number columns, the cell value is a number.
95
+ */
96
+
97
+ var filter = '';
98
+ if (filters[columnId] && typeof filters[columnId] === 'string') {
99
+ filter = filters[columnId].toLowerCase();
100
+ } else if (filters[columnId] && typeof filters[columnId] === 'number') {
101
+ filter = filters[columnId];
102
+ }
103
+ var value = '';
104
+ if (row.cells && row.cells[columnId]) {
105
+ if (typeof row.cells[columnId] === 'string') {
106
+ value = row.cells[columnId].toLowerCase();
107
+ } else if (typeof row.cells[columnId] === 'number') {
108
+ value = row.cells[columnId];
109
+ }
110
+ }
111
+ if (filter && typeof value === 'string' && (!value || value.indexOf(filter) === -1)) rowMatched = false;
112
+ if (filter && typeof value === 'number' && (!value || value !== filter)) rowMatched = false;
94
113
  });
95
114
  if (rowMatched) matchedRows[row._id] = true;
96
115
  });
@@ -237,10 +256,14 @@ var handleMoveColumnRight = exports.handleMoveColumnRight = function handleMoveC
237
256
  * @return {Object}
238
257
  */
239
258
  var getDefaultColumnOption = exports.getDefaultColumnOption = function getDefaultColumnOption(value) {
259
+ var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
240
260
  return {
241
261
  _id: (0, _generateObjectId["default"])(),
242
262
  value: value || 'Option',
243
- deleted: false
263
+ deleted: false,
264
+ styles: {
265
+ backgroundColor: color
266
+ }
244
267
  };
245
268
  };
246
269
 
@@ -262,6 +285,96 @@ var getDefaultTextColumn = exports.getDefaultTextColumn = function getDefaultTex
262
285
  }, defaults);
263
286
  };
264
287
 
288
+ /**
289
+ * Get default text column for table field
290
+ *
291
+ * @param {Object} defaults //Overwrite any values with this defaults object
292
+ *
293
+ * @return {Object}
294
+ */
295
+ var getDefaultBarcodeColumn = exports.getDefaultBarcodeColumn = function getDefaultBarcodeColumn() {
296
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
297
+ return _objectSpread({
298
+ _id: (0, _generateObjectId["default"])(),
299
+ type: _FieldTableColumnTypes["default"].barcode,
300
+ title: 'Barcode Column',
301
+ width: 200,
302
+ deleted: false
303
+ }, defaults);
304
+ };
305
+
306
+ /**
307
+ * Get default signature column for table field
308
+ *
309
+ * @param {Object} defaults //Overwrite any values with this defaults object
310
+ *
311
+ * @return {Object}
312
+ */
313
+ var getDefaultSignatureColumn = exports.getDefaultSignatureColumn = function getDefaultSignatureColumn() {
314
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
315
+ return _objectSpread({
316
+ _id: (0, _generateObjectId["default"])(),
317
+ type: _FieldTableColumnTypes["default"].signature,
318
+ title: 'Signature Column',
319
+ width: 200,
320
+ deleted: false
321
+ }, defaults);
322
+ };
323
+
324
+ /**
325
+ * Get default block column for table field
326
+ *
327
+ * @param {Object} defaults //Overwrite any values with this defaults object
328
+ *
329
+ * @return {Object}
330
+ */
331
+ var getDefaultBlockColumn = exports.getDefaultBlockColumn = function getDefaultBlockColumn() {
332
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
333
+ return _objectSpread({
334
+ _id: (0, _generateObjectId["default"])(),
335
+ type: _FieldTableColumnTypes["default"].block,
336
+ title: 'Block Column',
337
+ width: 200,
338
+ deleted: false
339
+ }, defaults);
340
+ };
341
+
342
+ /**
343
+ * Get default Number column for table field
344
+ *
345
+ * @param {Object} defaults //Overwrite any values with this defaults object
346
+ *
347
+ * @return {Object}
348
+ */
349
+ var getDefaultNumberColumn = exports.getDefaultNumberColumn = function getDefaultNumberColumn() {
350
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
351
+ return _objectSpread({
352
+ _id: (0, _generateObjectId["default"])(),
353
+ type: _FieldTableColumnTypes["default"].number,
354
+ title: 'Number Column',
355
+ deleted: false,
356
+ width: 200
357
+ }, defaults);
358
+ };
359
+
360
+ /**
361
+ * Get default Number column for table field
362
+ *
363
+ * @param {Object} defaults //Overwrite any values with this defaults object
364
+ *
365
+ * @return {Object}
366
+ */
367
+ var getDefaultDateColumn = exports.getDefaultDateColumn = function getDefaultDateColumn() {
368
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
369
+ return _objectSpread({
370
+ _id: (0, _generateObjectId["default"])(),
371
+ type: _FieldTableColumnTypes["default"].date,
372
+ title: 'Date Column',
373
+ deleted: false,
374
+ width: 200
375
+ }, defaults);
376
+ };
377
+
265
378
  /**
266
379
  * Get default dropdown column for table field
267
380
  *
@@ -298,10 +411,27 @@ var getDefaultDropdownColumn = exports.getDefaultDropdownColumn = function getDe
298
411
  title: 'Dropdown Column',
299
412
  deleted: false,
300
413
  width: 200,
301
- options: options,
302
- optionOrder: options.map(function (option) {
303
- return option._id;
304
- })
414
+ options: options
415
+ }, defaults);
416
+ };
417
+
418
+ /**
419
+ * Get default MultiSelect column for table field
420
+ *
421
+ * @param {Object} defaults //Overwrite any values with this defaults object
422
+ *
423
+ * @return {Object}
424
+ */
425
+ var getDefaultMultiSelectColumn = exports.getDefaultMultiSelectColumn = function getDefaultMultiSelectColumn() {
426
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
427
+ var options = defaults.options || [getDefaultColumnOption('Option 1', '#f0f0f0'), getDefaultColumnOption('Option 2', '#f0f0f0'), getDefaultColumnOption('Option 3', '#f0f0f0')];
428
+ return _objectSpread({
429
+ _id: (0, _generateObjectId["default"])(),
430
+ type: _FieldTableColumnTypes["default"].multiSelect,
431
+ title: 'MultiSelect Column',
432
+ deleted: false,
433
+ width: 200,
434
+ options: options
305
435
  }, defaults);
306
436
  };
307
437
 
@@ -629,12 +759,13 @@ var generateTableLookup = exports.generateTableLookup = function generateTableLo
629
759
  });
630
760
  var formulaCells = [];
631
761
  tableRows.forEach(function (row, rowIndex) {
762
+ // eslint-disable-next-line no-console
763
+ if (!(row !== null && row !== void 0 && row.cells)) console.warn("Missing 'cells' in row: ".concat(row._id));
632
764
  tableColumns.forEach(function (column) {
633
765
  if (!column.operand) return;
634
766
  if (!row) console.warn("Row via column ".concat(column === null || column === void 0 ? void 0 : column._id, " is undefined."));
635
- if (!(row !== null && row !== void 0 && row.cells)) console.warn("Row ".concat(row === null || row === void 0 ? void 0 : row._id, " is missing cells."));
636
767
  var cellKey = "".concat(column.operand).concat(rowIndex + 1);
637
- var cellRawValue = row !== null && row !== void 0 && row.cells && row.cells[column._id] ? row.cells[column._id] : undefined;
768
+ var cellRawValue = row && row !== null && row !== void 0 && row.cells && row.cells[column._id] ? row.cells[column._id] : undefined;
638
769
  var cellValue;
639
770
  if (cellRawValue && typeof cellRawValue === 'string') cellValue = cellRawValue.trim();
640
771
  if (cellRawValue && typeof cellRawValue === 'number') cellValue = cellRawValue.toString();
@@ -1096,7 +1227,10 @@ var _default = exports["default"] = {
1096
1227
  getRowMap: getRowMap,
1097
1228
  getDefaultColumnOption: getDefaultColumnOption,
1098
1229
  getDefaultTextColumn: getDefaultTextColumn,
1230
+ getDefaultBarcodeColumn: getDefaultBarcodeColumn,
1231
+ getDefaultBlockColumn: getDefaultBlockColumn,
1099
1232
  getDefaultDropdownColumn: getDefaultDropdownColumn,
1233
+ getDefaultMultiSelectColumn: getDefaultMultiSelectColumn,
1100
1234
  getColumnOrder: getColumnOrder,
1101
1235
  getColumns: getColumns,
1102
1236
  sortColumns: sortColumns,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.9.1",
3
+ "version": "2.10.0",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -9,7 +9,7 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "clean": "rm -rf dist",
12
- "build-src": "NODE_ENV=production babel src --out-dir dist --extensions '.js,.jsx' --ignore 'src/testUtils/*','src/**/*.stories.js','src/**/*.test.js','src/lib/**/*.test.js','src/**/__snapshots__','src/**/__mocks__'",
12
+ "build-src": "cross-env NODE_ENV=production babel src --out-dir dist --extensions '.js,.jsx' --ignore 'src/testUtils/*','src/**/*.stories.js','src/**/*.test.js','src/lib/**/*.test.js','src/**/__snapshots__','src/**/__mocks__'",
13
13
  "build": "npm run clean && npm run build-src",
14
14
  "prepare": "npm run build",
15
15
  "publish-beta": "npm publish --tag beta",
@@ -37,6 +37,7 @@
37
37
  "@babel/plugin-transform-runtime": "^7.12.10",
38
38
  "@babel/preset-env": "^7.12.11",
39
39
  "babel-eslint": "^10.1.0",
40
+ "cross-env": "^7.0.3",
40
41
  "eslint": "^7.18.0",
41
42
  "eslint-config-airbnb": "^18.2.1",
42
43
  "eslint-plugin-import": "^2.22.1",
@@ -48,6 +49,7 @@
48
49
  "dependencies": {
49
50
  "@babel/polyfill": "^7.12.1",
50
51
  "@builttocreate/hot-formula-parser": "^5.0.1",
52
+ "cross-env": "^7.0.3",
51
53
  "moment": "^2.29.4"
52
54
  },
53
55
  "jest": {