@builttocreate/engine-utils 1.4.2 → 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/dist/index.js CHANGED
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "CALL_API", {
17
17
  return _reduxApiMiddleware.CALL_API;
18
18
  }
19
19
  });
20
- exports.activityHelper = exports.fieldHelper = exports.chartHelper = exports.tableHelper = exports["default"] = void 0;
20
+ exports.paginationHelper = exports.activityHelper = exports.fieldHelper = exports.chartHelper = exports.tableHelper = exports["default"] = void 0;
21
21
 
22
22
  var tableHelper = _interopRequireWildcard(require("./tableHelper"));
23
23
 
@@ -37,12 +37,16 @@ exports.activityHelper = activityHelper;
37
37
 
38
38
  var _reduxApiMiddleware = _interopRequireWildcard(require("./reduxApiMiddleware"));
39
39
 
40
+ var paginationHelper = _interopRequireWildcard(require("./paginationHelper"));
41
+
42
+ exports.paginationHelper = paginationHelper;
40
43
  var _default = {
41
44
  tableHelper: tableHelper,
42
45
  chartHelper: chartHelper,
43
46
  fieldHelper: fieldHelper,
44
47
  activityHelper: activityHelper,
45
48
  reduxApiMiddleware: _reduxApiMiddleware["default"],
46
- CALL_API: _reduxApiMiddleware.CALL_API
49
+ CALL_API: _reduxApiMiddleware.CALL_API,
50
+ paginationHelper: paginationHelper
47
51
  };
48
52
  exports["default"] = _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.normalizeArray = void 0;
7
+
8
+ /**
9
+ * Normalize an array of objects
10
+ *
11
+ * @param {String|Func} key
12
+ * @param {Array} array
13
+ * @param {Function} keyExtractor //optional
14
+ *
15
+ * Example Input:
16
+ * param key = 'name';
17
+ * param array = [{name: 'frank', age: 19}, {name: 'joe', age: 22}, {name: 'bob', age: 44}]
18
+ *
19
+ * Example return:
20
+ * {
21
+ * 'frank': {name: 'frank', age: 19} ,
22
+ * 'joe': {name: 'joe', age: 22} ,
23
+ * 'bob': {name: 'bob', age: 44} ,
24
+ * }
25
+ */
26
+ var normalizeArray = function normalizeArray(key, array) {
27
+ var obj = {};
28
+ array.forEach(function (e) {
29
+ var objectKey = typeof key === 'function' ? key(e) : e[key];
30
+ obj[objectKey] = e;
31
+ });
32
+ return obj;
33
+ };
34
+
35
+ exports.normalizeArray = normalizeArray;
36
+ var _default = {
37
+ normalizeArray: normalizeArray
38
+ };
39
+ exports["default"] = _default;
@@ -23,7 +23,7 @@ var callApiMiddleware = function callApiMiddleware(_ref) {
23
23
  getState = _ref.getState;
24
24
 
25
25
  /**
26
- * @param next //Callback for the action
26
+ * @param next //Callback for the action
27
27
  * @param action //Action object
28
28
  *
29
29
  * async action example: {
@@ -37,7 +37,7 @@ var callApiMiddleware = function callApiMiddleware(_ref) {
37
37
  */
38
38
  return function (next) {
39
39
  return function (action) {
40
- var callApi = action[CALL_API]; //If callApi is not defined then it is a normal action (synchronous) pass it through
40
+ var callApi = action[CALL_API]; //If callApi is not defined then it is a normal action (synchronous) pass it through
41
41
 
42
42
  if (typeof callApi === 'undefined') return next(action);
43
43
  var types = callApi.types,
@@ -51,7 +51,7 @@ var callApiMiddleware = function callApiMiddleware(_ref) {
51
51
  * All async actions should have three action types: requested, success, & failure
52
52
  * All actions should be strings.
53
53
  *
54
- * apiCall:
54
+ * apiCall:
55
55
  * All aysnc actions should have an apiCall function
56
56
  */
57
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "1.4.2",
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": [