@builttocreate/engine-utils 2.4.0 → 2.5.0-beta.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,14 @@ 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
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
25
 
26
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; }
@@ -281,8 +281,76 @@ var getTemplateWithLookups = function getTemplateWithLookups(template) {
281
281
  });
282
282
  return nextTemplate;
283
283
  };
284
+ /**
285
+ * This method checks if the field passed via input is empty by checking
286
+ * the field.value.
287
+ * @param {*} fieldProps
288
+ * @returns
289
+ */
290
+
284
291
 
285
292
  exports.getTemplateWithLookups = getTemplateWithLookups;
293
+
294
+ var isFieldEmpty = function isFieldEmpty(fieldType, fieldValue, fieldOptions) {
295
+ var isEmpty = false;
296
+
297
+ if (fieldType === _FieldTypes["default"].text && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length === 0)) {
298
+ isEmpty = true;
299
+ } else if (fieldType === _FieldTypes["default"].textarea && (!fieldValue || fieldValue && fieldValue.replace(/\s+/g, '').length === 0)) {
300
+ isEmpty = true;
301
+ } else if (fieldType === _FieldTypes["default"].number && typeof fieldValue !== 'number') {
302
+ isEmpty = true;
303
+ } else if (fieldType === _FieldTypes["default"].date && !fieldValue) {
304
+ isEmpty = true;
305
+ } else if (fieldType === _FieldTypes["default"].signature && !fieldValue) {
306
+ isEmpty = true;
307
+ } else if (fieldType === _FieldTypes["default"].dropdown && (!fieldValue || fieldValue && fieldOptions.length > 0 && isTargetOptionDeleted(fieldValue, fieldOptions))) {
308
+ isEmpty = true;
309
+ } else if (fieldType === _FieldTypes["default"].multiSelect && (!fieldValue || fieldValue && fieldOptions.length > 0 && isTargetOptionDeleted(fieldValue, fieldOptions))) {
310
+ isEmpty = true;
311
+ } else if (fieldType === _FieldTypes["default"].image && (!fieldValue || fieldValue && fieldValue.length === 0)) {
312
+ isEmpty = true;
313
+ } else if (fieldType === _FieldTypes["default"].chart && (!fieldValue || fieldValue && fieldValue.length === 0)) {
314
+ isEmpty = true;
315
+ } else if (fieldType === _FieldTypes["default"].table && (!fieldValue || fieldValue && fieldValue.filter(function (item) {
316
+ return !item.deleted;
317
+ }).length === 0)) {
318
+ isEmpty = true;
319
+ }
320
+
321
+ return isEmpty;
322
+ };
323
+ /**
324
+ * This function checks whether an option associated with multiselect or dropdown
325
+ * field is deleted.
326
+ * @param {*} value // value
327
+ * @param {*} options
328
+ */
329
+
330
+
331
+ exports.isFieldEmpty = isFieldEmpty;
332
+
333
+ var isTargetOptionDeleted = function isTargetOptionDeleted(value, options) {
334
+ /***
335
+ * We are converting the value that is passed in to array since
336
+ * this method is used by dropdown field and multiSelect field
337
+ * Dropdown passes the value as a string whereas mutliselect passes
338
+ * the value as an array
339
+ */
340
+ var nextValue = Array.isArray(value) ? value : [value];
341
+ if (!nextValue || nextValue.length === 0) return true;
342
+ var optionsLookup = {};
343
+ options.forEach(function (option) {
344
+ optionsLookup[option._id] = option;
345
+ });
346
+ var undeletedOptions = nextValue.filter(function (item) {
347
+ return optionsLookup[item] && !optionsLookup[item].deleted;
348
+ });
349
+ var result = !(undeletedOptions.length > 0);
350
+ return result;
351
+ };
352
+
353
+ exports.isTargetOptionDeleted = isTargetOptionDeleted;
286
354
  var _default = {
287
355
  getDefaultOption: getDefaultOption,
288
356
  getChartFieldValue: getChartFieldValue,
@@ -290,6 +358,8 @@ var _default = {
290
358
  handleMultiSelectOptionToggle: handleMultiSelectOptionToggle,
291
359
  getDefaultFieldValuesFromTemplate: getDefaultFieldValuesFromTemplate,
292
360
  getImportFieldValues: getImportFieldValues,
293
- getTemplateWithLookups: getTemplateWithLookups
361
+ getTemplateWithLookups: getTemplateWithLookups,
362
+ isFieldEmpty: isFieldEmpty,
363
+ isTargetOptionDeleted: isTargetOptionDeleted
294
364
  };
295
365
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.4.0",
3
+ "version": "2.5.0-beta.1",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -54,6 +54,8 @@
54
54
  "moduleNameMapper": {
55
55
  "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
56
56
  "\\.(css|less)$": "<rootDir>/__mocks__/styleMock.js"
57
- }
57
+ },
58
+ "globalSetup":"./jestConfig.js"
59
+
58
60
  }
59
61
  }