@builttocreate/engine-utils 1.5.0 → 1.5.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.
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var customerGroup = 'customerGroup';
8
+ var customer = 'customer';
9
+ var _default = {
10
+ customerGroup: customerGroup,
11
+ customer: customer
12
+ };
13
+ exports["default"] = _default;
@@ -5,12 +5,24 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.getMultiSelectFieldValue = exports.getChartFieldValue = void 0;
8
+ exports["default"] = exports.getImportFieldValues = exports.getDefaultFieldValuesFromTemplate = exports.getMultiSelectFieldValue = exports.getChartFieldValue = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
11
 
10
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
13
 
12
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
15
 
16
+ var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
17
+
18
+ var _chartHelper = require("./chartHelper");
19
+
20
+ var _tableHelper = require("./tableHelper");
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
14
26
  /**
15
27
  * Get chart field line data
16
28
  *
@@ -50,10 +62,127 @@ var getMultiSelectFieldValue = function getMultiSelectFieldValue(value) {
50
62
  return [];
51
63
  }
52
64
  };
65
+ /**
66
+ * Get default field values from template
67
+ *
68
+ * @param {Object} template
69
+ * @param {String} defaultUserId
70
+ */
71
+
53
72
 
54
73
  exports.getMultiSelectFieldValue = getMultiSelectFieldValue;
74
+
75
+ var getDefaultFieldValuesFromTemplate = function getDefaultFieldValuesFromTemplate(template, defaultUserId) {
76
+ var fields = {};
77
+ template.fields.forEach(function (field) {
78
+ if (!field || field.deleted || field.type === _FieldTypes["default"].uniqueId || field.type === _FieldTypes["default"].task || field.type === _FieldTypes["default"].signature || field.type === _FieldTypes["default"].file || field.type === _FieldTypes["default"].image || field.type === _FieldTypes["default"].richText) {
79
+ return;
80
+ }
81
+
82
+ if (field.value) {
83
+ fields[field._id] = field.value;
84
+ }
85
+
86
+ if (field.type === _FieldTypes["default"].table) {
87
+ fields[field._id] = field.value ? JSON.stringify((0, _tableHelper.getRows)(field.value)) : JSON.stringify([(0, _tableHelper.getDefaultRow)()]);
88
+ }
89
+
90
+ if (field.type === _FieldTypes["default"].chart) {
91
+ fields[field._id] = JSON.stringify([(0, _chartHelper.getDefaultLine)()]);
92
+ }
93
+
94
+ if (field.type === _FieldTypes["default"].inputGroup) {
95
+ var newRow = (0, _tableHelper.getDefaultRow)();
96
+ field.tableColumns.forEach(function (column) {
97
+ if (column.value) newRow.cells[column._id] = column.value;
98
+ });
99
+ fields[field._id] = JSON.stringify([newRow]);
100
+ }
101
+
102
+ if (field.type === _FieldTypes["default"].multiSelect) {
103
+ fields[field._id] = field.value && Array.isArray(field.value) ? field.value.join(',') : '';
104
+ }
105
+
106
+ if (field.type === _FieldTypes["default"].user) {
107
+ fields[field._id] = field.value || defaultUserId;
108
+ }
109
+
110
+ if (field.type === _FieldTypes["default"].date) {
111
+ fields[field._id] = field.value || new Date().getTime();
112
+ }
113
+ });
114
+ return fields;
115
+ };
116
+ /**
117
+ * Get import field values from source document for target document
118
+ *
119
+ * @param {Object} template
120
+ * @param {Object} importSource //Document source you're importing
121
+ * @param {Object} importTarget //Document that is having it's fields overwritten by import source
122
+ */
123
+
124
+
125
+ exports.getDefaultFieldValuesFromTemplate = getDefaultFieldValuesFromTemplate;
126
+
127
+ var getImportFieldValues = function getImportFieldValues(template, importSource, importTarget) {
128
+ var fields = {};
129
+ template.fields.forEach(function (field) {
130
+ //Document field value that is being imported
131
+ var sourceFieldValue = importSource.fields[field._id]; //Document field value that is being overwritten
132
+
133
+ var targetFieldValue = importTarget.fields[field._id];
134
+
135
+ if (field.deleted || field.blockImport || field.type === _FieldTypes["default"].uniqueId || field.type === _FieldTypes["default"].task || field.type === _FieldTypes["default"].signature || field.type === _FieldTypes["default"].file || field.type === _FieldTypes["default"].richText) {
136
+ return;
137
+ } else if ((field.type === _FieldTypes["default"].table || field.type === _FieldTypes["default"].inputGroup) && sourceFieldValue) {
138
+ var nextTableFieldValues = [];
139
+ var rows = (0, _tableHelper.getRows)(sourceFieldValue);
140
+ var currentDocRows = targetFieldValue ? (0, _tableHelper.getRows)(targetFieldValue) : [];
141
+ rows.forEach(function (row, i) {
142
+ var newRow = _objectSpread(_objectSpread({}, row), {}, {
143
+ cells: {}
144
+ });
145
+
146
+ field.tableColumns.forEach(function (column) {
147
+ /**
148
+ * Option 1: Add cell value from source document
149
+ */
150
+ if (!column.blockImport) {
151
+ newRow.cells[column._id] = row.cells[column._id] || '';
152
+ }
153
+ /**
154
+ * Option 2: If column has block import enabled then maintain any values
155
+ * already set in the importTarget document.
156
+ */
157
+ else if (column.blockImport && currentDocRows[i] && currentDocRows[i].cells[column._id]) {
158
+ newRow.cells[column._id] = currentDocRows[i].cells[column._id];
159
+ }
160
+ /**
161
+ * Option 3: If column has block import enabled then add default column value
162
+ */
163
+ else if (column.blockImport && column.value) {
164
+ newRow.cells[column._id] = column.value;
165
+ }
166
+ });
167
+ nextTableFieldValues.push(newRow);
168
+ });
169
+ fields[field._id] = JSON.stringify(nextTableFieldValues);
170
+ } else if (field.type === _FieldTypes["default"].chart && sourceFieldValue) {
171
+ fields[field._id] = (0, _typeof2["default"])(sourceFieldValue) === 'object' ? JSON.stringify(sourceFieldValue) : sourceFieldValue;
172
+ } else if (field.type === _FieldTypes["default"].multiSelect && sourceFieldValue) {
173
+ fields[field._id] = typeof sourceFieldValue !== 'string' ? sourceFieldValue.join(',') : sourceFieldValue;
174
+ } else if (sourceFieldValue) {
175
+ fields[field._id] = sourceFieldValue;
176
+ }
177
+ });
178
+ return fields;
179
+ };
180
+
181
+ exports.getImportFieldValues = getImportFieldValues;
55
182
  var _default = {
56
183
  getChartFieldValue: getChartFieldValue,
57
- getMultiSelectFieldValue: getMultiSelectFieldValue
184
+ getMultiSelectFieldValue: getMultiSelectFieldValue,
185
+ getDefaultFieldValuesFromTemplate: getDefaultFieldValuesFromTemplate,
186
+ getImportFieldValues: getImportFieldValues
58
187
  };
59
188
  exports["default"] = _default;
@@ -685,13 +685,15 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
685
685
  exports.generateInputGroupFields = generateInputGroupFields;
686
686
 
687
687
  var handleTableCellChange = function handleTableCellChange(rows, rowId, columnId, val, callback) {
688
- var row = rows.find(function (row) {
688
+ var targetRowIndex = rows.findIndex(function (row) {
689
689
  return row._id === rowId;
690
690
  });
691
+ var row = rows[targetRowIndex];
691
692
  var cells = row ? row.cells : {}; //Only save data if value has changed
692
693
 
693
694
  if (cells[columnId] !== val && callback) {
694
695
  callback({
696
+ targetRowIndex: targetRowIndex,
695
697
  row: {
696
698
  _id: rowId,
697
699
  cells: (0, _defineProperty2["default"])({}, columnId, val)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [