@builttocreate/engine-utils 2.8.0 → 2.9.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.
@@ -1,50 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.isTargetOptionDeleted = exports.isFieldEmpty = exports.handleMultiSelectOptionToggle = exports.getTemplateWithLookups = exports.getMultiSelectFieldValue = exports.getImportFieldValues = exports.getDefaultOption = exports.getDefaultFieldValuesFromTemplate = exports.getChartFieldValue = exports["default"] = void 0;
9
-
10
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
11
  var _chartHelper = require("./chartHelper");
17
-
18
12
  var _tableHelper = require("./tableHelper");
19
-
20
13
  var _generateObjectId = _interopRequireDefault(require("./generateObjectId"));
21
-
22
14
  var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
23
-
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
-
15
+ 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; }
16
+ 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; }
28
17
  /**
29
18
  * Get chart field line data
30
19
  *
31
20
  * @param (String|Object) value
32
21
  */
33
- var getChartFieldValue = function getChartFieldValue(value) {
22
+ var getChartFieldValue = exports.getChartFieldValue = function getChartFieldValue(value) {
34
23
  var parsedData = value || [];
35
-
36
24
  if (value && typeof value === 'string') {
37
25
  parsedData = JSON.parse(value);
38
26
  }
39
-
40
27
  if (parsedData && parsedData.length > 0) {
41
28
  parsedData = parsedData.filter(function (line) {
42
29
  return !line.deleted;
43
30
  });
44
31
  }
45
-
46
32
  return (0, _toConsumableArray2["default"])(parsedData);
47
33
  };
34
+
48
35
  /**
49
36
  * Get default option
50
37
  *
@@ -53,28 +40,21 @@ var getChartFieldValue = function getChartFieldValue(value) {
53
40
  * @param {String} value
54
41
  * @return {Object}
55
42
  */
56
-
57
-
58
- exports.getChartFieldValue = getChartFieldValue;
59
-
60
- var getDefaultOption = function getDefaultOption(value) {
43
+ var getDefaultOption = exports.getDefaultOption = function getDefaultOption(value) {
61
44
  return {
62
45
  _id: (0, _generateObjectId["default"])(),
63
46
  value: value || 'Option',
64
47
  deleted: false
65
48
  };
66
49
  };
50
+
67
51
  /**
68
52
  * Get multiselect field value
69
53
  *
70
54
  * @param (String|Array) value
71
55
  * @return Array
72
56
  */
73
-
74
-
75
- exports.getDefaultOption = getDefaultOption;
76
-
77
- var getMultiSelectFieldValue = function getMultiSelectFieldValue(value) {
57
+ var getMultiSelectFieldValue = exports.getMultiSelectFieldValue = function getMultiSelectFieldValue(value) {
78
58
  if (value && typeof value === 'string') {
79
59
  return value.replace(/\s/g, '').split(','); //Legacy (document v1) support for multiSelect value
80
60
  } else if (value && Array.isArray(value)) {
@@ -83,6 +63,7 @@ var getMultiSelectFieldValue = function getMultiSelectFieldValue(value) {
83
63
  return [];
84
64
  }
85
65
  };
66
+
86
67
  /**
87
68
  * Update the selected options.
88
69
  *
@@ -90,16 +71,11 @@ var getMultiSelectFieldValue = function getMultiSelectFieldValue(value) {
90
71
  * @param (Array) selectedOptions //[optionId, optionId, ...]
91
72
  * @param (String) optionId //Option that is being toggled
92
73
  */
93
-
94
-
95
- exports.getMultiSelectFieldValue = getMultiSelectFieldValue;
96
-
97
- var handleMultiSelectOptionToggle = function handleMultiSelectOptionToggle(multi) {
74
+ var handleMultiSelectOptionToggle = exports.handleMultiSelectOptionToggle = function handleMultiSelectOptionToggle(multi) {
98
75
  var selectedOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
99
76
  var optionId = arguments.length > 2 ? arguments[2] : undefined;
100
77
  var nextSelection = (0, _toConsumableArray2["default"])(selectedOptions);
101
78
  var optionIndex = nextSelection.indexOf(optionId);
102
-
103
79
  if (multi) {
104
80
  if (optionIndex !== -1) {
105
81
  nextSelection.splice(optionIndex, 1);
@@ -114,38 +90,30 @@ var handleMultiSelectOptionToggle = function handleMultiSelectOptionToggle(multi
114
90
  nextSelection = [optionId];
115
91
  }
116
92
  }
117
-
118
93
  return nextSelection;
119
94
  };
95
+
120
96
  /**
121
97
  * Get default field values from template
122
98
  *
123
99
  * @param {Object} template
124
100
  * @param {String} defaultUserId
125
101
  */
126
-
127
-
128
- exports.handleMultiSelectOptionToggle = handleMultiSelectOptionToggle;
129
-
130
- var getDefaultFieldValuesFromTemplate = function getDefaultFieldValuesFromTemplate(template, defaultUserId) {
102
+ var getDefaultFieldValuesFromTemplate = exports.getDefaultFieldValuesFromTemplate = function getDefaultFieldValuesFromTemplate(template, defaultUserId) {
131
103
  var fields = {};
132
104
  template.fields.forEach(function (field) {
133
105
  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) {
134
106
  return;
135
107
  }
136
-
137
108
  if (field.value) {
138
109
  fields[field._id] = field.value;
139
110
  }
140
-
141
111
  if (field.type === _FieldTypes["default"].table) {
142
112
  fields[field._id] = field.value ? JSON.stringify((0, _tableHelper.getRows)(field.value)) : JSON.stringify([(0, _tableHelper.getDefaultRow)()]);
143
113
  }
144
-
145
114
  if (field.type === _FieldTypes["default"].chart) {
146
115
  fields[field._id] = JSON.stringify([(0, _chartHelper.getDefaultLine)()]);
147
116
  }
148
-
149
117
  if (field.type === _FieldTypes["default"].inputGroup) {
150
118
  var newRow = (0, _tableHelper.getDefaultRow)();
151
119
  field.tableColumns.forEach(function (column) {
@@ -153,21 +121,19 @@ var getDefaultFieldValuesFromTemplate = function getDefaultFieldValuesFromTempla
153
121
  });
154
122
  fields[field._id] = JSON.stringify([newRow]);
155
123
  }
156
-
157
124
  if (field.type === _FieldTypes["default"].multiSelect) {
158
125
  fields[field._id] = field.value && Array.isArray(field.value) ? field.value.join(',') : '';
159
126
  }
160
-
161
127
  if (field.type === _FieldTypes["default"].user) {
162
128
  fields[field._id] = field.value || defaultUserId;
163
129
  }
164
-
165
130
  if (field.type === _FieldTypes["default"].date) {
166
131
  fields[field._id] = field.blockAutoPopulate ? '' : field.value || new Date().getTime();
167
132
  }
168
133
  });
169
134
  return fields;
170
135
  };
136
+
171
137
  /**
172
138
  * Get import field values from source document for target document
173
139
  *
@@ -175,18 +141,14 @@ var getDefaultFieldValuesFromTemplate = function getDefaultFieldValuesFromTempla
175
141
  * @param {Object} importSource //Document source you're importing
176
142
  * @param {Object} importTarget //Document that is having it's fields overwritten by import source
177
143
  */
178
-
179
-
180
- exports.getDefaultFieldValuesFromTemplate = getDefaultFieldValuesFromTemplate;
181
-
182
- var getImportFieldValues = function getImportFieldValues(template, importSource, importTarget) {
144
+ var getImportFieldValues = exports.getImportFieldValues = function getImportFieldValues(template, importSource, importTarget) {
183
145
  var fields = {};
184
146
  template.fields.forEach(function (field) {
185
147
  //Document field value that is being imported
186
- var sourceFieldValue = importSource.fields[field._id]; //Document field value that is being overwritten
148
+ var sourceFieldValue = importSource.fields[field._id];
187
149
 
150
+ //Document field value that is being overwritten
188
151
  var targetFieldValue = importTarget.fields[field._id];
189
-
190
152
  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 || field.type === _FieldTypes["default"].image) {
191
153
  return;
192
154
  } else if ((field.type === _FieldTypes["default"].table || field.type === _FieldTypes["default"].inputGroup) && sourceFieldValue) {
@@ -197,7 +159,6 @@ var getImportFieldValues = function getImportFieldValues(template, importSource,
197
159
  var newRow = _objectSpread(_objectSpread({}, row), {}, {
198
160
  cells: {}
199
161
  });
200
-
201
162
  field.tableColumns.forEach(function (column) {
202
163
  /**
203
164
  * Option 1: Add cell value from source document
@@ -208,14 +169,12 @@ var getImportFieldValues = function getImportFieldValues(template, importSource,
208
169
  /**
209
170
  * Option 2: If column has block import enabled then maintain any values
210
171
  * already set in the importTarget document.
211
- */
212
- else if (column.blockImport && currentDocRows[i] && currentDocRows[i].cells[column._id]) {
172
+ */else if (column.blockImport && currentDocRows[i] && currentDocRows[i].cells[column._id]) {
213
173
  newRow.cells[column._id] = currentDocRows[i].cells[column._id];
214
174
  }
215
175
  /**
216
176
  * Option 3: If column has block import enabled then add default column value
217
- */
218
- else if (column.blockImport && column.value) {
177
+ */else if (column.blockImport && column.value) {
219
178
  newRow.cells[column._id] = column.value;
220
179
  }
221
180
  });
@@ -232,6 +191,7 @@ var getImportFieldValues = function getImportFieldValues(template, importSource,
232
191
  });
233
192
  return fields;
234
193
  };
194
+
235
195
  /**
236
196
  * Generate optionsLookup and fieldLookup for template fields
237
197
  * Note: Options lookup will be used by dropdown, mutliSelect, table and inputGroup fields
@@ -240,47 +200,38 @@ var getImportFieldValues = function getImportFieldValues(template, importSource,
240
200
  * @returns template
241
201
  */
242
202
 
243
-
244
- exports.getImportFieldValues = getImportFieldValues;
245
-
246
- var getTemplateWithLookups = function getTemplateWithLookups(template) {
203
+ var getTemplateWithLookups = exports.getTemplateWithLookups = function getTemplateWithLookups(template) {
247
204
  var nextTemplate = _objectSpread({}, template);
248
-
249
205
  nextTemplate.fields = [];
250
206
  nextTemplate.fieldLookup = {};
251
207
  template.fields.forEach(function (field) {
252
208
  var nextField = _objectSpread({}, field);
253
-
254
209
  nextField.optionsLookup = {};
255
-
256
210
  if (nextField.options) {
257
211
  nextField.options.forEach(function (option) {
258
212
  return nextField.optionsLookup[option._id] = option;
259
213
  });
260
214
  }
261
-
262
215
  if (nextField.tableColumns) {
263
216
  nextField.tableColumnsLookup = {};
264
217
  nextField.tableColumns.forEach(function (column, index) {
265
218
  var nextColumn = _objectSpread(_objectSpread({}, column), {}, {
266
219
  optionsLookup: {}
267
220
  });
268
-
269
221
  if (nextColumn.options) {
270
222
  nextColumn.options.forEach(function (option) {
271
223
  return nextColumn.optionsLookup[option._id] = option;
272
224
  });
273
225
  }
274
-
275
226
  nextField.tableColumns[index] = nextColumn;
276
227
  });
277
228
  }
278
-
279
229
  nextTemplate.fields.push(nextField);
280
230
  nextTemplate.fieldLookup[nextField._id] = nextField;
281
231
  });
282
232
  return nextTemplate;
283
233
  };
234
+
284
235
  /**
285
236
  * This method checks if the field passed via input is empty by checking
286
237
  * the field.value.
@@ -288,12 +239,8 @@ var getTemplateWithLookups = function getTemplateWithLookups(template) {
288
239
  * @returns
289
240
  */
290
241
 
291
-
292
- exports.getTemplateWithLookups = getTemplateWithLookups;
293
-
294
- var isFieldEmpty = function isFieldEmpty(fieldType, fieldValue, fieldOptions) {
242
+ var isFieldEmpty = exports.isFieldEmpty = function isFieldEmpty(fieldType, fieldValue, fieldOptions) {
295
243
  var isEmpty = false;
296
-
297
244
  if (fieldType === _FieldTypes["default"].text && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length === 0)) {
298
245
  isEmpty = true;
299
246
  } else if (fieldType === _FieldTypes["default"].textarea && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length === 0)) {
@@ -319,20 +266,16 @@ var isFieldEmpty = function isFieldEmpty(fieldType, fieldValue, fieldOptions) {
319
266
  }).length === 0)) {
320
267
  isEmpty = true;
321
268
  }
322
-
323
269
  return isEmpty;
324
270
  };
271
+
325
272
  /**
326
273
  * This function checks whether an option associated with multiselect or dropdown
327
274
  * field is deleted.
328
275
  * @param {*} value // value
329
276
  * @param {*} options
330
277
  */
331
-
332
-
333
- exports.isFieldEmpty = isFieldEmpty;
334
-
335
- var isTargetOptionDeleted = function isTargetOptionDeleted(value, options) {
278
+ var isTargetOptionDeleted = exports.isTargetOptionDeleted = function isTargetOptionDeleted(value, options) {
336
279
  /***
337
280
  * We are converting the value that is passed in to array since
338
281
  * this method is used by dropdown field and multiSelect field
@@ -351,9 +294,7 @@ var isTargetOptionDeleted = function isTargetOptionDeleted(value, options) {
351
294
  var result = !(undeletedOptions.length > 0);
352
295
  return result;
353
296
  };
354
-
355
- exports.isTargetOptionDeleted = isTargetOptionDeleted;
356
- var _default = {
297
+ var _default = exports["default"] = {
357
298
  getDefaultOption: getDefaultOption,
358
299
  getChartFieldValue: getChartFieldValue,
359
300
  getMultiSelectFieldValue: getMultiSelectFieldValue,
@@ -363,5 +304,4 @@ var _default = {
363
304
  getTemplateWithLookups: getTemplateWithLookups,
364
305
  isFieldEmpty: isFieldEmpty,
365
306
  isTargetOptionDeleted: isTargetOptionDeleted
366
- };
367
- exports["default"] = _default;
307
+ };
@@ -1,34 +1,26 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.getGroupedFilesByType = exports["default"] = void 0;
9
-
10
8
  var _FileTypes = _interopRequireDefault(require("./constants/FileTypes"));
11
-
12
- var getGroupedFilesByType = function getGroupedFilesByType(files) {
9
+ var getGroupedFilesByType = exports.getGroupedFilesByType = function getGroupedFilesByType(files) {
13
10
  var images = [];
14
11
  var other = [];
15
12
  var signatures = [];
16
-
17
13
  if (files) {
18
14
  files.forEach(function (file) {
19
15
  if (file.deleted) return;else if (file.type === _FileTypes["default"].signature) signatures.push(file);else if (/\.png|\.jpg|\.jpeg/gi.test(file.name)) images.push(file);else other.push(file);
20
16
  });
21
17
  }
22
-
23
18
  return {
24
19
  images: images,
25
20
  signatures: signatures,
26
21
  other: other
27
22
  };
28
23
  };
29
-
30
- exports.getGroupedFilesByType = getGroupedFilesByType;
31
- var _default = {
24
+ var _default = exports["default"] = {
32
25
  getGroupedFilesByType: getGroupedFilesByType
33
- };
34
- exports["default"] = _default;
26
+ };
@@ -4,9 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
-
8
7
  //Found this ObjectId generator here: https://stackoverflow.com/a/37438675
9
- var _default = function _default() {
8
+ var _default = exports["default"] = function _default() {
10
9
  var m = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math;
11
10
  var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Date;
12
11
  var h = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 16;
@@ -16,6 +15,4 @@ var _default = function _default() {
16
15
  return s(d.now() / 1000) + ' '.repeat(h).replace(/./g, function () {
17
16
  return s(m.random() * h);
18
17
  });
19
- };
20
-
21
- exports["default"] = _default;
18
+ };
package/dist/index.js CHANGED
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -47,54 +45,30 @@ Object.defineProperty(exports, "validateObjectId", {
47
45
  return _validateObjectId["default"];
48
46
  }
49
47
  });
50
-
51
48
  var tableHelper = _interopRequireWildcard(require("./tableHelper"));
52
-
53
49
  exports.tableHelper = tableHelper;
54
-
55
50
  var chartHelper = _interopRequireWildcard(require("./chartHelper"));
56
-
57
51
  exports.chartHelper = chartHelper;
58
-
59
52
  var fieldHelper = _interopRequireWildcard(require("./fieldHelper"));
60
-
61
53
  exports.fieldHelper = fieldHelper;
62
-
63
54
  var activityHelper = _interopRequireWildcard(require("./activityHelper"));
64
-
65
55
  exports.activityHelper = activityHelper;
66
-
67
56
  var fileHelper = _interopRequireWildcard(require("./fileHelper"));
68
-
69
57
  exports.fileHelper = fileHelper;
70
-
71
58
  var roleHelper = _interopRequireWildcard(require("./roleHelper"));
72
-
73
59
  exports.roleHelper = roleHelper;
74
-
75
60
  var joyDocHelper = _interopRequireWildcard(require("./joyDocHelper"));
76
-
77
61
  exports.joyDocHelper = joyDocHelper;
78
-
79
62
  var _reduxApiMiddleware = _interopRequireWildcard(require("./reduxApiMiddleware"));
80
-
81
63
  var paginationHelper = _interopRequireWildcard(require("./paginationHelper"));
82
-
83
64
  exports.paginationHelper = paginationHelper;
84
-
85
65
  var _changedKeys = _interopRequireDefault(require("./changedKeys"));
86
-
87
66
  var _Roles = _interopRequireDefault(require("./constants/Roles"));
88
-
89
67
  var _generateObjectId = _interopRequireDefault(require("./generateObjectId"));
90
-
91
68
  var _validateObjectId = _interopRequireDefault(require("./validateObjectId"));
92
-
93
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
94
-
95
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
96
-
97
- var _default = {
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; }
71
+ var _default = exports["default"] = {
98
72
  fileHelper: fileHelper,
99
73
  tableHelper: tableHelper,
100
74
  chartHelper: chartHelper,
@@ -109,5 +83,4 @@ var _default = {
109
83
  Roles: _Roles["default"],
110
84
  generateObjectId: _generateObjectId["default"],
111
85
  validateObjectId: _validateObjectId["default"]
112
- };
113
- exports["default"] = _default;
86
+ };