@wavemaker/variables 12.0.0-next.142016 → 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
@@ -4,7 +4,7 @@ import { isFileUploadSupported } from './variables.utils';
4
4
  import { getAccessToken } from './../oAuth.utils';
5
5
  import { formatDate } from "./variables.utils";
6
6
  import { PaginationUtils } from '../../util/variable/pagination.utils';
7
- import _ from 'lodash';
7
+ import { includes, toLower, get, isObject, isArray, forEach, isUndefined, join, isEmpty, isNull, concat, toUpper, map, reject } from 'lodash-es';
8
8
  /**
9
9
  * returns true if a Service variable is:
10
10
  * - for a query/procedure
@@ -13,7 +13,7 @@ import _ from 'lodash';
13
13
  * @returns {any}
14
14
  */
15
15
  var isBodyTypeQueryOrProcedure = function (variable) {
16
- return (_.includes(['QueryExecution', 'ProcedureExecution'], variable.controller)) && (_.includes(['put', 'post'], variable.operationType));
16
+ return (includes(['QueryExecution', 'ProcedureExecution'], variable.controller)) && (includes(['put', 'post'], variable.operationType));
17
17
  };
18
18
  /**
19
19
  * returns true if the variable is a Query service variable
@@ -31,17 +31,17 @@ var isQueryServiceVar = function (controller, serviceType) {
31
31
  * @param paramValue - Value which is to be appended to formdata
32
32
  */
33
33
  var getFormData = function (formData, param, paramValue) {
34
- var paramType = _.toLower(extractType(_.get(param, 'items.type') || param.type)), paramContentType = CONSTANTS.isStudioMode ? param['x-WM-CONTENT_TYPE'] : param.contentType;
34
+ var paramType = toLower(extractType(get(param, 'items.type') || param.type)), paramContentType = CONSTANTS.isStudioMode ? param['x-WM-CONTENT_TYPE'] : param.contentType;
35
35
  if (isFileUploadSupported()) {
36
36
  if ((paramType !== 'file') && (paramContentType === 'string' || !paramContentType)) {
37
- if (_.isObject(paramValue)) {
37
+ if (isObject(paramValue)) {
38
38
  paramValue = JSON.stringify(paramValue);
39
39
  }
40
40
  formData.append(param.name, paramValue);
41
41
  }
42
42
  else {
43
- if (_.isArray(paramValue) && paramType === 'file') {
44
- _.forEach(paramValue, function (fileObject) {
43
+ if (isArray(paramValue) && paramType === 'file') {
44
+ forEach(paramValue, function (fileObject) {
45
45
  formData.append(param.name, (fileObject && fileObject.content) || getBlob(fileObject), fileObject.name);
46
46
  });
47
47
  }
@@ -61,14 +61,14 @@ var getFormData = function (formData, param, paramValue) {
61
61
  var processRequestBody = function (inputData, params, variable) {
62
62
  var requestBody = {}, missingParams = [];
63
63
  var paramValue;
64
- _.forEach(params, function (param) {
65
- paramValue = _.get(inputData, param.name);
66
- if (!_.isUndefined(paramValue) && paramValue !== '' && paramValue !== null && !param.readOnly) {
64
+ forEach(params, function (param) {
65
+ paramValue = get(inputData, param.name);
66
+ if (!isUndefined(paramValue) && paramValue !== '' && paramValue !== null && !param.readOnly) {
67
67
  // ToDo - variable seperation
68
68
  paramValue = isDateTimeType(param.type) ? formatDate(paramValue, param.type, variable.dateFormatter) : paramValue;
69
69
  // Construct ',' separated string if param is not array type but value is an array
70
- if (_.isArray(paramValue) && _.toLower(extractType(param.type)) === 'string') {
71
- paramValue = _.join(paramValue, ',');
70
+ if (isArray(paramValue) && toLower(extractType(param.type)) === 'string') {
71
+ paramValue = join(paramValue, ',');
72
72
  }
73
73
  requestBody[param.name] = paramValue;
74
74
  }
@@ -91,8 +91,8 @@ var processRequestBody = function (inputData, params, variable) {
91
91
  */
92
92
  var cloakHeadersForProxy = function (headers) {
93
93
  var _headers = {}, UNCLOAKED_HEADERS = VARIABLE_CONSTANTS.REST_SERVICE.UNCLOAKED_HEADERS, CLOAK_PREFIX = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY;
94
- _.forEach(headers, function (val, key) {
95
- if (_.includes(UNCLOAKED_HEADERS, key.toUpperCase())) {
94
+ forEach(headers, function (val, key) {
95
+ if (includes(UNCLOAKED_HEADERS, key.toUpperCase())) {
96
96
  _headers[key] = val;
97
97
  }
98
98
  else {
@@ -123,7 +123,7 @@ var ServiceVariableUtils = /** @class */ (function () {
123
123
  }
124
124
  };
125
125
  }
126
- else if (_.isEmpty(operationInfo)) {
126
+ else if (isEmpty(operationInfo)) {
127
127
  return {
128
128
  'error': {
129
129
  'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.METADATA_MISSING,
@@ -150,7 +150,7 @@ var ServiceVariableUtils = /** @class */ (function () {
150
150
  formData = new FormData();
151
151
  return formData;
152
152
  }
153
- securityDefnObj = _.get(operationInfo.securityDefinitions, '0');
153
+ securityDefnObj = get(operationInfo.securityDefinitions, '0');
154
154
  if (securityDefnObj) {
155
155
  switch (securityDefnObj.type) {
156
156
  case VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.OAUTH2:
@@ -204,18 +204,18 @@ var ServiceVariableUtils = /** @class */ (function () {
204
204
  withCredentials = operationInfo.proxySettings.withCredentials;
205
205
  url = isProxyCall ? relativePath : directPath;
206
206
  /* loop through all the parameters */
207
- _.forEach(operationInfo.parameters, function (param) {
207
+ forEach(operationInfo.parameters, function (param) {
208
208
  // Set params based on current workspace
209
209
  function setParamsOfChildNode() {
210
210
  if (inputFields) {
211
211
  // specific case for body type query/procedure variable with query params
212
- if (inputFields[param.name] && _.isObject(inputFields[param.name])) {
212
+ if (inputFields[param.name] && isObject(inputFields[param.name])) {
213
213
  paramValueInfo = inputFields[param.name];
214
214
  }
215
215
  else {
216
216
  paramValueInfo = inputFields;
217
217
  }
218
- params = _.get(operationInfo, ['definitions', param.type]);
218
+ params = get(operationInfo, ['definitions', param.type]);
219
219
  }
220
220
  else {
221
221
  // For Api Designer
@@ -231,13 +231,13 @@ var ServiceVariableUtils = /** @class */ (function () {
231
231
  paramValue = formatDate(paramValue, param.type, variable.dateFormatter);
232
232
  }
233
233
  // Construct ',' separated string if param is not array type but value is an array
234
- if (_.isArray(paramValue) && _.toLower(extractType(param.type)) === 'string' && variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA) {
235
- paramValue = _.join(paramValue, ',');
234
+ if (isArray(paramValue) && toLower(extractType(param.type)) === 'string' && variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA) {
235
+ paramValue = join(paramValue, ',');
236
236
  }
237
237
  switch (param.parameterType.toUpperCase()) {
238
238
  case 'QUERY':
239
239
  // Ignore null valued query params for queryService variable
240
- if (_.isNull(paramValue) && isQueryServiceVar(variable.controller, variable.serviceType)) {
240
+ if (isNull(paramValue) && isQueryServiceVar(variable.controller, variable.serviceType)) {
241
241
  break;
242
242
  }
243
243
  if (!queryParams) {
@@ -261,7 +261,7 @@ var ServiceVariableUtils = /** @class */ (function () {
261
261
  setParamsOfChildNode();
262
262
  bodyInfo = processRequestBody(paramValueInfo, params, variable);
263
263
  requestBody = bodyInfo.requestBody;
264
- requiredParamMissing = _.concat(requiredParamMissing, bodyInfo.missingParams);
264
+ requiredParamMissing = concat(requiredParamMissing, bodyInfo.missingParams);
265
265
  }
266
266
  else {
267
267
  requestBody = paramValue;
@@ -273,7 +273,12 @@ var ServiceVariableUtils = /** @class */ (function () {
273
273
  // Process query/procedure formData non-file params params
274
274
  bodyInfo = processRequestBody(paramValueInfo, params, variable);
275
275
  requestBody = getFormData(getFormDataObj(), param, bodyInfo.requestBody);
276
- requiredParamMissing = _.concat(requiredParamMissing, bodyInfo.missingParams);
276
+ requiredParamMissing = concat(requiredParamMissing, bodyInfo.missingParams);
277
+ }
278
+ else if ((operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.consumes) && operationInfo.consumes[0] === WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED) {
279
+ // when the content-type is 'application/x-www-form-urlencoded'
280
+ requestBody = (requestBody && requestBody.length > 0 ? "".concat(requestBody, "&") : '')
281
+ + "".concat(encodeURIComponent(param.name), "=").concat(encodeURIComponent(param.sampleValue));
277
282
  }
278
283
  else {
279
284
  requestBody = getFormData(getFormDataObj(), param, paramValue);
@@ -297,7 +302,7 @@ var ServiceVariableUtils = /** @class */ (function () {
297
302
  };
298
303
  }
299
304
  // Setting appropriate content-Type for request accepting request body like POST, PUT, etc
300
- if (!_.includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, _.toUpper(method))) {
305
+ if (!includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, toUpper(method))) {
301
306
  /*Based on the formData browser will automatically set the content type to 'multipart/form-data' and webkit boundary*/
302
307
  if (!(operationInfo.consumes && (operationInfo.consumes[0] === WS_CONSTANTS.CONTENT_TYPES.MULTIPART_FORMDATA))) {
303
308
  headers['Content-Type'] = (operationInfo.consumes && operationInfo.consumes[0]) || 'application/json';
@@ -305,8 +310,8 @@ var ServiceVariableUtils = /** @class */ (function () {
305
310
  }
306
311
  // if the consumes has application/x-www-form-urlencoded and
307
312
  // if the http request of given method type can have body send the queryParams as Form Data
308
- if (_.includes(operationInfo.consumes, WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED)
309
- && !_.includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, (method || '').toUpperCase())) {
313
+ if (includes(operationInfo.consumes, WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED)
314
+ && !includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, (method || '').toUpperCase())) {
310
315
  // remove the '?' at the start of the queryParams
311
316
  if (queryParams) {
312
317
  requestBody = (requestBody ? requestBody + '&' : '') + queryParams.substring(1);
@@ -377,8 +382,8 @@ var ServiceVariableUtils = /** @class */ (function () {
377
382
  * @params {params} params of the variable
378
383
  */
379
384
  ServiceVariableUtils.excludePaginationParams = function (params) {
380
- return _.map(_.reject(params, function (param) {
381
- return _.includes(VARIABLE_CONSTANTS.PAGINATION_PARAMS, param.name);
385
+ return map(reject(params, function (param) {
386
+ return includes(VARIABLE_CONSTANTS.PAGINATION_PARAMS, param.name);
382
387
  }), function (param) {
383
388
  return param.name;
384
389
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-variable.utils.js","sourceRoot":"./","sources":["src/util/variable/service-variable.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { extractType, isDefined, isDateTimeType, getBlob, replace } from \"../../util/utils\";\n\nimport { $rootScope, CONSTANTS, SWAGGER_CONSTANTS, VARIABLE_CONSTANTS, WS_CONSTANTS } from '../../constants/variables.constants';\nimport { isFileUploadSupported } from './variables.utils';\nimport { getAccessToken } from './../oAuth.utils';\nimport { formatDate} from \"./variables.utils\";\nimport { PaginationUtils } from '../../util/variable/pagination.utils';\n\nimport {includes, toLower, get, isObject, isArray, forEach, isUndefined, join, isEmpty, isNull, concat, toUpper, map, reject} from 'lodash-es';\n\n\n/**\n * returns true if a Service variable is:\n * - for a query/procedure\n * - performs a PUT/POST operation, i.e, takes a Request Body as input\n * @param variable\n * @returns {any}\n */\nconst isBodyTypeQueryOrProcedure = (variable) => {\n return (includes(['QueryExecution', 'ProcedureExecution'], variable.controller)) && (includes(['put', 'post'], variable.operationType));\n};\n\n/**\n * returns true if the variable is a Query service variable\n * @param {string} controller\n * @param {string} serviceType\n * @returns {boolean}\n */\nconst isQueryServiceVar = (controller: string, serviceType: string) => {\n return controller === VARIABLE_CONSTANTS.CONTROLLER_TYPE.QUERY && serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA;\n};\n\n/**\n * Append given value to the formdata\n * @param formData\n * @param param - Param from which value has to be taken\n * @param paramValue - Value which is to be appended to formdata\n */\nconst getFormData = (formData, param, paramValue) => {\n const paramType = toLower(extractType(get(param, 'items.type') || param.type)),\n paramContentType = CONSTANTS.isStudioMode ? param['x-WM-CONTENT_TYPE'] : param.contentType;\n if (isFileUploadSupported()) {\n if ((paramType !== 'file') && (paramContentType === 'string' || !paramContentType)) {\n if (isObject(paramValue)) {\n paramValue = JSON.stringify(paramValue);\n }\n formData.append(param.name, paramValue);\n } else {\n if (isArray(paramValue) && paramType === 'file') {\n forEach(paramValue, function (fileObject) {\n formData.append(param.name, (fileObject && fileObject.content) || getBlob(fileObject), fileObject.name);\n });\n } else {\n formData.append(param.name, getBlob(paramValue, paramContentType), paramValue && paramValue.name);\n }\n }\n return formData;\n }\n};\n\n/**\n * Check for missing required params and format the date/time param values\n * @param inputData\n * @param params\n * @returns {{requestBody: {}; missingParams: any[]}}\n */\nconst processRequestBody = (inputData, params, variable) => {\n const requestBody = {},\n missingParams = [];\n let paramValue;\n forEach(params, function (param) {\n paramValue = get(inputData, param.name);\n if (!isUndefined(paramValue) && paramValue !== '' && paramValue !== null && !param.readOnly) {\n // ToDo - variable seperation\n paramValue = isDateTimeType(param.type) ? formatDate(paramValue, param.type, variable.dateFormatter) : paramValue;\n // Construct ',' separated string if param is not array type but value is an array\n if (isArray(paramValue) && toLower(extractType(param.type)) === 'string') {\n paramValue = join(paramValue, ',');\n }\n requestBody[param.name] = paramValue;\n } else if (param.required) {\n missingParams.push(param.name || param.id);\n }\n });\n return {\n 'requestBody': requestBody,\n 'missingParams': missingParams\n };\n};\n\n/**\n * Done only for HTTP calls made via the proxy server\n * Goes though request headers, appends 'X-' to certain headers\n * these headers need not be processed at proxy server and should directly be passed to the server\n * e.g. Authorization, Cookie, etc.\n * @param headers\n * @returns {{}}\n */\nconst cloakHeadersForProxy = (headers) => {\n const _headers = {},\n UNCLOAKED_HEADERS = VARIABLE_CONSTANTS.REST_SERVICE.UNCLOAKED_HEADERS,\n CLOAK_PREFIX = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY;\n forEach(headers, function (val, key) {\n if (includes(UNCLOAKED_HEADERS, key.toUpperCase())) {\n _headers[key] = val;\n } else {\n _headers[CLOAK_PREFIX + key] = val;\n }\n });\n\n return _headers;\n};\n\nexport class ServiceVariableUtils {\n /**\n * prepares the HTTP request info for a Service Variable\n * @param variable\n * @param operationInfo\n * @param inputFields\n * @returns {any}\n */\n static constructRequestParams(variable, operationInfo, inputFields, options?) {\n variable = variable || {};\n\n // operationInfo is specifically null for un_authorized access\n if (operationInfo === null) {\n return {\n 'error' : {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.USER_UNAUTHORISED,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.USER_UNAUTHORISED,\n 'field': '_wmServiceOperationInfo'\n }\n };\n } else if (isEmpty(operationInfo)) {\n return {\n 'error' : {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.METADATA_MISSING,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.METADATA_MISSING,\n 'field': '_wmServiceOperationInfo'\n }\n };\n } else if (operationInfo && operationInfo.invalid) {\n return {\n 'error' : {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.CRUD_OPERATION_MISSING,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.CRUD_OPERATION_MISSING,\n 'field': '_wmServiceOperationInfo'\n }\n };\n }\n\n const directPath = operationInfo.directPath || '',\n relativePath = operationInfo.basePath ? operationInfo.basePath + operationInfo.relativePath : operationInfo.relativePath,\n isBodyTypeQueryProcedure = isBodyTypeQueryOrProcedure(variable);\n let queryParams = '',\n bodyInfo,\n headers = {},\n requestBody,\n url,\n requiredParamMissing = [],\n target,\n pathParamRex,\n invokeParams,\n authDetails = null,\n uname,\n pswd,\n method,\n formData,\n isProxyCall,\n paramValueInfo,\n params,\n securityDefnObj,\n accessToken,\n withCredentials;\n\n function getFormDataObj() {\n if (formData) {\n return formData;\n }\n formData = new FormData();\n return formData;\n }\n\n securityDefnObj = get(operationInfo.securityDefinitions, '0');\n\n if (securityDefnObj) {\n switch (securityDefnObj.type) {\n case VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.OAUTH2:\n accessToken = getAccessToken(securityDefnObj[VARIABLE_CONSTANTS.REST_SERVICE.OAUTH_PROVIDER_KEY], null);\n if (accessToken) {\n headers[VARIABLE_CONSTANTS.REST_SERVICE.AUTH_HDR_KEY] = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.AUTH_HDR_VAL.OAUTH + ' ' + accessToken;\n } else {\n return {\n 'error': {\n 'type' : VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.NO_ACCESSTOKEN,\n 'message' : VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.NO_ACCESSTOKEN\n },\n 'securityDefnObj': securityDefnObj\n };\n }\n break;\n case VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.BASIC:\n uname = inputFields['wm_auth_username'];\n pswd = inputFields['wm_auth_password'];\n if (uname && pswd) {\n // TODO[VIBHU]: bas64 encoding alternative.\n headers[VARIABLE_CONSTANTS.REST_SERVICE.AUTH_HDR_KEY] = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.AUTH_HDR_VAL.BASIC + ' ' + btoa(uname + ':' + pswd);\n authDetails = {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.AUTH_TYPE.BASIC\n };\n } else {\n return {\n 'error': {\n 'type' : VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.NO_CREDENTIALS,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.NO_CREDENTIALS\n },\n 'securityDefnObj': securityDefnObj\n };\n }\n break;\n }\n }\n // set query params, if pagination info is present and the info should be present in query\n PaginationUtils.checkPaginationAtQuery(operationInfo, variable, options);\n\n operationInfo.proxySettings = operationInfo.proxySettings || {web: true, mobile: false};\n method = operationInfo.httpMethod || operationInfo.methodType;\n isProxyCall = (function () {\n // ToDo - variable seperation\n // if (CONSTANTS.hasCordova) {\n return operationInfo.proxySettings.mobile;\n // }\n return operationInfo.proxySettings.web;\n }());\n withCredentials = operationInfo.proxySettings.withCredentials;\n url = isProxyCall ? relativePath : directPath;\n\n /* loop through all the parameters */\n forEach(operationInfo.parameters, function (param) {\n // Set params based on current workspace\n function setParamsOfChildNode() {\n if (inputFields) {\n // specific case for body type query/procedure variable with query params\n if (inputFields[param.name] && isObject(inputFields[param.name])) {\n paramValueInfo = inputFields[param.name];\n } else {\n paramValueInfo = inputFields;\n }\n params = get(operationInfo, ['definitions', param.type]);\n } else {\n // For Api Designer\n paramValueInfo = paramValue || {};\n params = param.children;\n }\n }\n\n let paramValue = param.sampleValue;\n\n if ((isDefined(paramValue) && paramValue !== null && paramValue !== '') || (isBodyTypeQueryProcedure && param.type !== 'file')) {\n // Format dateTime params for dataService variables\n if (variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA && isDateTimeType(param.type)) {\n // ToDo - variable seperation\n paramValue = formatDate(paramValue, param.type, variable.dateFormatter);\n }\n // Construct ',' separated string if param is not array type but value is an array\n if (isArray(paramValue) && toLower(extractType(param.type)) === 'string' && variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA) {\n paramValue = join(paramValue, ',');\n }\n switch (param.parameterType.toUpperCase()) {\n case 'QUERY':\n // Ignore null valued query params for queryService variable\n if (isNull(paramValue) && isQueryServiceVar(variable.controller, variable.serviceType)) {\n break;\n }\n if (!queryParams) {\n queryParams = '?' + param.name + '=' + encodeURIComponent(paramValue);\n } else {\n queryParams += '&' + param.name + '=' + encodeURIComponent(paramValue);\n }\n break;\n case 'PATH':\n /* replacing the path param based on the regular expression in the relative path */\n pathParamRex = new RegExp('\\\\s*\\\\{\\\\s*' + param.name + '(:\\\\.\\\\+)?\\\\s*\\\\}\\\\s*');\n url = url.replace(pathParamRex, paramValue);\n break;\n case 'HEADER':\n headers[param.name] = paramValue;\n break;\n case 'BODY':\n // For post/put query methods wrap the input\n if (isBodyTypeQueryProcedure) {\n setParamsOfChildNode();\n bodyInfo = processRequestBody(paramValueInfo, params, variable);\n requestBody = bodyInfo.requestBody;\n requiredParamMissing = concat(requiredParamMissing, bodyInfo.missingParams);\n } else {\n requestBody = paramValue;\n }\n break;\n case 'FORMDATA':\n if (isBodyTypeQueryProcedure && param.name === SWAGGER_CONSTANTS.WM_DATA_JSON) {\n setParamsOfChildNode();\n // Process query/procedure formData non-file params params\n bodyInfo = processRequestBody(paramValueInfo, params, variable);\n requestBody = getFormData(getFormDataObj(), param, bodyInfo.requestBody);\n requiredParamMissing = concat(requiredParamMissing, bodyInfo.missingParams);\n } else if(operationInfo?.consumes && operationInfo.consumes[0] === WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED) {\n // when the content-type is 'application/x-www-form-urlencoded'\n requestBody = (requestBody && requestBody.length > 0 ? `${requestBody}&` : '') \n + `${encodeURIComponent(param.name)}=${encodeURIComponent(param.sampleValue)}`;\n } else {\n requestBody = getFormData(getFormDataObj(), param, paramValue);\n }\n break;\n }\n } else if (param.required) {\n requiredParamMissing.push(param.name || param.id);\n }\n });\n\n // if required param not found, return error\n if (requiredParamMissing.length) {\n return {\n 'error': {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.REQUIRED_FIELD_MISSING,\n 'field': requiredParamMissing.join(','),\n 'message': replace(VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.REQUIRED_FIELD_MISSING, [requiredParamMissing.join(',')]),\n 'skipDefaultNotification': true\n }\n };\n }\n\n // Setting appropriate content-Type for request accepting request body like POST, PUT, etc\n if (!includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, toUpper(method))) {\n /*Based on the formData browser will automatically set the content type to 'multipart/form-data' and webkit boundary*/\n if (!(operationInfo.consumes && (operationInfo.consumes[0] === WS_CONSTANTS.CONTENT_TYPES.MULTIPART_FORMDATA))) {\n headers['Content-Type'] = (operationInfo.consumes && operationInfo.consumes[0]) || 'application/json';\n }\n }\n\n // if the consumes has application/x-www-form-urlencoded and\n // if the http request of given method type can have body send the queryParams as Form Data\n if (includes(operationInfo.consumes, WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED)\n && !includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, (method || '').toUpperCase())) {\n // remove the '?' at the start of the queryParams\n if (queryParams) {\n requestBody = (requestBody ? requestBody + '&' : '') + queryParams.substring(1);\n }\n headers['Content-Type'] = WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED;\n } else {\n url += queryParams;\n }\n\n /*\n * for proxy calls:\n * - cloak the proper headers (required only for REST services)\n * - prepare complete url from relativeUrl\n */\n if (isProxyCall) {\n // avoiding cloakHeadersForProxy when the method is invoked from apidesigner.\n headers = (variable.serviceType !== VARIABLE_CONSTANTS.SERVICE_TYPE.REST && variable.serviceType !== VARIABLE_CONSTANTS.SERVICE_TYPE.OPENAPI) || operationInfo.skipCloakHeaders ? headers : cloakHeadersForProxy(headers);\n if (variable.getPrefabName() && VARIABLE_CONSTANTS.REST_SUPPORTED_SERVICES.indexOf(variable.serviceType) !== -1) {\n /* if it is a prefab variable (used in a normal project), modify the url */\n url = 'prefabs/' + variable.getPrefabName() + url;\n target = 'invokePrefabRestService';\n } else if (!variable.getPrefabName()) {\n url = 'services' + url;\n }\n url = $rootScope.project.deployedUrl + url;\n }\n\n // If pagination info exists, process info in request headers or body based on the metadata\n const paginationInfo = PaginationUtils.getPaginationInfo(operationInfo, variable);\n if (paginationInfo && variable.pagination) {\n const resp = PaginationUtils.setPaginationAtReq(paginationInfo, operationInfo, variable, headers, requestBody, url, options);\n if (resp) {\n if (resp['headers']) {\n headers = resp['headers'];\n } else if (resp['requestBody']) {\n requestBody = resp['requestBody']\n } else if (resp['url']) {\n url = resp['url']\n }\n }\n }\n\n /*creating the params needed to invoke the service. url is generated from the relative path for the operation*/\n invokeParams = {\n 'projectID': $rootScope.project.id,\n 'url': url,\n 'target': target,\n 'method': method,\n 'headers': headers,\n 'data': requestBody,\n 'authDetails': authDetails,\n 'isDirectCall': !isProxyCall,\n 'isExtURL': variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.REST,\n 'withCredentials': withCredentials\n };\n\n return invokeParams;\n }\n\n static isFileUploadRequest(variable) {\n // temporary fix, have to find proper solution for deciding weather to upload file through variable\n return variable.service === 'FileService' && variable.operation === 'uploadFile';\n }\n\n static isFileDeleteRequest(variable) {\n return variable.service === 'FileService' && variable.operation === 'deleteFile';\n }\n\n /**\n * This method returns array of query param names for variable other then page,size,sort\n * @params {params} params of the variable\n */\n static excludePaginationParams(params) {\n return map(reject(params, (param) => {\n return includes(VARIABLE_CONSTANTS.PAGINATION_PARAMS, param.name);\n }), function (param) {\n return param.name;\n });\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { findValueOf, getValidJSON, noop, extractType, DataType, DEFAULT_FORMATS
2
2
  import { VARIABLE_CONSTANTS } from '../../constants/variables.constants';
3
3
  // @ts-ignore
4
4
  import moment from 'moment';
5
- import _ from 'lodash';
5
+ import { debounce, forEach, isObject, isNumber, isArray, isString, isEmpty, split, map, trim, remove, includes, join, isUndefined, isFunction, filter, keys, get, toUpper, isDate, toLower } from 'lodash-es';
6
6
  import he from 'he';
7
7
  export var appManager;
8
8
  export var httpService;
@@ -17,16 +17,16 @@ export var internalBoundNodeMap = new Map();
17
17
  var timers = new Map();
18
18
  var DOT_EXPR_REX = /^\[("|')[\w\W]*(\1)\]$/;
19
19
  var _invoke = function (variable, op) {
20
- var debouncedFn, cancelFn = _.noop, retVal;
20
+ var debouncedFn, cancelFn = noop, retVal;
21
21
  if (timers.has(variable)) {
22
22
  cancelFn = timers.get(variable).cancel;
23
23
  }
24
24
  cancelFn();
25
- debouncedFn = _.debounce(function () {
25
+ debouncedFn = debounce(function () {
26
26
  retVal = variable[op]();
27
27
  // handle promises to avoid uncaught promise errors in console
28
28
  if (retVal instanceof Promise) {
29
- retVal.catch(_.noop);
29
+ retVal.catch(noop);
30
30
  }
31
31
  }, 100);
32
32
  timers.set(variable, debouncedFn);
@@ -78,7 +78,7 @@ export var isFileUploadSupported = function () {
78
78
  * returns fieldDefs
79
79
  */
80
80
  export var formatExportExpression = function (fieldDefs) {
81
- _.forEach(fieldDefs, function (fieldDef) {
81
+ forEach(fieldDefs, function (fieldDef) {
82
82
  if (fieldDef.expression) {
83
83
  fieldDef.expression = '${' + fieldDef.expression + '}';
84
84
  }
@@ -122,17 +122,17 @@ export var setInput = function (targetObj, key, val, options) {
122
122
  targetObj = targetObj || {};
123
123
  var keys, lastKey, paramObj = {};
124
124
  // content type check
125
- if (_.isObject(options)) {
125
+ if (isObject(options)) {
126
126
  switch (options.type) {
127
127
  case 'file':
128
128
  val = getBlob(val, options.contentType);
129
129
  break;
130
130
  case 'number':
131
- val = _.isNumber(val) ? val : parseInt(val, 10);
131
+ val = isNumber(val) ? val : parseInt(val, 10);
132
132
  break;
133
133
  }
134
134
  }
135
- if (_.isObject(key)) {
135
+ if (isObject(key)) {
136
136
  // check if the passed parameter is an object itself
137
137
  paramObj = key;
138
138
  }
@@ -148,7 +148,7 @@ export var setInput = function (targetObj, key, val, options) {
148
148
  else {
149
149
  paramObj[key] = val;
150
150
  }
151
- _.forEach(paramObj, function (paramVal, paramKey) {
151
+ forEach(paramObj, function (paramVal, paramKey) {
152
152
  targetObj[paramKey] = paramVal;
153
153
  });
154
154
  return targetObj;
@@ -163,34 +163,34 @@ export var decodeData = function (responseContent) {
163
163
  if (!responseContent) {
164
164
  return responseContent;
165
165
  }
166
- if (_.isArray(responseContent)) {
167
- _.forEach(responseContent, function (data) {
168
- if (_.isString(data)) {
166
+ if (isArray(responseContent)) {
167
+ forEach(responseContent, function (data) {
168
+ if (isString(data)) {
169
169
  data = htmlDecode(data);
170
170
  }
171
- else if (_.isObject(data)) {
172
- _.forEach(data, function (value, key) {
173
- if (value && _.isString(value)) {
171
+ else if (isObject(data)) {
172
+ forEach(data, function (value, key) {
173
+ if (value && isString(value)) {
174
174
  data[key] = htmlDecode(value);
175
175
  }
176
- else if (_.isObject(value)) {
176
+ else if (isObject(value)) {
177
177
  decodeData(value);
178
178
  }
179
179
  });
180
180
  }
181
181
  });
182
182
  }
183
- else if (_.isObject(responseContent)) {
184
- _.forEach(responseContent, function (value, key) {
185
- if (value && _.isString(value)) {
183
+ else if (isObject(responseContent)) {
184
+ forEach(responseContent, function (value, key) {
185
+ if (value && isString(value)) {
186
186
  responseContent[key] = htmlDecode(value);
187
187
  }
188
- else if (_.isObject(value)) {
188
+ else if (isObject(value)) {
189
189
  decodeData(value);
190
190
  }
191
191
  });
192
192
  }
193
- else if (_.isString(responseContent)) {
193
+ else if (isString(responseContent)) {
194
194
  responseContent = htmlDecode(responseContent);
195
195
  return responseContent;
196
196
  }
@@ -207,7 +207,7 @@ function htmlDecode(input) {
207
207
  export var getEvaluatedOrderBy = function (varOrder, optionsOrder) {
208
208
  var optionFields, varOrderBy;
209
209
  // If options order by is not defined, return variable order
210
- if (!optionsOrder || _.isEmpty(optionsOrder)) {
210
+ if (!optionsOrder || isEmpty(optionsOrder)) {
211
211
  return varOrder;
212
212
  }
213
213
  // If variable order by is not defined, return options order
@@ -215,24 +215,24 @@ export var getEvaluatedOrderBy = function (varOrder, optionsOrder) {
215
215
  return optionsOrder;
216
216
  }
217
217
  // If both are present, combine the options order and variable order, with options order as precedence
218
- varOrder = _.split(varOrder, ',');
219
- optionsOrder = _.split(optionsOrder, ',');
220
- optionFields = _.map(optionsOrder, function (order) {
221
- return _.split(_.trim(order), ' ')[0];
218
+ varOrder = split(varOrder, ',');
219
+ optionsOrder = split(optionsOrder, ',');
220
+ optionFields = map(optionsOrder, function (order) {
221
+ return split(trim(order), ' ')[0];
222
222
  });
223
223
  // If a field is present in both options and variable, remove the variable orderby
224
- _.remove(varOrder, function (orderBy) {
225
- return _.includes(optionFields, _.split(_.trim(orderBy), ' ')[0]);
224
+ remove(varOrder, function (orderBy) {
225
+ return includes(optionFields, split(trim(orderBy), ' ')[0]);
226
226
  });
227
- varOrderBy = varOrder.length ? ',' + _.join(varOrder, ',') : '';
228
- return _.join(optionsOrder, ',') + varOrderBy;
227
+ varOrderBy = varOrder.length ? ',' + join(varOrder, ',') : '';
228
+ return join(optionsOrder, ',') + varOrderBy;
229
229
  };
230
230
  var processVariablePostBindUpdate = function (nodeName, nodeVal, nodeType, variable, noUpdate) {
231
231
  switch (variable.category) {
232
232
  case VARIABLE_CONSTANTS.CATEGORY.LIVE:
233
233
  if (variable.operation === 'read') {
234
234
  if (nodeName === 'dataBinding') {
235
- _.forEach(nodeVal, function (val, key) {
235
+ forEach(nodeVal, function (val, key) {
236
236
  variable.filterFields[key] = {
237
237
  'value': val
238
238
  };
@@ -245,7 +245,7 @@ var processVariablePostBindUpdate = function (nodeName, nodeVal, nodeType, varia
245
245
  };
246
246
  }
247
247
  /* if auto-update set for the variable with read operation only, get its data */
248
- if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.listRecords) && !noUpdate) {
248
+ if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.listRecords) && !noUpdate) {
249
249
  _invoke(variable, 'listRecords');
250
250
  }
251
251
  }
@@ -257,25 +257,25 @@ var processVariablePostBindUpdate = function (nodeName, nodeVal, nodeType, varia
257
257
  variable.inputFields[nodeName] = nodeVal;
258
258
  }
259
259
  /* if auto-update set for the variable with read operation only, get its data */
260
- if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable[variable.operation + 'Record']) && !noUpdate) {
260
+ if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable[variable.operation + 'Record']) && !noUpdate) {
261
261
  _invoke(variable, variable.operation + 'Record');
262
262
  }
263
263
  }
264
264
  break;
265
265
  case VARIABLE_CONSTANTS.CATEGORY.CRUD:
266
- if (variable.operationType === 'list' && variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.invoke) && !noUpdate) {
266
+ if (variable.operationType === 'list' && variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.invoke) && !noUpdate) {
267
267
  _invoke(variable, 'invoke');
268
268
  }
269
269
  break;
270
270
  case VARIABLE_CONSTANTS.CATEGORY.SERVICE:
271
271
  case VARIABLE_CONSTANTS.CATEGORY.LOGIN:
272
- if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.invoke) && !noUpdate) {
272
+ if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.invoke) && !noUpdate) {
273
273
  _invoke(variable, 'invoke');
274
274
  }
275
275
  break;
276
276
  case VARIABLE_CONSTANTS.CATEGORY.DEVICE:
277
277
  variable[nodeName] = nodeVal;
278
- if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.invoke) && !noUpdate) {
278
+ if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.invoke) && !noUpdate) {
279
279
  _invoke(variable, 'invoke');
280
280
  }
281
281
  break;
@@ -352,7 +352,7 @@ export var getTargetNodeKey = function (target) {
352
352
  };
353
353
  export var setValueToNode = function (target, obj, root, variable, value, noUpdate) {
354
354
  var targetNodeKey = getTargetNodeKey(target), targetObj = getTargetObj(obj, root, variable);
355
- value = !_.isUndefined(value) ? value : obj.value;
355
+ value = !isUndefined(value) ? value : obj.value;
356
356
  /* sanity check, user can bind parent nodes to non-object values, so child node bindings may fail */
357
357
  if (targetObj) {
358
358
  targetObj[targetNodeKey] = value;
@@ -409,18 +409,18 @@ export var getTarget = function (variable) {
409
409
  * @param variable
410
410
  */
411
411
  export var updateInternalNodes = function (target, root, variable) {
412
- var boundInternalNodes = _.keys(_.get(internalBoundNodeMap.get(variable), [variable.name, root])), targetNodeKey = getTargetNodeKey(target);
412
+ var boundInternalNodes = keys(get(internalBoundNodeMap.get(variable), [variable.name, root])), targetNodeKey = getTargetNodeKey(target);
413
413
  var internalNodes;
414
414
  function findInternalNodeBound() {
415
- return _.filter(boundInternalNodes, function (node) {
415
+ return filter(boundInternalNodes, function (node) {
416
416
  // the later condition in check (targetNodeKey === root || targetNodeKey === 'dataBinding') is specifically for live variable of insert/update types
417
- return (node !== targetNodeKey && _.includes(node, targetNodeKey)) || ((targetNodeKey === root || targetNodeKey === 'dataBinding') && node !== targetNodeKey);
417
+ return (node !== targetNodeKey && includes(node, targetNodeKey)) || ((targetNodeKey === root || targetNodeKey === 'dataBinding') && node !== targetNodeKey);
418
418
  });
419
419
  }
420
420
  internalNodes = findInternalNodeBound();
421
421
  if ((internalNodes.length)) {
422
- _.forEach(internalNodes, function (node) {
423
- setValueToNode(node, { target: node }, root, variable, _.get(internalBoundNodeMap.get(variable), [variable.name, root, node]));
422
+ forEach(internalNodes, function (node) {
423
+ setValueToNode(node, { target: node }, root, variable, get(internalBoundNodeMap.get(variable), [variable.name, root, node]));
424
424
  });
425
425
  }
426
426
  };
@@ -442,7 +442,7 @@ export var initiateCallback = function (type, variable, data, options, skipDefau
442
442
  errorVariable = callBackScope.Actions[VARIABLE_CONSTANTS.DEFAULT_VAR.NOTIFICATION];
443
443
  if (errorVariable) {
444
444
  data = errorVariable.getMessage() || data;
445
- data = _.isString(data) ? data : 'An error has occured. Please check the app logs.';
445
+ data = isString(data) ? data : 'An error has occured. Please check the app logs.';
446
446
  errorVariable.invoke({ 'message': data }, undefined, undefined);
447
447
  // $rootScope.$evalAsync(function () {
448
448
  // $rootScope.$emit("invoke-service", VARIABLE_CONSTANTS.DEFAULT_VAR.NOTIFICATION, {scope: callBackScope, message: response});
@@ -467,12 +467,12 @@ export var initiateCallback = function (type, variable, data, options, skipDefau
467
467
  }
468
468
  };
469
469
  var getDateTimeFormatForType = function (type) {
470
- return DEFAULT_FORMATS[_.toUpper(type)];
470
+ return DEFAULT_FORMATS[toUpper(type)];
471
471
  };
472
472
  // Format value for datetime types
473
473
  var _formatDate = function (dateValue, type, dateFormatter) {
474
474
  var epoch;
475
- if (_.isDate(dateValue)) {
475
+ if (isDate(dateValue)) {
476
476
  epoch = dateValue.getTime();
477
477
  }
478
478
  else {
@@ -494,11 +494,11 @@ var _formatDate = function (dateValue, type, dateFormatter) {
494
494
  };
495
495
  // Function to convert values of date time types into default formats
496
496
  export var formatDate = function (value, type, dateFormatter) {
497
- if (_.includes(type, '.')) {
498
- type = _.toLower(extractType(type));
497
+ if (includes(type, '.')) {
498
+ type = toLower(extractType(type));
499
499
  }
500
- if (_.isArray(value)) {
501
- return _.map(value, function (val) {
500
+ if (isArray(value)) {
501
+ return map(value, function (val) {
502
502
  return _formatDate(val, type, dateFormatter);
503
503
  });
504
504
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.utils.js","sourceRoot":"./","sources":["src/util/variable/variables.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {findValueOf, getValidJSON, noop, extractType, DataType, DEFAULT_FORMATS, replace} from '../utils';\n\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\n\ndeclare const window: any;\n// @ts-ignore\nimport moment from 'moment';\nimport {debounce, forEach, isObject, isNumber, isArray, isString, isEmpty, split, map, trim, remove, includes, join, isUndefined, isFunction, filter, keys, get, toUpper, isDate, toLower} from 'lodash-es';\nimport he from 'he';\n\nexport let appManager: any;\nexport let httpService: any;\nexport let metadataService: any;\nexport let navigationService: any;\nexport let routerService: any;\nexport let toasterService: any;\nexport let oauthService: any;\nexport let securityService: any;\nexport let dialogService: any;\nexport let internalBoundNodeMap = new Map();\nconst timers = new Map();\nconst DOT_EXPR_REX = /^\\[(\"|')[\\w\\W]*(\\1)\\]$/;\nconst _invoke = (variable, op) => {\n let debouncedFn,\n cancelFn = noop,\n retVal;\n if (timers.has(variable)) {\n cancelFn = timers.get(variable).cancel;\n }\n cancelFn();\n debouncedFn = debounce(function () {\n retVal = variable[op]();\n // handle promises to avoid uncaught promise errors in console\n if (retVal instanceof Promise) {\n retVal.catch(noop);\n }\n }, 100);\n timers.set(variable, debouncedFn);\n debouncedFn();\n};\n\nexport const wmSetDependency = (type: string, ref: any) => {\n switch (type) {\n case 'appManager':\n appManager = ref;\n break;\n case 'http':\n httpService = ref;\n break;\n case 'metadata':\n metadataService = ref;\n break;\n case 'navigationService':\n navigationService = ref;\n break;\n case 'router':\n routerService = ref;\n break;\n case 'toaster':\n toasterService = ref;\n break;\n case 'oAuth':\n oauthService = ref;\n break;\n case 'security':\n securityService = ref;\n break;\n case 'dialog':\n dialogService = ref;\n break;\n }\n};\nexport const debounceVariableCall = _invoke;\n/**\n * returns true if HTML5 File API is available else false\n * @returns {{prototype: Blob; new(blobParts?: any[], options?: BlobPropertyBag): Blob}}\n */\nexport const isFileUploadSupported = () => {\n // ToDo - variable seperation\n return (window.File && window.FileReader && window.FileList && window.Blob);\n};\n\n/**\n * formatting the expression as required by backend which was enclosed by ${<expression>}.\n * @param fieldDefs\n * returns fieldDefs\n */\nexport const formatExportExpression = (fieldDefs: any) => {\n forEach(fieldDefs, function (fieldDef: any) {\n if (fieldDef.expression) {\n fieldDef.expression = '${' + fieldDef.expression + '}';\n }\n });\n return fieldDefs;\n};\n/**\n * prepare a blob object based on the content and content type provided\n * if content is blob itself, simply returns it back\n * @param val\n * @param valContentType\n * @returns {*}\n */\nexport const getBlob = (val: any, valContentType?: any) => {\n if (val instanceof Blob) {\n return val;\n }\n const jsonVal = getValidJSON(val);\n if (jsonVal && jsonVal instanceof Object) {\n val = new Blob([JSON.stringify(jsonVal)], { type: valContentType || 'application/json' });\n } else {\n val = new Blob([val], { type: valContentType || 'text/plain' });\n }\n return val;\n};\n/**\n * sets the value against passed key on the \"inputFields\" object in the variable\n * @param targetObj: the object in which the key, value is to be set\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 */\nexport const setInput = (targetObj: any, key: any, val: any, options: any) => {\n targetObj = targetObj || {};\n let keys,\n lastKey,\n paramObj = {};\n\n // content type check\n if (isObject(options)) {\n switch (options.type) {\n case 'file':\n val = getBlob(val, options.contentType);\n break;\n case 'number':\n val = isNumber(val) ? val : parseInt(val, 10);\n break;\n }\n }\n\n if (isObject(key)) {\n // check if the passed parameter is an object itself\n paramObj = key;\n } else if (key.indexOf('.') > -1) {\n // check for '.' in key e.g. 'employee.department'\n keys = key.split('.');\n lastKey = keys.pop();\n // Finding the object based on the key\n targetObj = findValueOf(targetObj, keys.join('.'), true);\n key = lastKey;\n paramObj[key] = val;\n } else {\n paramObj[key] = val;\n }\n\n forEach(paramObj, function (paramVal: any, paramKey: any) {\n targetObj[paramKey] = paramVal;\n });\n return targetObj;\n};\n\n/**\n * This method decodes the variable data which is encoded from backend before showing in the widgets.\n * It takes variable response content as input and iterates recursively,\n * if the value is string type then it will decode the data.\n * @param responseContent (Array of objects)\n */\nexport const decodeData = (responseContent: any) => {\n if (!responseContent) {\n return responseContent;\n }\n if (isArray(responseContent)) {\n forEach(responseContent, (data: any) => {\n if (isString(data)) {\n data = htmlDecode(data);\n } else if (isObject(data)) {\n forEach(data, (value: any, key: any) => {\n if (value && isString(value)) {\n data[key] = htmlDecode(value);\n } else if (isObject(value)) {\n decodeData(value);\n }\n });\n }\n });\n } else if (isObject(responseContent)) {\n forEach(responseContent, (value: any, key: any) => {\n if (value && isString(value)) {\n responseContent[key] = htmlDecode(value);\n } else if (isObject(value)) {\n decodeData(value);\n }\n });\n } else if (isString(responseContent)) {\n responseContent = htmlDecode(responseContent);\n return responseContent;\n }\n};\n\nfunction htmlDecode(input: any) {\n return he.unescape(input);\n}\n\n/**\n *\n * @param varOrder\n * @param optionsOrder\n * @returns {any}\n */\nexport const getEvaluatedOrderBy = (varOrder: any, optionsOrder: any) => {\n let optionFields: any,\n varOrderBy;\n // If options order by is not defined, return variable order\n if (!optionsOrder || isEmpty(optionsOrder)) {\n return varOrder;\n }\n // If variable order by is not defined, return options order\n if (!varOrder) {\n return optionsOrder;\n }\n // If both are present, combine the options order and variable order, with options order as precedence\n varOrder = split(varOrder, ',');\n optionsOrder = split(optionsOrder, ',');\n optionFields = map(optionsOrder, function (order: any) {\n return split(trim(order), ' ')[0];\n });\n // If a field is present in both options and variable, remove the variable orderby\n remove(varOrder, function (orderBy: any) {\n return includes(optionFields, split(trim(orderBy), ' ')[0]);\n });\n varOrderBy = varOrder.length ? ',' + join(varOrder, ',') : '';\n return join(optionsOrder, ',') + varOrderBy;\n};\n\nconst processVariablePostBindUpdate = (nodeName, nodeVal, nodeType, variable, noUpdate?) => {\n switch (variable.category) {\n case VARIABLE_CONSTANTS.CATEGORY.LIVE:\n if (variable.operation === 'read') {\n if (nodeName === 'dataBinding') {\n forEach(nodeVal, function (val, key) {\n variable.filterFields[key] = {\n 'value': val\n };\n });\n } else {\n variable.filterFields[nodeName] = {\n 'value': nodeVal,\n 'type' : nodeType\n };\n }\n /* if auto-update set for the variable with read operation only, get its data */\n if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.listRecords) && !noUpdate) {\n _invoke(variable, 'listRecords');\n }\n } else {\n if (nodeName === 'dataBinding') {\n variable.inputFields = nodeVal;\n } else {\n variable.inputFields[nodeName] = nodeVal;\n }\n /* if auto-update set for the variable with read operation only, get its data */\n if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable[variable.operation + 'Record']) && !noUpdate) {\n _invoke(variable, variable.operation + 'Record');\n }\n }\n break;\n case VARIABLE_CONSTANTS.CATEGORY.CRUD:\n if (variable.operationType === 'list' && variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.invoke) && !noUpdate) {\n _invoke(variable, 'invoke');\n }\n break;\n case VARIABLE_CONSTANTS.CATEGORY.SERVICE:\n case VARIABLE_CONSTANTS.CATEGORY.LOGIN:\n if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.invoke) && !noUpdate) {\n _invoke(variable, 'invoke');\n }\n break;\n case VARIABLE_CONSTANTS.CATEGORY.DEVICE:\n variable[nodeName] = nodeVal;\n if (variable.autoUpdate && !isUndefined(nodeVal) && isFunction(variable.invoke) && !noUpdate) {\n _invoke(variable, 'invoke');\n }\n break;\n }\n};\n\n/**\n* Returns the object node for a bind object, where the value has to be updated\n* obj.target = \"a\"\n * @param obj\n* @param root\n* @param variable\n* @returns {*}\n*/\nexport const getTargetObj = (obj, root, variable) => {\n /*\n * if the target key is in the form as \"['my.param']\"\n * keep the target key as \"my.param\" and do not split further\n * this is done, so that, the computed value against this binding is assigned as\n * {\"my.param\": \"value\"}\n * and not as\n * {\n * \"my\": {\n * \"param\": \"value\"\n * }\n * }\n */\n let target = obj.target,\n targetObj;\n const rootNode = variable[root];\n if (DOT_EXPR_REX.test(target)) {\n targetObj = rootNode;\n } else {\n target = target.substr(0, target.lastIndexOf('.'));\n if (obj.target === root) {\n targetObj = variable;\n } else if (target) {\n targetObj = findValueOf(rootNode, target, true);\n } else {\n targetObj = rootNode;\n }\n }\n return targetObj;\n};\n\n/**\n * Gets the key for the target object\n * the computed value will be updated against this key in the targetObject(computed by getTargetObj())\n * @param target\n * @param regex\n * @returns {*}\n */\nexport const getTargetNodeKey = (target) => {\n /*\n * if the target key is in the form as \"['my.param']\"\n * keep the target key as \"my.param\" and do not split further\n * this is done, so that, the computed value against this binding is assigned as\n * {\"my.param\": \"value\"}\n * and not as\n * {\n * \"my\": {\n * \"param\": \"value\"\n * }\n * }\n */\n let targetNodeKey;\n if (DOT_EXPR_REX.test(target)) {\n targetNodeKey = target.replace(/^(\\[[\"'])|([\"']\\])$/g, '');\n } else {\n targetNodeKey = target.split('.').pop();\n }\n return targetNodeKey;\n};\n\nexport const setValueToNode = (target, obj, root, variable, value, noUpdate?) => {\n const targetNodeKey = getTargetNodeKey(target),\n targetObj = getTargetObj(obj, root, variable);\n value = !isUndefined(value) ? value : obj.value;\n /* sanity check, user can bind parent nodes to non-object values, so child node bindings may fail */\n if (targetObj) {\n targetObj[targetNodeKey] = value;\n }\n processVariablePostBindUpdate(targetNodeKey, value, obj.type, variable, noUpdate);\n};\n\nexport const getTarget = (variable) => {\n let target;\n switch(variable.category) {\n case VARIABLE_CONSTANTS.CATEGORY.MODEL:\n target = 'dataSet';\n break;\n case VARIABLE_CONSTANTS.CATEGORY.LIVE:\n target = variable.operation === 'read' ? 'filterFields' : 'inputFields';\n break;\n default:\n target = 'dataBinding';\n break;\n\n }\n return target;\n}\n\n/**\n * The model internalBoundNodeMap stores the reference to latest computed values against internal(nested) bound nodes\n * This is done so that the internal node's computed value is not lost, once its parent node's value is computed at a later point\n * E.g.\n * Variable.employeeVar has following bindings\n * \"dataBinding\": [\n {\n \"target\": \"department.budget\",\n \"value\": \"bind:Variables.budgetVar.dataSet\"\n },\n {\n \"target\": \"department\",\n \"value\": \"bind:Variables.departmentVar.dataSet\"\n }\n ]\n * When department.budget is computed, employeeVar.dataSet = {\n * \"department\": {\n * \"budget\": {\"q1\": 1111}\n * }\n * }\n *\n * When department is computed\n * \"department\": {\n * \"name\": \"HR\",\n * \"location\": \"Hyderabad\"\n * }\n * The budget field (computed earlier) is LOST.\n *\n * To avoid this, the latest values against internal nodes (in this case department.budget) are stored in a map\n * These values are assigned back to internal fields if the parent is computed (in this case department)\n * @param target\n * @param root\n * @param variable\n */\nexport const updateInternalNodes = (target, root, variable) => {\n const boundInternalNodes = keys(get(internalBoundNodeMap.get(variable), [variable.name, root])),\n targetNodeKey = getTargetNodeKey(target);\n let internalNodes;\n function findInternalNodeBound() {\n return filter(boundInternalNodes, function (node) {\n // the later condition in check (targetNodeKey === root || targetNodeKey === 'dataBinding') is specifically for live variable of insert/update types\n return (node !== targetNodeKey && includes(node, targetNodeKey)) || ((targetNodeKey === root || targetNodeKey === 'dataBinding') && node !== targetNodeKey);\n });\n }\n internalNodes = findInternalNodeBound();\n if ((internalNodes.length)) {\n forEach(internalNodes, function (node) {\n setValueToNode(node, {target: node}, root, variable, get(internalBoundNodeMap.get(variable), [variable.name, root, node]));\n });\n }\n};\n\nexport const initiateCallback = (type: string, variable: any, data: any, options?: any, skipDefaultNotification?: boolean) => {\n\n if (variable._skipInitiateCallback) {\n return;\n }\n /*checking if event is available and variable has event property and variable event property bound to function*/\n const eventValues = variable[type],\n callBackScope = variable._context;\n let errorVariable;\n /**\n * For error event:\n * trigger app level error handler.\n * if no event is assigned, trigger default appNotification variable.\n */\n if (type === VARIABLE_CONSTANTS.EVENT.ERROR && !skipDefaultNotification) {\n if (!eventValues) {\n /* in case of error, if no event assigned, handle through default notification variable */\n errorVariable = callBackScope.Actions[VARIABLE_CONSTANTS.DEFAULT_VAR.NOTIFICATION];\n if (errorVariable) {\n data = errorVariable.getMessage() || data;\n data = isString(data) ? data : 'An error has occured. Please check the app logs.';\n errorVariable.invoke({ 'message' : data}, undefined, undefined);\n // $rootScope.$evalAsync(function () {\n // $rootScope.$emit(\"invoke-service\", VARIABLE_CONSTANTS.DEFAULT_VAR.NOTIFICATION, {scope: callBackScope, message: response});\n // });\n }\n }\n }\n // TODO: [Vibhu], check whether to support legacy event calling mechanism (ideally, it should have been migrated)\n // ToDo - variable seperation\n // const fn = $parseEvent(variable[type]);\n const fn = variable[type] || noop;\n if (type === VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE) {\n if (variable.category === 'wm.LiveVariable' && variable.operation === 'read') {\n return fn(variable._context, {variable: variable, dataFilter: data, options: options});\n } else {\n return fn(variable._context, {variable: variable, inputData: data, options: options});\n }\n } else {\n return fn(variable._context, {variable: variable, data: data, options: options});\n }\n};\nconst getDateTimeFormatForType = (type) => {\n return DEFAULT_FORMATS[toUpper(type)];\n};\n\n// Format value for datetime types\nconst _formatDate = (dateValue, type, dateFormatter) => {\n let epoch;\n if (isDate(dateValue)) {\n epoch = dateValue.getTime();\n } else {\n if (!isNaN(dateValue)) {\n dateValue = parseInt(dateValue, 10);\n }\n epoch = dateValue && moment(dateValue).valueOf();\n }\n if (isNaN(epoch) && type !== DataType.TIME) {\n return epoch;\n }\n if (type === DataType.TIMESTAMP) {\n return epoch;\n }\n if (type === DataType.TIME && !epoch) {\n epoch = moment(new Date().toDateString() + ' ' + dateValue).valueOf();\n }\n return dateValue && dateFormatter.format(epoch, getDateTimeFormatForType(type));\n};\n\n// Function to convert values of date time types into default formats\nexport const formatDate = (value, type, dateFormatter) => {\n if (includes(type, '.')) {\n type = toLower(extractType(type));\n }\n if (isArray(value)) {\n return map(value, function (val) {\n return _formatDate(val, type, dateFormatter);\n });\n }\n return _formatDate(value, type, dateFormatter);\n};\n\nconst parseErrors = (errors) => {\n let errMsg = '';\n if (errors && errors.error && errors.error.length) {\n errors.error.forEach((errorDetails, i) => {\n errMsg += parseError(errorDetails) + (i > 0 ? '\\n' : '');\n });\n }\n return errMsg;\n}\n\nconst parseError = (errorObj) => {\n let errMsg;\n errMsg = errorObj.message ? replace(errorObj.message, errorObj.parameters, true) : ((errorObj.parameters && errorObj.parameters[0]) || '');\n return errMsg;\n}\n\n/**\n * This method filters and returns error message from the failed network call response.\n * @param err, error form network call failure\n */\nexport const getErrMessage = (err: any, localeObject: any) => {\n const HTTP_STATUS_MSG = {\n 404: localeObject['MESSAGE_404_ERROR'] || 'Requested resource not found',\n 401: localeObject['MESSAGE_401_ERROR'] || 'Requested resource requires authentication',\n 403: localeObject['LABEL_FORBIDDEN_MESSAGE'] || 'The requested resource access/action is forbidden.'\n };\n\n // check if error message present for responded http status\n let errMsg = HTTP_STATUS_MSG[err.status];\n let errorDetails = err.error || err.data;\n errorDetails = getValidJSON(errorDetails) || errorDetails;\n\n // WM services have the format of error response as errorDetails.error\n if (errorDetails && errorDetails.errors) {\n errMsg = parseErrors(errorDetails.errors) || errMsg || 'Service Call Failed';\n } else {\n errMsg = errMsg || 'Service Call Failed';\n }\n return errMsg;\n}"]}