@builttocreate/engine-utils 1.5.0 → 1.5.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.
@@ -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;
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.1",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [