@wavemaker/variables 12.0.0-next.142013 → 12.0.0-next.28533

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.
Files changed (149) hide show
  1. package/npm-shrinkwrap.json +2012 -0
  2. package/package-lock.json +2012 -0
  3. {variables → package}/package.json +4 -3
  4. {variables → package}/scripts/build.js +52 -15
  5. package/scripts/build.js.map +1 -0
  6. package/src/manager/action/timer-action.manager.js.map +1 -0
  7. {variables → package}/src/manager/variable/base-variable.manager.js +2 -2
  8. package/src/manager/variable/base-variable.manager.js.map +1 -0
  9. {variables → package}/src/manager/variable/crud-variable.manager.js +16 -16
  10. package/src/manager/variable/crud-variable.manager.js.map +1 -0
  11. {variables → package}/src/manager/variable/live-variable.manager.js +50 -50
  12. package/src/manager/variable/live-variable.manager.js.map +1 -0
  13. {variables → package}/src/manager/variable/model-variable.manager.js +12 -12
  14. package/src/manager/variable/model-variable.manager.js.map +1 -0
  15. {variables → package}/src/manager/variable/service-variable.manager.js +42 -41
  16. package/src/manager/variable/service-variable.manager.js.map +1 -0
  17. package/src/model/action/timer-action.js.map +1 -0
  18. {variables → package}/src/model/base-action.d.ts +1 -1
  19. {variables → package}/src/model/base-action.js +3 -3
  20. package/src/model/base-action.js.map +1 -0
  21. {variables → package}/src/model/base-variable.d.ts +1 -1
  22. {variables → package}/src/model/base-variable.js +16 -16
  23. package/src/model/base-variable.js.map +1 -0
  24. {variables → package}/src/model/variable/crud-variable.js +2 -2
  25. package/src/model/variable/crud-variable.js.map +1 -0
  26. {variables → package}/src/model/variable/live-variable.js +7 -7
  27. package/src/model/variable/live-variable.js.map +1 -0
  28. package/src/model/variable/model-variable.js.map +1 -0
  29. {variables → package}/src/model/variable/service-variable.js +2 -2
  30. package/src/model/variable/service-variable.js.map +1 -0
  31. package/src/types/event-notifier.js.map +1 -0
  32. {variables → package}/src/util/dataset-util.js +16 -16
  33. package/src/util/dataset-util.js.map +1 -0
  34. {variables → package}/src/util/file-upload.util.js +12 -12
  35. package/src/util/file-upload.util.js.map +1 -0
  36. package/src/util/inflight-queue.js.map +1 -0
  37. package/src/util/notify-promise.js.map +1 -0
  38. {variables → package}/src/util/utils.js +19 -19
  39. package/src/util/utils.js.map +1 -0
  40. {variables → package}/src/util/variable/live-variable.http.utils.js +6 -6
  41. package/src/util/variable/live-variable.http.utils.js.map +1 -0
  42. {variables → package}/src/util/variable/live-variable.utils.js +84 -84
  43. package/src/util/variable/live-variable.utils.js.map +1 -0
  44. {variables → package}/src/util/variable/pagination.utils.d.ts +10 -1
  45. {variables → package}/src/util/variable/pagination.utils.js +113 -58
  46. package/src/util/variable/pagination.utils.js.map +1 -0
  47. {variables → package}/src/util/variable/service-variable.utils.js +33 -28
  48. package/src/util/variable/service-variable.utils.js.map +1 -0
  49. {variables → package}/src/util/variable/variables.utils.js +49 -49
  50. package/src/util/variable/variables.utils.js.map +1 -0
  51. package/webpack.config.d.ts +21 -0
  52. variables/scripts/build.js.map +0 -1
  53. variables/scripts/update-version.d.ts +0 -1
  54. variables/scripts/update-version.js +0 -27
  55. variables/scripts/update-version.js.map +0 -1
  56. variables/src/manager/action/timer-action.manager.js.map +0 -1
  57. variables/src/manager/variable/base-variable.manager.js.map +0 -1
  58. variables/src/manager/variable/crud-variable.manager.js.map +0 -1
  59. variables/src/manager/variable/live-variable.manager.js.map +0 -1
  60. variables/src/manager/variable/model-variable.manager.js.map +0 -1
  61. variables/src/manager/variable/service-variable.manager.js.map +0 -1
  62. variables/src/model/action/timer-action.js.map +0 -1
  63. variables/src/model/base-action.js.map +0 -1
  64. variables/src/model/base-variable.js.map +0 -1
  65. variables/src/model/variable/crud-variable.js.map +0 -1
  66. variables/src/model/variable/live-variable.js.map +0 -1
  67. variables/src/model/variable/model-variable.js.map +0 -1
  68. variables/src/model/variable/service-variable.js.map +0 -1
  69. variables/src/types/event-notifier.js.map +0 -1
  70. variables/src/util/dataset-util.js.map +0 -1
  71. variables/src/util/file-upload.util.js.map +0 -1
  72. variables/src/util/inflight-queue.js.map +0 -1
  73. variables/src/util/notify-promise.js.map +0 -1
  74. variables/src/util/utils.js.map +0 -1
  75. variables/src/util/variable/live-variable.http.utils.js.map +0 -1
  76. variables/src/util/variable/live-variable.utils.js.map +0 -1
  77. variables/src/util/variable/pagination.utils.js.map +0 -1
  78. variables/src/util/variable/service-variable.utils.js.map +0 -1
  79. variables/src/util/variable/variables.utils.js.map +0 -1
  80. variables/webpack.config.d.ts +0 -21
  81. {variables → package}/index.d.ts +0 -0
  82. {variables → package}/index.js +0 -0
  83. {variables → package}/index.js.map +0 -0
  84. {variables → package}/scripts/build.d.ts +0 -0
  85. {variables → package}/src/advanced-options.d.ts +0 -0
  86. {variables → package}/src/advanced-options.js +0 -0
  87. {variables → package}/src/advanced-options.js.map +0 -0
  88. {variables → package}/src/constants/variables.constants.d.ts +0 -0
  89. {variables → package}/src/constants/variables.constants.js +0 -0
  90. {variables → package}/src/constants/variables.constants.js.map +0 -0
  91. {variables → package}/src/factory/variable-manager.factory.d.ts +0 -0
  92. {variables → package}/src/factory/variable-manager.factory.js +0 -0
  93. {variables → package}/src/factory/variable-manager.factory.js.map +0 -0
  94. {variables → package}/src/manager/action/timer-action.manager.d.ts +0 -0
  95. {variables → package}/src/manager/action/timer-action.manager.js +0 -0
  96. {variables → package}/src/manager/variable/base-variable.manager.d.ts +0 -0
  97. {variables → package}/src/manager/variable/crud-variable.manager.d.ts +0 -0
  98. {variables → package}/src/manager/variable/live-variable.manager.d.ts +0 -0
  99. {variables → package}/src/manager/variable/model-variable.manager.d.ts +0 -0
  100. {variables → package}/src/manager/variable/service-variable.manager.d.ts +0 -0
  101. {variables → package}/src/model/action/timer-action.d.ts +0 -0
  102. {variables → package}/src/model/action/timer-action.js +0 -0
  103. {variables → package}/src/model/crud-create.d.ts +0 -0
  104. {variables → package}/src/model/crud-create.js +0 -0
  105. {variables → package}/src/model/crud-create.js.map +0 -0
  106. {variables → package}/src/model/crud-delete.d.ts +0 -0
  107. {variables → package}/src/model/crud-delete.js +0 -0
  108. {variables → package}/src/model/crud-delete.js.map +0 -0
  109. {variables → package}/src/model/crud-list.d.ts +0 -0
  110. {variables → package}/src/model/crud-list.js +0 -0
  111. {variables → package}/src/model/crud-list.js.map +0 -0
  112. {variables → package}/src/model/crud-update.d.ts +0 -0
  113. {variables → package}/src/model/crud-update.js +0 -0
  114. {variables → package}/src/model/crud-update.js.map +0 -0
  115. {variables → package}/src/model/variable/api-aware-variable.d.ts +0 -0
  116. {variables → package}/src/model/variable/api-aware-variable.js +0 -0
  117. {variables → package}/src/model/variable/api-aware-variable.js.map +0 -0
  118. {variables → package}/src/model/variable/crud-variable.d.ts +0 -0
  119. {variables → package}/src/model/variable/live-variable.d.ts +0 -0
  120. {variables → package}/src/model/variable/model-variable.d.ts +0 -0
  121. {variables → package}/src/model/variable/model-variable.js +0 -0
  122. {variables → package}/src/model/variable/service-variable.d.ts +0 -0
  123. {variables → package}/src/types/date-formatter.d.ts +0 -0
  124. {variables → package}/src/types/date-formatter.js +0 -0
  125. {variables → package}/src/types/date-formatter.js.map +0 -0
  126. {variables → package}/src/types/event-notifier.d.ts +0 -0
  127. {variables → package}/src/types/event-notifier.js +0 -0
  128. {variables → package}/src/types/http-client.service.d.ts +0 -0
  129. {variables → package}/src/types/http-client.service.js +0 -0
  130. {variables → package}/src/types/http-client.service.js.map +0 -0
  131. {variables → package}/src/types/types.d.ts +0 -0
  132. {variables → package}/src/types/types.js +0 -0
  133. {variables → package}/src/types/types.js.map +0 -0
  134. {variables → package}/src/util/dataset-util.d.ts +0 -0
  135. {variables → package}/src/util/file-upload.util.d.ts +0 -0
  136. {variables → package}/src/util/inflight-queue.d.ts +0 -0
  137. {variables → package}/src/util/inflight-queue.js +0 -0
  138. {variables → package}/src/util/notify-promise.d.ts +0 -0
  139. {variables → package}/src/util/notify-promise.js +0 -0
  140. {variables → package}/src/util/oAuth.utils.d.ts +0 -0
  141. {variables → package}/src/util/oAuth.utils.js +0 -0
  142. {variables → package}/src/util/oAuth.utils.js.map +0 -0
  143. {variables → package}/src/util/utils.d.ts +0 -0
  144. {variables → package}/src/util/variable/live-variable.http.utils.d.ts +0 -0
  145. {variables → package}/src/util/variable/live-variable.utils.d.ts +0 -0
  146. {variables → package}/src/util/variable/service-variable.utils.d.ts +0 -0
  147. {variables → package}/src/util/variable/variables.utils.d.ts +0 -0
  148. {variables → package}/webpack.config.js +0 -0
  149. {variables → package}/webpack.config.js.map +0 -0
@@ -24,7 +24,7 @@ import { $rootScope, CONSTANTS, VARIABLE_CONSTANTS, DB_CONSTANTS } from '../../c
24
24
  import { generateConnectionParams } from '../../util/variable/live-variable.http.utils';
25
25
  import { VariableEvents } from "../../model/base-variable";
26
26
  var emptyArr = [];
27
- import _ from 'lodash';
27
+ import { noop, indexOf, isObject, omit, isArray, extend, forEach, join, isUndefined, isEmpty, find, map, filter, get, split, replace, cloneDeep, isNil } from 'lodash-es';
28
28
  var LiveVariableManager = /** @class */ (function (_super) {
29
29
  __extends(LiveVariableManager, _super);
30
30
  function LiveVariableManager() {
@@ -42,7 +42,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
42
42
  var traverseCallbackFn = function (parentFilExpObj, filExpObj) {
43
43
  if (filExpObj
44
44
  && filExpObj.required
45
- && ((_.indexOf(['null', 'isnotnull', 'empty', 'isnotempty', 'nullorempty'], filExpObj.matchMode) === -1) && filExpObj.value === '')) {
45
+ && ((indexOf(['null', 'isnotnull', 'empty', 'isnotempty', 'nullorempty'], filExpObj.matchMode) === -1) && filExpObj.value === '')) {
46
46
  isRequiredFieldAbsent = true;
47
47
  return false;
48
48
  }
@@ -77,17 +77,17 @@ var LiveVariableManager = /** @class */ (function (_super) {
77
77
  }
78
78
  LiveVariableManager.prototype.initFilterExpressionBinding = function (variable) {
79
79
  var context = variable._context;
80
- var destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : _.noop;
80
+ var destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : noop;
81
81
  // ToDo - variable seperation
82
82
  // const filterSubscription = processFilterExpBindNode(context, variable.filterExpressions).subscribe((response: any) => {
83
83
  // if (variable.operation === 'read') {
84
84
  // /* if auto-update set for the variable with read operation only, get its data */
85
- // if (variable.autoUpdate && !_.isUndefined(response.newVal) && _.isFunction(variable.update)) {
85
+ // if (variable.autoUpdate && !isUndefined(response.newVal) && isFunction(variable.update)) {
86
86
  // debounceVariableCall(variable, 'update');
87
87
  // }
88
88
  // } else {
89
89
  // /* if auto-update set for the variable with read operation only, get its data */
90
- // if (variable.autoUpdate && !_.isUndefined(response.newVal) && _.isFunction(variable[variable.operation + 'Record'])) {
90
+ // if (variable.autoUpdate && !isUndefined(response.newVal) && isFunction(variable[variable.operation + 'Record'])) {
91
91
  // debounceVariableCall(variable, variable.operation + 'Record');
92
92
  // }
93
93
  // }
@@ -176,7 +176,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
176
176
  // EVENT: ON_BEFORE_UPDATE
177
177
  output = initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE, variable, this.getDataFilterObj(clonedFields), options);
178
178
  // if filterFields are updated or modified inside the onBeforeUpdate event then in device use these fields to filter.
179
- var updateFilterFields = _.isObject(output) ? getClonedObject(output) : undefined;
179
+ var updateFilterFields = isObject(output) ? getClonedObject(output) : undefined;
180
180
  if (output === false) {
181
181
  $queue.process(variable);
182
182
  // $rootScope.$emit('toggle-variable-state', variable, false);
@@ -184,7 +184,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
184
184
  return Promise.reject('Call stopped from the event: ' + VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE);
185
185
  }
186
186
  variable.canUpdate = false;
187
- tableOptions = LiveVariableUtils.prepareTableOptions(variable, options, _.isObject(output) ? output : clonedFields);
187
+ tableOptions = LiveVariableUtils.prepareTableOptions(variable, options, isObject(output) ? output : clonedFields);
188
188
  // if tableOptions object has query then set the dbOperation to 'searchTableDataWithQuery'
189
189
  if (options.searchWithQuery) {
190
190
  dbOperation = 'searchTableDataWithQuery';
@@ -211,9 +211,9 @@ var LiveVariableManager = /** @class */ (function (_super) {
211
211
  if (response && (response.type || response.status)) {
212
212
  response = response.body || response.data;
213
213
  dataObj.data = response.content;
214
- dataObj.pagination = _.omit(response, 'content');
214
+ dataObj.pagination = omit(response, 'content');
215
215
  var advancedOptions_1 = _this.prepareCallbackOptions(response, { pagination: dataObj.pagination });
216
- if ((response && response.error) || !response || !_.isArray(response.content)) {
216
+ if ((response && response.error) || !response || !isArray(response.content)) {
217
217
  _this.handleError(variable, error, response.error, options, advancedOptions_1);
218
218
  return Promise.reject(response.error);
219
219
  }
@@ -249,7 +249,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
249
249
  };
250
250
  getEntityError = function (e, reject) {
251
251
  _this.setVariableOptions(variable, options);
252
- _this.handleError(variable, error, e.error, _.extend(options, { errorDetails: e.details }));
252
+ _this.handleError(variable, error, e.error, extend(options, { errorDetails: e.details }));
253
253
  return reject(e.error);
254
254
  };
255
255
  /* if it is a prefab variable (used in a normal project), modify the url */
@@ -292,36 +292,36 @@ var LiveVariableManager = /** @class */ (function (_super) {
292
292
  triggerFn(error);
293
293
  return Promise.reject('Call stopped from the event: ' + VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE);
294
294
  }
295
- inputFields = _.isObject(output) ? output : clonedFields;
295
+ inputFields = isObject(output) ? output : clonedFields;
296
296
  variable.canUpdate = false;
297
297
  if (options.row) {
298
298
  rowObject = options.row;
299
299
  // For datetime types, convert the value to the format accepted by backend
300
- _.forEach(rowObject, function (value, key) {
300
+ forEach(rowObject, function (value, key) {
301
301
  var fieldType = LiveVariableUtils.getFieldType(key, variable);
302
302
  var fieldValue;
303
303
  if (isDateTimeType(fieldType)) {
304
304
  fieldValue = formatDate(value, fieldType, variable.dateFormatter);
305
305
  rowObject[key] = fieldValue;
306
306
  }
307
- else if (_.isArray(value) && LiveVariableUtils.isStringType(fieldType)) {
307
+ else if (isArray(value) && LiveVariableUtils.isStringType(fieldType)) {
308
308
  // Construct ',' separated string if param is not array type but value is an array
309
- fieldValue = _.join(value, ',');
309
+ fieldValue = join(value, ',');
310
310
  rowObject[key] = fieldValue;
311
311
  }
312
312
  });
313
313
  // Merge inputFields along with dataObj while making Insert/Update/Delete
314
- _.forEach(inputFields, function (attrValue, attrName) {
314
+ forEach(inputFields, function (attrValue, attrName) {
315
315
  if ((isDefined(attrValue) && attrValue !== '') && (!isDefined(rowObject[attrName]) || rowObject[attrName] === '')) {
316
316
  rowObject[attrName] = attrValue;
317
317
  }
318
318
  });
319
319
  }
320
320
  else {
321
- _.forEach(inputFields, function (fieldValue, fieldName) {
321
+ forEach(inputFields, function (fieldValue, fieldName) {
322
322
  var fieldType;
323
323
  var primaryKeys = variable.propertiesMap.primaryFields || variable.propertiesMap.primaryKeys;
324
- if (!_.isUndefined(fieldValue) && fieldValue !== '') {
324
+ if (!isUndefined(fieldValue) && fieldValue !== '') {
325
325
  /*For delete action, the inputFields need to be set in the request URL. Hence compositeId is set.
326
326
  * For insert action inputFields need to be set in the request data. Hence rowObject is set.
327
327
  * For update action, both need to be set.*/
@@ -340,15 +340,15 @@ var LiveVariableManager = /** @class */ (function (_super) {
340
340
  if (isDateTimeType(fieldType)) {
341
341
  fieldValue = formatDate(fieldValue, fieldType, variable.dateFormatter);
342
342
  }
343
- else if (_.isArray(fieldValue) && LiveVariableUtils.isStringType(fieldType)) {
343
+ else if (isArray(fieldValue) && LiveVariableUtils.isStringType(fieldType)) {
344
344
  // Construct ',' separated string if param is not array type but value is an array
345
- fieldValue = _.join(fieldValue, ',');
345
+ fieldValue = join(fieldValue, ',');
346
346
  }
347
347
  rowObject[fieldName] = fieldValue;
348
348
  }
349
349
  // for related entities, clear the blob type fields
350
- if (_.isObject(fieldValue) && !_.isArray(fieldValue)) {
351
- _.forEach(fieldValue, function (val, key) {
350
+ if (isObject(fieldValue) && !isArray(fieldValue)) {
351
+ forEach(fieldValue, function (val, key) {
352
352
  if (LiveVariableUtils.getFieldType(fieldName, variable, key) === 'blob') {
353
353
  fieldValue[key] = val === null ? val : '';
354
354
  }
@@ -408,7 +408,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
408
408
  }
409
409
  options.compositeKeysData = compositeKeysData;
410
410
  }
411
- else if (!_.isEmpty(rowObject)) {
411
+ else if (!isEmpty(rowObject)) {
412
412
  primaryKey.forEach(function (key) {
413
413
  if (key.indexOf('.') === -1) {
414
414
  id = rowObject[key];
@@ -454,7 +454,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
454
454
  dbName = variable.liveSource;
455
455
  /*Set the "data" in the request to "undefined" if there is no data.
456
456
  * This handles cases such as "Delete" requests where data should not be passed.*/
457
- if (_.isEmpty(rowObject) && action === 'deleteTableData') {
457
+ if (isEmpty(rowObject) && action === 'deleteTableData') {
458
458
  rowObject = undefined;
459
459
  }
460
460
  if ((action === 'updateCompositeTableData' || action === 'deleteCompositeTableData') && options.period) {
@@ -466,7 +466,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
466
466
  'service': variable._prefabName ? '' : 'services',
467
467
  'dataModelName': dbName,
468
468
  'entityName': variable.type,
469
- 'id': !_.isUndefined(options.id) ? encodeURIComponent(options.id) : compositeId,
469
+ 'id': !isUndefined(options.id) ? encodeURIComponent(options.id) : compositeId,
470
470
  'data': rowObject,
471
471
  'url': variable._prefabName ? ($rootScope.project.deployedUrl + '/prefabs/' + variable._prefabName) : $rootScope.project.deployedUrl
472
472
  };
@@ -671,13 +671,13 @@ var LiveVariableManager = /** @class */ (function (_super) {
671
671
  */
672
672
  LiveVariableManager.prototype.setFilter = function (variable, key, val) {
673
673
  var paramObj = {}, targetObj = {};
674
- if (_.isObject(key)) {
674
+ if (isObject(key)) {
675
675
  paramObj = key;
676
676
  }
677
677
  else {
678
678
  paramObj[key] = val;
679
679
  }
680
- if (!variable.filterExpressions || _.isEmpty(variable.filterExpressions)) {
680
+ if (!variable.filterExpressions || isEmpty(variable.filterExpressions)) {
681
681
  variable.filterExpressions = { 'condition': 'AND', 'rules': [] };
682
682
  }
683
683
  targetObj = variable.filterExpressions;
@@ -693,7 +693,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
693
693
  });
694
694
  return existingCriteria;
695
695
  }
696
- _.forEach(paramObj, function (paramVal, paramKey) {
696
+ forEach(paramObj, function (paramVal, paramKey) {
697
697
  var existingCriteria = getExistingCriteria(paramKey);
698
698
  if (existingCriteria !== null) {
699
699
  existingCriteria.value = paramVal;
@@ -775,16 +775,16 @@ var LiveVariableManager = /** @class */ (function (_super) {
775
775
  if (!variable.propertiesMap) {
776
776
  return;
777
777
  }
778
- result = _.find(variable.propertiesMap.columns || [], { 'fieldName': relatedField });
778
+ result = find(variable.propertiesMap.columns || [], { 'fieldName': relatedField });
779
779
  // if related field name passed, get its type from columns inside the current field
780
780
  if (result) {
781
781
  relatedCols = result.columns;
782
- primaryKeys = _.map(_.filter(relatedCols, 'isPrimaryKey'), 'fieldName');
782
+ primaryKeys = map(filter(relatedCols, 'isPrimaryKey'), 'fieldName');
783
783
  if (primaryKeys.length) {
784
784
  return primaryKeys;
785
785
  }
786
786
  if (relatedCols && relatedCols.length) {
787
- relatedCols = _.find(relatedCols, { 'isRelated': false });
787
+ relatedCols = find(relatedCols, { 'isRelated': false });
788
788
  return relatedCols && relatedCols.fieldName;
789
789
  }
790
790
  }
@@ -800,11 +800,11 @@ var LiveVariableManager = /** @class */ (function (_super) {
800
800
  LiveVariableManager.prototype.getRelatedTableData = function (variable, columnName, options, success, error) {
801
801
  var _this = this;
802
802
  var projectID = $rootScope.project.id || $rootScope.projectName;
803
- var relatedTable = _.find(variable.relatedTables, function (table) { return table.relationName === columnName || table.columnName === columnName; }); // Comparing column name to support the old projects
804
- var selfRelatedCols = _.map(_.filter(variable.relatedTables, function (o) { return o.type === variable.type; }), 'relationName');
803
+ var relatedTable = find(variable.relatedTables, function (table) { return table.relationName === columnName || table.columnName === columnName; }); // Comparing column name to support the old projects
804
+ var selfRelatedCols = map(filter(variable.relatedTables, function (o) { return o.type === variable.type; }), 'relationName');
805
805
  var filterFields = [];
806
806
  var orderBy, filterOptions, query, action, dbOperationOptions, getRelatedTableDataSuccess, getRelatedTableDataError;
807
- _.forEach(options.filterFields, function (value, key) {
807
+ forEach(options.filterFields, function (value, key) {
808
808
  value.fieldName = key;
809
809
  value.type = LiveVariableUtils.getFieldType(columnName, variable, key);
810
810
  /**
@@ -820,7 +820,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
820
820
  filterOptions = LiveVariableUtils.getFilterOptions(variable, filterFields, options);
821
821
  query = LiveVariableUtils.getSearchQuery(filterOptions, ' ' + (options.logicalOp || 'AND') + ' ', variable.ignoreCase);
822
822
  if (options.filterExpr) {
823
- var _clonedFields = getClonedObject(_.isObject(options.filterExpr) ? options.filterExpr : JSON.parse(options.filterExpr));
823
+ var _clonedFields = getClonedObject(isObject(options.filterExpr) ? options.filterExpr : JSON.parse(options.filterExpr));
824
824
  LiveVariableUtils.processFilterFields(_clonedFields.rules, variable, options);
825
825
  var filterExpQuery = LiveVariableUtils.generateSearchQuery(_clonedFields.rules, _clonedFields.condition, variable.ignoreCase, options.skipEncode);
826
826
  if (query !== '') {
@@ -834,7 +834,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
834
834
  }
835
835
  query = query ? ('q=' + query) : '';
836
836
  action = 'searchTableDataWithQuery';
837
- orderBy = _.isEmpty(options.orderBy) ? '' : 'sort=' + options.orderBy;
837
+ orderBy = isEmpty(options.orderBy) ? '' : 'sort=' + options.orderBy;
838
838
  dbOperationOptions = {
839
839
  projectID: projectID,
840
840
  service: variable.getPrefabName() ? '' : 'services',
@@ -852,7 +852,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
852
852
  var response = res.body || res.data;
853
853
  /*Remove the self related columns from the data. As backend is restricting the self related column to one level, In liveform select, dataset and datavalue object
854
854
  * equality does not work. So, removing the self related columns to acheive the quality*/
855
- var data = _.map(response.content, function (o) { return _.omit(o, selfRelatedCols); });
855
+ var data = map(response.content, function (o) { return omit(o, selfRelatedCols); });
856
856
  var pagination = Object.assign({}, response);
857
857
  delete pagination.content;
858
858
  decodeData(data);
@@ -894,7 +894,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
894
894
  if (tableOptions.query) {
895
895
  requestData.filter = tableOptions.query;
896
896
  }
897
- requestData.groupByFields = _.isArray(options.fields) ? options.fields : [options.fields];
897
+ requestData.groupByFields = isArray(options.fields) ? options.fields : [options.fields];
898
898
  sort = options.sort || requestData.groupByFields[0] + ' asc';
899
899
  sort = sort ? 'sort=' + sort : '';
900
900
  dbOperationOptions = {
@@ -947,13 +947,13 @@ var LiveVariableManager = /** @class */ (function (_super) {
947
947
  Object.defineProperty(variable, 'firstRecord', {
948
948
  'configurable': true,
949
949
  'get': function () {
950
- return _.get(variable.dataSet, 'data[0]', {});
950
+ return get(variable.dataSet, 'data[0]', {});
951
951
  }
952
952
  });
953
953
  Object.defineProperty(variable, 'lastRecord', {
954
954
  'configurable': true,
955
955
  'get': function () {
956
- var data = _.get(variable.dataSet, 'data', []);
956
+ var data = get(variable.dataSet, 'data', []);
957
957
  return data[data.length - 1];
958
958
  }
959
959
  });
@@ -965,8 +965,8 @@ var LiveVariableManager = /** @class */ (function (_super) {
965
965
  // Returns the search query params.
966
966
  LiveVariableManager.prototype.prepareRequestParams = function (options) {
967
967
  var requestParams;
968
- var searchKeys = _.split(options.searchKey, ','), matchModes = _.split(options.matchMode, ','), formFields = {};
969
- _.forEach(searchKeys, function (colName, index) {
968
+ var searchKeys = split(options.searchKey, ','), matchModes = split(options.matchMode, ','), formFields = {};
969
+ forEach(searchKeys, function (colName, index) {
970
970
  formFields[colName] = {
971
971
  value: options.query,
972
972
  logicalOp: 'AND',
@@ -977,11 +977,11 @@ var LiveVariableManager = /** @class */ (function (_super) {
977
977
  filterFields: formFields,
978
978
  page: options.page,
979
979
  pagesize: options.limit || options.pagesize,
980
- skipDataSetUpdate: true,
981
- skipToggleState: true,
980
+ skipDataSetUpdate: true, // dont update the actual variable dataset,
981
+ skipToggleState: true, // Dont change the variable toggle state as this is a independent call
982
982
  inFlightBehavior: 'executeAll',
983
983
  logicalOp: 'OR',
984
- orderBy: options.orderby ? _.replace(options.orderby, /:/g, ' ') : ''
984
+ orderBy: options.orderby ? replace(options.orderby, /:/g, ' ') : ''
985
985
  };
986
986
  if (options.onBeforeservicecall) {
987
987
  options.onBeforeservicecall(formFields);
@@ -1008,7 +1008,7 @@ var LiveVariableManager = /** @class */ (function (_super) {
1008
1008
  * @private
1009
1009
  */
1010
1010
  LiveVariableManager.prototype.upgradeInputDataToFilterExpressions = function (variable, response, inputData) {
1011
- if (_.isObject(response)) {
1011
+ if (isObject(response)) {
1012
1012
  inputData = response;
1013
1013
  inputData.condition = 'AND';
1014
1014
  inputData.rules = [];
@@ -1018,11 +1018,11 @@ var LiveVariableManager = /** @class */ (function (_super) {
1018
1018
  * so we are keeping a copy of it and the emptying the existing object and now fill it with the
1019
1019
  * user set criteria. If its just modified, change the data and push it tohe rules or else just add a new criteria
1020
1020
  */
1021
- var clonedRules = _.cloneDeep(inputData.rules);
1021
+ var clonedRules = cloneDeep(inputData.rules);
1022
1022
  inputData.rules = [];
1023
- _.forEach(inputData, function (valueObj, key) {
1023
+ forEach(inputData, function (valueObj, key) {
1024
1024
  if (key !== 'condition' && key !== 'rules') {
1025
- var filteredObj = _.find(clonedRules, function (o) { return o.target === key; });
1025
+ var filteredObj = find(clonedRules, function (o) { return o.target === key; });
1026
1026
  // if the key is found update the value, else create a new rule obj and add it to the existing rules
1027
1027
  if (filteredObj) {
1028
1028
  filteredObj.value = valueObj.value;
@@ -1054,8 +1054,8 @@ var LiveVariableManager = /** @class */ (function (_super) {
1054
1054
  if (inputData.hasOwnProperty('getFilterFields')) {
1055
1055
  inputData = inputData.getFilterFields();
1056
1056
  }
1057
- _.forEach(inputData.rules, function (ruleObj) {
1058
- if (!_.isNil(ruleObj.target) && ruleObj.target !== '') {
1057
+ forEach(inputData.rules, function (ruleObj) {
1058
+ if (!isNil(ruleObj.target) && ruleObj.target !== '') {
1059
1059
  inputData[ruleObj.target] = {
1060
1060
  'value': ruleObj.value,
1061
1061
  'matchMode': ruleObj.matchMode
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-variable.manager.js","sourceRoot":"./","sources":["src/manager/variable/live-variable.manager.ts"],"names":[],"mappings":"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","sourcesContent":["// import { $invokeWatchers, processFilterExpBindNode } from '@wm/core';\nimport { getClonedObject, isDateTimeType, isDefined, triggerFn } from \"../../util/utils\";\n\nimport { BaseVariableManager } from './base-variable.manager';\nimport { debounceVariableCall, formatExportExpression, initiateCallback, setInput, appManager, httpService, formatDate, getErrMessage } from '../../util/variable/variables.utils';\nimport { LiveVariableUtils } from '../../util/variable/live-variable.utils';\nimport { decodeData } from './../../util/variable/variables.utils';\nimport { $queue } from '../../util/inflight-queue';\nimport { $rootScope, CONSTANTS, VARIABLE_CONSTANTS, DB_CONSTANTS } from '../../constants/variables.constants';\nimport { AdvancedOptions } from '../../advanced-options';\nimport { generateConnectionParams } from '../../util/variable/live-variable.http.utils';\nimport { VariableEvents } from \"../../model/base-variable\";\n\ndeclare const window;\nconst emptyArr = [];\nimport {noop, indexOf, isObject, omit, isArray, extend, forEach, join, isUndefined, isEmpty, find, map, filter, get, split, replace, cloneDeep, isNil} from 'lodash-es';\n\nexport class LiveVariableManager extends BaseVariableManager {\n\n public initFilterExpressionBinding(variable) {\n const context = variable._context;\n const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : noop;\n // ToDo - variable seperation\n // const filterSubscription = processFilterExpBindNode(context, variable.filterExpressions).subscribe((response: any) => {\n // if (variable.operation === 'read') {\n // /* if auto-update set for the variable with read operation only, get its data */\n // if (variable.autoUpdate && !isUndefined(response.newVal) && isFunction(variable.update)) {\n // debounceVariableCall(variable, 'update');\n // }\n // } else {\n // /* if auto-update set for the variable with read operation only, get its data */\n // if (variable.autoUpdate && !isUndefined(response.newVal) && isFunction(variable[variable.operation + 'Record'])) {\n // debounceVariableCall(variable, variable.operation + 'Record');\n // }\n // }\n // });\n\n // destroyFn(() => filterSubscription.unsubscribe());\n }\n\n private updateDataset(variable, data, propertiesMap, pagination) {\n variable.pagination = pagination;\n variable.dataSet = data;\n\n // legacy properties in dataSet, [data, pagination]\n Object.defineProperty(variable.dataSet, 'data', {\n get: () => {\n return variable.dataSet;\n }\n });\n Object.defineProperty(variable.dataSet, 'pagination', {\n get: () => {\n return variable.pagination;\n }\n });\n }\n\n // Set the _options on variable which can be used by the widgets\n private setVariableOptions(variable, options) {\n variable._options = variable._options || {};\n variable._options.orderBy = options && options.orderBy;\n variable._options.filterFields = options && options.filterFields;\n variable._options.logicalOp = options && options.logicalOp;\n }\n\n private handleError(variable, errorCB, response, options, advancedOptions?) {\n let opt: AdvancedOptions;\n /* If callback function is provided, send the data to the callback.\n * The same callback if triggered in case of error also. The error-handling is done in grid.js*/\n triggerFn(errorCB, response);\n\n // EVENT: ON_RESULT\n initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, response, advancedOptions);\n\n /* update the dataSet against the variable */\n if (!options.skipDataSetUpdate) {\n this.updateDataset(variable, emptyArr, variable.propertiesMap, null);\n }\n\n // EVENT: ON_ERROR\n opt = this.prepareCallbackOptions(options.errorDetails);\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, response, opt);\n // EVENT: ON_CAN_UPDATE\n variable.canUpdate = true;\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, response, advancedOptions);\n }\n\n /**\n * Traverses recursively the filterExpressions object and if there is any required field present with no value,\n * then we will return without proceeding further. Its upto the developer to provide the mandatory value,\n * if he wants to assign it in teh onbefore<delete/insert/update>function then make that field in\n * the filter query section as optional\n * @param filterExpressions - recursive rule Object\n * @returns {Object} object or boolean. Object if everything gets validated or else just boolean indicating failure in the validations\n */\n private getFilterExprFields = function (filterExpressions) {\n let isRequiredFieldAbsent = false;\n const traverseCallbackFn = function (parentFilExpObj, filExpObj) {\n if (filExpObj\n && filExpObj.required\n && ((indexOf(['null', 'isnotnull', 'empty', 'isnotempty', 'nullorempty'], filExpObj.matchMode) === -1) && filExpObj.value === '')) {\n isRequiredFieldAbsent = true;\n return false;\n }\n };\n LiveVariableUtils.traverseFilterExpressions(filterExpressions, traverseCallbackFn);\n return isRequiredFieldAbsent ? !isRequiredFieldAbsent : filterExpressions;\n };\n\n /**\n * Allows the user to get the criteria of filtering and the filter fields, based on the method called\n */\n private getDataFilterObj = function (clonedFilterFields) {\n return (function (clonedFields) {\n function getCriteria(filterField) {\n const criterian = [];\n LiveVariableUtils.traverseFilterExpressions(clonedFields, function (filterExpressions, criteria) {\n if (filterField === criteria.target) {\n criterian.push(criteria);\n }\n });\n return criterian;\n }\n\n function getFilterFields() {\n return clonedFields;\n }\n\n return {\n getFilterFields: getFilterFields,\n getCriteria: getCriteria\n };\n }(clonedFilterFields));\n };\n\n private makeCall(variable, dbOperation, params) {\n const successHandler = (response, resolve) => {\n if (response && response.type || response && response.status) {\n resolve(response);\n }\n };\n const errorHandler = (error, reject) => {\n const errMsg = getErrMessage(error, variable.httpService.getLocale());\n // notify variable error\n this.notifyInflight(variable, false);\n reject({\n error: errMsg,\n details: error\n });\n };\n return new Promise((resolve, reject) => {\n let reqParams = generateConnectionParams(params, dbOperation);\n reqParams = {\n url: reqParams.url,\n method: reqParams.method,\n data: reqParams.data,\n headers: reqParams.headers\n };\n params.operation = dbOperation;\n this.httpCall(reqParams, variable, params).then((response) => {\n successHandler(response, resolve);\n }, (e) => {\n errorHandler(e, reject);\n });\n });\n }\n\n private getEntityData(variable, options, success, error) {\n const dataObj: any = {};\n let tableOptions,\n dbOperation,\n output,\n newDataSet,\n clonedFields,\n requestData,\n dbOperationOptions,\n getEntitySuccess,\n getEntityError;\n\n // empty array kept (if variable is not of read type filterExpressions will be undefined)\n clonedFields = this.getFilterExprFields(getClonedObject(variable.filterExpressions || {}));\n // clonedFields = getClonedObject(variable.filterFields);\n // EVENT: ON_BEFORE_UPDATE\n output = initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE, variable, this.getDataFilterObj(clonedFields), options);\n // if filterFields are updated or modified inside the onBeforeUpdate event then in device use these fields to filter.\n const updateFilterFields = isObject(output) ? getClonedObject(output) : undefined;\n if (output === false) {\n $queue.process(variable);\n // $rootScope.$emit('toggle-variable-state', variable, false);\n triggerFn(error, 'Call stopped from the event: ' + VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE);\n return Promise.reject('Call stopped from the event: ' + VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE);\n }\n\n variable.canUpdate = false;\n\n tableOptions = LiveVariableUtils.prepareTableOptions(variable, options, isObject(output) ? output : clonedFields);\n\n // if tableOptions object has query then set the dbOperation to 'searchTableDataWithQuery'\n if (options.searchWithQuery) {\n dbOperation = 'searchTableDataWithQuery';\n requestData = tableOptions.query ? ('q=' + tableOptions.query) : '';\n } else {\n dbOperation = (tableOptions.filter && tableOptions.filter.length) ? 'searchTableData' : 'readTableData';\n requestData = tableOptions.filter;\n }\n dbOperationOptions = {\n 'projectID': $rootScope.project.id,\n 'service': variable.getPrefabName() ? '' : 'services',\n 'dataModelName': variable.liveSource,\n 'entityName': variable.type,\n 'page': options.page || 1,\n 'size': options.pagesize || (CONSTANTS.isRunMode ? (variable.maxResults || 20) : (variable.designMaxResults || 20)),\n 'sort': tableOptions.sort,\n 'data': requestData,\n 'filter': LiveVariableUtils.getWhereClauseGenerator(variable, options, updateFilterFields),\n // 'filterMeta': tableOptions.filter,\n 'url': variable.getPrefabName() ? ($rootScope.project.deployedUrl + '/prefabs/' + variable.getPrefabName()) : $rootScope.project.deployedUrl\n };\n getEntitySuccess = (response: any, resolve: any) => {\n if (response && (response.type || response.status)) {\n response = response.body || response.data;\n dataObj.data = response.content;\n dataObj.pagination = omit(response, 'content');\n const advancedOptions: AdvancedOptions = this.prepareCallbackOptions(response, {pagination: dataObj.pagination});\n\n if ((response && response.error) || !response || !isArray(response.content)) {\n this.handleError(variable, error, response.error, options, advancedOptions);\n return Promise.reject(response.error);\n }\n decodeData(response.content);\n LiveVariableUtils.processBlobColumns(response.content, variable);\n\n if (!options.skipDataSetUpdate) {\n // EVENT: ON_RESULT\n initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, dataObj.data, advancedOptions);\n // EVENT: ON_PREPARESETDATA\n newDataSet = initiateCallback(VARIABLE_CONSTANTS.EVENT.PREPARE_SETDATA, variable, dataObj.data, advancedOptions);\n if (newDataSet) {\n // setting newDataSet as the response to service variable onPrepareSetData\n dataObj.data = newDataSet;\n }\n /* update the dataSet against the variable */\n this.updateDataset(variable, dataObj.data, variable.propertiesMap, dataObj.pagination);\n this.setVariableOptions(variable, options);\n\n // watchers should get triggered before calling onSuccess event.\n // so that any variable/widget depending on this variable's data is updated\n variable.notify(VariableEvents.AFTER_INVOKE, [this, dataObj.data]);\n setTimeout(() => {\n // if callback function is provided, send the data to the callback\n triggerFn(success, dataObj.data, variable.propertiesMap, dataObj.pagination);\n\n // EVENT: ON_SUCCESS\n initiateCallback(VARIABLE_CONSTANTS.EVENT.SUCCESS, variable, dataObj.data, advancedOptions);\n // EVENT: ON_CAN_UPDATE\n variable.canUpdate = true;\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, dataObj.data, advancedOptions);\n });\n }\n return resolve({data: dataObj.data, pagination: dataObj.pagination});\n }\n };\n getEntityError = (e: any, reject: any) => {\n this.setVariableOptions(variable, options);\n this.handleError(variable, error, e.error, extend(options, {errorDetails: e.details}));\n\n return reject(e.error);\n };\n /* if it is a prefab variable (used in a normal project), modify the url */\n /*Fetch the table data*/\n return new Promise((resolve, reject) => {\n this.makeCall(variable, dbOperation, dbOperationOptions).then((response) => {\n getEntitySuccess(response, resolve);\n }, err => {\n getEntityError(err, reject);\n });\n });\n }\n\n private performCUD(operation, variable, options, success, error) {\n options = options || {};\n options.inputFields = options.inputFields || getClonedObject(variable.inputFields);\n return $queue.submit(variable).then(() => {\n this.notifyInflight(variable, !options.skipToggleState);\n return this.doCUD(operation, variable, options, success, error)\n .then((response) => {\n $queue.process(variable);\n this.notifyInflight(variable, false, response);\n return Promise.resolve(response);\n }, (err) => {\n $queue.process(variable);\n this.notifyInflight(variable, false, err);\n return Promise.reject(err);\n });\n }, error);\n }\n\n private doCUD(action, variable, options, success, error) {\n const projectID = $rootScope.project.id || $rootScope.projectName,\n primaryKey = LiveVariableUtils.getPrimaryKey(variable),\n isFormDataSupported = (window.File && window.FileReader && window.FileList && window.Blob);\n\n let dbName,\n compositeId = '',\n rowObject = {},\n prevData,\n compositeKeysData = {},\n prevCompositeKeysData = {},\n id,\n columnName,\n clonedFields,\n output,\n onCUDerror,\n onCUDsuccess,\n inputFields = options.inputFields || variable.inputFields;\n\n // EVENT: ON_BEFORE_UPDATE\n clonedFields = getClonedObject(inputFields);\n output = initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE, variable, clonedFields, options);\n if (output === false) {\n // $rootScope.$emit('toggle-variable-state', variable, false);\n triggerFn(error);\n return Promise.reject('Call stopped from the event: ' + VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE);\n }\n inputFields = isObject(output) ? output : clonedFields;\n variable.canUpdate = false;\n\n if (options.row) {\n rowObject = options.row;\n // For datetime types, convert the value to the format accepted by backend\n forEach(rowObject, (value, key) => {\n const fieldType = LiveVariableUtils.getFieldType(key, variable);\n let fieldValue;\n if (isDateTimeType(fieldType)) {\n fieldValue = formatDate(value, fieldType, variable.dateFormatter);\n rowObject[key] = fieldValue;\n } else if (isArray(value) && LiveVariableUtils.isStringType(fieldType)) {\n // Construct ',' separated string if param is not array type but value is an array\n fieldValue = join(value, ',');\n rowObject[key] = fieldValue;\n }\n });\n // Merge inputFields along with dataObj while making Insert/Update/Delete\n forEach(inputFields, (attrValue, attrName) => {\n if ((isDefined(attrValue) && attrValue !== '') && (!isDefined(rowObject[attrName]) || rowObject[attrName] === '')) {\n rowObject[attrName] = attrValue;\n }\n });\n } else {\n forEach(inputFields, (fieldValue, fieldName) => {\n let fieldType;\n const primaryKeys = variable.propertiesMap.primaryFields || variable.propertiesMap.primaryKeys;\n if (!isUndefined(fieldValue) && fieldValue !== '') {\n /*For delete action, the inputFields need to be set in the request URL. Hence compositeId is set.\n * For insert action inputFields need to be set in the request data. Hence rowObject is set.\n * For update action, both need to be set.*/\n if (action === 'deleteTableData') {\n compositeId = fieldValue;\n }\n if (action === 'updateTableData') {\n primaryKeys.forEach(key => {\n if (fieldName === key) {\n compositeId = fieldValue;\n }\n });\n }\n if (action !== 'deleteTableData' || LiveVariableUtils.isCompositeKey(primaryKey)) {\n fieldType = LiveVariableUtils.getFieldType(fieldName, variable);\n if (isDateTimeType(fieldType)) {\n fieldValue = formatDate(fieldValue, fieldType, variable.dateFormatter);\n } else if (isArray(fieldValue) && LiveVariableUtils.isStringType(fieldType)) {\n // Construct ',' separated string if param is not array type but value is an array\n fieldValue = join(fieldValue, ',');\n }\n rowObject[fieldName] = fieldValue;\n }\n // for related entities, clear the blob type fields\n if (isObject(fieldValue) && !isArray(fieldValue)) {\n forEach(fieldValue, (val, key) => {\n if (LiveVariableUtils.getFieldType(fieldName, variable, key) === 'blob') {\n fieldValue[key] = val === null ? val : '';\n }\n });\n }\n }\n });\n }\n\n switch (action) {\n case 'updateTableData':\n prevData = options.prevData || {};\n /*Construct the \"requestData\" based on whether the table associated with the live-variable has a composite key or not.*/\n if (LiveVariableUtils.isCompositeKey(primaryKey)) {\n if (LiveVariableUtils.isNoPrimaryKey(primaryKey)) {\n prevCompositeKeysData = prevData || options.rowData || rowObject;\n compositeKeysData = rowObject;\n } else {\n primaryKey.forEach(key => {\n compositeKeysData[key] = rowObject[key];\n // In case of periodic update for Business temporal fields, passing updated field data.\n if (options.period) {\n prevCompositeKeysData[key] = rowObject[key];\n } else {\n prevCompositeKeysData[key] = prevData[key] || (options.rowData && options.rowData[key]) || rowObject[key];\n }\n });\n }\n options.row = compositeKeysData;\n options.compositeKeysData = prevCompositeKeysData;\n } else {\n primaryKey.forEach((key) => {\n if (key.indexOf('.') === -1) {\n id = prevData[key] || (options.rowData && options.rowData[key]) || rowObject[key];\n } else {\n columnName = key.split('.');\n id = prevData[columnName[0]][columnName[1]];\n }\n });\n options.id = id;\n options.row = rowObject;\n }\n\n break;\n case 'deleteTableData':\n /*Construct the \"requestData\" based on whether the table associated with the live-variable has a composite key or not.*/\n if (LiveVariableUtils.isCompositeKey(primaryKey)) {\n if (LiveVariableUtils.isNoPrimaryKey(primaryKey)) {\n compositeKeysData = rowObject;\n } else {\n primaryKey.forEach(key => {\n compositeKeysData[key] = rowObject[key];\n });\n }\n options.compositeKeysData = compositeKeysData;\n } else if (!isEmpty(rowObject)) {\n primaryKey.forEach(key => {\n if (key.indexOf('.') === -1) {\n id = rowObject[key];\n } else {\n columnName = key.split('.');\n id = rowObject[columnName[0]][columnName[1]];\n }\n });\n options.id = id;\n }\n break;\n default:\n break;\n }\n // If table has blob column then send multipart data\n if ((action === 'updateTableData' || action === 'insertTableData') && LiveVariableUtils.hasBlob(variable) && isFormDataSupported) {\n if (action === 'updateTableData') {\n action = 'updateMultiPartTableData';\n } else {\n action = 'insertMultiPartTableData';\n }\n rowObject = LiveVariableUtils.prepareFormData(variable, rowObject);\n }\n /*Check if \"options\" have the \"compositeKeysData\" property.*/\n if (options.compositeKeysData) {\n switch (action) {\n case 'updateTableData':\n action = 'updateCompositeTableData';\n break;\n case 'deleteTableData':\n action = 'deleteCompositeTableData';\n break;\n case 'updateMultiPartTableData':\n action = 'updateMultiPartCompositeTableData';\n break;\n default:\n break;\n }\n compositeId = LiveVariableUtils.getCompositeIDURL(options.compositeKeysData);\n }\n dbName = variable.liveSource;\n\n /*Set the \"data\" in the request to \"undefined\" if there is no data.\n * This handles cases such as \"Delete\" requests where data should not be passed.*/\n if (isEmpty(rowObject) && action === 'deleteTableData') {\n rowObject = undefined;\n }\n\n if ((action === 'updateCompositeTableData' || action === 'deleteCompositeTableData') && options.period) {\n // capitalize first character\n action = 'period' + action.charAt(0).toUpperCase() + action.substr(1);\n }\n\n const dbOperations = {\n 'projectID': projectID,\n 'service': variable._prefabName ? '' : 'services',\n 'dataModelName': dbName,\n 'entityName': variable.type,\n 'id': !isUndefined(options.id) ? encodeURIComponent(options.id) : compositeId,\n 'data': rowObject,\n 'url': variable._prefabName ? ($rootScope.project.deployedUrl + '/prefabs/' + variable._prefabName) : $rootScope.project.deployedUrl\n };\n\n onCUDerror = (response: any, reject: any) => {\n const errMsg = response.error;\n const advancedOptions: AdvancedOptions = this.prepareCallbackOptions(response);\n // EVENT: ON_RESULT\n initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, errMsg, advancedOptions);\n // EVENT: ON_ERROR\n if (!options.skipNotification) {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, errMsg, advancedOptions);\n }\n // EVENT: ON_CAN_UPDATE\n variable.canUpdate = true;\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, errMsg, advancedOptions);\n triggerFn(error, errMsg);\n reject(errMsg);\n };\n\n onCUDsuccess = (data: any, resolve: any) => {\n let response = data.body || data.data;\n const advancedOptions: AdvancedOptions = this.prepareCallbackOptions(data);\n\n $queue.process(variable);\n /* if error received on making call, call error callback */\n if (response && response.error) {\n // EVENT: ON_RESULT\n initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, response, advancedOptions);\n // EVENT: ON_ERROR\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, response.error, advancedOptions);\n // EVENT: ON_CAN_UPDATE\n variable.canUpdate = true;\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, response.error, advancedOptions);\n triggerFn(error, response.error);\n return Promise.reject(response.error);\n }\n\n // EVENT: ON_RESULT\n initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, response, advancedOptions);\n if (variable.operation !== 'read') {\n // EVENT: ON_PREPARESETDATA\n const newDataSet = initiateCallback(VARIABLE_CONSTANTS.EVENT.PREPARE_SETDATA, variable, response, advancedOptions);\n if (newDataSet) {\n // setting newDataSet as the response to service variable onPrepareSetData\n response = newDataSet;\n }\n variable.dataSet = response;\n }\n\n // watchers should get triggered before calling onSuccess event.\n // so that any variable/widget depending on this variable's data is updated\n variable.notify(VariableEvents.AFTER_INVOKE, [this, response])\n setTimeout(() => {\n // EVENT: ON_SUCCESS\n initiateCallback(VARIABLE_CONSTANTS.EVENT.SUCCESS, variable, response, advancedOptions);\n // EVENT: ON_CAN_UPDATE\n variable.canUpdate = true;\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, response, advancedOptions);\n });\n triggerFn(success, response);\n resolve(response);\n };\n\n return new Promise((resolve, reject) => {\n this.makeCall(variable, action, dbOperations).then(data => {\n onCUDsuccess(data, resolve);\n }, response => {\n onCUDerror(response, reject);\n });\n });\n }\n\n\n\n private aggregateData(deployedUrl, variable, options, success, error) {\n let tableOptions,\n dbOperationOptions,\n aggregateDataSuccess,\n aggregateDataError;\n const dbOperation = 'executeAggregateQuery';\n options = options || {};\n options.skipEncode = true;\n if (variable.filterFields) {\n tableOptions = LiveVariableUtils.prepareTableOptions(variable, options);\n options.aggregations.filter = tableOptions.query;\n }\n dbOperationOptions = {\n 'dataModelName': variable.liveSource,\n 'entityName': variable.type,\n 'page': options.page || 1,\n 'size': options.size || variable.maxResults,\n 'sort': options.sort || '',\n 'url': deployedUrl,\n 'data': options.aggregations\n };\n aggregateDataSuccess = (response: any, resolve: any) => {\n if (response && response.type) {\n if ((response && response.error) || !response) {\n triggerFn(error, response.error);\n return;\n }\n triggerFn(success, response);\n resolve(response);\n }\n };\n aggregateDataError = (errorMsg: any, reject: any) => {\n triggerFn(error, errorMsg);\n reject(errorMsg);\n };\n\n return new Promise((resolve, reject) => {\n this.makeCall(variable, dbOperation, dbOperationOptions).then((response) => {\n aggregateDataSuccess(response, resolve);\n }, err => {\n aggregateDataError(err, reject);\n });\n });\n }\n\n\n // *********************************************************** PUBLIC ***********************************************************//\n\n /**\n * Makes http call for a Live Variable against the configured DB Entity.\n * Gets the paginated records against the entity\n * @param variable\n * @param options\n * @param success\n * @param error\n * @returns {Promise<any>}: will be resolved on successful data fetch\n */\n public listRecords(variable, options, success, error) {\n options = options || {};\n options.filterFields = options.filterFields || getClonedObject(variable.filterFields);\n return $queue.submit(variable).then(() => {\n this.notifyInflight(variable, !options.skipToggleState, undefined, options);\n return this.getEntityData(variable, options, success, error)\n .then((response) => {\n $queue.process(variable);\n this.notifyInflight(variable, false, response);\n return Promise.resolve(response);\n }, (err) => {\n $queue.process(variable);\n this.notifyInflight(variable, false, err);\n return Promise.reject(err);\n });\n }, error);\n }\n\n /**\n * Makes a POST http call for a Live Variable against the configured DB Entity.\n * Sends a Table record object with the request body\n * the record is inserted into the entity at the backend\n * @param variable\n * @param options\n * @param success\n * @param error\n * @returns {Promise<any>}: will be resolved on successful data fetch\n */\n public insertRecord(variable, options, success, error) {\n return this.performCUD('insertTableData', variable, options, success, error);\n }\n\n /**\n * Makes a PUT http call for a Live Variable against the configured DB Entity.\n * Sends a Table record object with the request body against the primary key of an existing record\n * the record is updated into the entity at the backend\n * @param variable\n * @param options\n * @param success\n * @param error\n * @returns {Promise<any>}: will be resolved on successful data fetch\n */\n public updateRecord(variable, options, success, error) {\n return this.performCUD('updateTableData', variable, options, success, error);\n }\n\n /**\n * Makes a DELETE http call for a Live Variable against the configured DB Entity.\n * Sends the primary key of an existing record\n * the record is deleted from the entity at the backend\n * @param variable\n * @param options\n * @param success\n * @param error\n * @returns {Promise<any>}: will be resolved on successful data fetch\n */\n public deleteRecord(variable, options, success, error) {\n return this.performCUD('deleteTableData', variable, options, success, error);\n }\n\n /**\n * sets the value against passed key on the \"inputFields\" object in the variable\n * @param variable\n * @param key: can be:\n * - a string e.g. \"username\"\n * - an object, e.g. {\"username\": \"john\", \"ssn\": \"11111\"}\n * @param val\n * - if key is string, the value against it (for that data type)\n * - if key is object, not required\n * @param options\n * @returns {any}\n */\n public setInput(variable, key, val, options) {\n variable.inputFields = variable.inputFields || {};\n return setInput(variable.inputFields, key, val, options);\n }\n\n /**\n * sets the value against passed key on the \"filterFields\" object in the variable\n * @param variable\n * @param key: can be:\n * - a string e.g. \"username\"\n * - an object, e.g. {\"username\": \"john\", \"ssn\": \"11111\"}\n * @param val\n * - if key is string, the value against it (for that data type)\n * - if key is object, not required\n * @param options\n * @returns {any}\n */\n public setFilter(variable, key, val) {\n let paramObj: any = {},\n targetObj: any = {};\n if (isObject(key)) {\n paramObj = key;\n } else {\n paramObj[key] = val;\n }\n\n if (!variable.filterExpressions || isEmpty(variable.filterExpressions)) {\n variable.filterExpressions = {'condition': 'AND', 'rules': []};\n }\n targetObj = variable.filterExpressions;\n\n // find the existing criteria if present or else return null. Find the first one and return.\n // If the user wants to set a different object, then he has to use the getCriteria API defined\n // on the dataFilter object passed to the onBeforeListRecords\n function getExistingCriteria(filterField) {\n let existingCriteria = null;\n LiveVariableUtils.traverseFilterExpressions(targetObj, function (filterExpressions, criteria) {\n if (filterField === criteria.target) {\n return existingCriteria = criteria;\n }\n });\n return existingCriteria;\n }\n\n forEach(paramObj, function (paramVal, paramKey) {\n const existingCriteria = getExistingCriteria(paramKey);\n if (existingCriteria !== null) {\n existingCriteria.value = paramVal;\n } else {\n targetObj.rules.push({\n target: paramKey,\n type: '',\n matchMode: '',\n value: paramVal,\n required: false\n });\n }\n });\n\n return targetObj;\n }\n\n /**\n * Makes a file download call for a table\n * @param variable\n * @param options\n */\n public download(variable, options, successHandler, errorHandler) {\n options = options || {};\n let tableOptions,\n dbOperationOptions,\n downloadSuccess,\n downloadError;\n const data: any = {};\n const dbOperation = 'exportTableData';\n const projectID = $rootScope.project.id || $rootScope.projectName;\n options.data.searchWithQuery = true; // For export, query api is used. So set this flag to true\n options.data.skipEncode = true;\n tableOptions = LiveVariableUtils.prepareTableOptions(variable, options.data, undefined);\n data.query = tableOptions.query ? tableOptions.query : '';\n data.exportSize = options.data.exportSize;\n data.exportType = options.data.exportType;\n data.fields = formatExportExpression(options.data.fields);\n if (options.data.fileName) {\n data.fileName = options.data.fileName;\n }\n dbOperationOptions = {\n 'projectID': projectID,\n 'service': variable.getPrefabName() ? '' : 'services',\n 'dataModelName': variable.liveSource,\n 'entityName': variable.type,\n 'sort': tableOptions.sort,\n 'url': variable.getPrefabName() ? ($rootScope.project.deployedUrl + '/prefabs/' + variable.getPrefabName()) : $rootScope.project.deployedUrl,\n 'data': data,\n 'filter': LiveVariableUtils.getWhereClauseGenerator(variable, options)\n // 'filterMeta' : tableOptions.filter\n };\n downloadSuccess = (response: any, resolve: any) => {\n if (response && response.type) {\n window.location.href = response.body.result;\n triggerFn(successHandler, response);\n resolve(response);\n }\n };\n downloadError = (err: any, reject: any) => {\n const opt: AdvancedOptions = this.prepareCallbackOptions(err.details);\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, err.error, opt);\n triggerFn(errorHandler, err.error);\n reject(err);\n };\n return new Promise((resolve, reject) => {\n this.makeCall(variable, dbOperation, dbOperationOptions).then((response) => {\n downloadSuccess(response, resolve);\n }, (error) => {\n downloadError(error, reject);\n });\n });\n }\n\n /**\n * gets primary keys against the passed related Table\n * @param variable\n * @param relatedField\n * @returns {any}\n */\n public getRelatedTablePrimaryKeys(variable, relatedField) {\n let primaryKeys,\n result,\n relatedCols;\n if (!variable.propertiesMap) {\n return;\n }\n result = find(variable.propertiesMap.columns || [], {'fieldName': relatedField});\n // if related field name passed, get its type from columns inside the current field\n if (result) {\n relatedCols = result.columns;\n primaryKeys = map(filter(relatedCols, 'isPrimaryKey'), 'fieldName');\n if (primaryKeys.length) {\n return primaryKeys;\n }\n if (relatedCols && relatedCols.length) {\n relatedCols = find(relatedCols, {'isRelated': false});\n return relatedCols && relatedCols.fieldName;\n }\n }\n }\n\n /**\n * Makes HTTP call to get the data for related entity of a field in an entity\n * @param variable\n * @param columnName\n * @param options\n * @param success\n * @param error\n */\n public getRelatedTableData(variable, columnName, options, success, error) {\n const projectID = $rootScope.project.id || $rootScope.projectName;\n const relatedTable = find(variable.relatedTables, table => table.relationName === columnName || table.columnName === columnName); // Comparing column name to support the old projects\n const selfRelatedCols = map(filter(variable.relatedTables, o => o.type === variable.type), 'relationName');\n const filterFields = [];\n let orderBy,\n filterOptions,\n query,\n action,\n dbOperationOptions,\n getRelatedTableDataSuccess,\n getRelatedTableDataError;\n forEach(options.filterFields, (value, key) => {\n value.fieldName = key;\n value.type = LiveVariableUtils.getFieldType(columnName, variable, key);\n /**\n * for 'in' mode we are taking the input as comma separated values and for between in ui there are two different fields\n * but these are processed and merged into a single value with comma as separator. For these conditions like 'in' and 'between',\n * for building the query, the function expects the values to be an array\n */\n if (value.filterCondition === DB_CONSTANTS.DATABASE_MATCH_MODES.in.toLowerCase() || value.filterCondition === DB_CONSTANTS.DATABASE_MATCH_MODES.between.toLowerCase()) {\n value.value = value.value.split(',');\n }\n filterFields.push(value);\n });\n filterOptions = LiveVariableUtils.getFilterOptions(variable, filterFields, options);\n query = LiveVariableUtils.getSearchQuery(filterOptions, ' ' + (options.logicalOp || 'AND') + ' ', variable.ignoreCase);\n if (options.filterExpr) {\n const _clonedFields = getClonedObject(isObject(options.filterExpr) ? options.filterExpr : JSON.parse(options.filterExpr));\n LiveVariableUtils.processFilterFields(_clonedFields.rules, variable, options);\n const filterExpQuery = LiveVariableUtils.generateSearchQuery(_clonedFields.rules, _clonedFields.condition, variable.ignoreCase, options.skipEncode);\n if (query !== '') {\n if (filterExpQuery !== '') {\n query = '(' + query + ') AND (' + filterExpQuery + ')';\n }\n } else if (filterExpQuery !== '') {\n query = filterExpQuery;\n }\n }\n query = query ? ('q=' + query) : '';\n action = 'searchTableDataWithQuery';\n orderBy = isEmpty(options.orderBy) ? '' : 'sort=' + options.orderBy;\n dbOperationOptions = {\n projectID: projectID,\n service: variable.getPrefabName() ? '' : 'services',\n dataModelName: variable.liveSource,\n entityName: relatedTable ? relatedTable.type : '',\n page: options.page || 1,\n size: options.pagesize || undefined,\n url: variable.getPrefabName() ? ($rootScope.project.deployedUrl + '/prefabs/' + variable.getPrefabName()) : $rootScope.project.deployedUrl,\n data: query || '',\n filter: LiveVariableUtils.getWhereClauseGenerator(variable, options),\n sort: orderBy\n };\n getRelatedTableDataSuccess = (res: any, resolve: any) => {\n if (res && (res.type || res.status)) {\n const response = res.body || res.data;\n /*Remove the self related columns from the data. As backend is restricting the self related column to one level, In liveform select, dataset and datavalue object\n * equality does not work. So, removing the self related columns to acheive the quality*/\n const data = map(response.content, o => omit(o, selfRelatedCols));\n\n const pagination = Object.assign({}, response);\n delete pagination.content;\n decodeData(data);\n const result = {data: data, pagination};\n triggerFn(success, result);\n\n resolve(result);\n }\n };\n getRelatedTableDataError = (errMsg: any, reject: any) => {\n triggerFn(error, errMsg);\n reject(errMsg);\n };\n return new Promise((resolve, reject) => {\n this.makeCall(variable, action, dbOperationOptions).then((response) => {\n getRelatedTableDataSuccess(response, resolve);\n }, err => {\n getRelatedTableDataError(err, reject);\n });\n });\n }\n\n /**\n * Gets the distinct records for an entity\n * @param variable\n * @param options\n * @param success\n * @param error\n */\n public getDistinctDataByFields(variable, options, success, error) {\n const dbOperation = 'getDistinctDataByFields';\n const projectID = $rootScope.project.id || $rootScope.projectName;\n const requestData: any = {};\n let sort;\n let tableOptions,\n dbOperationOptions,\n getDistinctDataByFieldsSuccess,\n getDistinctDataByFieldsError;\n options.skipEncode = true;\n options.operation = 'read';\n options = options || {};\n tableOptions = LiveVariableUtils.prepareTableOptions(variable, options);\n if (tableOptions.query) {\n requestData.filter = tableOptions.query;\n }\n requestData.groupByFields = isArray(options.fields) ? options.fields : [options.fields];\n sort = options.sort || requestData.groupByFields[0] + ' asc';\n sort = sort ? 'sort=' + sort : '';\n dbOperationOptions = {\n 'projectID': projectID,\n 'service': variable.getPrefabName() ? '' : 'services',\n 'dataModelName': variable.liveSource,\n 'entityName': options.entityName || variable.type,\n 'page': options.page || 1,\n 'size': options.pagesize,\n 'sort': sort,\n 'data': requestData,\n 'filter': LiveVariableUtils.getWhereClauseGenerator(variable, options),\n 'url': variable.getPrefabName() ? ($rootScope.project.deployedUrl + '/prefabs/' + variable.getPrefabName()) : $rootScope.project.deployedUrl\n };\n getDistinctDataByFieldsSuccess = (response: any, resolve: any) => {\n if (response && response.type) {\n if ((response && response.error) || !response) {\n triggerFn(error, response.error);\n return Promise.reject(response.error);\n }\n let result = response.body;\n const pagination = Object.assign({}, response.body);\n delete pagination.content;\n\n result = {data: result.content, pagination};\n triggerFn(success, result);\n resolve(result);\n }\n };\n getDistinctDataByFieldsError = (errorMsg: any, reject: any) => {\n triggerFn(error, errorMsg);\n reject(errorMsg);\n };\n\n return new Promise((resolve, reject) => {\n this.makeCall(variable, dbOperation, dbOperationOptions).then((response) => {\n getDistinctDataByFieldsSuccess(response, resolve);\n }, () => {\n getDistinctDataByFieldsError(error, reject);\n });\n });\n }\n\n /*Function to get the aggregated data based on the fields chosen*/\n public getAggregatedData(variable, options, success, error) {\n const deployedURL = appManager.getDeployedURL();\n if (deployedURL) {\n return this.aggregateData(deployedURL, variable, options, success, error);\n }\n }\n\n public defineFirstLastRecord(variable) {\n if (variable.operation === 'read') {\n Object.defineProperty(variable, 'firstRecord', {\n 'configurable': true,\n 'get': () => {\n return get(variable.dataSet, 'data[0]', {});\n }\n });\n Object.defineProperty(variable, 'lastRecord', {\n 'configurable': true,\n 'get': () => {\n const data = get(variable.dataSet, 'data', []);\n return data[data.length - 1];\n }\n });\n }\n }\n\n public getPrimaryKey(variable) {\n return LiveVariableUtils.getPrimaryKey(variable);\n }\n\n // Returns the search query params.\n public prepareRequestParams(options) {\n let requestParams;\n\n const searchKeys = split(options.searchKey, ','),\n matchModes = split(options.matchMode, ','),\n formFields = {};\n\n forEach(searchKeys, (colName, index) => {\n formFields[colName] = {\n value: options.query,\n logicalOp: 'AND',\n matchMode: matchModes[index] || matchModes[0] || 'startignorecase'\n };\n });\n\n requestParams = {\n filterFields: formFields,\n page: options.page,\n pagesize: options.limit || options.pagesize,\n skipDataSetUpdate: true, // dont update the actual variable dataset,\n skipToggleState: true, // Dont change the variable toggle state as this is a independent call\n inFlightBehavior: 'executeAll',\n logicalOp: 'OR',\n orderBy: options.orderby ? replace(options.orderby, /:/g, ' ') : ''\n };\n\n if (options.onBeforeservicecall) {\n options.onBeforeservicecall(formFields);\n }\n\n return requestParams;\n }\n\n /**\n * Gets the filtered records based on searchKey\n * @param variable\n * @param options contains the searchKey and queryText\n * @param success\n * @param error\n * @returns {Promise<any>}\n */\n public searchRecords(variable, options, success, error) {\n const requestParams = this.prepareRequestParams(options);\n\n return this.listRecords(variable, requestParams, success, error);\n }\n\n /**\n * used in onBeforeUpdate call - called last in the function - used in old Variables using dataBinding.\n * This function migrates the old data dataBinding to filterExpressions equivalent format\n * @param variable\n * @param inputData\n * @private\n */\n public upgradeInputDataToFilterExpressions(variable, response, inputData) {\n if (isObject(response)) {\n inputData = response;\n inputData.condition = 'AND';\n inputData.rules = [];\n }\n /**\n * if the user deletes a particular criteria, we need to remove this form our data aswell.\n * so we are keeping a copy of it and the emptying the existing object and now fill it with the\n * user set criteria. If its just modified, change the data and push it tohe rules or else just add a new criteria\n */\n const clonedRules = cloneDeep(inputData.rules);\n inputData.rules = [];\n forEach(inputData, function (valueObj, key) {\n if (key !== 'condition' && key !== 'rules') {\n const filteredObj = find(clonedRules, o => o.target === key);\n // if the key is found update the value, else create a new rule obj and add it to the existing rules\n if (filteredObj) {\n filteredObj.value = valueObj.value;\n filteredObj.matchMode = valueObj.matchMode || valueObj.filterCondition || filteredObj.matchMode || '';\n inputData.rules.push(filteredObj);\n } else {\n inputData.rules.push({\n 'target': key,\n 'type': '',\n 'matchMode': valueObj.matchMode || valueObj.filterCondition || '',\n 'value': valueObj.value,\n 'required': false\n });\n }\n delete inputData[key];\n }\n });\n return inputData;\n }\n\n /**\n * used in onBeforeUpdate call - called first in the function - used in old Variables using dataBinding.\n * This function migrates the filterExpressions object to flat map structure\n * @param variable\n * @param inputData\n * @private\n */\n public downgradeFilterExpressionsToInputData(variable, inputData) {\n if (inputData.hasOwnProperty('getFilterFields')) {\n inputData = inputData.getFilterFields();\n }\n forEach(inputData.rules, function (ruleObj) {\n if (!isNil(ruleObj.target) && ruleObj.target !== '') {\n inputData[ruleObj.target] = {\n 'value': ruleObj.value,\n 'matchMode': ruleObj.matchMode\n };\n }\n });\n return inputData;\n }\n\n public cancel(variable, options) {\n if ($queue.requestsQueue.has(variable) && variable._observable) {\n variable._observable.unsubscribe();\n $queue.process(variable);\n // notify inflight variable\n this.notifyInflight(variable, false);\n }\n }\n}\n"]}
@@ -14,27 +14,27 @@ var __extends = (this && this.__extends) || (function () {
14
14
  };
15
15
  })();
16
16
  import { BaseVariableManager } from './base-variable.manager';
17
- import _ from 'lodash';
17
+ import { forEach, isBoolean, isNumber, isObject, isArray, isEmpty } from 'lodash-es';
18
18
  var checkEmptyObject = function (obj) {
19
- var isEmpty = true;
20
- _.forEach(obj, function (value) {
21
- if (_.isEmpty(value) && !_.isBoolean(value) && !_.isNumber(value)) {
19
+ var isEmpt = true;
20
+ forEach(obj, function (value) {
21
+ if (isEmpty(value) && !isBoolean(value) && !isNumber(value)) {
22
22
  return;
23
23
  }
24
- if (!_.isObject(value)) {
25
- isEmpty = false;
24
+ if (!isObject(value)) {
25
+ isEmpt = false;
26
26
  }
27
- else if (_.isArray(value)) {
27
+ else if (isArray(value)) {
28
28
  // If array, check if array is empty or if it has only one value and the value is empty
29
- isEmpty = _.isEmpty(value) || (value.length === 1 ? _.isEmpty(value[0]) : false);
29
+ isEmpt = isEmpty(value) || (value.length === 1 ? isEmpty(value[0]) : false);
30
30
  }
31
31
  else {
32
32
  // If object, loop over the object to check if it is empty or not
33
- isEmpty = checkEmptyObject(value);
33
+ isEmpt = checkEmptyObject(value);
34
34
  }
35
- return isEmpty; // isEmpty false will break the loop
35
+ return isEmpt; // isEmpty false will break the loop
36
36
  });
37
- return isEmpty;
37
+ return isEmpt;
38
38
  };
39
39
  var ModelVariableManager = /** @class */ (function (_super) {
40
40
  __extends(ModelVariableManager, _super);
@@ -46,7 +46,7 @@ var ModelVariableManager = /** @class */ (function (_super) {
46
46
  * and the object has all fields empty, remove that object
47
47
  */
48
48
  ModelVariableManager.prototype.removeFirstEmptyObject = function (variable) {
49
- if (_.isArray(variable.dataSet) && variable.dataSet.length === 1 && checkEmptyObject(variable.dataSet[0])) {
49
+ if (isArray(variable.dataSet) && variable.dataSet.length === 1 && checkEmptyObject(variable.dataSet[0])) {
50
50
  variable.dataSet = [];
51
51
  }
52
52
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-variable.manager.js","sourceRoot":"./","sources":["src/manager/variable/model-variable.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAEnF,IAAM,gBAAgB,GAAG,UAAC,GAAQ;IAC9B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,CAAC,GAAG,EAAE,UAAC,KAAU;QACpB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,uFAAuF;YACvF,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,iEAAiE;YACjE,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,oCAAoC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF;IAA0C,wCAAmB;IAA7D;;IAUA,CAAC;IATG;;;MAGE;IACF,qDAAsB,GAAtB,UAAuB,QAAa;QAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtG,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IACL,2BAAC;AAAD,CAAC,AAVD,CAA0C,mBAAmB,GAU5D","sourcesContent":["import { BaseVariableManager } from './base-variable.manager';\n\nimport {forEach, isBoolean, isNumber, isObject, isArray, isEmpty} from 'lodash-es';\n\nconst checkEmptyObject = (obj: any) => {\n let isEmpt = true;\n forEach(obj, (value: any) => {\n if (isEmpty(value) && !isBoolean(value) && !isNumber(value)) {\n return;\n }\n if (!isObject(value)) {\n isEmpt = false;\n } else if (isArray(value)) {\n // If array, check if array is empty or if it has only one value and the value is empty\n isEmpt = isEmpty(value) || (value.length === 1 ? isEmpty(value[0]) : false);\n } else {\n // If object, loop over the object to check if it is empty or not\n isEmpt = checkEmptyObject(value);\n }\n return isEmpt; // isEmpty false will break the loop\n });\n return isEmpt;\n};\n\nexport class ModelVariableManager extends BaseVariableManager {\n /*\n * Case: a LIST type static variable having only one object\n * and the object has all fields empty, remove that object\n */\n removeFirstEmptyObject(variable: any) {\n if (isArray(variable.dataSet) && variable.dataSet.length === 1 && checkEmptyObject(variable.dataSet[0])) {\n variable.dataSet = [];\n }\n }\n}\n"]}