@wavemaker/variables 12.0.0-next.141218 → 12.0.0-next.141221

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 (167) hide show
  1. package/dist/es2015/index.d.ts +14 -0
  2. package/dist/es2015/src/constants/variables.constants.d.ts +370 -0
  3. package/dist/es2015/src/factory/variable-manager.factory.d.ts +4 -0
  4. package/dist/es2015/src/model/variable/api-aware-variable.d.ts +1 -0
  5. package/dist/es2015/src/types/date-formatter.d.ts +1 -0
  6. package/dist/es2015/src/types/http-client.service.d.ts +1 -0
  7. package/dist/es2015/src/types/types.d.ts +6 -0
  8. package/dist/es2015/src/util/dataset-util.d.ts +29 -0
  9. package/dist/es2015/src/util/file-upload.util.d.ts +11 -0
  10. package/dist/es2015/src/util/notify-promise.d.ts +1 -0
  11. package/dist/es2015/src/util/oAuth.utils.d.ts +3 -0
  12. package/dist/es2015/src/util/variable/live-variable.http.utils.d.ts +21 -0
  13. package/dist/es2015/src/util/variable/live-variable.utils.d.ts +79 -0
  14. package/dist/es2015/src/util/variable/pagination.utils.d.ts +83 -0
  15. package/dist/es2015/src/util/variable/service-variable.utils.d.ts +18 -0
  16. package/dist/es2015/src/util/variable/variables.utils.d.ts +29 -0
  17. package/dist/es2015/webpack.config.d.ts +21 -0
  18. package/npm-shrinkwrap.json +2077 -0
  19. package/package-lock.json +2077 -0
  20. {variables → package}/package.json +4 -3
  21. package/scripts/build.d.ts +1 -0
  22. {variables → package}/scripts/build.js +52 -15
  23. package/scripts/build.js.map +1 -0
  24. package/src/manager/action/timer-action.manager.js.map +1 -0
  25. {variables → package}/src/manager/variable/base-variable.manager.js +2 -2
  26. package/src/manager/variable/base-variable.manager.js.map +1 -0
  27. {variables → package}/src/manager/variable/crud-variable.manager.js +16 -16
  28. package/src/manager/variable/crud-variable.manager.js.map +1 -0
  29. {variables → package}/src/manager/variable/live-variable.manager.js +50 -50
  30. package/src/manager/variable/live-variable.manager.js.map +1 -0
  31. {variables → package}/src/manager/variable/model-variable.manager.js +12 -12
  32. package/src/manager/variable/model-variable.manager.js.map +1 -0
  33. {variables → package}/src/manager/variable/service-variable.manager.js +40 -40
  34. package/src/manager/variable/service-variable.manager.js.map +1 -0
  35. package/src/model/action/timer-action.js.map +1 -0
  36. {variables → package}/src/model/base-action.d.ts +1 -1
  37. {variables → package}/src/model/base-action.js +3 -3
  38. package/src/model/base-action.js.map +1 -0
  39. {variables → package}/src/model/base-variable.d.ts +1 -1
  40. {variables → package}/src/model/base-variable.js +16 -16
  41. package/src/model/base-variable.js.map +1 -0
  42. {variables → package}/src/model/variable/crud-variable.js +2 -2
  43. package/src/model/variable/crud-variable.js.map +1 -0
  44. {variables → package}/src/model/variable/live-variable.js +7 -7
  45. package/src/model/variable/live-variable.js.map +1 -0
  46. package/src/model/variable/model-variable.js.map +1 -0
  47. {variables → package}/src/model/variable/service-variable.js +2 -2
  48. package/src/model/variable/service-variable.js.map +1 -0
  49. package/src/types/event-notifier.js.map +1 -0
  50. {variables → package}/src/util/dataset-util.js +16 -16
  51. package/src/util/dataset-util.js.map +1 -0
  52. {variables → package}/src/util/file-upload.util.js +12 -12
  53. package/src/util/file-upload.util.js.map +1 -0
  54. package/src/util/inflight-queue.js.map +1 -0
  55. package/src/util/notify-promise.js.map +1 -0
  56. {variables → package}/src/util/utils.js +19 -19
  57. package/src/util/utils.js.map +1 -0
  58. {variables → package}/src/util/variable/live-variable.http.utils.js +6 -6
  59. package/src/util/variable/live-variable.http.utils.js.map +1 -0
  60. {variables → package}/src/util/variable/live-variable.utils.js +84 -83
  61. package/src/util/variable/live-variable.utils.js.map +1 -0
  62. {variables → package}/src/util/variable/pagination.utils.js +18 -18
  63. package/src/util/variable/pagination.utils.js.map +1 -0
  64. {variables → package}/src/util/variable/service-variable.utils.js +28 -28
  65. package/src/util/variable/service-variable.utils.js.map +1 -0
  66. {variables → package}/src/util/variable/variables.utils.js +49 -49
  67. package/src/util/variable/variables.utils.js.map +1 -0
  68. package/webpack.config.d.ts +21 -0
  69. variables/scripts/build.js.map +0 -1
  70. variables/scripts/update-version.js +0 -27
  71. variables/scripts/update-version.js.map +0 -1
  72. variables/src/manager/action/timer-action.manager.js.map +0 -1
  73. variables/src/manager/variable/base-variable.manager.js.map +0 -1
  74. variables/src/manager/variable/crud-variable.manager.js.map +0 -1
  75. variables/src/manager/variable/live-variable.manager.js.map +0 -1
  76. variables/src/manager/variable/model-variable.manager.js.map +0 -1
  77. variables/src/manager/variable/service-variable.manager.js.map +0 -1
  78. variables/src/model/action/timer-action.js.map +0 -1
  79. variables/src/model/base-action.js.map +0 -1
  80. variables/src/model/base-variable.js.map +0 -1
  81. variables/src/model/variable/crud-variable.js.map +0 -1
  82. variables/src/model/variable/live-variable.js.map +0 -1
  83. variables/src/model/variable/model-variable.js.map +0 -1
  84. variables/src/model/variable/service-variable.js.map +0 -1
  85. variables/src/types/event-notifier.js.map +0 -1
  86. variables/src/util/dataset-util.js.map +0 -1
  87. variables/src/util/file-upload.util.js.map +0 -1
  88. variables/src/util/inflight-queue.js.map +0 -1
  89. variables/src/util/notify-promise.js.map +0 -1
  90. variables/src/util/utils.js.map +0 -1
  91. variables/src/util/variable/live-variable.http.utils.js.map +0 -1
  92. variables/src/util/variable/live-variable.utils.js.map +0 -1
  93. variables/src/util/variable/pagination.utils.js.map +0 -1
  94. variables/src/util/variable/service-variable.utils.js.map +0 -1
  95. variables/src/util/variable/variables.utils.js.map +0 -1
  96. variables/webpack.config.d.ts +0 -21
  97. {variables → package/dist/es2015}/scripts/build.d.ts +0 -0
  98. /variables/scripts/update-version.d.ts → /package/dist/es2015/src/advanced-options.d.ts +0 -0
  99. {variables → package}/index.d.ts +0 -0
  100. {variables → package}/index.js +0 -0
  101. {variables → package}/index.js.map +0 -0
  102. {variables → package}/src/advanced-options.d.ts +0 -0
  103. {variables → package}/src/advanced-options.js +0 -0
  104. {variables → package}/src/advanced-options.js.map +0 -0
  105. {variables → package}/src/constants/variables.constants.d.ts +0 -0
  106. {variables → package}/src/constants/variables.constants.js +0 -0
  107. {variables → package}/src/constants/variables.constants.js.map +0 -0
  108. {variables → package}/src/factory/variable-manager.factory.d.ts +0 -0
  109. {variables → package}/src/factory/variable-manager.factory.js +0 -0
  110. {variables → package}/src/factory/variable-manager.factory.js.map +0 -0
  111. {variables → package}/src/manager/action/timer-action.manager.d.ts +0 -0
  112. {variables → package}/src/manager/action/timer-action.manager.js +0 -0
  113. {variables → package}/src/manager/variable/base-variable.manager.d.ts +0 -0
  114. {variables → package}/src/manager/variable/crud-variable.manager.d.ts +0 -0
  115. {variables → package}/src/manager/variable/live-variable.manager.d.ts +0 -0
  116. {variables → package}/src/manager/variable/model-variable.manager.d.ts +0 -0
  117. {variables → package}/src/manager/variable/service-variable.manager.d.ts +0 -0
  118. {variables → package}/src/model/action/timer-action.d.ts +0 -0
  119. {variables → package}/src/model/action/timer-action.js +0 -0
  120. {variables → package}/src/model/crud-create.d.ts +0 -0
  121. {variables → package}/src/model/crud-create.js +0 -0
  122. {variables → package}/src/model/crud-create.js.map +0 -0
  123. {variables → package}/src/model/crud-delete.d.ts +0 -0
  124. {variables → package}/src/model/crud-delete.js +0 -0
  125. {variables → package}/src/model/crud-delete.js.map +0 -0
  126. {variables → package}/src/model/crud-list.d.ts +0 -0
  127. {variables → package}/src/model/crud-list.js +0 -0
  128. {variables → package}/src/model/crud-list.js.map +0 -0
  129. {variables → package}/src/model/crud-update.d.ts +0 -0
  130. {variables → package}/src/model/crud-update.js +0 -0
  131. {variables → package}/src/model/crud-update.js.map +0 -0
  132. {variables → package}/src/model/variable/api-aware-variable.d.ts +0 -0
  133. {variables → package}/src/model/variable/api-aware-variable.js +0 -0
  134. {variables → package}/src/model/variable/api-aware-variable.js.map +0 -0
  135. {variables → package}/src/model/variable/crud-variable.d.ts +0 -0
  136. {variables → package}/src/model/variable/live-variable.d.ts +0 -0
  137. {variables → package}/src/model/variable/model-variable.d.ts +0 -0
  138. {variables → package}/src/model/variable/model-variable.js +0 -0
  139. {variables → package}/src/model/variable/service-variable.d.ts +0 -0
  140. {variables → package}/src/types/date-formatter.d.ts +0 -0
  141. {variables → package}/src/types/date-formatter.js +0 -0
  142. {variables → package}/src/types/date-formatter.js.map +0 -0
  143. {variables → package}/src/types/event-notifier.d.ts +0 -0
  144. {variables → package}/src/types/event-notifier.js +0 -0
  145. {variables → package}/src/types/http-client.service.d.ts +0 -0
  146. {variables → package}/src/types/http-client.service.js +0 -0
  147. {variables → package}/src/types/http-client.service.js.map +0 -0
  148. {variables → package}/src/types/types.d.ts +0 -0
  149. {variables → package}/src/types/types.js +0 -0
  150. {variables → package}/src/types/types.js.map +0 -0
  151. {variables → package}/src/util/dataset-util.d.ts +0 -0
  152. {variables → package}/src/util/file-upload.util.d.ts +0 -0
  153. {variables → package}/src/util/inflight-queue.d.ts +0 -0
  154. {variables → package}/src/util/inflight-queue.js +0 -0
  155. {variables → package}/src/util/notify-promise.d.ts +0 -0
  156. {variables → package}/src/util/notify-promise.js +0 -0
  157. {variables → package}/src/util/oAuth.utils.d.ts +0 -0
  158. {variables → package}/src/util/oAuth.utils.js +0 -0
  159. {variables → package}/src/util/oAuth.utils.js.map +0 -0
  160. {variables → package}/src/util/utils.d.ts +0 -0
  161. {variables → package}/src/util/variable/live-variable.http.utils.d.ts +0 -0
  162. {variables → package}/src/util/variable/live-variable.utils.d.ts +0 -0
  163. {variables → package}/src/util/variable/pagination.utils.d.ts +0 -0
  164. {variables → package}/src/util/variable/service-variable.utils.d.ts +0 -0
  165. {variables → package}/src/util/variable/variables.utils.d.ts +0 -0
  166. {variables → package}/webpack.config.js +0 -0
  167. {variables → package}/webpack.config.js.map +0 -0
@@ -1 +0,0 @@
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 _ from 'lodash';\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"]}
@@ -1 +0,0 @@
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,CAAC,MAAM,QAAQ,CAAC;AAEvB,IAAM,gBAAgB,GAAG,UAAC,GAAQ;IAC9B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,KAAU;QACtB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjE,OAAO;SACR;QACD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,GAAG,KAAK,CAAC;SACnB;aAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,uFAAuF;YACvF,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACpF;aAAM;YACH,iEAAiE;YACjE,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACrC;QACD,OAAO,OAAO,CAAC,CAAC,oCAAoC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF;IAA0C,wCAAmB;IAA7D;;IAUA,CAAC;IATG;;;MAGE;IACF,qDAAsB,GAAtB,UAAuB,QAAa;QAChC,IAAI,CAAC,CAAC,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;YACvG,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;SACzB;IACL,CAAC;IACL,2BAAC;AAAD,CAAC,AAVD,CAA0C,mBAAmB,GAU5D","sourcesContent":["import { BaseVariableManager } from './base-variable.manager';\n\nimport _ from 'lodash';\n\nconst checkEmptyObject = (obj: any) => {\n let isEmpty = true;\n _.forEach(obj, (value: any) => {\n if (_.isEmpty(value) && !_.isBoolean(value) && !_.isNumber(value)) {\n return;\n }\n if (!_.isObject(value)) {\n isEmpty = 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 isEmpty = _.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 isEmpty = checkEmptyObject(value);\n }\n return isEmpty; // isEmpty false will break the loop\n });\n return isEmpty;\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"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-variable.manager.js","sourceRoot":"./","sources":["src/manager/variable/service-variable.manager.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getClonedObject,\n getValidJSON,\n isDefined,\n isPageable,\n isValidWebURL,\n noop,\n triggerFn,\n xmlToJson\n} from \"../../util/utils\";\n\nimport {upload} from '../../util/file-upload.util';\nimport {ServiceVariable} from '../../model/variable/service-variable';\nimport {ServiceVariableUtils} from '../../util/variable/service-variable.utils';\nimport {$queue} from '../../util/inflight-queue';\nimport {BaseVariableManager} from './base-variable.manager';\nimport {CONSTANTS, VARIABLE_CONSTANTS, WS_CONSTANTS} from '../../constants/variables.constants';\nimport {\n appManager,\n decodeData,\n formatExportExpression,\n getErrMessage,\n metadataService,\n setInput\n} from './../../util/variable/variables.utils';\nimport {getEvaluatedOrderBy, initiateCallback, securityService} from '../../util/variable/variables.utils';\nimport {getAccessToken, performAuthorization, removeAccessToken} from '../../util/oAuth.utils';\nimport {AdvancedOptions} from '../../advanced-options';\nimport {PaginationUtils} from '../../util/variable/pagination.utils';\nimport {VariableEvents} from \"../../model/base-variable\";\n\nimport _ from \"lodash\";\n\nexport class ServiceVariableManager extends BaseVariableManager {\n\n fileUploadResponse: any = [];\n fileUploadCount = 0;\n totalFilesCount = 0;\n successFileUploadCount = 0;\n failedFileUploadCount = 0;\n\n /**\n * function to process error response from a service\n * @param {ServiceVariable} variable\n * @param {string} errMsg\n * @param {Function} errorCB\n * @param xhrObj\n * @param {boolean} skipNotification\n * @param {boolean} skipDefaultNotification\n */\n protected processErrorResponse(variable: ServiceVariable, errMsg: string, errorCB: Function, xhrObj?: any, skipNotification?: boolean, skipDefaultNotification?: boolean, ) {\n const methodInfo = this.getMethodInfo(variable, {}, {});\n const securityDefnObj = _.get(methodInfo, 'securityDefinitions.0');\n const advancedOptions: AdvancedOptions = this.prepareCallbackOptions(xhrObj);\n // EVENT: ON_ERROR\n if (!skipNotification) {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, errMsg, advancedOptions, skipDefaultNotification);\n }\n if (_.get(securityDefnObj, 'type') === VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.OAUTH2\n && _.includes([VARIABLE_CONSTANTS.HTTP_STATUS_CODE.UNAUTHORIZED, VARIABLE_CONSTANTS.HTTP_STATUS_CODE.FORBIDDEN], _.get(xhrObj, 'status'))) {\n removeAccessToken(securityDefnObj['x-WM-PROVIDER_ID']);\n }\n /* trigger error callback */\n triggerFn(errorCB, errMsg);\n \n variable.notify(VariableEvents.AFTER_INVOKE, [this, errMsg]);\n if (!CONSTANTS.isStudioMode) {\n /* process next requests in the queue */\n variable.canUpdate = true;\n $queue.process(variable);\n\n // EVENT: ON_CAN_UPDATE\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, errMsg, advancedOptions);\n }\n }\n\n /**\n * function to process success response from a service\n * @param response\n * @param variable\n * @param options\n * @param success\n */\n protected processSuccessResponse(response, variable, options, success, resHeaders?, operationInf?) {\n let dataSet;\n let newDataSet;\n let pagination = {};\n let advancedOptions: AdvancedOptions;\n let jsonParsedResponse: any = getValidJSON(response);\n\n response = isDefined(jsonParsedResponse) ? jsonParsedResponse : (response && xmlToJson(response) || response);\n\n const isResponsePageable = isPageable(response);\n if (variable.serviceType === 'DataService' || variable.serviceType === 'JavaService') {\n const decodedData = decodeData(response);\n if (_.isString(response)) {\n response = decodedData;\n }\n }\n if (isResponsePageable) {\n dataSet = response.content;\n pagination = _.omit(response, 'content');\n } else {\n dataSet = response;\n }\n /**\n * send pagination object with advancedOptions all the time.\n * With this, user can provide pagination option, even if it is not there.\n * applicable to 3rd party services that do not support pagination out of the box.\n */\n advancedOptions = this.prepareCallbackOptions(options.xhrObj, {pagination: pagination, rawData: dataSet});\n\n // EVENT: ON_RESULT\n initiateCallback(VARIABLE_CONSTANTS.EVENT.RESULT, variable, response, advancedOptions);\n\n // trigger success callback, pass data received from server as it is.\n triggerFn(success, response, pagination);\n\n /* if dataTransformation enabled, transform the data */\n if (variable.transformationColumns) {\n this.transformData(response, variable);\n }\n\n // if a primitive type response is returned, wrap it in an object\n dataSet = (!_.isObject(dataSet)) ? {'value': dataSet} : dataSet;\n\n // EVENT: ON_PREPARE_SETDATA\n newDataSet = initiateCallback(VARIABLE_CONSTANTS.EVENT.PREPARE_SETDATA, variable, dataSet, advancedOptions);\n if (isDefined(newDataSet)) {\n // setting newDataSet as the response to service variable onPrepareSetData\n dataSet = newDataSet;\n }\n\n const inputFields = getClonedObject(options.inputFields || variable.dataBinding);\n\n // WMS-22361 : For crud variable, apply operation info recived else deduce for service variables\n const operationInfo = operationInf ? operationInf : this.getMethodInfo(variable, inputFields, options);\n const paginationInfo = PaginationUtils.getPaginationInfo(operationInfo, variable);\n if (paginationInfo) {\n const res = PaginationUtils.generatePaginationRes(operationInfo, paginationInfo, response, resHeaders, options, variable);\n if (!_.isEmpty(res)) {\n PaginationUtils.setVariablePagination(variable, res, options);\n }\n }\n\n /* update the dataset against the variable, if response is non-object, insert the response in 'value' field of dataSet */\n if (!options.forceRunMode && !options.skipDataSetUpdate) {\n if (!variable._paginationConfig) {\n variable.pagination = pagination;\n }\n variable.dataSet = dataSet;\n\n // legacy properties in dataSet, [content]\n if (isResponsePageable) {\n Object.defineProperty(variable.dataSet, 'content', {\n get: () => {\n return variable.dataSet;\n }\n });\n }\n }\n variable.notify(VariableEvents.AFTER_INVOKE, [this, dataSet]);\n setTimeout(() => {\n // EVENT: ON_SUCCESS\n initiateCallback(VARIABLE_CONSTANTS.EVENT.SUCCESS, variable, dataSet, advancedOptions);\n if (!CONSTANTS.isStudioMode) {\n /* process next requests in the queue */\n variable.canUpdate = true;\n $queue.process(variable);\n }\n\n // EVENT: ON_CAN_UPDATE\n initiateCallback(VARIABLE_CONSTANTS.EVENT.CAN_UPDATE, variable, dataSet, advancedOptions);\n });\n\n return {\n data: variable.dataSet,\n pagination: variable.pagination\n };\n }\n\n protected uploadFileInFormData(variable: ServiceVariable, options: any, success: Function, error: Function, file, requestParams) {\n const promise = upload(file, variable, requestParams.data, {\n fileParamName: 'files',\n url: requestParams.url\n });\n (promise as any).then((data) => {\n this.fileUploadCount++;\n this.successFileUploadCount++;\n this.fileUploadResponse.push(data[0]);\n file._response = data[0];\n if (data && data[0] && data[0].success === false) {\n if (variable._progressObservable) {\n variable._progressObservable.next({\n 'status': \"error\",\n 'fileName': file.name,\n 'errMsg': data[0].errorMessage,\n 'uniqueId': file.uniqueId\n });\n }\n this.fileUploadResponse = [];\n this.processErrorResponse(variable, data[0].errorMessage, error, data, options.skipNotification);\n }\n if (this.totalFilesCount === this.fileUploadCount && data[0].success === true) {\n if (this.failedFileUploadCount === 0) {\n this.processSuccessResponse(this.fileUploadResponse, variable, options, success);\n this.fileUploadResponse = [];\n if (!variable.onSuccess) {\n appManager && appManager.notifyApp(appManager.getAppLocale().MESSAGE_FILE_UPLOAD_SUCCESS, 'success');\n }\n } else {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, this.fileUploadResponse);\n this.fileUploadResponse = [];\n appManager && appManager.notifyApp(appManager.getAppLocale().MESSAGE_FILE_UPLOAD_ERROR, 'error');\n }\n this.fileUploadCount = 0;\n this.successFileUploadCount = 0;\n this.totalFilesCount = 0;\n }\n return data;\n }, (e) => {\n this.fileUploadCount++;\n this.failedFileUploadCount++;\n this.fileUploadResponse.push(e);\n const errMsg = getErrMessage(e, variable.httpService.getLocale());\n // if a file upload failed, notify the progress listener to take action\n if (variable._progressObservable) {\n variable._progressObservable.next({\n 'status': \"error\",\n 'fileName': file.name,\n 'errMsg': errMsg,\n 'uniqueId': file.uniqueId\n });\n }\n if (this.totalFilesCount === this.fileUploadCount) {\n this.processErrorResponse(variable, errMsg, error, e, options.skipNotification);\n this.fileUploadResponse = [];\n this.fileUploadCount = 0;\n this.failedFileUploadCount = 0;\n this.totalFilesCount = 0;\n }\n return e;\n }, (data) => {\n if (variable._progressObservable) {\n variable._progressObservable.next({\n 'progress': data,\n 'status': VARIABLE_CONSTANTS.EVENT.PROGRESS,\n 'fileName': file.name,\n 'uniqueId': file.uniqueId});\n }\n initiateCallback(VARIABLE_CONSTANTS.EVENT.PROGRESS, variable, data);\n return data;\n });\n return promise;\n }\n\n /**\n * Checks if the user is logged in or not and returns appropriate error\n * If user is not logged in, Session timeout logic is run, for user to login\n * @param variable\n * @returns {any}\n */\n private handleAuthError(variable, success, errorCB, options) {\n const isUserAuthenticated = _.get(securityService.get(), 'authenticated');\n let info;\n\n if (isUserAuthenticated) {\n info = {\n error: {\n message: 'You\\'re not authorised to access the resource \"' + variable.service + '\".'\n }\n };\n } else {\n info = {\n error: {\n message: 'You\\'re not authenticated to access the resource \"' + variable.service + '\".',\n skipDefaultNotification: true\n }\n };\n appManager.pushToSessionFailureRequests(variable.invoke.bind(variable, options, success, errorCB));\n appManager.handle401();\n }\n console.warn(variable.name + ': ' + info.error.message);\n return info;\n }\n\n /**\n * Handles error, when variable's metadata is not found. The reason for this can be:\n * - API is secure and user is not logged in\n * - API is secure and user is logged in but not authorized\n * - The servicedefs are not generated properly at the back end (need to edit the variable and re-run the project)\n * @param info\n * @param variable\n * @param errorCB\n * @param options\n */\n protected handleRequestMetaError(info, variable, success, errorCB, options) {\n try {\n const err_type = _.get(info, 'error.type');\n\n switch (err_type) {\n case VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.NO_ACCESSTOKEN:\n performAuthorization(undefined, info.securityDefnObj[VARIABLE_CONSTANTS.REST_SERVICE.OAUTH_PROVIDER_KEY], this.invoke.bind(this, variable, options, success, errorCB), null, this.getProviderInfo(variable, info.securityDefnObj['x-WM-PROVIDER_ID']));\n this.processErrorResponse(variable, info.error.message, errorCB, options.xhrObj, true, true);\n break;\n case VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.USER_UNAUTHORISED:\n info = this.handleAuthError(variable, success, errorCB, options);\n this.processErrorResponse(variable, info.error.message, errorCB, options.xhrObj, options.skipNotification, info.error.skipDefaultNotification);\n break;\n case VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.METADATA_MISSING:\n case VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.CRUD_OPERATION_MISSING:\n if (info.error.message) {\n info.error.message = info.error.message.replace('$variable', variable.name);\n let reasons;\n if (err_type === VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.METADATA_MISSING) {\n reasons = ['1. You did not Preview the app after creating a Variable for the imported service.', '2. You deleted the imported service this Variable is linked to.'];\n } else {\n reasons = ['1. You haven\\'t chosen an endpoint for ' + options.operation + ' operation for this Entity.'];\n }\n console.warn(info.error.message + '\\n Possible reasons for this:\\n ' + reasons.join('\\n '));\n }\n this.processErrorResponse(variable, info.error.message, errorCB, options.xhrObj, options.skipNotification, info.error.skipDefaultNotification);\n break;\n default:\n if (info.error.message) {\n console.warn(info.error.message, variable.name);\n this.processErrorResponse(variable, info.error.message, errorCB, options.xhrObj, options.skipNotification, info.error.skipDefaultNotification);\n }\n }\n } catch(err) {\n console.error(err);\n }\n return info;\n }\n\n /**\n * function to transform the service data as according to the variable configuration\n * this is used when 'transformationColumns' property is set on the variable\n * @param data: data returned from the service\n * @variable: variable object triggering the service\n */\n private transformData(data, variable) {\n data.wmTransformedData = [];\n\n const columnsArray = variable.transformationColumns,\n dataArray = _.get(data, variable.dataField) || [],\n transformedData = data.wmTransformedData;\n\n _.forEach(dataArray, function (datum, index) {\n transformedData[index] = {};\n _.forEach(columnsArray, function (column, columnIndex) {\n transformedData[index][column] = datum[columnIndex];\n });\n });\n }\n\n\n /**\n * gets the service operation info against a service variable\n * this is extracted from the metadataservice\n * @param variable\n * @param inputFields: sample values, if provided, will be set against params in the definition\n * @param options\n * @returns {any}\n */\n private getMethodInfo(variable, inputFields, options) {\n let methodInfo;\n if (!_.isEmpty(metadataService)) {\n const serviceDef = getClonedObject(metadataService.getByOperationId(variable.operationId, variable.getPrefabName()));\n methodInfo = serviceDef === null ? null : _.get(serviceDef, 'wmServiceOperationInfo');\n } else {\n methodInfo = variable.serviceInfo;\n }\n\n if (!methodInfo) {\n return methodInfo;\n }\n const securityDefnObj = _.get(methodInfo.securityDefinitions, '0'),\n isOAuthTypeService = securityDefnObj && (securityDefnObj.type === VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.OAUTH2);\n if (methodInfo.parameters) {\n methodInfo.parameters.forEach(function (param) {\n // Ignore readOnly params in case of formData file params will be duplicated\n if (param.readOnly) {\n return;\n }\n param.sampleValue = inputFields[param.name];\n /* supporting pagination for query service variable */\n if (VARIABLE_CONSTANTS.PAGINATION_PARAMS.indexOf(param.name) !== -1) {\n if (param.name === 'size') {\n param.sampleValue = options.size || param.sampleValue || parseInt(variable.maxResults, 10);\n } else if (param.name === 'page') {\n param.sampleValue = options.page || param.sampleValue || 1;\n } else if (param.name === 'sort') {\n param.sampleValue = getEvaluatedOrderBy(variable.orderBy, options.orderBy) || param.sampleValue || '';\n }\n } else if (param.name === 'access_token' && isOAuthTypeService) {\n param.sampleValue = getAccessToken(securityDefnObj[VARIABLE_CONSTANTS.REST_SERVICE.OAUTH_PROVIDER_KEY], null);\n }\n });\n }\n return methodInfo;\n }\n\n\n /**\n * gets the provider info against a service variable's provider\n * this is extracted from the metadataservice\n * @param variable\n * @param providerId\n * @returns {any}\n */\n private getProviderInfo(variable, providerId) {\n return getClonedObject(metadataService?.getByProviderId(providerId, variable.getPrefabName()));\n }\n\n /**\n * Returns true if any of the files are in onProgress state\n */\n private isFileUploadInProgress(dataBindings) {\n let filesStatus = false;\n _.forEach(dataBindings, (dataBinding) => {\n if (_.isArray(dataBinding) && dataBinding[0] instanceof File) {\n _.forEach(dataBinding, (file) => {\n if (file.status === 'onProgress') {\n filesStatus = true;\n return;\n }\n });\n }\n });\n return filesStatus;\n }\n\n // Makes the call for Uploading file/ files\n protected uploadFile(variable, options, success, error, inputFields, requestParams ) {\n let fileParamCount = 0;\n const fileArr: any = [], promArr: any = [];\n _.forEach(inputFields, (inputField) => {\n if (_.isArray(inputField)) {\n if (inputField[0] instanceof File) {\n fileParamCount++;\n }\n _.forEach(inputField, (input) => {\n if (input instanceof File || _.find(_.values(input), o => o instanceof Blob)) {\n fileArr.push(input);\n this.totalFilesCount++;\n fileParamCount = fileParamCount || 1;\n }\n });\n } else {\n if (inputField instanceof File) {\n fileParamCount++;\n this.totalFilesCount++;\n fileArr.push(inputField);\n }\n }\n });\n if (fileParamCount === 1) {\n if (inputFields.files.length > 1) {\n _.forEach(fileArr, (file) => {\n promArr.push(this.uploadFileInFormData(variable, options, success, error, file, requestParams));\n });\n return Promise.all(promArr);\n } else {\n return this.uploadFileInFormData(variable, options, success, error, fileArr[0], requestParams);\n }\n }\n }\n\n /**\n * proxy for the invoke call\n * Request Info is constructed\n * if error found, error is thrown\n * else, call is made\n * @param {ServiceVariable} variable\n * @param options\n * @param {Function} success\n * @param {Function} error\n * @returns {any}\n * @private\n */\n protected _invoke (variable: ServiceVariable, options: any, success: Function, error: Function) {\n let inputFields = getClonedObject(options.inputFields || variable.dataBinding);\n // EVENT: ON_BEFORE_UPDATE\n const output: any = initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE, variable, inputFields, options);\n let successHandler;\n let errorHandler;\n\n if (output === false) {\n $queue.process(variable);\n triggerFn(error);\n return;\n }\n if (_.isObject(output)) {\n inputFields = output;\n }\n\n const operationInfo = this.getMethodInfo(variable, inputFields, options);\n const requestParams = ServiceVariableUtils.constructRequestParams(variable, operationInfo, inputFields, options);\n // check errors\n if (requestParams.error) {\n const info = this.handleRequestMetaError(requestParams, variable, success, error, options);\n const reason = (_.get(info, 'error.message') || 'An error occurred while triggering the variable: ') + ': ' + variable.name;\n triggerFn(error);\n $queue.process(variable);\n return Promise.reject(reason);\n }\n\n // file upload\n if (ServiceVariableUtils.isFileUploadRequest(variable)) {\n const uploadPromise = this.uploadFile(variable, options, success, error, inputFields, requestParams);\n if (uploadPromise) {\n return uploadPromise;\n }\n }\n\n // file download\n if (operationInfo && _.isArray(operationInfo.produces) && _.includes(operationInfo.produces, WS_CONSTANTS.CONTENT_TYPES.OCTET_STREAM) && variable.simulateFileDownload) {\n // ToDo - variable seperation\n return variable.simulateFileDownload(requestParams, variable.dataBinding.file || variable.name, variable.dataBinding.exportType, function () {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.SUCCESS, variable, null, null, null);\n $queue.process(variable);\n triggerFn(success);\n }, function () {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, null, null, null);\n $queue.process(variable);\n triggerFn(error);\n },variable.dataBinding);\n }\n\n // notify variable progress\n this.notifyInflight(variable, !options.skipToggleState);\n\n successHandler = (response, resolve) => {\n if (response && response.type || response && response.status) {\n const res = response.body || response.data;\n const data = this.processSuccessResponse(res, variable, _.extend(options, {'xhrObj': response}), success, response.headers);\n // notify variable success\n this.notifyInflight(variable, false, data);\n if (ServiceVariableUtils.isFileDeleteRequest(variable) && variable._deleteFileObservable) {\n variable._deleteFileObservable.next({'status' : \"success\", response: res});\n appManager && appManager.notifyApp(appManager.getAppLocale().MESSAGE_FILE_DELETE_SUCCESS || \"File delete success\", 'success');\n }\n resolve(response);\n }\n };\n\n errorHandler = (err, reject) => {\n const errMsg = getErrMessage(err, variable.httpService.getLocale());\n // notify variable error\n this.notifyInflight(variable, false);\n this.processErrorResponse(variable, errMsg, error, err, options.skipNotification);\n if (ServiceVariableUtils.isFileDeleteRequest(variable) && variable._deleteFileObservable) {\n variable._deleteFileObservable.error({\n status : \"error\",\n error: errMsg,\n details: err\n });\n appManager && appManager.notifyApp(appManager.getAppLocale().MESSAGE_FILE_DELETE_ERROR || 'File delete failed', 'error');\n }\n reject({\n error: errMsg,\n details: err\n });\n };\n\n // make the call and return a promise to the user to support script calls made by users\n return new Promise((resolve, reject) => {\n requestParams.responseType = 'text'; // this is to return text response. JSON & XML-to-JSON parsing is handled in success handler.\n // ToDo - variable seperation\n // this.httpCall(requestParams, variable).then((response) => {\n // successHandler(response, resolve);\n // }, err => {\n // const validJSON = getValidJSON(err.error);\n // err.error = isDefined(validJSON) ? validJSON : err.error;\n // errorHandler(err, reject);\n // });\n // the _observable property on variable is used store the observable using which the network call is made\n // this can be used to cancel the variable calls.\n variable.httpService.sendCall(requestParams, variable).then((response) => {\n successHandler(response, resolve);\n }).catch(err => {\n err = err || {};\n err.error = err.error || '{}';\n const validJSON = getValidJSON(err.error);\n err.error = isDefined(validJSON) ? validJSON : err.error;\n errorHandler(err, reject);\n });\n });\n }\n\n // *********************************************************** PUBLIC ***********************************************************//\n\n public invoke(variable, options, success, error) {\n options = options || {};\n // appManager.notify('check-state-persistence-options', {\n // options: options,\n // variable: variable\n // });\n options.inputFields = options.inputFields || getClonedObject(variable.dataBinding);\n return $queue.submit(variable).then(this._invoke.bind(this, variable, options, success, error), error);\n }\n\n public setPagination(variable, data) {\n variable._paginationConfig = data;\n }\n\n public download(variable, options, successHandler, errorHandler) {\n options = options || {};\n const inputParams = getClonedObject(variable.dataBinding);\n const inputData = options.data || {};\n const methodInfo = this.getMethodInfo(variable, inputParams, options);\n let requestParams;\n\n methodInfo.relativePath += '/export';\n requestParams = ServiceVariableUtils.constructRequestParams(variable, methodInfo, inputParams);\n\n requestParams.data = inputData;\n requestParams.data.fields = formatExportExpression(inputData.fields || []);\n\n // extra options provided, these may be used in future for integrating export feature with ext. services\n requestParams.method = options.httpMethod || 'POST';\n requestParams.url = options.url || requestParams.url;\n\n // If request params returns error then show an error toaster\n if (_.hasIn(requestParams, 'error.message')) {\n triggerFn(errorHandler, requestParams.error.message);\n return Promise.reject(requestParams.error.message);\n }\n return variable.httpService.send(requestParams).then(response => {\n if (response && isValidWebURL(response.body.result)) {\n window.location.href = response.body.result;\n triggerFn(successHandler, response);\n } else {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, response);\n triggerFn(errorHandler, response);\n }\n }, (response, xhrObj) => {\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ERROR, variable, response, xhrObj);\n triggerFn(errorHandler, response);\n });\n }\n\n public getInputParms(variable) {\n let wmServiceOperationInfo;\n if (!_.isEmpty(metadataService)) {\n wmServiceOperationInfo = _.get(metadataService.getByOperationId(variable.operationId, variable.getPrefabName()), 'wmServiceOperationInfo');\n } else {\n wmServiceOperationInfo = variable.serviceInfo;\n }\n return _.get(wmServiceOperationInfo, 'parameters');\n }\n\n public setInput(variable, key, val, options) {\n return setInput(variable.dataBinding, key, val, options);\n }\n\n /**\n * Cancels an on going service request\n * @param variable\n * @param $file\n */\n public cancel(variable, $file?) {\n // CHecks if there is any pending requests in the queue\n if ($queue.requestsQueue.has(variable)) {\n // If the request is a File upload request then modify the elements associated with file upload\n // else unsubscribe from the observable on the variable.\n if (ServiceVariableUtils.isFileUploadRequest(variable)) {\n variable.httpService.cancel(variable, $file);\n $file.status = 'abort';\n this.totalFilesCount--;\n initiateCallback(VARIABLE_CONSTANTS.EVENT.ABORT, variable, $file);\n if (!this.isFileUploadInProgress(variable.dataBinding) && this.totalFilesCount === 0) {\n $queue.process(variable);\n // notify inflight variable\n this.notifyInflight(variable, false);\n }\n } else {\n if (variable.httpService.cancel) {\n variable.httpService.cancel(variable);\n $queue.process(variable);\n // notify inflight variable\n this.notifyInflight(variable, false);\n }\n }\n }\n }\n\n public defineFirstLastRecord(variable) {\n if (variable.isList) {\n Object.defineProperty(variable, 'firstRecord', {\n 'configurable': true,\n 'get': function () {\n const dataSet = variable.dataSet;\n // For procedure(v1) data doesn't come under content\n return _.head(dataSet && dataSet.content) || _.head(dataSet) || {};\n }\n });\n Object.defineProperty(variable, 'lastRecord', {\n 'configurable': true,\n 'get': function () {\n const dataSet = variable.dataSet;\n // For procedure(v1) data doesn't come under content\n return _.last(dataSet && dataSet.content) || _.last(dataSet) || {};\n }\n });\n }\n }\n\n // Gets the input params of the service variable and also add params from the searchKeys (filterfields)\n private getQueryParams(filterFields, searchValue, variable) {\n const inputParams = this.getInputParms(variable);\n const queryParams = ServiceVariableUtils.excludePaginationParams(inputParams);\n const inputFields = {};\n\n // check if some param value is already available in databinding and update the inputFields accordingly\n _.map(variable.dataBinding, function (value, key) {\n inputFields[key] = value;\n });\n\n // add the query params mentioned in the searchkey to inputFields\n _.forEach(filterFields, function (value) {\n if (_.includes(queryParams, value)) {\n inputFields[value] = searchValue;\n }\n });\n\n return inputFields;\n }\n\n /**\n * This method returns filtered records based on searchKey and queryText.\n * @param variable\n * @param options\n * @param success\n * @param error\n * @returns {Promise<any>}\n */\n public searchRecords(variable, options, success, error) {\n const inputFields = this.getQueryParams(_.split(options.searchKey, ','), options.query, variable);\n\n const requestParams = {\n page: options.page,\n pagesize: options.pagesize,\n skipDataSetUpdate: true, // dont update the actual variable dataset,\n skipToggleState: true, // Dont change the varibale toggle state as this is a independent call\n inFlightBehavior: 'executeAll',\n inputFields: inputFields\n };\n\n if (options.onBeforeservicecall) {\n options.onBeforeservicecall(inputFields);\n }\n\n return this.invoke(variable, requestParams, success, error).catch(noop);\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timer-action.js","sourceRoot":"./","sources":["src/model/action/timer-action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,IAAO,UAAU,GAAG;IAChB,OAAO,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;IAAiC,+BAAU;IAKvC,qBAAY,QAAa;QAAzB,YACI,iBAAO,SAEV;QANO,eAAS,GAAG,KAAK,CAAC;QAClB,cAAQ,GAAG,KAAK,CAAC;QAIrB,MAAM,CAAC,MAAM,CAAC,KAAI,EAAE,QAAQ,CAAC,CAAC;;IAClC,CAAC;IAED,6BAA6B;IAC7B,0BAAI,GAAJ,UAAK,OAAO,EAAE,OAAO,EAAE,KAAK;QACxB,IAAG,IAAI,CAAC,SAAS,EAAE;YACf,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;QACD,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,4BAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAE,KAAK;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,4BAAM,GAAN;QACI,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,0BAAI,GAAJ;QACI,iBAAM,IAAI,WAAE,CAAC;QACb,IAAG,IAAI,CAAC,SAAS,EAAE;YACf,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;IACL,CAAC;IAED,4BAAM,GAAN;QACI,iBAAM,MAAM,WAAE,CAAC;QACf,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9C;IACL,CAAC;IACL,kBAAC;AAAD,CAAC,AAxCD,CAAiC,UAAU,GAwC1C","sourcesContent":["import { BaseAction } from '../base-action';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\nimport { VariableManagerFactory } from '../../factory/variable-manager.factory';\n\nconst getManager = () => {\n return VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.TIMER);\n};\n\nexport class TimerAction extends BaseAction {\n private currentOptions;\n private repeating = false;\n private _isFired = false;\n\n constructor(variable: any) {\n super();\n Object.assign(this, variable);\n }\n\n // Backward compatible method\n fire(options, success, error) {\n if(this.repeating) {\n this.currentOptions = options;\n this._isFired = true;\n }\n return getManager().trigger(this, options, success, error);\n }\n\n invoke(options, success, error) {\n return this.fire(options, success, error);\n }\n\n cancel() {\n return getManager().cancel(this);\n }\n\n mute() {\n super.mute();\n if(this.repeating) {\n this.cancel();\n }\n }\n\n unmute() {\n super.unmute();\n if(this.repeating && this._isFired) {\n this.fire(this.currentOptions, null, null);\n }\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-action.js","sourceRoot":"./","sources":["src/model/base-action.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataSource } from \"../types/types\";\nimport DatasetUtil from '../util/dataset-util';\nimport {getTarget, getTargetNodeKey, getTargetObj, setValueToNode} from \"../util/variable/variables.utils\";\nimport {getClonedObject} from \"../util/utils\";\n\nimport _ from 'lodash';\nexport abstract class BaseAction {\n\n protected _id: string;\n\n name: string;\n owner: string;\n category: string;\n dataSet: any;\n dataBinding: any;\n _context: any;\n isMuted = false;\n\n execute(operation, options) {\n let returnVal;\n switch (operation) {\n case DataSource.Operation.GET_NAME:\n returnVal = this.name;\n break;\n case DataSource.Operation.GET_UNIQUE_IDENTIFIER:\n returnVal = this._id;\n break;\n case DataSource.Operation.GET_CONTEXT_IDENTIFIER:\n returnVal = this._context;\n break;\n }\n return returnVal;\n }\n\n invokeOnParamChange(obj, newVal, oldVal) {\n const target = obj.target,\n root = getTarget(this),\n targetObj = getTargetObj(obj, root, this),\n targetNodeKey = getTargetNodeKey(target);\n if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && (!_.isUndefined(oldVal) || !_.isUndefined(targetObj[targetNodeKey])))) {\n return;\n }\n // Skip cloning for blob column\n if (!_.includes(['blob', 'file'], obj.type)) {\n newVal = getClonedObject(newVal);\n }\n setValueToNode(target, obj, root, this, newVal); // cloning newVal to keep the source clean\n return Promise.resolve(this);\n }\n\n getData() {\n return this.dataSet;\n }\n\n setData(dataSet: any) {\n if (DatasetUtil.isValidDataset(dataSet)) {\n this.dataSet = dataSet;\n }\n return this.dataSet;\n }\n\n getValue(key: string, index: number) {\n return DatasetUtil.getValue(this.dataSet, key, index);\n }\n\n setValue(key: string, value: any) {\n return DatasetUtil.setValue(this.dataSet, key, value);\n }\n\n getItem(index: number) {\n return DatasetUtil.getItem(this.dataSet, index);\n }\n\n /**\n *\n * @param index, a number in ideal case\n * it can be the object to be replaced by the passed value\n * @param value\n * @returns {any}\n */\n setItem(index: any, value: any) {\n return DatasetUtil.setItem(this.dataSet, index, value);\n }\n\n addItem(value: any, index: number) {\n return DatasetUtil.addItem(this.dataSet, value, index);\n }\n\n removeItem(index: any, exactMatch: boolean) {\n return DatasetUtil.removeItem(this.dataSet, index, exactMatch);\n }\n\n clearData() {\n this.dataSet = DatasetUtil.getValidDataset();\n return this.dataSet;\n }\n\n getCount() {\n return DatasetUtil.getCount(this.dataSet);\n }\n\n init() {\n }\n\n mute() {\n this.isMuted = true;\n }\n\n unmute() {\n this.isMuted = false;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-variable.js","sourceRoot":"./","sources":["src/model/base-variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACH,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAiB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,gDAA8B,CAAA;IAC9B,8CAA4B,CAAA;AAChC,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAAA,CAAC;AACF;IAAA;QAaI,YAAO,GAAG,KAAK,CAAC;QAGR,kBAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAuLvD,CAAC;IArLG,6BAAM,GAAN,UAAQ,KAAa,EAAE,IAAW;QAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,gCAAS,GAAT,UAAW,KAAa,EAAE,EAAY;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,8BAAO,GAAP,UAAQ,SAAc,EAAE,OAAY;QAChC,IAAI,SAAS,CAAC;QACd,QAAQ,SAAS,EAAE;YACf,KAAK,UAAU,CAAC,SAAS,CAAC,QAAQ;gBAC9B,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,qBAAqB;gBAC3C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;gBACrB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,sBAAsB;gBAC5C,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC1B,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,QAAQ;gBAC9B,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChE,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,QAAQ;gBAC9B,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/F,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,WAAW;gBACjC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gBACnE,MAAM;SACb;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,0CAAmB,GAAnB,UAAoB,GAAI,EAAE,MAAO,EAAE,MAAO;QACtC,IAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAG,CAAC,GAAG,EAAE;YACL,OAAO;SACV;QACD,IAAM,MAAM,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAClB,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAC1B,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EACzC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;YACjJ,OAAO;SACV;QACD,+BAA+B;QAC/B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;SACpC;QACD,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,0CAA0C;QAC3F,IAAI,OAAO,EAAE;YACT,iEAAiE;YACjE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACjC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aACtC;YACD,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACzE,4DAA4D;YAC5D,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACpB,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC3C;SACJ;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,8BAAO,GAAP;QACI,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,8BAAO,GAAP,UAAQ,OAAY;QAChB,IAAI,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,+BAAQ,GAAR,UAAS,GAAW,EAAE,KAAa;QAC/B,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,+BAAQ,GAAR,UAAS,GAAW,EAAE,KAAU;QAC5B,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,8BAAO,GAAP,UAAQ,KAAa;QACjB,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACH,8BAAO,GAAP,UAAQ,KAAU,EAAE,KAAU,EAAE,OAAa;QACzC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACK,sCAAe,GAAvB,UAAyB,OAAY;QACjC,IAAI,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACpB,IAAI,UAAU,SAAA,CAAC;YACf,IAAI,MAAM,EAAE;gBACR,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;gBACvC,UAAU,GAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;aAChE;iBAAM;gBACH,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;aAClD;YACD,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;SACrE;QACD,OAAO,EAAC,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,WAAW,aAAA,EAAC,CAAC;IACvC,CAAC;IAED,8BAAO,GAAP,UAAQ,KAAU,EAAE,OAAa;QAC7B,IAAI,KAAK,CAAC;QACV,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrB,KAAK,GAAG,OAAO,CAAC;SACnB;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SACzB;QAED,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,iCAAU,GAAV,UAAW,KAAU,EAAE,OAAa;QAChC,IAAI,UAAU,EAAE,WAAW,CAAC;QAC5B,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACtB,UAAU,GAAG,OAAO,CAAC;aACxB;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACrB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBAChC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACb,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;iBAC1C;aACJ;SACJ;QACD,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,YAAA,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,gCAAS,GAAT;QACI,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,+BAAQ,GAAR;QACI,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,oCAAa,GAAb;QACI,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3F,2EAA2E;QAC3E,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC;IACnD,CAAC;IAED,2BAAI,GAAJ;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,6BAAM,GAAN;QACI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,8BAAO,GAAP;IAEA,CAAC;IACL,mBAAC;AAAD,CAAC,AAvMD,IAuMC","sourcesContent":["import { DataSource } from '../types/types';\n\nimport DatasetUtil from '../util/dataset-util';\nimport {\n getTargetNodeKey,\n getTargetObj,\n getTarget,\n setValueToNode,\n internalBoundNodeMap,\n updateInternalNodes\n} from \"../util/variable/variables.utils\";\nimport {getClonedObject} from \"../util/utils\";\nimport { EventNotifier, DefaultEventNotifier } from \"../types/event-notifier\";\nimport _ from 'lodash';\nexport enum VariableEvents {\n BEFORE_INVOKE = 'beforeInvoke',\n AFTER_INVOKE = 'afterInvoke'\n};\nexport abstract class BaseVariable implements EventNotifier {\n\n protected _id: string;\n\n name: string;\n owner: string;\n category: string;\n isList: boolean;\n dataSet: any;\n dataBinding: any;\n inputFields: any;\n filterFields: any;\n _context: any;\n isMuted = false;\n params;\n paramProvider;\n private eventNotifier = new DefaultEventNotifier();\n\n notify (event: string, args: any[]) {\n this.eventNotifier.notify(event, args);\n }\n\n subscribe (event: string, fn: Function) {\n return this.eventNotifier.subscribe(event, fn);\n }\n\n execute(operation: any, options: any) {\n let returnVal;\n switch (operation) {\n case DataSource.Operation.GET_NAME:\n returnVal = this.name;\n break;\n case DataSource.Operation.GET_UNIQUE_IDENTIFIER:\n returnVal = this._id;\n break;\n case DataSource.Operation.GET_CONTEXT_IDENTIFIER:\n returnVal = this._context;\n break;\n case DataSource.Operation.ADD_ITEM:\n returnVal = this.addItem(options.item, _.omit(options, 'item'));\n break;\n case DataSource.Operation.SET_ITEM:\n returnVal = this.setItem(options.prevItem, options.item, _.omit(options, 'prevItem', 'item'));\n break;\n case DataSource.Operation.REMOVE_ITEM:\n returnVal = this.removeItem(options.item, _.omit(options, 'item'));\n break;\n }\n return returnVal;\n }\n\n invokeOnParamChange(obj?, newVal?, oldVal?) {\n const runMode = true;\n if(!obj) {\n return;\n }\n const target = obj?.target,\n root = getTarget(this),\n targetObj = getTargetObj(obj, root, this),\n targetNodeKey = getTargetNodeKey(target);\n if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && (!_.isUndefined(oldVal) || !_.isUndefined(targetObj[targetNodeKey])))) {\n return;\n }\n // Skip cloning for blob column\n if (!_.includes(['blob', 'file'], obj.type)) {\n newVal = getClonedObject(newVal);\n }\n setValueToNode(target, obj, root, this, newVal); // cloning newVal to keep the source clean\n if (runMode) {\n /*set the internal bound node map with the latest updated value*/\n if (!internalBoundNodeMap.has(this)) {\n internalBoundNodeMap.set(this, {});\n }\n _.set(internalBoundNodeMap.get(this), [this.name, root, target], newVal);\n /*update the internal nodes after internal node map is set*/\n if (_.isObject(newVal)) {\n updateInternalNodes(target, root, this);\n }\n }\n return Promise.resolve(this);\n }\n\n getData() {\n return this.dataSet;\n }\n\n setData(dataSet: any) {\n if (DatasetUtil.isValidDataset(dataSet, this.isList)) {\n this.dataSet = dataSet;\n }\n return this.dataSet;\n }\n\n getValue(key: string, index: number) {\n return DatasetUtil.getValue(this.dataSet, key, index, this.isList);\n }\n\n setValue(key: string, value: any) {\n return DatasetUtil.setValue(this.dataSet, key, value, this.isList);\n }\n\n getItem(index: number) {\n return DatasetUtil.getItem(this.dataSet, index, this.isList);\n }\n\n /**\n *\n * @param index, a number in ideal case\n * it can be the object to be replaced by the passed value\n * @param value\n * @returns {any}\n */\n setItem(index: any, value: any, options?: any) {\n options = this.getChildDetails(options);\n return DatasetUtil.setItem(this.dataSet, index, value, options);\n }\n\n /**\n * This method is to get target node options like path, parentIndex and isList\n * @param options: provided options\n * @returns {object}\n * Example: if we have parent dataset as object and we are performing operations on inner list then we have to set isList as true.\n * So finding the target node type and updating the isList option.\n */\n private getChildDetails (options: any) {\n let parentIndex, isList = this.isList, path;\n if (options && options.path) {\n path = options.path;\n let targetNode;\n if (isList) {\n parentIndex = options.parentIndex || 0;\n targetNode = _.get(this.dataSet[parentIndex], options.path);\n } else {\n targetNode = _.get(this.dataSet, options.path);\n }\n isList = targetNode ? _.isArray(targetNode) ? true : false : true;\n }\n return {path, isList, parentIndex};\n }\n\n addItem(value: any, options?: any) {\n let index;\n if (_.isNumber(options)) {\n index = options;\n }\n if (_.isObject(options)) {\n index = options.index;\n }\n\n options = this.getChildDetails(options);\n return DatasetUtil.addItem(this.dataSet, value, index, options);\n }\n\n removeItem(index: any, options?: any) {\n let exactMatch, parentIndex;\n if (options) {\n if (_.isBoolean(options)) {\n exactMatch = options;\n }\n if (_.isObject(options)) {\n exactMatch = options.exactMatch;\n if (this.isList) {\n parentIndex = options.parentIndex || 0;\n }\n }\n }\n return DatasetUtil.removeItem(this.dataSet, index, { exactMatch, path: _.get(options, 'path'), parentIndex });\n }\n\n clearData() {\n this.dataSet = DatasetUtil.getValidDataset(this.isList);\n return this.dataSet;\n }\n\n getCount() {\n return DatasetUtil.getCount(this.dataSet, this.isList);\n }\n\n /**\n * Return the prefab name if the variable is form a prefab\n * @returns {string}\n */\n getPrefabName() {\n const prefabname = this._context && (this._context.prefabname || this._context.prefabName);\n // __self__ is a prefab name given to a prefab which is run in preview mode\n return prefabname !== '__self__' && prefabname;\n }\n\n mute() {\n this.isMuted = true;\n }\n\n unmute() {\n this.isMuted = false;\n }\n\n destroy() {\n \n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"crud-variable.js","sourceRoot":"./","sources":["src/model/variable/crud-variable.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDefined } from \"../../util/utils\";\nimport { DataSource, IDataSource } from \"../../types/types\";\nimport { VariableManagerFactory } from '../../factory/variable-manager.factory';\nimport { ApiAwareVariable } from './api-aware-variable';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\nimport { CrudVariableManager } from '../../manager/variable/crud-variable.manager';\nimport { ServiceVariableUtils } from '../../util/variable/service-variable.utils';\nimport {CRUDList} from '../crud-list';\nimport {CRUDCreate} from '../crud-create';\nimport {CRUDUpdate} from '../crud-update';\nimport {CRUDDelete} from '../crud-delete';\n\nimport _ from 'lodash';\n\nconst getManager = (): CrudVariableManager => {\n return VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.CRUD);\n};\n\nexport class CrudVariable extends ApiAwareVariable implements IDataSource {\n\n // Used to track progress of file upload\n _progressObservable;\n // Used to track a variable http call, so that it can be cancelled at any point of time during its execution\n _observable;\n _deleteFileObservable;\n pagination;\n list;\n create;\n update;\n delete;\n simulateFileDownload;\n serviceInfo;\n httpService;\n\n constructor(variable: any) {\n super();\n Object.assign(this as any, variable);\n // for having separate setInput methods for each type\n this.list = new CRUDList(this, getManager());\n this.create = new CRUDCreate(this, getManager());\n this.update = new CRUDUpdate(this, getManager());\n this.delete = new CRUDDelete(this, getManager());\n }\n\n\n execute(operation, options) {\n let returnVal = super.execute(operation, options);\n if (isDefined(returnVal)) {\n return returnVal;\n }\n\n switch (operation) {\n case DataSource.Operation.IS_API_AWARE:\n returnVal = true;\n break;\n case DataSource.Operation.SUPPORTS_CRUD:\n returnVal = false;\n break;\n case DataSource.Operation.SUPPORTS_DISTINCT_API:\n returnVal = false;\n break;\n case DataSource.Operation.IS_PAGEABLE:\n returnVal = this.hasPagination();\n break;\n case DataSource.Operation.IS_SORTABLE:\n returnVal = this.hasPagination() && !(this as any)._paginationConfig;\n break;\n case DataSource.Operation.SUPPORTS_SERVER_FILTER:\n returnVal = false;\n break;\n case DataSource.Operation.SET_INPUT:\n returnVal = this.setInput(options);\n break;\n case DataSource.Operation.LIST_RECORDS:\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.INVOKE :\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.UPDATE :\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.SEARCH_RECORDS:\n returnVal = this.searchRecords(options);\n break;\n case DataSource.Operation.DOWNLOAD:\n returnVal = this.download(options);\n break;\n case DataSource.Operation.GET_PAGING_OPTIONS:\n returnVal = this.pagination;\n break;\n case DataSource.Operation.IS_UPDATE_REQUIRED:\n returnVal = this.isUpdateRequired(options);\n break;\n case DataSource.Operation.IS_BOUND_TO_LOCALE:\n returnVal = false;\n break;\n case DataSource.Operation.CANCEL:\n returnVal = this.cancel(options);\n break;\n case DataSource.Operation.INSERT_RECORD :\n options.operation = 'create';\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.UPDATE_RECORD :\n options.operation = 'update';\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.DELETE_RECORD :\n options.operation = 'delete';\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.SET_PAGINATION:\n returnVal = this.setPagination(options);\n break;\n default :\n returnVal = {};\n break;\n }\n return returnVal;\n }\n\n hasPagination() {\n return this.controller === VARIABLE_CONSTANTS.CONTROLLER_TYPE.QUERY || !_.isEmpty(this.pagination);\n }\n\n invoke(options?, success?, error?) {\n return getManager().invoke(this, options, success, error);\n }\n\n createRecord(options?, success?, error?) {\n options = options || {};\n options.operation = 'create';\n return getManager().invoke(this, options, success, error);\n }\n\n listRecords(options?, success?, error?) {\n options = options || {};\n options.operation = 'list';\n return getManager().invoke(this, options, success, error);\n }\n\n updateRecord(options?, success?, error?) {\n options = options || {};\n options.operation = 'update';\n return getManager().invoke(this, options, success, error);\n }\n\n deleteRecord(options?, success?, error?) {\n options = options || {};\n options.operation = 'delete';\n return getManager().invoke(this, options, success, error);\n }\n\n download(options, success?, error?) {\n return getManager().download(this, options, success, error);\n }\n\n setInput(key, val?, options?) {\n return getManager().setInput(this, key, val, options);\n }\n\n searchRecords(options, success?, error?) {\n return new Promise((resolve, reject) => {\n getManager().searchRecords(this, options, (response, pagination) => {\n resolve({data: response.content || response, pagination});\n }, reject);\n });\n }\n\n isUpdateRequired(hasData) {\n const inputFields = getManager().getInputParms(this);\n const queryParams = ServiceVariableUtils.excludePaginationParams(inputFields);\n\n if (!queryParams.length) {\n // if we don't have any query params and variable data is available then we don't need variable update, so return false\n if (hasData) {\n return false;\n }\n }\n\n return true;\n }\n\n cancel(options?) {\n return getManager().cancel(this, options);\n }\n\n setPagination(data) {\n return getManager().setPagination(this, data);\n }\n\n init() {\n getManager().initBinding(this);\n getManager().defineFirstLastRecord(this);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-variable.js","sourceRoot":"./","sources":["src/model/variable/live-variable.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDefined, getClonedObject } from \"../../util/utils\";\nimport { DataSource, IDataSource } from \"../../types/types\";\n\nimport { VariableManagerFactory } from '../../factory/variable-manager.factory';\nimport { ApiAwareVariable } from './api-aware-variable';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\nimport { LiveVariableManager } from '../../manager/variable/live-variable.manager';\nimport {debounceVariableCall} from \"../../util/variable/variables.utils\";\nimport _ from 'lodash';\nconst getManager = (): LiveVariableManager => {\n return VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.LIVE);\n};\n\nexport class LiveVariable extends ApiAwareVariable implements IDataSource {\n\n matchMode;\n liveSource;\n propertiesMap;\n pagination;\n type;\n orderBy;\n _options;\n // Used to track a variable http call, so that it can be cancelled at any point of time during its execution\n _observable;\n filterExpressions;\n httpService;\n dateFormatter;\n\n constructor(variable: any) {\n super();\n Object.assign(this as any, variable);\n this.httpService = variable.httpClientService;\n }\n\n execute(operation, options) {\n let returnVal = super.execute(operation, options);\n if (isDefined(returnVal)) {\n return returnVal;\n }\n\n switch (operation) {\n case DataSource.Operation.IS_API_AWARE:\n returnVal = true;\n break;\n case DataSource.Operation.SUPPORTS_CRUD:\n returnVal = true;\n break;\n case DataSource.Operation.SUPPORTS_DISTINCT_API:\n returnVal = true;\n break;\n case DataSource.Operation.IS_PAGEABLE:\n returnVal = true;\n break;\n case DataSource.Operation.IS_SORTABLE:\n returnVal = true;\n break;\n case DataSource.Operation.SUPPORTS_SERVER_FILTER:\n returnVal = true;\n break;\n case DataSource.Operation.GET_OPERATION_TYPE:\n returnVal = this.operation;\n break;\n case DataSource.Operation.GET_RELATED_PRIMARY_KEYS:\n returnVal = this.getRelatedTablePrimaryKeys(options);\n break;\n case DataSource.Operation.GET_ENTITY_NAME:\n returnVal = this.propertiesMap.entityName;\n break;\n case DataSource.Operation.LIST_RECORDS:\n returnVal = this.listRecords(options);\n break;\n case DataSource.Operation.UPDATE_RECORD :\n returnVal = this.updateRecord(options);\n break;\n case DataSource.Operation.INSERT_RECORD :\n returnVal = this.insertRecord(options);\n break;\n case DataSource.Operation.DELETE_RECORD :\n returnVal = this.deleteRecord(options);\n break;\n case DataSource.Operation.INVOKE :\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.UPDATE :\n returnVal = this.update(options);\n break;\n case DataSource.Operation.GET_RELATED_TABLE_DATA:\n returnVal = this.getRelatedTableData(options.relatedField, options);\n break;\n case DataSource.Operation.GET_DISTINCT_DATA_BY_FIELDS:\n returnVal = this.getDistinctDataByFields(options);\n break;\n case DataSource.Operation.GET_AGGREGATED_DATA:\n returnVal = this.getAggregatedData(options);\n break;\n case DataSource.Operation.GET_MATCH_MODE:\n returnVal = this.matchMode;\n break;\n case DataSource.Operation.DOWNLOAD:\n returnVal = this.download(options);\n break;\n case DataSource.Operation.GET_PROPERTIES_MAP:\n returnVal = this.propertiesMap;\n break;\n case DataSource.Operation.GET_PRIMARY_KEY:\n returnVal = this.getPrimaryKey();\n break;\n case DataSource.Operation.GET_BLOB_URL:\n returnVal = `services/${this.liveSource}/${this.type}/${options.primaryValue}/content/${options.columnName}`;\n break;\n case DataSource.Operation.GET_OPTIONS:\n returnVal = this._options || {};\n break;\n case DataSource.Operation.SEARCH_RECORDS:\n returnVal = this.searchRecords(options);\n break;\n case DataSource.Operation.GET_REQUEST_PARAMS:\n returnVal = this.getRequestParams(options);\n break;\n case DataSource.Operation.GET_PAGING_OPTIONS:\n returnVal = this.pagination;\n break;\n case DataSource.Operation.IS_UPDATE_REQUIRED:\n returnVal = true;\n break;\n case DataSource.Operation.IS_BOUND_TO_LOCALE:\n returnVal = false;\n break;\n case DataSource.Operation.CANCEL:\n returnVal = false;\n break;\n default:\n returnVal = {};\n break;\n }\n return returnVal;\n }\n\n listRecords(options?, success?, error?) {\n return getManager().listRecords(this, options, success, error);\n }\n\n updateRecord(options?, success?, error?) {\n return getManager().updateRecord(this, options, success, error);\n }\n\n insertRecord(options?, success?, error?) {\n return getManager().insertRecord(this, options, success, error);\n }\n\n deleteRecord(options?, success?, error?) {\n return getManager().deleteRecord(this, options, success, error);\n }\n\n setInput(key, val, options) {\n return getManager().setInput(this, key, val, options);\n }\n\n setFilter(key, val) {\n return getManager().setFilter(this, key, val);\n }\n\n download(options, success?, error?) {\n return getManager().download(this, options, success, error);\n }\n\n invoke(options?, success?, error?) {\n switch (this.operation) {\n case 'insert':\n return this.insertRecord(options, success, error);\n case 'update':\n return this.updateRecord(options, success, error);\n case 'delete':\n return this.deleteRecord(options, success, error);\n default:\n return this.listRecords(options, success, error);\n }\n }\n\n getRelatedTablePrimaryKeys(columnName) {\n return getManager().getRelatedTablePrimaryKeys(this, columnName);\n }\n\n getRelatedTableData(columnName, options, success?, error?) {\n return getManager().getRelatedTableData(this, columnName, options, success, error);\n }\n\n getDistinctDataByFields(options, success?, error?) {\n return getManager().getDistinctDataByFields(this, options, success, error);\n }\n\n getAggregatedData(options, success?, error?) {\n return getManager().getAggregatedData(this, options, success, error);\n }\n\n getPrimaryKey() {\n return getManager().getPrimaryKey(this);\n }\n\n searchRecords(options, success?, error?) {\n return getManager().searchRecords(this, options, success, error);\n }\n\n getRequestParams(options) {\n return getManager().prepareRequestParams(options);\n }\n\n _downgradeInputData(data) {\n return getManager().downgradeFilterExpressionsToInputData(this, data);\n }\n\n _upgradeInputData(response, data) {\n return getManager().upgradeInputDataToFilterExpressions(this, response, data);\n }\n\n setOrderBy(expression) {\n this.orderBy = expression;\n return this.orderBy;\n }\n\n // legacy method\n update(options?, success?, error?) {\n return this.invoke(options, success, error);\n }\n\n createRecord(options?, success?, error?) {\n return this.insertRecord(options, success, error);\n }\n\n init() {\n getManager().initBinding(this, 'dataBinding', this.operation === 'read' ? 'filterFields' : 'inputFields');\n if (this.operation === 'read') {\n getManager().initFilterExpressionBinding(this);\n }\n getManager().defineFirstLastRecord(this);\n }\n\n invokeOnFiltertExpressionChange(obj, targetNodeKey, newVal, oldVal) {\n console.log('filter expr changed', newVal, oldVal);\n if ((newVal === oldVal && _.isUndefined(newVal)) || (_.isUndefined(newVal) && !_.isUndefined(oldVal))) {\n return;\n }\n // Skip cloning for blob column\n if (!_.includes(['blob', 'file'], obj.type)) {\n newVal = getClonedObject(newVal);\n }\n // backward compatibility: where we are allowing the user to bind complete object\n if (obj.target === 'dataBinding') {\n // remove the existing databinding element\n this.filterExpressions.rules = [];\n // now add all the returned values\n _.forEach(newVal, function (value, target) {\n this.filterExpressions.rules.push({\n 'target': target,\n 'value': value,\n 'matchMode': obj.matchMode || 'startignorecase',\n 'required': false,\n 'type': ''\n });\n });\n } else {\n // setting value to the root node\n obj[targetNodeKey] = newVal;\n }\n if (this.operation === 'read') {\n /* if auto-update set for the variable with read operation only, get its data */\n if (this.autoUpdate && !_.isUndefined(newVal) && _.isFunction(this.update)) {\n debounceVariableCall(this, 'update');\n }\n } else {\n /* if auto-update set for the variable with read operation only, get its data */\n if (this.autoUpdate && !_.isUndefined(newVal) && _.isFunction(this[this.operation + 'Record'])) {\n debounceVariableCall(this, this.operation + 'Record');\n }\n }\n // this.invoke();\n }\n\n cancel(options?) {\n return getManager().cancel(this, options);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-variable.js","sourceRoot":"./","sources":["src/model/variable/model-variable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,IAAM,UAAU,GAAG;IACf,OAAO,sBAAsB,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;IAAmC,iCAAY;IAK3C,uBAAY,QAAa;QAAzB,YACI,iBAAO,SAEV;QADG,MAAM,CAAC,MAAM,CAAC,KAAW,EAAE,QAAQ,CAAC,CAAC;;IACzC,CAAC;IAED,4BAAI,GAAJ;QACI,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,UAAU,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;SAC7C;QAED,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,+BAAO,GAAP,UAAQ,SAAc,EAAE,OAAY;QAChC,IAAI,SAAS,GAAG,iBAAM,OAAO,YAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,QAAQ,SAAS,EAAE;YACf,KAAK,UAAU,CAAC,SAAS,CAAC,YAAY;gBAClC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,aAAa;gBACnC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,qBAAqB;gBAC3C,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,WAAW;gBACjC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,WAAW;gBACjC,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,sBAAsB;gBAC5C,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,kBAAkB;gBACxC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnC,MAAM;YACV,KAAK,UAAU,CAAC,SAAS,CAAC,kBAAkB;gBACxC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpC,MAAM;YACV;gBACI,SAAS,GAAG,EAAE,CAAC;gBACf,MAAM;SACb;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,uCAAe,GAAf;QACI,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAC3C,CAAC;IAED,wCAAgB,GAAhB;QACI,OAAO,UAAU,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAEL,oBAAC;AAAD,CAAC,AAhED,CAAmC,YAAY,GAgE9C","sourcesContent":["import { DataSource, IDataSource } from '../../types/types';\nimport { isDefined } from \"../../util/utils\";\n\nimport { VariableManagerFactory } from '../../factory/variable-manager.factory';\nimport { BaseVariable } from '../base-variable';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\nimport { appManager } from '../../util/variable/variables.utils';\n\nconst getManager = () => {\n return VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.MODEL);\n};\n\nexport class ModelVariable extends BaseVariable implements IDataSource {\n\n type: any;\n saveInPhonegap: any;\n\n constructor(variable: any) {\n super();\n Object.assign(this as any, variable);\n }\n\n init() {\n if (this.isList) {\n getManager().removeFirstEmptyObject(this);\n }\n\n getManager().initBinding(this, 'dataBinding', 'dataSet');\n }\n\n execute(operation: any, options: any) {\n let returnVal = super.execute(operation, options);\n if (isDefined(returnVal)) {\n return returnVal;\n }\n\n switch (operation) {\n case DataSource.Operation.IS_API_AWARE:\n returnVal = false;\n break;\n case DataSource.Operation.SUPPORTS_CRUD:\n returnVal = false;\n break;\n case DataSource.Operation.SUPPORTS_DISTINCT_API:\n returnVal = false;\n break;\n case DataSource.Operation.IS_PAGEABLE:\n returnVal = false;\n break;\n case DataSource.Operation.IS_SORTABLE:\n returnVal = false;\n break;\n case DataSource.Operation.SUPPORTS_SERVER_FILTER:\n returnVal = false;\n break;\n case DataSource.Operation.IS_BOUND_TO_LOCALE:\n returnVal = this.isBoundToLocale();\n break;\n case DataSource.Operation.GET_DEFAULT_LOCALE:\n returnVal = this.getDefaultLocale();\n break;\n default:\n returnVal = {};\n break;\n }\n return returnVal;\n }\n\n isBoundToLocale() {\n return this.name === 'supportedLocale';\n }\n\n getDefaultLocale() {\n return appManager.getSelectedLocale();\n }\n\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-variable.js","sourceRoot":"./","sources":["src/model/variable/service-variable.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDefined } from \"../../util/utils\";\nimport { DataSource, IDataSource } from \"../../types/types\";\n\nimport { VariableManagerFactory } from '../../factory/variable-manager.factory';\nimport { ApiAwareVariable } from './api-aware-variable';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\nimport { ServiceVariableManager } from '../../manager/variable/service-variable.manager';\nimport { ServiceVariableUtils } from '../../util/variable/service-variable.utils';\nimport {HttpClientService} from \"../../types/http-client.service\";\n\nimport _ from 'lodash';\n\nconst getManager = (): ServiceVariableManager => {\n return VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.SERVICE);\n};\n\n\nexport interface SVConfig {\n name: string,\n dataSet: any,\n isList: boolean,\n service: string,\n operation: string,\n operationId: string,\n dataBinding: any;\n serviceInfo?: any,\n httpClientService: HttpClientService\n}\n\nexport class ServiceVariable extends ApiAwareVariable implements IDataSource {\n\n // Used to track progress of file upload\n _progressObservable;\n // Used to track a variable http call, so that it can be cancelled at any point of time during its execution\n _observable;\n _deleteFileObservable;\n pagination;\n simulateFileDownload;\n serviceInfo;\n httpService;\n\n constructor(variable: SVConfig) {\n super();\n Object.assign(this as any, variable);\n this.serviceInfo = variable.serviceInfo;\n this.httpService = variable.httpClientService;\n }\n\n execute(operation, options) {\n let returnVal = super.execute(operation, options);\n if (isDefined(returnVal)) {\n return returnVal;\n }\n\n switch (operation) {\n case DataSource.Operation.IS_API_AWARE:\n returnVal = true;\n break;\n case DataSource.Operation.SUPPORTS_CRUD:\n returnVal = false;\n break;\n case DataSource.Operation.SUPPORTS_DISTINCT_API:\n returnVal = false;\n break;\n case DataSource.Operation.IS_PAGEABLE:\n // Check for both client and server side pagination existence\n returnVal = this.hasPagination();\n break;\n case DataSource.Operation.IS_SORTABLE:\n returnVal = this.hasPagination() && !(this as any)._paginationConfig;\n break;\n case DataSource.Operation.SUPPORTS_SERVER_FILTER:\n returnVal = false;\n break;\n case DataSource.Operation.SET_INPUT:\n returnVal = this.setInput(options);\n break;\n case DataSource.Operation.LIST_RECORDS:\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.INVOKE :\n returnVal = this.invoke(options);\n break;\n case DataSource.Operation.UPDATE :\n returnVal = this.update(options);\n break;\n case DataSource.Operation.SEARCH_RECORDS:\n returnVal = this.searchRecords(options);\n break;\n case DataSource.Operation.DOWNLOAD:\n returnVal = this.download(options);\n break;\n case DataSource.Operation.GET_PAGING_OPTIONS:\n returnVal = this.pagination;\n break;\n case DataSource.Operation.IS_UPDATE_REQUIRED:\n returnVal = this.isUpdateRequired(options);\n break;\n case DataSource.Operation.IS_BOUND_TO_LOCALE:\n returnVal = false;\n break;\n case DataSource.Operation.CANCEL:\n returnVal = this.cancel(options);\n break;\n case DataSource.Operation.SET_PAGINATION:\n returnVal = this.setPagination(options);\n break;\n default :\n returnVal = {};\n break;\n }\n return returnVal;\n }\n\n hasPagination() {\n return this.controller === VARIABLE_CONSTANTS.CONTROLLER_TYPE.QUERY || !_.isEmpty(this.pagination);\n }\n\n invoke(options?, success?, error?) {\n // return this.invokeVar();\n return getManager().invoke(this, options, success, error);\n }\n\n update(options, success?, error?) {\n return getManager().invoke(this, options, success, error);\n }\n\n download(options, success?, error?) {\n return getManager().download(this, options, success, error);\n }\n\n setInput(key, val?, options?) {\n return getManager().setInput(this, key, val, options);\n }\n\n searchRecords(options, success?, error?) {\n return new Promise((resolve, reject) => {\n getManager().searchRecords(this, options, (response, pagination) => {\n resolve({data: response.content || response, pagination});\n }, reject);\n });\n }\n\n isUpdateRequired(hasData) {\n const inputFields = getManager().getInputParms(this);\n const queryParams = ServiceVariableUtils.excludePaginationParams(inputFields);\n\n if (!queryParams.length) {\n // if we don't have any query params and variable data is available then we don't need variable update, so return false\n if (hasData) {\n return false;\n }\n }\n\n return true;\n }\n\n setPagination(data) {\n return getManager().setPagination(this, data);\n }\n\n cancel(options?) {\n return getManager().cancel(this, options);\n }\n\n init() {\n getManager().initBinding(this);\n getManager().defineFirstLastRecord(this);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-notifier.js","sourceRoot":"./","sources":["src/types/event-notifier.ts"],"names":[],"mappings":"AAAA;IAAA;QACY,cAAS,GAAG,EAAS,CAAC;IAmBlC,CAAC;IAjBU,qCAAM,GAAb,UAAc,KAAa,EAAE,IAAW;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,CAAW;gBACtC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEM,wCAAS,GAAhB,UAAiB,KAAa,EAAE,EAAY;QAA5C,iBAQC;QAPG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,OAAO;YACH,IAAM,cAAc,GAAG,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAM,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,UAAC,GAAa,IAAK,OAAA,GAAG,KAAK,EAAE,EAAV,CAAU,CAAC,CAAC;YAClE,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC;IACN,CAAC;IACL,2BAAC;AAAD,CAAC,AApBD,IAoBC","sourcesContent":["export class DefaultEventNotifier implements EventNotifier {\n private listeners = {} as any;\n\n public notify(event: string, args: any[]) {\n if (this.listeners[event]) {\n this.listeners[event].forEach((l: Function) => {\n l && l.apply(null, args);\n });\n }\n }\n\n public subscribe(event: string, fn: Function) {\n this.listeners[event] = this.listeners[event] || [];\n this.listeners[event].push(fn);\n return () => {\n const eventListeners = this.listeners[event];\n const i = eventListeners.findIndex((fni: Function) => fni === fn);\n eventListeners.splice(i, 1);\n };\n }\n}\n\nexport interface EventNotifier {\n notify: (event: string, args: any[]) => void;\n subscribe: (event: string, fn: Function) => Function;\n}"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataset-util.js","sourceRoot":"./","sources":["src/util/dataset-util.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash';\n\nexport default class DatasetUtil {\n\n static isValidDataset(dataSet: any, isList?: boolean) {\n if (!dataSet) {\n return false;\n }\n\n // check array type dataset for list type variable\n if (isList && !_.isArray(dataSet)) {\n return false;\n }\n\n // change the dataSet\n return dataSet;\n }\n\n static getValue(dataSet: any, key: any, index: any, isList?: boolean) {\n index = index || 0;\n\n // return the value against the specified key\n return isList ? dataSet[index][key] : dataSet[key];\n }\n\n static setValue(dataSet: any, key: any, value: any, isList?: boolean) {\n // check param sanity\n if (key && !isList) {\n dataSet[key] = value;\n }\n\n // return the new dataSet\n return dataSet;\n }\n\n static getItem(dataSet: any, index: any, isList?: boolean) {\n // return the object against the specified index\n return isList ? dataSet[index] : dataSet;\n }\n\n /**\n * This method is used to find target node\n * @param dataSet: provided dataSet\n * @param options: provided options\n * @returns {any} targetnode\n */\n private static getTargetNode(dataSet: any, options: any) {\n dataSet = options.parentIndex !== undefined ? dataSet[options.parentIndex] : dataSet;\n return _.get(dataSet, options.path);\n }\n\n static setItem(dataSet: any, i: any, value: any, options?: any) {\n let index;\n\n // check param sanity\n if (_.isUndefined(i) || !options.isList) {\n return dataSet;\n }\n\n if (_.isObject(i)) {\n index = _.findIndex(dataSet, i);\n } else {\n index = i;\n }\n\n if (options.path) {\n const innerArray = DatasetUtil.getTargetNode(dataSet, options);\n const innerElemindex = _.findIndex(innerArray, i);\n if (innerElemindex > -1) {\n innerArray[innerElemindex] = value;\n }\n } else {\n if (index > -1) {\n // set the value against the specified index\n dataSet[index] = value;\n }\n }\n\n // return the new dataSet\n return dataSet;\n }\n\n static addItem(dataSet: any, value: any, index: any, options?: any) {\n // check param sanity\n if (_.isUndefined(value) || !options.isList) {\n return dataSet;\n }\n\n // set the value against the specified index\n if (options.path) {\n const innerArray = DatasetUtil.getTargetNode(dataSet, options);\n if (innerArray) {\n // check for index sanity\n index = index !== undefined ? index : innerArray.length;\n innerArray.splice(index, 0, value);\n } else {\n options.parentIndex !== undefined ? _.set(dataSet[options.parentIndex], options.path, [value]) : _.set(dataSet, options.path, [value]);\n }\n\n } else {\n // check for index sanity\n index = index !== undefined ? index : dataSet.length;\n dataSet.splice(index, 0, value);\n }\n\n // return the new dataSet\n return dataSet;\n }\n\n /**\n *\n * @param dataSet\n * @param i, can be index value of the object/element in array\n * or\n * the whole object which needs to be removed\n * @param exactMatch\n * @returns {any}\n */\n static removeItem(dataSet: any, i: any, options: any) {\n let index, exactMatch;\n // check for index sanity\n i = i !== undefined ? i : dataSet.length - 1;\n\n if (_.isBoolean(options)) {\n exactMatch = options;\n }\n if (_.isObject(options)) {\n exactMatch = options.exactMatch;\n }\n\n if (_.isObject(i)) {\n if (options.path) {\n const innerArray = DatasetUtil.getTargetNode(dataSet, options);\n const innerElemindex = _.findIndex(innerArray, i);\n if (innerElemindex > -1 && (!exactMatch || (exactMatch && _.isEqual(innerArray[innerElemindex], i)))) {\n innerArray.splice(innerElemindex, 1);\n }\n } else {\n index = _.findIndex(dataSet, i);\n // When exactMatch property is set to true delete only when every property values are same*/\n if (index > -1 && (!exactMatch || (exactMatch && _.isEqual(dataSet[index], i)))) {\n dataSet.splice(index, 1);\n }\n }\n } else {\n dataSet.splice(i, 1);\n }\n // return the new dataSet\n return dataSet;\n }\n\n static getValidDataset(isList?: boolean) {\n return isList ? [] : {};\n }\n\n static getCount(dataSet: any, isList?: boolean) {\n return isList ? dataSet.length : Object.keys(dataSet).length;\n }\n}\n"]}