@builttocreate/engine-utils 2.4.0-beta.0 → 2.4.0-beta.0.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.
@@ -7,7 +7,8 @@ exports["default"] = void 0;
7
7
  // Display Fields
8
8
  var uniqueId = 'uniqueId';
9
9
  var image = 'image';
10
- var richText = 'richText'; // Data Fields
10
+ var richText = 'richText';
11
+ var block = 'block'; // Data Fields
11
12
 
12
13
  var text = 'text';
13
14
  var textarea = 'textarea';
@@ -25,6 +26,7 @@ var chart = 'chart';
25
26
  var types = {
26
27
  uniqueId: uniqueId,
27
28
  image: image,
29
+ block: block,
28
30
  richText: richText,
29
31
  text: text,
30
32
  textarea: textarea,
@@ -44,6 +46,7 @@ types.all = Object.keys(types);
44
46
  types.titles = {
45
47
  uniqueId: 'Auto Number',
46
48
  image: 'Image',
49
+ block: 'Display Text',
47
50
  richText: 'Rich Text',
48
51
  text: 'Short Text',
49
52
  textarea: 'Long Text',
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.handleMultiSelectOptionToggle = exports.getTemplateWithLookups = exports.getMultiSelectFieldValue = exports.getImportFieldValues = exports.getDefaultOption = exports.getDefaultFieldValuesFromTemplate = exports.getChartFieldValue = exports["default"] = void 0;
8
+ exports.isTargetOptionDeleted = exports.isFieldEmpty = exports.handleMultiSelectOptionToggle = exports.getTemplateWithLookups = exports.getMultiSelectFieldValue = exports.getImportFieldValues = exports.getDefaultOption = exports.getDefaultFieldValuesFromTemplate = exports.getChartFieldValue = exports["default"] = void 0;
9
9
 
10
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
11
 
@@ -13,14 +13,18 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
13
13
 
14
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
15
 
16
- var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
17
-
18
16
  var _chartHelper = require("./chartHelper");
19
17
 
20
18
  var _tableHelper = require("./tableHelper");
21
19
 
22
20
  var _generateObjectId = _interopRequireDefault(require("./generateObjectId"));
23
21
 
22
+ var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
23
+
24
+ var _FieldDisplayTypes = _interopRequireDefault(require("./constants/FieldDisplayTypes"));
25
+
26
+ var _FieldTableColumnTypes = _interopRequireDefault(require("./constants/FieldTableColumnTypes"));
27
+
24
28
  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
29
 
26
30
  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; }
@@ -281,8 +285,76 @@ var getTemplateWithLookups = function getTemplateWithLookups(template) {
281
285
  });
282
286
  return nextTemplate;
283
287
  };
288
+ /**
289
+ * This method checks if the field passed via input is empty by checking
290
+ * the field.value.
291
+ * @param {*} fieldProps
292
+ * @returns
293
+ */
294
+
284
295
 
285
296
  exports.getTemplateWithLookups = getTemplateWithLookups;
297
+
298
+ var isFieldEmpty = function isFieldEmpty(fieldType, fieldValue, fieldOptions, fieldDisplayType, fieldColumnType) {
299
+ var isEmpty = false;
300
+ if (fieldType === _FieldTypes["default"].block) return;
301
+
302
+ if (fieldType === _FieldTypes["default"].text && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length == 0)) {
303
+ isEmpty = true;
304
+ } else if (fieldType === _FieldTypes["default"].textarea && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length == 0)) {
305
+ isEmpty = true;
306
+ } else if (fieldType === _FieldTypes["default"].number && !fieldValue) {
307
+ isEmpty = true;
308
+ } else if (fieldType === _FieldTypes["default"].date && !fieldValue) {
309
+ isEmpty = true;
310
+ } else if (fieldType === _FieldTypes["default"].signature && !fieldValue) {
311
+ isEmpty = true;
312
+ } else if (fieldType === _FieldTypes["default"].dropdown && (!fieldValue || fieldValue && fieldOptions.length > 0 && isTargetOptionDeleted(fieldValue, fieldOptions))) {
313
+ isEmpty = true;
314
+ } else if (fieldType === _FieldTypes["default"].multiSelect && (!fieldValue || fieldValue && fieldOptions.length > 0 && isTargetOptionDeleted(fieldValue, fieldOptions))) {
315
+ isEmpty = true;
316
+ } else if (fieldType === _FieldTypes["default"].image && (!fieldValue || fieldValue && fieldValue.length === 0)) {
317
+ isEmpty = true;
318
+ } else if (fieldType === _FieldTypes["default"].chart && (!fieldValue || fieldValue && fieldValue.length === 0)) {
319
+ isEmpty = true;
320
+ } else if (fieldType === _FieldTypes["default"].table && fieldDisplayType === _FieldDisplayTypes["default"].original && (!fieldValue || fieldValue && fieldValue.filter(function (item) {
321
+ return !item.deleted;
322
+ }).length === 0)) {
323
+ isEmpty = true;
324
+ } else if (fieldType === _FieldTypes["default"].table && fieldDisplayType === _FieldDisplayTypes["default"].text && fieldColumnType === _FieldTableColumnTypes["default"].dropdown && (!fieldValue || fieldValue && fieldOptions.length > 0 && isTargetOptionDeleted(fieldValue, fieldOptions))) {
325
+ isEmpty = true;
326
+ } else if (fieldType === _FieldTypes["default"].table && fieldDisplayType !== _FieldDisplayTypes["default"].text && fieldColumnType === _FieldTableColumnTypes["default"].dropdown && (!fieldValue || fieldValue && fieldOptions.length > 0 && isTargetOptionDeleted(fieldValue, fieldOptions))) {
327
+ isEmpty = true;
328
+ } else if (fieldType === _FieldTypes["default"].table && fieldDisplayType === _FieldDisplayTypes["default"].text && fieldColumnType === _FieldTableColumnTypes["default"].text && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length == 0)) {
329
+ isEmpty = true;
330
+ } else if (fieldType === _FieldTypes["default"].table && fieldDisplayType === _FieldDisplayTypes["default"].text && fieldColumnType === _FieldTableColumnTypes["default"].image && (!fieldValue || fieldValue && fieldValue.length === 0)) {
331
+ isEmpty = true;
332
+ }
333
+
334
+ return isEmpty;
335
+ };
336
+ /**
337
+ * This function checks whether an option associated with multiselect or dropdown
338
+ * field is deleted.
339
+ * @param {*} value // value
340
+ * @param {*} options
341
+ */
342
+
343
+
344
+ exports.isFieldEmpty = isFieldEmpty;
345
+
346
+ var isTargetOptionDeleted = function isTargetOptionDeleted(value, options) {
347
+ //Dropdown field has value as a string whereas multiselect has value as an array
348
+ var nextValue = value && typeof value === 'string' ? value : value[0]; //If user unchecks an option in mutliselect value will be undefiend
349
+
350
+ if (!nextValue) return true;
351
+ var targetOption = options.find(function (option) {
352
+ return option._id === nextValue;
353
+ });
354
+ return targetOption ? targetOption.deleted : true;
355
+ };
356
+
357
+ exports.isTargetOptionDeleted = isTargetOptionDeleted;
286
358
  var _default = {
287
359
  getDefaultOption: getDefaultOption,
288
360
  getChartFieldValue: getChartFieldValue,
@@ -290,6 +362,8 @@ var _default = {
290
362
  handleMultiSelectOptionToggle: handleMultiSelectOptionToggle,
291
363
  getDefaultFieldValuesFromTemplate: getDefaultFieldValuesFromTemplate,
292
364
  getImportFieldValues: getImportFieldValues,
293
- getTemplateWithLookups: getTemplateWithLookups
365
+ getTemplateWithLookups: getTemplateWithLookups,
366
+ isFieldEmpty: isFieldEmpty,
367
+ isTargetOptionDeleted: isTargetOptionDeleted
294
368
  };
295
369
  exports["default"] = _default;
@@ -394,7 +394,7 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
394
394
  if (field.file === fileId) fieldLookup[field._id] = field;
395
395
  });
396
396
  /**
397
- * Step 1: Duplicate fields associated with target page
397
+ * Step 1: Duplicate fields associated with target page
398
398
  */
399
399
 
400
400
  var fieldIdsToDuplicate = []; //Step 1.1 Get all field Ids from primary page
@@ -428,8 +428,8 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
428
428
  *
429
429
  * That is because multiple field positions can be associated with the same
430
430
  * field. If a field has already been created by a previous field position
431
- * that is linked to the same field as the current target then do not create
432
- * again.
431
+ * that is linked to the same field as the current target then do not create
432
+ * again.
433
433
  */
434
434
  if (newFieldsLookupByOldId[fieldId]) return;
435
435
  var field = fieldLookup[fieldId];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.4.0-beta.0",
3
+ "version": "2.4.0-beta.0.1",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [