@wavemaker/variables 12.0.0-next.46502 → 12.0.0-next.47809

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/npm-shrinkwrap.json +1993 -0
  2. package/package-lock.json +1993 -0
  3. {variables → package}/package.json +4 -3
  4. {variables → package}/scripts/build.js +52 -15
  5. package/scripts/build.js.map +1 -0
  6. package/src/manager/action/timer-action.manager.js.map +1 -0
  7. {variables → package}/src/manager/variable/base-variable.manager.js +2 -2
  8. package/src/manager/variable/base-variable.manager.js.map +1 -0
  9. {variables → package}/src/manager/variable/crud-variable.manager.js +16 -16
  10. package/src/manager/variable/crud-variable.manager.js.map +1 -0
  11. {variables → package}/src/manager/variable/live-variable.manager.js +50 -50
  12. package/src/manager/variable/live-variable.manager.js.map +1 -0
  13. {variables → package}/src/manager/variable/model-variable.manager.js +12 -12
  14. package/src/manager/variable/model-variable.manager.js.map +1 -0
  15. {variables → package}/src/manager/variable/service-variable.manager.js +42 -41
  16. package/src/manager/variable/service-variable.manager.js.map +1 -0
  17. package/src/model/action/timer-action.js.map +1 -0
  18. {variables → package}/src/model/base-action.d.ts +1 -1
  19. {variables → package}/src/model/base-action.js +3 -3
  20. package/src/model/base-action.js.map +1 -0
  21. {variables → package}/src/model/base-variable.d.ts +1 -1
  22. {variables → package}/src/model/base-variable.js +16 -16
  23. package/src/model/base-variable.js.map +1 -0
  24. {variables → package}/src/model/variable/crud-variable.js +2 -2
  25. package/src/model/variable/crud-variable.js.map +1 -0
  26. {variables → package}/src/model/variable/live-variable.js +7 -7
  27. package/src/model/variable/live-variable.js.map +1 -0
  28. package/src/model/variable/model-variable.js.map +1 -0
  29. {variables → package}/src/model/variable/service-variable.js +2 -2
  30. package/src/model/variable/service-variable.js.map +1 -0
  31. package/src/types/event-notifier.js.map +1 -0
  32. {variables → package}/src/util/dataset-util.js +16 -16
  33. package/src/util/dataset-util.js.map +1 -0
  34. {variables → package}/src/util/file-upload.util.js +12 -12
  35. package/src/util/file-upload.util.js.map +1 -0
  36. package/src/util/inflight-queue.js.map +1 -0
  37. package/src/util/notify-promise.js.map +1 -0
  38. {variables → package}/src/util/utils.js +19 -19
  39. package/src/util/utils.js.map +1 -0
  40. {variables → package}/src/util/variable/live-variable.http.utils.js +6 -6
  41. package/src/util/variable/live-variable.http.utils.js.map +1 -0
  42. {variables → package}/src/util/variable/live-variable.utils.js +84 -84
  43. package/src/util/variable/live-variable.utils.js.map +1 -0
  44. {variables → package}/src/util/variable/pagination.utils.js +38 -20
  45. package/src/util/variable/pagination.utils.js.map +1 -0
  46. {variables → package}/src/util/variable/service-variable.utils.js +28 -28
  47. package/src/util/variable/service-variable.utils.js.map +1 -0
  48. {variables → package}/src/util/variable/variables.utils.js +49 -49
  49. package/src/util/variable/variables.utils.js.map +1 -0
  50. package/webpack.config.d.ts +21 -0
  51. variables/scripts/build.js.map +0 -1
  52. variables/scripts/update-version.d.ts +0 -1
  53. variables/scripts/update-version.js +0 -27
  54. variables/scripts/update-version.js.map +0 -1
  55. variables/src/manager/action/timer-action.manager.js.map +0 -1
  56. variables/src/manager/variable/base-variable.manager.js.map +0 -1
  57. variables/src/manager/variable/crud-variable.manager.js.map +0 -1
  58. variables/src/manager/variable/live-variable.manager.js.map +0 -1
  59. variables/src/manager/variable/model-variable.manager.js.map +0 -1
  60. variables/src/manager/variable/service-variable.manager.js.map +0 -1
  61. variables/src/model/action/timer-action.js.map +0 -1
  62. variables/src/model/base-action.js.map +0 -1
  63. variables/src/model/base-variable.js.map +0 -1
  64. variables/src/model/variable/crud-variable.js.map +0 -1
  65. variables/src/model/variable/live-variable.js.map +0 -1
  66. variables/src/model/variable/model-variable.js.map +0 -1
  67. variables/src/model/variable/service-variable.js.map +0 -1
  68. variables/src/types/event-notifier.js.map +0 -1
  69. variables/src/util/dataset-util.js.map +0 -1
  70. variables/src/util/file-upload.util.js.map +0 -1
  71. variables/src/util/inflight-queue.js.map +0 -1
  72. variables/src/util/notify-promise.js.map +0 -1
  73. variables/src/util/utils.js.map +0 -1
  74. variables/src/util/variable/live-variable.http.utils.js.map +0 -1
  75. variables/src/util/variable/live-variable.utils.js.map +0 -1
  76. variables/src/util/variable/pagination.utils.js.map +0 -1
  77. variables/src/util/variable/service-variable.utils.js.map +0 -1
  78. variables/src/util/variable/variables.utils.js.map +0 -1
  79. variables/webpack.config.d.ts +0 -21
  80. {variables → package}/index.d.ts +0 -0
  81. {variables → package}/index.js +0 -0
  82. {variables → package}/index.js.map +0 -0
  83. {variables → package}/scripts/build.d.ts +0 -0
  84. {variables → package}/src/advanced-options.d.ts +0 -0
  85. {variables → package}/src/advanced-options.js +0 -0
  86. {variables → package}/src/advanced-options.js.map +0 -0
  87. {variables → package}/src/constants/variables.constants.d.ts +0 -0
  88. {variables → package}/src/constants/variables.constants.js +0 -0
  89. {variables → package}/src/constants/variables.constants.js.map +0 -0
  90. {variables → package}/src/factory/variable-manager.factory.d.ts +0 -0
  91. {variables → package}/src/factory/variable-manager.factory.js +0 -0
  92. {variables → package}/src/factory/variable-manager.factory.js.map +0 -0
  93. {variables → package}/src/manager/action/timer-action.manager.d.ts +0 -0
  94. {variables → package}/src/manager/action/timer-action.manager.js +0 -0
  95. {variables → package}/src/manager/variable/base-variable.manager.d.ts +0 -0
  96. {variables → package}/src/manager/variable/crud-variable.manager.d.ts +0 -0
  97. {variables → package}/src/manager/variable/live-variable.manager.d.ts +0 -0
  98. {variables → package}/src/manager/variable/model-variable.manager.d.ts +0 -0
  99. {variables → package}/src/manager/variable/service-variable.manager.d.ts +0 -0
  100. {variables → package}/src/model/action/timer-action.d.ts +0 -0
  101. {variables → package}/src/model/action/timer-action.js +0 -0
  102. {variables → package}/src/model/crud-create.d.ts +0 -0
  103. {variables → package}/src/model/crud-create.js +0 -0
  104. {variables → package}/src/model/crud-create.js.map +0 -0
  105. {variables → package}/src/model/crud-delete.d.ts +0 -0
  106. {variables → package}/src/model/crud-delete.js +0 -0
  107. {variables → package}/src/model/crud-delete.js.map +0 -0
  108. {variables → package}/src/model/crud-list.d.ts +0 -0
  109. {variables → package}/src/model/crud-list.js +0 -0
  110. {variables → package}/src/model/crud-list.js.map +0 -0
  111. {variables → package}/src/model/crud-update.d.ts +0 -0
  112. {variables → package}/src/model/crud-update.js +0 -0
  113. {variables → package}/src/model/crud-update.js.map +0 -0
  114. {variables → package}/src/model/variable/api-aware-variable.d.ts +0 -0
  115. {variables → package}/src/model/variable/api-aware-variable.js +0 -0
  116. {variables → package}/src/model/variable/api-aware-variable.js.map +0 -0
  117. {variables → package}/src/model/variable/crud-variable.d.ts +0 -0
  118. {variables → package}/src/model/variable/live-variable.d.ts +0 -0
  119. {variables → package}/src/model/variable/model-variable.d.ts +0 -0
  120. {variables → package}/src/model/variable/model-variable.js +0 -0
  121. {variables → package}/src/model/variable/service-variable.d.ts +0 -0
  122. {variables → package}/src/types/date-formatter.d.ts +0 -0
  123. {variables → package}/src/types/date-formatter.js +0 -0
  124. {variables → package}/src/types/date-formatter.js.map +0 -0
  125. {variables → package}/src/types/event-notifier.d.ts +0 -0
  126. {variables → package}/src/types/event-notifier.js +0 -0
  127. {variables → package}/src/types/http-client.service.d.ts +0 -0
  128. {variables → package}/src/types/http-client.service.js +0 -0
  129. {variables → package}/src/types/http-client.service.js.map +0 -0
  130. {variables → package}/src/types/types.d.ts +0 -0
  131. {variables → package}/src/types/types.js +0 -0
  132. {variables → package}/src/types/types.js.map +0 -0
  133. {variables → package}/src/util/dataset-util.d.ts +0 -0
  134. {variables → package}/src/util/file-upload.util.d.ts +0 -0
  135. {variables → package}/src/util/inflight-queue.d.ts +0 -0
  136. {variables → package}/src/util/inflight-queue.js +0 -0
  137. {variables → package}/src/util/notify-promise.d.ts +0 -0
  138. {variables → package}/src/util/notify-promise.js +0 -0
  139. {variables → package}/src/util/oAuth.utils.d.ts +0 -0
  140. {variables → package}/src/util/oAuth.utils.js +0 -0
  141. {variables → package}/src/util/oAuth.utils.js.map +0 -0
  142. {variables → package}/src/util/utils.d.ts +0 -0
  143. {variables → package}/src/util/variable/live-variable.http.utils.d.ts +0 -0
  144. {variables → package}/src/util/variable/live-variable.utils.d.ts +0 -0
  145. {variables → package}/src/util/variable/pagination.utils.d.ts +0 -0
  146. {variables → package}/src/util/variable/service-variable.utils.d.ts +0 -0
  147. {variables → package}/src/util/variable/variables.utils.d.ts +0 -0
  148. {variables → package}/webpack.config.js +0 -0
  149. {variables → package}/webpack.config.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-upload.util.js","sourceRoot":"./","sources":["src/util/file-upload.util.ts"],"names":[],"mappings":"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","sourcesContent":["import { triggerFn } from './utils';\n\nimport { NotifyPromise } from './notify-promise';\n\nimport _ from 'lodash';\n\nenum UPLOAD_STATUS {\n QUEUED = 'queued',\n IN_PROGRESS = 'inprogress',\n SUCCESS = 'success',\n ERROR = 'error',\n ABORTED = 'abort'\n}\n\nfunction transformEvent(event: any) {\n event.target = event.target || {\n status: event.responseCode,\n response: event.response\n };\n return event;\n}\n\nclass FileTransferObject {\n name: string;\n size: string;\n status: string;\n transferFn: Function;\n abortFn: Function;\n promise: any;\n progress: number;\n\n constructor(file: any, transferFn: any, promise: any, abortFn: any) {\n this.name = file.name;\n this.size = file.size || '';\n this.status = UPLOAD_STATUS.QUEUED;\n this.transferFn = transferFn;\n this.promise = promise;\n this.abortFn = abortFn;\n }\n\n start() {\n if (this.status === UPLOAD_STATUS.QUEUED) {\n this.status = UPLOAD_STATUS.IN_PROGRESS;\n triggerFn(this.transferFn);\n }\n }\n\n then(onSuccess: any, onError: any, onProgress: any) {\n const self = this;\n this.promise.then(function (event: any) {\n self.status = UPLOAD_STATUS.SUCCESS;\n triggerFn(onSuccess, event);\n }, function (event: any) {\n self.status = UPLOAD_STATUS.ERROR;\n triggerFn(onError, event);\n }, function (event: any) {\n self.progress = Math.round(event.loaded / event.total * 100);\n triggerFn(onProgress, event);\n });\n return this;\n }\n\n finally(onFinal?: any) {\n this.promise.finally(onFinal);\n }\n\n /* aborts the file upload */\n abort() {\n this.status = UPLOAD_STATUS.ABORTED;\n triggerFn(this.abortFn);\n this.finally();\n }\n\n}\n\nclass AjaxFileTransferObject extends FileTransferObject {\n constructor(file: any, transferFn: any, promise: any, abortFn: any) {\n super(file, transferFn, promise, abortFn);\n }\n}\n\n/* upload file using fileTransfer */\nfunction uploadWithFileTransfer(file: any, url: any, options: any) {}\n\nfunction appendFileToFormData(file: any, fd: any, options: any) {\n /* append file to form data */\n if (_.isArray(file)) {\n _.forEach(file, function (fileObject: any) {\n fd.append(options.paramName, fileObject.content || fileObject, fileObject.name);\n });\n } else if (_.isObject(file)) {\n fd.append(options.paramName, file.content || file, file.name);\n }\n}\n\n/* upload file with ajax calling */\nfunction uploadWithAjax(file: any, variable: any, fd: any, url: any, options: any) {\n const cloneFD = new FormData();\n const iterate = (value: any, key: any) => {\n const fileObject = (_.isArray(value) ? value[0] : value);\n if (!(fileObject instanceof File || fileObject instanceof Blob)) {\n cloneFD.append(key, value);\n }\n };\n // The foreeach method on form data doesn't exist in IE. Hence we check if it exists\n // or else use the lodash forEach\n if (fd.forEach) {\n fd.forEach(iterate);\n } else {\n _.forEach(fd, iterate);\n }\n appendFileToFormData(file, cloneFD, options);\n\n const promise = new NotifyPromise((resolve: any, reject: any, notify: any) => {\n // ToDo - variable seperation\n variable.httpService.uploadFile(url, cloneFD, variable, {notify: notify}).then((data: any) => {\n resolve(data);\n }, (error: any) => {\n reject(error);\n });\n file._uploadProgress = variable.request;\n });\n\n return promise;\n}\n\n/* upload the file - IE9 support */\n// function uploadWithIframe(file, url, options) {}\n\n/* upload the next file depending on the status */\nfunction starNextFileTransfer(fts: any) {\n const ft = _.find(fts, function (f: any) {\n return f.status === UPLOAD_STATUS.QUEUED;\n });\n if (ft) {\n ft.start();\n ft.finally(starNextFileTransfer.bind(undefined, fts));\n }\n}\n\n/* upload the max no of files at once i.e. two at once based on max*/\nfunction startFileTransfers(fts: any, max: any) {\n let i = 0;\n const len = fts.length;\n while (i < max && i < len) {\n starNextFileTransfer(fts);\n i++;\n }\n}\n\nfunction isMobileApp() {\n return false;\n}\n\n/**\n * This function uploads the file to the given url endpoint.\n *\n * @param file file to upload\n * @param url http endpoint to which the file has to be submitted.\n * @param options\n * @returns a promise to listen for success, event, onProgress.\n * One can also abort the upload by simply calling abort function.\n */\nexport function upload(files: any, variable: any, fd: any, config: any, options?: any) {\n options = _.extend({\n 'paramName' : config.fileParamName\n }, options);\n return uploadWithAjax(files, variable, fd, config.url, options);\n // let fileTransfers = [],\n // url = config.uploadUrl;\n // options = _.extend({\n // 'paramName' : config.fileParamName\n // }, options);\n //\n // if (isMobileApp()) {\n // _.forEach(files, function (file) {\n // fileTransfers.push(uploadWithFileTransfer(file, url, options));\n // });\n // } else if ((window as any).FormData) {\n // _.forEach(files, function (file) {\n // fileTransfers.push(uploadWithAjax(file, url, options));\n // });\n // } else {\n // _.forEach(files, function (file) {\n // fileTransfers.push(uploadWithIframe(file, url, options));\n // });\n // }\n // startFileTransfers(fileTransfers, 2);\n // return fileTransfers;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"inflight-queue.js","sourceRoot":"./","sources":["src/util/inflight-queue.ts"],"names":[],"mappings":"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","sourcesContent":["class InflightQueue {\n requestsQueue = new Map();\n\n /**\n * pushes the process against a variable in its queue\n * @param variable\n * @param {{resolve: (value?: any) => void; reject: (reason?: any) => void}} param2\n * the resolve callback will be called on\n */\n private addToQueue(variable: any, param2: {resolve: (value?: (any)) => void; reject: (reason?: any) => void}) {\n if (this.requestsQueue.has(variable)) {\n this.requestsQueue.get(variable).push(param2);\n } else {\n const processes = [];\n processes.push({resolve: param2.resolve, reject: param2.reject, active: false});\n this.requestsQueue.set(variable, processes);\n }\n }\n\n /**\n * Calls the reject method against the passed process\n * @param process\n */\n private rejectProcess(process: any) {\n process.reject('PROCESS_REJECTED_IN_QUEUE');\n }\n\n /**\n * clears the queue against a variable\n * @param variable\n */\n public clear(variable: any) {\n this.requestsQueue.delete(variable);\n }\n\n /**\n * executes the n/w calls for a specified variable pushed in its respective queue (pushed while it was inFlight)\n * @param variable\n */\n process(variable: any) {\n const processes: [any] = this.requestsQueue.get(variable);\n let nextProcess;\n\n // process request queue for the variable only if it is not empty\n if (!processes || !processes.length) {\n this.clear(variable);\n return;\n }\n\n // If only one item in queue\n if (processes.length === 1) {\n nextProcess = processes[0];\n if (nextProcess.active) {\n this.clear(variable);\n } else {\n nextProcess.active = true;\n nextProcess.resolve();\n }\n return;\n }\n\n switch (variable.inFlightBehavior) {\n case 'executeLast':\n for (let i = 0; i < processes.length - 2; i++) {\n this.rejectProcess(processes[i]);\n }\n processes.splice(0, processes.length - 1);\n this.process(variable);\n break;\n case 'executeAll':\n nextProcess = processes.splice(0, 1)[0];\n if (nextProcess.active) {\n nextProcess = processes.splice(0, 1)[0];\n }\n nextProcess.active = true;\n nextProcess.resolve();\n break;\n default:\n for (let i = 0; i < processes.length - 1; i++) {\n this.rejectProcess(processes[i]);\n }\n this.clear(variable);\n break;\n }\n }\n\n /**\n * initializes the queue against a variable and makes the first process call\n * If already initialized and a process in queue is in progress, the queue is not processed.\n * To process the next item in the queue, the process method has to be called from the caller.\n * @param variable\n * @returns {Promise<any>}\n */\n submit(variable: any) {\n return new Promise((resolve, reject) => {\n this.addToQueue(variable, {resolve: resolve, reject: reject});\n\n if (this.requestsQueue.get(variable).length === 1) {\n this.process(variable);\n }\n });\n }\n}\n\nexport const $queue = new InflightQueue();\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify-promise.js","sourceRoot":"./","sources":["src/util/notify-promise.ts"],"names":[],"mappings":"AAAA;IAEI,uBAAY,EAAO;QACf,IAAM,WAAW,GAAQ,EAAE,EACvB,MAAM,GAAG,UAAC,MAAW;YACrB,WAAW,CAAC,OAAO,CAAC,UAAC,GAAQ;gBACzB,GAAG,CAAC,MAAM,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,IAAM,OAAO,GAAG;YACZ,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,IAAM,EAAE,GAAI,IAAI,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;YAC7B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEF,EAAU,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,EAAU,CAAC,IAAI,GAAG,UAAC,SAAc,EAAE,QAAa,EAAE,QAAa;YAC3D,EAAU,CAAC,SAAS,CACjB,UAAC,QAAa;gBACV,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACd,CAAC,EACD,UAAC,MAAW;gBACR,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjB,OAAO,EAAE,CAAC;YACd,CAAC,CACJ,CAAC;YACF,IAAI,QAAQ,EAAE;gBACV,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B;QACL,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;IACd,CAAC;IACL,oBAAC;AAAD,CAAC,AApCD,IAoCC;;AAED,wEAAwE;AACxE,iCAAiC;AACjC,KAAK;AACL,0BAA0B;AAC1B,+DAA+D","sourcesContent":["export class NotifyPromise {\n\n constructor(fn: any) {\n const notifyQueue: any = [],\n notify = (status: any) => {\n notifyQueue.forEach((fn1: any) => {\n fn1(status);\n });\n };\n\n const cleanUp = function() {\n notifyQueue.length = 0;\n };\n\n const p1 = new Promise((res, rej) => {\n fn(res, rej, notify);\n });\n\n (p1 as any).superThen = p1.then.bind(p1);\n (p1 as any).then = (onResolve: any, onReject: any, onNotify: any) => {\n (p1 as any).superThen(\n (response: any) => {\n onResolve(response);\n cleanUp();\n },\n (reason: any) => {\n onReject(reason);\n cleanUp();\n }\n );\n if (onNotify) {\n notifyQueue.push(onNotify);\n }\n };\n return p1;\n }\n}\n\n// let newPromise = new PromiseWithNotify((resolve, reject, notify) => {\n// setInterval(notify, 1000);\n// })\n// console.log(newPromise)\n// newPromise.then(undefined, undefined, () => console.log(3));\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"./","sources":["src/util/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,aAAa;AACb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,MAAM,CAAC,IAAM,QAAQ,GAAG;IACpB,OAAO,EAAG,SAAS;IACnB,WAAW,EAAG,aAAa;IAC3B,KAAK,EAAG,OAAO;IACf,KAAK,EAAG,OAAO;IACf,WAAW,EAAG,aAAa;IAC3B,MAAM,EAAG,QAAQ;IACjB,IAAI,EAAG,MAAM;IACb,IAAI,EAAG,MAAM;IACb,MAAM,EAAG,QAAQ;IACjB,SAAS,EAAG,WAAW;IACvB,IAAI,EAAG,MAAM;IACb,IAAI,EAAG,MAAM;IACb,IAAI,EAAG,MAAM;IACb,SAAS,EAAG,WAAW;IACvB,QAAQ,EAAG,UAAU;IACrB,aAAa,EAAG,eAAe;IAC/B,OAAO,EAAG,SAAS;IACnB,IAAI,EAAG,MAAM;IACb,IAAI,EAAG,MAAM;IACb,IAAI,EAAG,MAAM;CAChB,CAAA;AACD,MAAM,CAAC,IAAM,eAAe,GAAG;IAC3B,IAAI,EAAG,YAAY;IACnB,IAAI,EAAG,UAAU;IACjB,SAAS,EAAG,WAAW;IACvB,QAAQ,EAAG,qBAAqB;IAChC,aAAa,EAAG,qBAAqB;IACrC,eAAe,EAAG,qBAAqB;IACvC,SAAS,EAAG,qBAAqB;CACpC,CAAA;AACD,IAAM,KAAK,GAAG;IACV,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,MAAM;IACX,cAAc,EAAE,2DAA2D;IAC3E,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,gBAAgB;IACzB,sBAAsB,EAAE,iDAAiD;IACzE,qBAAqB,EAAE,8GAA8G;IACrI,sBAAsB,EAAE,oCAAoC;IAC5D,sBAAsB,EAAE,yCAAyC;IACjE,kBAAkB,EAAE,mCAAmC;IACvD,sBAAsB,EAAE,oBAAoB;IAC5C,WAAW,EAAE,uDAAuD;IACpE,aAAa,EAAE,8EAA8E;IAC7F,mBAAmB,EAAE,4EAA4E;IACjG,kBAAkB,EAAE,mDAAmD;IACvE,eAAe,EAAE,iBAAiB;IAClC,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,WAAW;IAC9B,wBAAwB,EAAE,SAAS;IACnC,UAAU,EAAE,iBAAiB;IAC7B,cAAc,EAAE,0BAA0B;IAC1C,kBAAkB,EAAE,iBAAiB;IACrC,qBAAqB,EAAE,mGAAmG;IAC1H,gBAAgB,EAAE,4DAA4D;IAC9E,QAAQ,EAAE,2GAA2G;CACxH,CAAA;AACD,IAAM,YAAY,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1K,MAAM,CAAC,IAAM,IAAI,GAAG;IAAC,cAAY;SAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;QAAZ,yBAAY;;AAAO,CAAC,CAAC;AAC1C,SAAU,WAAW,CAAC,KAAU;;;;;gBACxB,EAAE,GAAG,CAAC,CAAC;;;qBACJ,CAAC;gBACJ,qBAAM,KAAG,KAAK,GAAG,EAAE,EAAI,EAAA;;gBAAvB,SAAuB,CAAC;;;;;CAE/B;AACD,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,GAAW;IACrC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,GAAQ;IAC/B,IAAM,QAAQ,GAAG;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,CAAC;QACX,kBAAkB,EAAE,EAAE;QACtB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,EAAE;QACnB,YAAY,EAAE,CAAC;KAClB,CAAC;IACF,4GAA4G;IAC5G,IAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;IAGI,qBAAY,GAAW;QACnB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAEM,6BAAO,GAAd;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IACvC,CAAC;IACL,kBAAC;AAAD,CAAC,AAVD,IAUC;;AACD,6BAA6B;AAC7B,MAAM,CAAC,IAAM,UAAU,GAAG;IACtB,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAU,GAAG;IAC3C,IAAM,WAAW,GAAG,kCAAkC,CAAC;IACvD,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACjB;;;YAGI;QACJ,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACxD,OAAO,GAAG,CAAC;SACd;QACD,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9D;AACL,CAAC,CAAC;AACF,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,CAAM,IAAK,OAAA,WAAW,KAAK,OAAO,CAAC,EAAxB,CAAwB,CAAC;AAC9D,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAC,CAAM,IAAK,OAAA,IAAI,KAAK,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,EAAnC,CAAmC,CAAC;AACxE,gEAAgE;AAChE,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,IAAS;IAClC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF;;;;EAIE;AACF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,OAAe;IACvC,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,QAAQ,CAAC,MAAM,CAAC;KAC1B;IACD,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF,uCAAuC;AACvC,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,IAAY;IACvC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACvB,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACvC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3H,CAAC,CAAC;AACF,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,OAAY;IACrC,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,SAAS,CAAC;KACpB;IACD,IAAI;QACA,IAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7C,6CAA6C;QAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACtF;IAAC,OAAO,CAAC,EAAE;QACR,mEAAmE;QACnE,OAAO,SAAS,CAAC;KACpB;AACL,CAAC,CAAC;AACF,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,SAAiB;IACvC,IAAM,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7G,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,IAAI,EAAE;QACN,4DAA4D;QAC5D,8DAA8D;QAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,GAAG,IAAI,CAAC;SACf;aAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,EAAE;YAC7C,gDAAgD;YAChD,IAAI,GAAG,IAAI,CAAC;SACf;aAAM;YACH,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,QAAa,EAAE,GAAQ,EAAE,UAAoB;IACjE,IAAI,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;IAClC,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO;KACV;IACD,IAAI,UAAU,EAAE;QACZ,KAAK,GAAG,eAAe,CAAC;KAC3B;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,KAAU,EAAE,GAAQ;QACzD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AACF;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,GAAQ,EAAE,cAAoB;IAClD,IAAI,GAAG,YAAY,IAAI,EAAE;QACrB,OAAO,GAAG,CAAC;KACd;IACD,IAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,OAAO,YAAY,MAAM,EAAE;QACtC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,IAAI,kBAAkB,EAAE,CAAC,CAAC;KAC7F;SAAM;QACH,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,IAAI,YAAY,EAAE,CAAC,CAAC;KACnE;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,MAAW;IACvC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,GAAW,EAAE,UAAkB,EAAE,UAAoB;IAClF,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,KAAK,CAAC;KAChB;IAED,IAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF,0DAA0D;AAC1D,MAAM,UAAU,SAAS,CAAC,EAAO;IAC7B;;QAEI;IAH2B,iBAAe;SAAf,UAAe,EAAf,qBAAe,EAAf,IAAe;QAAf,gCAAe;;IAK9C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC5D,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;QAC9B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;KACtC;IAED,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;QAClB,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/B;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,GAAQ,EAAE,GAAQ,EAAE,MAAY;IAExD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;QACd,OAAO;KACV;IAED,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAC1B;IAED,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EACxB,IAAI,GAAQ,EAAE,CAAC;IAEnB,IAAI,cAAc,CAAC;IAEnB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAS;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,0DAA0D;YAC3E,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,KAAK,CAAC;SAChB;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC;QAEZ,OAAO,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oDAAoD;SAC1H;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,EAAE;QAChB,OAAO,SAAS,CAAC;KACpB;IAED,IAAI,CAAC,OAAO,CAAC,UAAC,IAAS;QACnB,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACpB,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;aACxB;SACJ;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACxB,GAAG,GAAG,OAAO,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACf,CAAC,CAAC","sourcesContent":["// @ts-ignore\nimport X2JS from 'x2js';\nimport _ from 'lodash';\nexport const DataType = {\n INTEGER : 'integer',\n BIG_INTEGER : 'big_integer',\n SHORT : 'short',\n FLOAT : 'float',\n BIG_DECIMAL : 'big_decimal',\n DOUBLE : 'double',\n LONG : 'long',\n BYTE : 'byte',\n STRING : 'string',\n CHARACTER : 'character',\n TEXT : 'text',\n DATE : 'date',\n TIME : 'time',\n TIMESTAMP : 'timestamp',\n DATETIME : 'datetime',\n LOCALDATETIME : 'localdatetime',\n BOOLEAN : 'boolean',\n LIST : 'list',\n CLOB : 'clob',\n BLOB : 'blob'\n}\nexport const DEFAULT_FORMATS = {\n DATE : \"yyyy-MM-dd\",\n TIME : \"HH:mm:ss\",\n TIMESTAMP : \"timestamp\",\n DATETIME : \"yyyy-MM-ddTHH:mm:ss\",\n LOCALDATETIME : \"yyyy-MM-ddTHH:mm:ss\",\n DATETIME_ORACLE : \"yyyy-MM-dd HH:mm:ss\",\n DATE_TIME : \"yyyy-MM-dd HH:mm:ss\"\n}\nconst REGEX = {\n SNAKE_CASE: /[A-Z]/g,\n ANDROID: /Android/i,\n IPHONE: /iPhone/i,\n IPOD: /iPod/i,\n IPAD: /iPad/i,\n MAC: /Mac/i,\n ANDROID_TABLET: /android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i,\n MOBILE: /Mobile/i,\n WINDOWS: /Windows Phone/i,\n SUPPORTED_IMAGE_FORMAT: /\\.(bmp|gif|jpe|jpg|jpeg|tif|tiff|pbm|png|ico)$/i,\n SUPPORTED_FILE_FORMAT: /\\.(txt|js|css|html|script|properties|json|java|xml|smd|xmi|sql|log|wsdl|vm|ftl|jrxml|yml|yaml|md|less|jsp)$/i,\n SUPPORTED_AUDIO_FORMAT: /\\.(mp3|ogg|webm|wma|3gp|wav|m4a)$/i,\n SUPPORTED_VIDEO_FORMAT: /\\.(mp4|ogg|webm|wmv|mpeg|mpg|avi|mov)$/i,\n PAGE_RESOURCE_PATH: /^\\/pages\\/.*\\.(js|css|html|json)$/,\n MIN_PAGE_RESOURCE_PATH: /.*(page.min.html)$/,\n VALID_EMAIL: /^[a-zA-Z][\\w.+]+@[a-zA-Z_]+?\\.[a-zA-Z.]{1,4}[a-zA-Z]$/,\n VALID_WEB_URL: /^(http[s]?:\\/\\/)(www\\.){0,1}[a-zA-Z0-9=:?\\/\\.\\-]+(\\.[a-zA-Z]{2,5}[\\.]{0,1})?/,\n VALID_WEBSOCKET_URL: /^(ws[s]?:\\/\\/)(www\\.){0,1}[a-zA-Z0-9=:?\\/\\.\\-]+(\\.[a-zA-Z]{2,5}[\\.]{0,1})?/,\n VALID_RELATIVE_URL: /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/).*/,\n REPLACE_PATTERN: /\\$\\{([^\\}]+)\\}/g,\n ZIP_FILE: /\\.zip$/i,\n EXE_FILE: /\\.exe$/i,\n NO_QUOTES_ALLOWED: /^[^'|\"]*$/,\n NO_DOUBLE_QUOTES_ALLOWED: /^[^\"]*$/,\n VALID_HTML: /<[a-z][\\s\\S]*>/i,\n VALID_PASSWORD: /^[0-9a-zA-Z-_.@&*!#$%]+$/,\n SPECIAL_CHARACTERS: /[^A-Z0-9a-z_]+/i,\n APP_SERVER_URL_FORMAT: /^(http[s]?:\\/\\/)(www\\.){0,1}[a-zA-Z0-9\\.\\-]+([:]?[0-9]{2,5}|\\.[a-zA-Z]{2,5}[\\.]{0,1})\\/+[^?#&=]+$/,\n JSON_DATE_FORMAT: /\\d{4}-[0-1]\\d-[0-3]\\d(T[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d{1,3}Z$)?/,\n DATA_URL: /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*)\\s*$/i\n}\nconst NUMBER_TYPES = ['int', DataType.INTEGER, DataType.FLOAT, DataType.DOUBLE, DataType.LONG, DataType.SHORT, DataType.BYTE, DataType.BIG_INTEGER, DataType.BIG_DECIMAL];\nexport const noop = (...args: any) => { };\nfunction* idGenerator(token: any) {\n let id = 1;\n while (1) {\n yield `${token}${id++}`;\n }\n}\nexport const isValidWebURL = (url: string): boolean => {\n return (REGEX.VALID_WEB_URL).test(url);\n};\n\n/*Function to check whether the specified object is a pageable object or not.*/\nexport const isPageable = (obj: any): boolean => {\n const pageable = {\n 'content': [],\n 'first': true,\n 'last': true,\n 'number': 0,\n 'numberOfElements': 10,\n 'size': 20,\n 'sort': null,\n 'totalElements': 10,\n 'totalPages': 1\n };\n // paginated object may or may not contain 'empty' property. In either case, Pageable should return as true.\n const paginatedObj = _.omit(obj, 'empty');\n return (_.isEqual(_.keys(pageable), _.keys(paginatedObj).sort()));\n};\n\nexport class IDGenerator {\n private generator: Iterator<any>;\n\n constructor(key: string) {\n this.generator = idGenerator(key);\n }\n\n public nextUid(): string {\n return this.generator.next().value;\n }\n}\n// ToDo - variable seperation\nexport const hasCordova = () => {\n return !!window['cordova'];\n};\n\nexport const removeExtraSlashes = function (url) {\n const base64regex = /^data:image\\/([a-z]{2,});base64,/;\n if (_.isString(url)) {\n /*\n * support for mobile apps having local file path url starting with file:/// and\n * support for base64 format\n * */\n if (_.startsWith(url, 'file:///') || base64regex.test(url)) {\n return url;\n }\n return url.replace(new RegExp('([^:]\\/)(\\/)+', 'g'), '$1');\n }\n};\nexport const isDefined = (v: any) => 'undefined' !== typeof v;\nexport const isObject = (v: any) => null !== v && 'object' === typeof v;\n/* returns true if the provided data type matches number type */\nexport const isNumberType = (type: any): boolean => {\n return (NUMBER_TYPES.indexOf(extractType(type).toLowerCase()) !== -1);\n};\n\n/*\n* extracts and returns the last bit from full typeRef of a field\n* e.g. returns 'String' for typeRef = 'java.lang.String'\n* @params: {typeRef} type reference\n*/\nexport const extractType = (typeRef: string): string => {\n let type;\n if (!typeRef) {\n return DataType.STRING;\n }\n type = typeRef && typeRef.substring(typeRef.lastIndexOf('.') + 1);\n type = type && type.toLowerCase();\n type = type === DataType.LOCALDATETIME ? DataType.DATETIME : type;\n return type;\n};\n/*Function to check if date time type*/\nexport const isDateTimeType = (type: string) => {\n if (_.includes(type, '.')) {\n type = _.toLower(extractType(type));\n }\n return _.includes([DataType.DATE, DataType.TIME, DataType.TIMESTAMP, DataType.DATETIME, DataType.LOCALDATETIME], type);\n};\nexport const getValidJSON = (content: any) => {\n if (!content) {\n return undefined;\n }\n try {\n const parsedIntValue = parseInt(content, 10);\n /*obtaining json from editor content string*/\n return isObject(content) || !isNaN(parsedIntValue) ? content : JSON.parse(content);\n } catch (e) {\n /*terminating execution if new variable object is not valid json.*/\n return undefined;\n }\n};\nexport const xmlToJson = (xmlString: string) => {\n const x2jsObj = new X2JS({ 'emptyNodeForm': 'content', 'attributePrefix': '', 'enableToStringFunc': false });\n let json = x2jsObj.xml2js(xmlString);\n if (json) {\n // in x2js version 3.4.4, for simple string, {} is returned.\n // in this case also, return null to denote conversion failure\n if (Object.keys(json).length === 0) {\n json = null;\n } else if (_.get(json, 'html.body.parsererror')) {\n // for csv data, the response comes in an object\n json = null;\n } else {\n json = _.get(json, Object.keys(json)[0]);\n }\n }\n return json;\n};\n/*\n * Util method to replace patterns in string with object keys or array values\n * Examples:\n * Utils.replace('Hello, ${first} ${last} !', {first: 'wavemaker', last: 'ng'}) --> Hello, wavemaker ng\n * Utils.replace('Hello, ${0} ${1} !', ['wavemaker','ng']) --> Hello, wavemaker ng\n * Examples if parseError is true:\n * Utils.replace('Hello, {0} {1} !', ['wavemaker','ng']) --> Hello, wavemaker ng\n */\nexport const replace = (template: any, map: any, parseError?: boolean) => {\n let regEx = REGEX.REPLACE_PATTERN;\n if (!template) {\n return;\n }\n if (parseError) {\n regEx = /\\{([^\\}]+)\\}/g;\n }\n\n return template.replace(regEx, function (match: any, key: any) {\n return _.get(map, key);\n });\n};\n/**\n * prepare a blob object based on the content and content type provided\n * if content is blob itself, simply returns it back\n * @param val\n * @param valContentType\n * @returns {*}\n */\nexport const getBlob = (val: any, valContentType?: any) => {\n if (val instanceof Blob) {\n return val;\n }\n const jsonVal = getValidJSON(val);\n if (jsonVal && jsonVal instanceof Object) {\n val = new Blob([JSON.stringify(jsonVal)], { type: valContentType || 'application/json' });\n } else {\n val = new Blob([val], { type: valContentType || 'text/plain' });\n }\n return val;\n};\n\n/**\n * Returns a deep cloned replica of the passed object/array\n * @param object object/array to clone\n * @returns a clone of the passed object\n */\nexport const getClonedObject = (object: any) => {\n return _.cloneDeep(object);\n};\n/**\n * this method checks if a given string starts with the given string\n */\nexport const stringStartsWith = (str: string, startsWith: string, ignoreCase?: boolean): boolean => {\n if (!str) {\n return false;\n }\n\n const regEx = new RegExp('^' + startsWith, ignoreCase ? 'i' : '');\n\n return regEx.test(str);\n};\n/*function to check if fn is a function and then execute*/\nexport function triggerFn(fn: any, ...argmnts: any) {\n /* Use of slice on arguments will make this function not optimizable\n * https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n * */\n\n let start = 1;\n const len = arguments.length, args = new Array(len - start);\n for (start; start < len; start++) {\n args[start - 1] = arguments[start];\n }\n\n if (_.isFunction(fn)) {\n return fn.apply(null, args);\n }\n}\n\n/*\n * Util method to find the value of a key in the object\n * if key not found and create is true, an object is created against that node\n * Examples:\n * var a = {\n * b: {\n * c : {\n * d: 'test'\n * }\n * }\n * }\n * Utils.findValue(a, 'b.c.d') --> 'test'\n * Utils.findValue(a, 'b.c') --> {d: 'test'}\n * Utils.findValue(a, 'e') --> undefined\n * Utils.findValue(a, 'e', true) --> {} and a will become:\n * {\n * b: {\n * c : {\n * d: 'test'\n * }\n * },\n * e: {\n * }\n * }\n */\nexport const findValueOf = (obj: any, key: any, create?: any) => {\n\n if (!obj || !key) {\n return;\n }\n\n if (!create) {\n return _.get(obj, key);\n }\n\n const parts = key.split('.'),\n keys: any = [];\n\n let skipProcessing;\n\n parts.forEach((part: any) => {\n if (!parts.length) { // if the part of a key is not valid, skip the processing.\n skipProcessing = true;\n return false;\n }\n\n const subParts = part.match(/\\w+/g);\n let subPart;\n\n while (subParts.length) {\n subPart = subParts.shift();\n keys.push({ 'key': subPart, 'value': subParts.length ? [] : {} }); // determine whether to create an array or an object\n }\n });\n\n if (skipProcessing) {\n return undefined;\n }\n\n keys.forEach((_key: any) => {\n let tempObj = obj[_key.key];\n if (!isObject(tempObj)) {\n tempObj = getValidJSON(tempObj);\n if (!tempObj) {\n tempObj = _key.value;\n }\n }\n obj[_key.key] = tempObj;\n obj = tempObj;\n });\n\n return obj;\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-variable.http.utils.js","sourceRoot":"./","sources":["src/util/variable/live-variable.http.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { getClonedObject, removeExtraSlashes } from '../utils';\n\nimport { VARIABLE_URLS } from '../../constants/variables.constants';\nimport { httpService } from './variables.utils';\n\nimport _ from 'lodash';\n\nconst isStudioMode = false;\n\nexport const parseConfig = (serviceParams: any): any => {\n\n let val, param, config;\n const urlParams = serviceParams.urlParams;\n\n /*get the config out of baseServiceManager*/\n if (VARIABLE_URLS.hasOwnProperty(serviceParams.target) && VARIABLE_URLS[serviceParams.target].hasOwnProperty(serviceParams.action)) {\n config = getClonedObject(VARIABLE_URLS[serviceParams.target][serviceParams.action]);\n\n /*To handle dynamic urls, append the serviceParams.config.url with the static url(i.e., config.url)*/\n if (serviceParams.config) {\n config.url = (serviceParams.config.url || '') + config.url;\n config.method = serviceParams.config.method || config.method;\n config.headers = config.headers || {};\n\n // TODO[Shubham] - change to for - of\n for (const key in serviceParams.config.headers) {\n val = serviceParams.config.headers[key];\n config.headers[key] = val;\n }\n }\n /* check for url parameters to replace the url */\n if (urlParams) {\n for (param in urlParams) {\n if (urlParams.hasOwnProperty(param)) {\n val = urlParams[param];\n if (!_.isUndefined(val) && val !== null) {\n config.url = config.url.replace(new RegExp(':' + param, 'g'), val);\n }\n }\n }\n }\n\n /* check for data */\n if (serviceParams.params) {\n config.params = serviceParams.params;\n }\n /* check for data */\n if (!_.isUndefined(serviceParams.data)) {\n config.data = serviceParams.data;\n }\n /* check for data parameters, written to support old service calls (.json calls) */\n if (serviceParams.dataParams) {\n config.data.params = serviceParams.dataParams;\n }\n /* check for headers */\n if (serviceParams.headers) {\n config.headers = serviceParams.headers;\n }\n\n /* set extra config flags */\n config.byPassResult = serviceParams.byPassResult;\n config.isDirectCall = serviceParams.isDirectCall;\n config.isExtURL = serviceParams.isExtURL;\n config.preventMultiple = serviceParams.preventMultiple;\n config.responseType = serviceParams.responseType;\n\n return config;\n }\n\n return null;\n};\n\nexport const generateConnectionParams = (params, action) => {\n let connectionParams,\n urlParams,\n requestData;\n requestData = params.data;\n\n urlParams = {\n projectID : params.projectID,\n service : !_.isUndefined(params.service) ? params.service : 'services',\n dataModelName : params.dataModelName,\n entityName : params.entityName,\n queryName : params.queryName,\n queryParams : params.queryParams,\n procedureName : params.procedureName,\n procedureParams : params.procedureParams,\n id : params.id,\n relatedFieldName : params.relatedFieldName,\n page : params.page,\n size : params.size,\n sort : params.sort\n };\n connectionParams = {\n target : 'DATABASE',\n action : action,\n urlParams : urlParams,\n data : requestData || '',\n config : {\n 'url' : params.url\n }\n };\n\n connectionParams = parseConfig(connectionParams);\n // TODO: Remove after backend fix\n connectionParams.url = removeExtraSlashes(connectionParams.url);\n\n return connectionParams;\n};\n\nconst initiateAction = (action, params, successCallback?, failureCallback?, noproxy?) => {\n let connectionParams,\n urlParams,\n requestData,\n param,\n val,\n config,\n headers,\n httpDetails;\n\n /*\n config = getClonedObject(config[action]);\n headers = config && config.headers;\n\n requestData = params.data;\n\n urlParams = {\n projectID : params.projectID,\n service : !_.isUndefined(params.service) ? params.service : 'services',\n dataModelName : params.dataModelName,\n entityName : params.entityName,\n queryName : params.queryName,\n queryParams : params.queryParams,\n procedureName : params.procedureName,\n procedureParams : params.procedureParams,\n id : params.id,\n relatedFieldName : params.relatedFieldName,\n page : params.page,\n size : params.size,\n sort : params.sort\n };\n */\n if (params.url && isStudioMode && !noproxy) {\n/*\n /!* Check for url parameters to replace the URL.\n * So the variable parameters in the URL will be replaced by the actual parameter values.*!/\n if (urlParams) {\n for (param in urlParams) {\n if (urlParams.hasOwnProperty(param)) {\n val = urlParams[param];\n if (!_.isUndefined(val) && val !== null) {\n config.url = config.url.replace(new RegExp(':' + param, 'g'), val);\n }\n }\n }\n }\n headers = headers || {};\n headers.skipSecurity = 'true';\n headers['Content-Type'] = headers['Content-Type'] || 'application/json';\n /!*(!$rootScope.preferences.workspace.loadXDomainAppDataUsingProxy is added in endpointAddress to differentiate desktop from saas*!/\n if (action === 'testRunQuery') {\n headers['Content-Type'] = undefined;\n httpDetails = {\n 'endpointAddress' : $window.location.protocol + (!$rootScope.preferences.workspace.loadXDomainAppDataUsingProxy ? ('//' + $window.location.host) : '') + params.url + config.url,\n 'method' : config.method,\n 'content-Type' : 'multipart/form-data',\n 'headers' : headers\n };\n requestData.append(SWAGGER_CONSTANTS.WM_HTTP_JSON, new Blob([JSON.stringify(httpDetails)], {\n type: 'application/json'\n }));\n connectionParams = {\n 'data': requestData,\n 'headers': headers,\n 'urlParams' : {\n projectID: $rootScope.project.id\n }\n };\n } else {\n connectionParams = {\n 'data': {\n 'endpointAddress' : $window.location.protocol + (!$rootScope.preferences.workspace.loadXDomainAppDataUsingProxy ? ('//' + $window.location.host) : '') + params.url + config.url,\n 'method' : config.method,\n 'requestBody' : JSON.stringify(requestData),\n 'headers' : headers\n },\n 'urlParams' : {\n projectID: $rootScope.project.id\n }\n };\n }\n WebService.testRestService(connectionParams, function (response) {\n var parsedData = getValidJSON(response.responseBody),\n errMsg,\n localeObject;\n if (parsedData.hasOwnProperty('result')) {\n triggerFn(successCallback, parsedData.result);\n } else if (parsedData.hasOwnProperty('error')) {\n triggerFn(failureCallback, (parsedData.error && parsedData.error.message) || parsedData.error);\n } else if (parsedData.hasOwnProperty('errorDetails')) {\n localeObject = $rootScope.locale || $rootScope.appLocale;\n errMsg = getClonedObject(localeObject[parsedData.errorDetails.code]);\n triggerFn(failureCallback, replace(errMsg, parsedData.errorDetails.data) || parsedData.errorDetails);\n } else {\n triggerFn(successCallback, parsedData);\n }\n }, failureCallback);*/\n } else {\n connectionParams = generateConnectionParams(params, action);\n params.operation = action;\n return httpService.sendCallAsObservable({\n url: connectionParams.url,\n method: connectionParams.method,\n data: connectionParams.data,\n headers: connectionParams.headers\n }, params);\n }\n};\n\nexport const LVService = {\n searchTableDataWithQuery: (params, successCallback, failureCallback) => initiateAction('searchTableDataWithQuery', params, successCallback, failureCallback),\n executeAggregateQuery: (params, successCallback, failureCallback) => initiateAction('executeAggregateQuery', params, successCallback, failureCallback),\n searchTableData: (params, successCallback, failureCallback) => initiateAction('searchTableData', params, successCallback, failureCallback),\n readTableData: (params, successCallback, failureCallback) => initiateAction('readTableData', params, successCallback, failureCallback),\n insertTableData: (params, successCallback, failureCallback) => initiateAction('insertTableData', params, successCallback, failureCallback),\n insertMultiPartTableData: (params, successCallback, failureCallback) => initiateAction('insertMultiPartTableData', params, successCallback, failureCallback),\n updateTableData: (params, successCallback, failureCallback) => initiateAction('updateTableData', params, successCallback, failureCallback),\n updateCompositeTableData: (params, successCallback, failureCallback) => initiateAction('updateCompositeTableData', params, successCallback, failureCallback),\n periodUpdateCompositeTableData: (params, successCallback, failureCallback) => initiateAction('periodUpdateCompositeTableData', params, successCallback, failureCallback),\n updateMultiPartTableData: (params, successCallback, failureCallback) => initiateAction('updateMultiPartTableData', params, successCallback, failureCallback),\n updateMultiPartCompositeTableData: (params, successCallback, failureCallback) => initiateAction('updateMultiPartCompositeTableData', params, successCallback, failureCallback),\n deleteTableData: (params, successCallback, failureCallback) => initiateAction('deleteTableData', params, successCallback, failureCallback),\n deleteCompositeTableData: (params, successCallback, failureCallback) => initiateAction('deleteCompositeTableData', params, successCallback, failureCallback),\n periodDeleteCompositeTableData: (params, successCallback, failureCallback) => initiateAction('periodDeleteCompositeTableData', params, successCallback, failureCallback),\n exportTableData: params => initiateAction('exportTableData', params),\n getDistinctDataByFields: params => initiateAction('getDistinctDataByFields', params),\n countTableDataWithQuery: (params, successCallback, failureCallback) => initiateAction('countTableDataWithQuery', params, successCallback, failureCallback)\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-variable.utils.js","sourceRoot":"./","sources":["src/util/variable/live-variable.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { hasCordova, getClonedObject, isDateTimeType, isDefined, replace, triggerFn, isNumberType } from \"../../util/utils\";\nimport { $rootScope, DB_CONSTANTS, SWAGGER_CONSTANTS } from '../../constants/variables.constants';\nimport { getEvaluatedOrderBy, formatDate } from './variables.utils';\n\n// @ts-ignore\nimport moment from 'moment';\nimport _ from 'lodash';\n\nexport class LiveVariableUtils {\n\n static isCompositeKey(primaryKey) {\n return !primaryKey || (primaryKey && (!primaryKey.length || primaryKey.length > 1));\n }\n\n static isNoPrimaryKey(primaryKey) {\n return (!primaryKey || (primaryKey && !primaryKey.length));\n }\n\n // Generate the URL based on the primary keys and their values\n static getCompositeIDURL(primaryKeysData) {\n let compositeId = '';\n // Loop over the 'compositeKeysData' and construct the 'compositeId'.\n _.forEach(primaryKeysData, (paramValue, paramName) => {\n compositeId += paramName + '=' + encodeURIComponent(paramValue) + '&';\n });\n compositeId = compositeId.slice(0, -1);\n return compositeId;\n }\n\n\n // Check if table has blob column\n static hasBlob(variable) {\n return _.find(_.get(variable, ['propertiesMap', 'columns']), {'type': 'blob'});\n }\n\n static getPrimaryKey(variable) {\n if (!variable.propertiesMap) {\n return [];\n }\n\n if (variable.propertiesMap.primaryFields) {\n return variable.propertiesMap.primaryFields;\n }\n /*Old projects do not have primary fields. Get primary key from the columns*/\n const primaryKey = [];\n /*Loop through the propertiesMap and get the primary key column.*/\n _.forEach(variable.propertiesMap.columns, (index, column) => {\n if (column.isPrimaryKey) {\n if (column.isRelated && (!_.includes(column.relatedFieldName, primaryKey))) {\n primaryKey.push(column.relatedFieldName);\n } else if (!_.includes(column.fieldName, primaryKey)) {\n primaryKey.push(column.fieldName);\n }\n }\n });\n return primaryKey;\n }\n\n // Construct the URL for blob columns and set it in the data, so that widgets can use this\n static processBlobColumns(responseData, variable) {\n if (!responseData) {\n return;\n }\n const blobCols = _.map(_.filter(variable.propertiesMap.columns, {'type': 'blob'}), 'fieldName'),\n deployedUrl = _.trim($rootScope.project.deployedUrl);\n let href = '',\n primaryKeys;\n\n if (_.isEmpty(blobCols)) {\n return;\n }\n\n if (hasCordova()) {\n href += _.endsWith(deployedUrl, '/') ? deployedUrl : deployedUrl + '/';\n }\n href += ((variable._prefabName !== '' && variable._prefabName !== undefined) ? 'prefabs/' + variable._prefabName : 'services') + '/' + variable.liveSource + '/' + variable.type + '/';\n primaryKeys = variable.propertiesMap.primaryFields || variable.propertiesMap.primaryKeys;\n _.forEach(responseData, data => {\n if (data) {\n _.forEach(blobCols, col => {\n const compositeKeysData = {};\n if (data[col] === null || !_.isEmpty(_.trim(data[col]))) {\n return;\n }\n if (LiveVariableUtils.isCompositeKey(primaryKeys)) {\n primaryKeys.forEach(key => {\n compositeKeysData[key] = data[key];\n });\n data[col] = href + 'composite-id/content/' + col + '?' + LiveVariableUtils.getCompositeIDURL(compositeKeysData);\n } else {\n data[col] = href + data[_.join(primaryKeys)] + '/content/' + col;\n }\n });\n }\n });\n }\n\n static getHibernateOrSqlType(variable, fieldName, type, entityName?: string) {\n const columns = variable.propertiesMap.columns;\n let column,\n relatedCols,\n relatedCol,\n columnParts;\n if (_.includes(fieldName, '.')) {\n columnParts = fieldName.split('.');\n if (columnParts.length > 2) {\n return undefined;\n }\n column = _.find(columns, col => {\n return col.fieldName === columnParts[0];\n });\n relatedCols = column && column.columns;\n relatedCol = _.find(relatedCols, col => {\n return col.fieldName === columnParts[1];\n });\n return relatedCol && relatedCol[type];\n }\n column = _.find(columns, col => {\n return col.fieldName === fieldName || col.relatedColumnName === fieldName;\n });\n if (!column && entityName) {\n const entity = _.find(columns, col => col.relatedEntityName === entityName);\n column = _.find(entity.columns, col => {\n return col.fieldName === fieldName || col.relatedColumnName === fieldName;\n });\n }\n return column && column[type];\n }\n\n /*Function to get the sqlType of the specified field.*/\n static getSqlType(variable, fieldName, entityName?: string) {\n return LiveVariableUtils.getHibernateOrSqlType(variable, fieldName, 'type', entityName);\n }\n\n /*Function to check if the specified field has a one-to-many relation or not.*/\n static isRelatedFieldMany(variable, fieldName) {\n const columns = variable.propertiesMap.columns,\n columnsCount = columns.length;\n let index,\n column;\n /*Loop through the columns of the liveVariable*/\n for (index = 0; index < columnsCount; index += 1) {\n column = columns[index];\n /*If the specified field is found in the columns of the variable,\n * then it has a many-to-one relation.*/\n if (column.fieldName === fieldName) {\n return false;\n }\n }\n return true;\n }\n\n static isStringType(type) {\n return _.includes(['text', 'string'], _.toLower(type));\n }\n\n static getSQLFieldType(variable, options) {\n if (_.includes(['timestamp', 'datetime', 'date'], options.type)) {\n return options.type;\n }\n return LiveVariableUtils.getSqlType(variable, options.fieldName) || options.type;\n }\n\n static getAttributeName(variable, fieldName) {\n let attrName = fieldName;\n variable.propertiesMap.columns.forEach(column => {\n if (column.fieldName === fieldName && column.isRelated) {\n attrName = column.relatedFieldName;\n }\n });\n return attrName;\n }\n\n static getFilterCondition(filterCondition) {\n if (_.includes(DB_CONSTANTS.DATABASE_RANGE_MATCH_MODES, filterCondition)) {\n return filterCondition;\n }\n return DB_CONSTANTS.DATABASE_MATCH_MODES['exact'];\n }\n\n static getFilterOption(variable, fieldOptions, options) {\n let attributeName,\n fieldValue = fieldOptions.value,\n filterOption,\n filterCondition;\n\n const matchModes = DB_CONSTANTS.DATABASE_MATCH_MODES,\n fieldName = fieldOptions.fieldName,\n fieldRequired = fieldOptions.required || false,\n fieldType = LiveVariableUtils.getSQLFieldType(variable, fieldOptions);\n\n filterCondition = matchModes[fieldOptions.matchMode] || matchModes[fieldOptions.filterCondition] || fieldOptions.filterCondition;\n\n fieldOptions.type = fieldType;\n /* if the field value is an object(complex type), loop over each field inside and push only first level fields */\n if (_.isObject(fieldValue) && !_.isArray(fieldValue)) {\n const firstLevelValues = [];\n _.forEach(fieldValue, (subFieldValue, subFieldName) => {\n if (subFieldValue && !_.isObject(subFieldValue)) {\n firstLevelValues.push(fieldName + '.' + subFieldName + '=' + subFieldValue);\n }\n });\n return firstLevelValues;\n }\n\n if (_.includes(DB_CONSTANTS.DATABASE_EMPTY_MATCH_MODES, filterCondition)) {\n attributeName = LiveVariableUtils.getAttributeName(variable, fieldName);\n // For non string types empty match modes are not supported, so convert them to null match modes.\n if (fieldType && !LiveVariableUtils.isStringType(fieldType)) {\n filterCondition = DB_CONSTANTS.DATABASE_NULL_EMPTY_MATCH[filterCondition];\n }\n filterOption = {\n 'attributeName': attributeName,\n 'attributeValue': '',\n 'attributeType': _.toUpper(fieldType),\n 'filterCondition': filterCondition,\n 'required': fieldRequired\n };\n if (options.searchWithQuery) {\n filterOption.isVariableFilter = fieldOptions.isVariableFilter;\n }\n return filterOption;\n }\n\n if (isDefined(fieldValue) && fieldValue !== null && fieldValue !== '') {\n /*Based on the sqlType of the field, format the value & set the filter condition.*/\n if (fieldType) {\n switch (fieldType) {\n case 'integer':\n fieldValue = _.isArray(fieldValue) ? _.reduce(fieldValue, (result, value) => {\n value = parseInt(value, 10);\n if (!_.isNaN(value)) {\n result.push(value);\n }\n return result;\n }, []) : parseInt(fieldValue, 10);\n filterCondition = filterCondition ? LiveVariableUtils.getFilterCondition(filterCondition) : matchModes['exact'];\n break;\n case 'date':\n case 'datetime':\n case 'timestamp':\n fieldValue = formatDate(fieldValue, fieldType, variable.dateFormatter);\n filterCondition = filterCondition ? LiveVariableUtils.getFilterCondition(filterCondition) : matchModes['exact'];\n break;\n case 'text':\n case 'string':\n if (_.isArray(fieldValue)) {\n filterCondition = _.includes([matchModes['in'], matchModes['notin']], filterCondition) ? filterCondition : matchModes['exact'];\n } else {\n filterCondition = filterCondition || matchModes['anywhereignorecase'];\n }\n break;\n default:\n filterCondition = filterCondition ? LiveVariableUtils.getFilterCondition(filterCondition) : matchModes['exact'];\n break;\n }\n } else {\n filterCondition = _.isString(fieldValue) ? matchModes['anywhereignorecase'] : matchModes['exact'];\n }\n attributeName = LiveVariableUtils.getAttributeName(variable, fieldName);\n filterOption = {\n 'attributeName': attributeName,\n 'attributeValue': fieldValue,\n 'attributeType': _.toUpper(fieldType),\n 'filterCondition': filterCondition,\n 'required': fieldRequired\n };\n if (options.searchWithQuery) {\n filterOption.isVariableFilter = fieldOptions.isVariableFilter;\n }\n return filterOption;\n }\n }\n\n static getFilterOptions(variable, filterFields, options) {\n let filterOptions = [];\n _.each(filterFields, (fieldOptions) => {\n const filterOption = LiveVariableUtils.getFilterOption(variable, fieldOptions, options);\n if (!_.isNil(filterOption)) {\n if (_.isArray(filterOption)) {\n filterOptions = filterOptions.concat(filterOption);\n } else {\n filterOptions.push(filterOption);\n }\n }\n });\n return filterOptions;\n }\n\n // Wrap the field name and value in lower() in ignore case scenario\n // TODO: Change the function name to represent the added functionality of identifiers for datetime, timestamp and float types. Previously only lower was warapped.\n static wrapInLowerCase(value, options, ignoreCase, isField?) {\n const type = _.toLower(options.attributeType);\n // If ignore case is true and type is string/ text and match mode is string type, wrap in lower()\n if (ignoreCase && (!type || LiveVariableUtils.isStringType(type)) && _.includes(DB_CONSTANTS.DATABASE_STRING_MODES, options.filterCondition)) {\n return 'lower(' + value + ')';\n }\n return value;\n }\n\n static encodeAndAddQuotes(value, type, skipEncode) {\n let encodedValue = skipEncode ? value : encodeURIComponent(value);\n type = _.toLower(type);\n encodedValue = _.replace(encodedValue, /'/g, '\\'\\'');\n // For number types, don't wrap the value in quotes\n if ((isNumberType(type) && type !== 'float')) {\n return encodedValue;\n }\n return '\\'' + encodedValue + '\\'';\n }\n\n static getParamValue(value, options, ignoreCase, skipEncode) {\n let param;\n const filterCondition = options.filterCondition,\n dbModes = DB_CONSTANTS.DATABASE_MATCH_MODES,\n type = options.attributeType;\n if (_.includes(DB_CONSTANTS.DATABASE_EMPTY_MATCH_MODES, filterCondition)) {\n // For empty matchmodes, no value is required\n return '';\n }\n switch (filterCondition) {\n case dbModes.startignorecase:\n case dbModes.start:\n param = LiveVariableUtils.encodeAndAddQuotes(value + '%', type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n case dbModes.endignorecase:\n case dbModes.end:\n param = LiveVariableUtils.encodeAndAddQuotes('%' + value, type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n case dbModes.nowhereignorecase:\n case dbModes.nowhere:\n case dbModes.anywhereignorecase:\n case dbModes.anywhere:\n param = LiveVariableUtils.encodeAndAddQuotes('%' + value + '%', type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n case dbModes.between:\n param = _.join(_.map(value, val => {\n return LiveVariableUtils.wrapInLowerCase(LiveVariableUtils.encodeAndAddQuotes(val, type, skipEncode), options, ignoreCase);\n }), ' and ');\n break;\n case dbModes.in:\n case dbModes.notin:\n param = _.join(_.map(value, val => {\n return LiveVariableUtils.wrapInLowerCase(LiveVariableUtils.encodeAndAddQuotes(val, type, skipEncode), options, ignoreCase);\n }), ', ');\n param = '(' + param + ')';\n break;\n /*case dbModes.exactignorecase:\n case dbModes.exact:\n case dbModes.notequals:\n The above three cases will be handled by default*/\n default:\n param = LiveVariableUtils.encodeAndAddQuotes(value, type, skipEncode);\n param = LiveVariableUtils.wrapInLowerCase(param, options, ignoreCase);\n break;\n }\n return isDefined(param) ? param : '';\n }\n\n static getSearchQuery(filterOptions, operator, ignoreCase, skipEncode?) {\n let query;\n const params = [];\n _.forEach(filterOptions, fieldValue => {\n const value = fieldValue.attributeValue,\n dbModes = DB_CONSTANTS.DATABASE_MATCH_MODES,\n isValArray = _.isArray(value);\n let fieldName = fieldValue.attributeName,\n filterCondition = fieldValue.filterCondition,\n matchModeExpr,\n paramValue;\n // If value is an empty array, do not generate the query\n // If values is NaN and number type, do not generate query for this field\n if ((isValArray && _.isEmpty(value)) || (!isValArray && isNaN(value) && (isNumberType(fieldValue.attributeType))) || (!isValArray && (isNaN(value) && !moment(value).isValid() && isDateTimeType(_.toLower(fieldValue.attributeType))))) {\n return;\n }\n if (isValArray) {\n // If array is value and mode is between, pass between. Else pass as in query\n filterCondition = filterCondition === dbModes.between || filterCondition === dbModes.notin ? filterCondition : dbModes.in;\n fieldValue.filterCondition = filterCondition;\n }\n matchModeExpr = DB_CONSTANTS.DATABASE_MATCH_MODES_WITH_QUERY[filterCondition];\n paramValue = LiveVariableUtils.getParamValue(value, fieldValue, ignoreCase, skipEncode);\n fieldName = LiveVariableUtils.wrapInLowerCase(fieldName, fieldValue, ignoreCase);\n params.push(replace(matchModeExpr, [fieldName, paramValue]));\n });\n query = _.join(params, operator); // empty space added intentionally around OR\n return query;\n }\n\n /**\n * creating the proper values from the actual object like for between,in matchModes value has to be an array like [1,2]\n * @param rules recursive filterexpressions object\n * @param variable variable object\n * @param options options\n */\n static processFilterFields(rules, variable, options) {\n _.remove(rules, rule => {\n return rule && (_.isString(rule.value) && rule.value.indexOf('bind:') === 0 || (rule.matchMode === 'between' ? (_.isString(rule.secondvalue) && rule.secondvalue.indexOf('bind:') === 0) : false));\n });\n\n _.forEach(rules, (rule, index) => {\n if (rule) {\n if (rule.rules) {\n LiveVariableUtils.processFilterFields(rule.rules, variable, options);\n } else {\n if (!_.isNull(rule.target)) {\n const value = rule.matchMode.toLowerCase() === DB_CONSTANTS.DATABASE_MATCH_MODES.between.toLowerCase()\n ? (_.isArray(rule.value) ? rule.value : [rule.value, rule.secondvalue])\n : (rule.matchMode.toLowerCase() === DB_CONSTANTS.DATABASE_MATCH_MODES.in.toLowerCase() || rule.matchMode.toLowerCase() === DB_CONSTANTS.DATABASE_MATCH_MODES.notin.toLowerCase()\n ? (_.isArray(rule.value) ? rule.value : (rule.value ? rule.value.split(',').map(val => val.trim()) : ''))\n : rule.value);\n rules[index] = LiveVariableUtils.getFilterOption(variable, {\n 'fieldName': rule.target,\n 'type': rule.type,\n 'value': value,\n 'required': rule.required,\n 'filterCondition': rule.matchMode || options.matchMode || variable.matchMode\n }, options);\n }\n }\n }\n });\n }\n\n static getSearchField(fieldValue, ignoreCase, skipEncode) {\n let fieldName = fieldValue.attributeName;\n let matchModeExpr;\n let paramValue;\n let filterCondition = fieldValue.filterCondition;\n\n const value = fieldValue.attributeValue;\n const isValArray = _.isArray(value);\n const dbModes = DB_CONSTANTS.DATABASE_MATCH_MODES;\n\n // If value is an empty array, do not generate the query\n // If values is NaN and number type, do not generate query for this field\n if ((isValArray && _.isEmpty(value)) ||\n (isValArray && _.some(value, val => (_.isNull(val) || _.isNaN(val) || val === ''))) ||\n (!isValArray && (isNaN(value) && (isNumberType(fieldValue.attributeType)))) ||\n (!isValArray && (isNaN(value) && !moment(value).isValid() && isDateTimeType(_.toLower(fieldValue.attributeType))))) {\n return;\n }\n if (isValArray) {\n // If array is value and mode is between, pass between. Else pass as in query\n filterCondition = filterCondition === dbModes.between || filterCondition === dbModes.notin ? filterCondition : dbModes.in;\n fieldValue.filterCondition = filterCondition;\n }\n matchModeExpr = DB_CONSTANTS.DATABASE_MATCH_MODES_WITH_QUERY[filterCondition];\n paramValue = LiveVariableUtils.getParamValue(value, fieldValue, ignoreCase, skipEncode);\n fieldName = LiveVariableUtils.wrapInLowerCase(fieldName, fieldValue, ignoreCase);\n return replace(matchModeExpr, [fieldName, paramValue]);\n }\n\n /**\n * this is used to identify whether to use ignorecase at each criteria level and not use the variable\n * level isIgnoreCase flag and apply it to all the rules.\n * Instead of adding an extra param to the criteria object, we have added few other matchmodes for string types like\n * anywhere with anywhereignorecase, start with startignorecase, end with endignorecase, exact with exactignorecase,\n * So while creating the criteria itseld user can choose whether to use ignore case or not for a particular column while querying\n * @param matchMode\n * @param ignoreCase\n * @returns {*} boolean\n */\n static getIgnoreCase(matchMode, ignoreCase) {\n const matchModes = DB_CONSTANTS.DATABASE_MATCH_MODES;\n if (_.indexOf([matchModes['anywhere'], matchModes['nowhere'], matchModes['start'], matchModes['end'], matchModes['exact']], matchMode) !== -1) {\n return false;\n }\n if (_.indexOf([matchModes['anywhereignorecase'], matchModes['nowhereignorecase'], matchModes['startignorecase'], matchModes['endignorecase'], matchModes['exactignorecase']], matchMode) !== -1) {\n return true;\n }\n return ignoreCase;\n }\n\n static generateSearchQuery(rules, condition, ignoreCase, skipEncode) {\n const params = [];\n _.forEach(rules, rule => {\n if (rule) {\n if (rule.rules) {\n const query = LiveVariableUtils.generateSearchQuery(rule.rules, rule.condition, ignoreCase, skipEncode);\n if (query !== '') {\n params.push('(' + query + ')');\n }\n } else {\n const searchField = LiveVariableUtils.getSearchField(rule, LiveVariableUtils.getIgnoreCase(rule.filterCondition, ignoreCase), skipEncode);\n if (!_.isNil(searchField)) {\n params.push(searchField);\n }\n }\n }\n });\n return _.join(params, ' ' + condition + ' ');\n }\n\n static prepareTableOptionsForFilterExps(variable, options, clonedFields) {\n if (!isDefined(options.searchWithQuery)) {\n options.searchWithQuery = true; // Using query api instead of search api\n }\n\n const filterOptions = [];\n const matchModes = DB_CONSTANTS.DATABASE_MATCH_MODES;\n let orderByFields,\n orderByOptions,\n query;\n let clonedObj = clonedFields || getClonedObject(variable.filterExpressions);\n\n // if filterexpression from live filter is present use it to query\n if (options.filterExpr && !_.isEmpty(options.filterExpr)) {\n clonedObj = options.filterExpr;\n }\n // merge live filter runtime values\n let filterRules: any = {};\n if (!_.isEmpty(options.filterFields)) {\n let operator = '';\n for (const field in options.filterFields) {\n operator = options.filterFields[field] && options.filterFields[field]['logicalOp'] || '';\n break;\n }\n filterRules = {'condition': options.logicalOp || operator || 'AND', 'rules': []};\n _.forEach(options.filterFields, (filterObj, filterName) => {\n if (!filterObj) {\n return\n }\n const filterCondition = matchModes[filterObj.matchMode] || matchModes[filterObj.filterCondition] || filterObj.filterCondition;\n if (_.includes(DB_CONSTANTS.DATABASE_EMPTY_MATCH_MODES, filterCondition) ||\n (!_.isNil(filterObj.value) && filterObj.value !== '')) {\n const type = filterObj.type || LiveVariableUtils.getSqlType(variable, filterName, options.entityName);\n const ruleObj = {\n 'target': filterName,\n 'type': type,\n 'matchMode': filterObj.matchMode || (LiveVariableUtils.isStringType(type) ? 'startignorecase' : 'exact'),\n 'value': filterObj.value,\n 'required': filterObj.required || false\n };\n filterRules.rules.push(ruleObj);\n }\n });\n }\n if (!_.isEmpty(clonedObj)) {\n if (!_.isNil(filterRules.rules) && filterRules.rules.length) {\n // combine both the rules using 'AND'\n const tempRules = {'condition': 'AND', 'rules': []};\n tempRules.rules.push(getClonedObject(clonedObj));\n tempRules.rules.push(filterRules);\n clonedObj = tempRules;\n }\n } else {\n clonedObj = filterRules;\n }\n\n LiveVariableUtils.processFilterFields(clonedObj.rules, variable, options);\n query = LiveVariableUtils.generateSearchQuery(clonedObj.rules, clonedObj.condition, variable.ignoreCase, options.skipEncode);\n\n orderByFields = getEvaluatedOrderBy(variable.orderBy, options.orderBy);\n orderByOptions = orderByFields ? 'sort=' + orderByFields : '';\n\n return {\n 'filter' : filterOptions,\n 'sort' : orderByOptions,\n 'query' : query\n };\n }\n\n static prepareTableOptions(variable, options, clonedFields?) {\n if (variable.operation === 'read') {\n return LiveVariableUtils.prepareTableOptionsForFilterExps(variable, options, clonedFields);\n }\n if (!isDefined(options.searchWithQuery)) {\n options.searchWithQuery = true; // Using query api instead of search api\n }\n const filterFields = [];\n let filterOptions = [],\n orderByFields,\n orderByOptions,\n query,\n optionsQuery;\n clonedFields = clonedFields || variable.filterFields;\n // get the filter fields from the variable\n _.forEach(clonedFields, (value, key) => {\n if (_.isObject(value) && (!options.filterFields || !options.filterFields[key] || options.filterFields[key].logicalOp === 'AND')) {\n value.fieldName = key;\n if (LiveVariableUtils.isStringType(LiveVariableUtils.getSQLFieldType(variable, value))) {\n value.filterCondition = DB_CONSTANTS.DATABASE_MATCH_MODES[value.matchMode || variable.matchMode];\n }\n value.isVariableFilter = true;\n filterFields.push(value);\n }\n });\n // get the filter fields from the options\n _.forEach(options.filterFields, (value, key) => {\n value.fieldName = key;\n value.filterCondition = DB_CONSTANTS.DATABASE_MATCH_MODES[value.matchMode || options.matchMode || variable.matchMode];\n filterFields.push(value);\n });\n if (variable.operation === 'read' || options.operation === 'read') {\n filterOptions = LiveVariableUtils.getFilterOptions(variable, filterFields, options);\n }\n /*if searchWithQuery is true, then convert the input params into query string. For example if firstName and lastName\n should be sent as params then query string will be q='firstName containing 'someValue' OR lastName containing 'someValue''\n */\n if (options.searchWithQuery && filterOptions.length) {\n // Generate query for variable filter fields. This has AND logical operator\n query = LiveVariableUtils.getSearchQuery(_.filter(filterOptions, {'isVariableFilter': true}), ' AND ', variable.ignoreCase, options.skipEncode);\n // Generate query for option filter fields. This has default logical operator as OR\n optionsQuery = LiveVariableUtils.getSearchQuery(_.filter(filterOptions, {'isVariableFilter': undefined}), ' ' + (options.logicalOp || 'AND') + ' ', variable.ignoreCase, options.skipEncode);\n if (optionsQuery) {\n // If both variable and option query are present, merge them with AND\n query = query ? (query + ' AND ( ' + optionsQuery + ' )') : optionsQuery;\n }\n }\n orderByFields = getEvaluatedOrderBy(variable.orderBy, options.orderBy);\n orderByOptions = orderByFields ? 'sort=' + orderByFields : '';\n\n return {\n 'filter': filterOptions,\n 'sort': orderByOptions,\n 'query': query\n };\n }\n\n /* Function to check if specified field is of type date*/\n static getFieldType(fieldName, variable, relatedField?) {\n let fieldType,\n columns,\n result;\n if (variable.propertiesMap) {\n columns = variable.propertiesMap.columns || [];\n result = _.find(columns, obj => {\n return obj.fieldName === fieldName;\n });\n // if related field name passed, get its type from columns inside the current field\n if (relatedField && result) {\n result = _.find(result.columns, obj => {\n return obj.fieldName === relatedField;\n });\n }\n fieldType = result && result.type;\n }\n return fieldType;\n }\n\n // Prepare formData for blob columns\n static prepareFormData(variableDetails, rowObject) {\n const formData: any = new FormData();\n formData.rowData = _.clone(rowObject);\n _.forEach(rowObject, (colValue, colName) => {\n if (LiveVariableUtils.getFieldType(colName, variableDetails) === 'blob') {\n if (_.isObject(colValue)) {\n if (_.isArray(colValue)) {\n _.forEach(colValue, fileObject => {\n formData.append(colName, fileObject, fileObject.name);\n });\n } else {\n formData.append(colName, colValue, colValue.name);\n }\n }\n rowObject[colName] = colValue !== null ? '' : null;\n }\n });\n formData.append(SWAGGER_CONSTANTS.WM_DATA_JSON, new Blob([JSON.stringify(rowObject)], {\n type: 'application/json'\n }));\n return formData;\n }\n\n static traverseFilterExpressions(filterExpressions, traverseCallbackFn) {\n if (filterExpressions && filterExpressions.rules) {\n _.forEach(filterExpressions.rules, (filExpObj, i) => {\n if (filExpObj.rules) {\n LiveVariableUtils.traverseFilterExpressions(filExpObj, traverseCallbackFn);\n } else {\n return triggerFn(traverseCallbackFn, filterExpressions, filExpObj);\n }\n });\n }\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 static getFilterExprFields(filterExpressions) {\n let isRequiredFieldAbsent = false;\n const traverseCallbackFn = (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 *\n * @param variable\n * @param options\n * @returns {function(*=): *} returns a function which should be called for the where clause.\n * This return function can take a function as argument. This argument function can modify the filter fields\n * before generating where clause.\n */\n static getWhereClauseGenerator(variable, options, updatedFilterFields?: any) {\n return (modifier, skipEncode?: boolean) => {\n const clonedFields = LiveVariableUtils.getFilterExprFields(getClonedObject(updatedFilterFields || variable.filterExpressions));\n // this flag skips the encoding of the query\n if (isDefined(skipEncode)) {\n options.skipEncode = skipEncode;\n }\n if (modifier) {\n // handling the scenario where variable can also have filterFields\n if (options.filterFields) {\n modifier(clonedFields, options);\n } else {\n modifier(clonedFields);\n }\n }\n return LiveVariableUtils.prepareTableOptions(variable, options, clonedFields).query;\n };\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.utils.js","sourceRoot":"./","sources":["src/util/variable/pagination.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { jmespath } from '@metrichor/jmespath';\n\nimport _ from 'lodash';\nimport { getValidJSON } from '../utils';\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\n\nexport class PaginationUtils {\n /**\n * Modifies the query values with the pagination info which is retrieved from the previous API response.\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @param paginationInfo has metadata of the variable pagination data\n * @returns {void} This method does not return anything\n */\n static setPaginationQueryParams(variable, operationInfo, paginationInfo) {\n operationInfo.parameters.forEach(element => {\n // pagination input information varies based on the type\n let inputParam;\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n inputParam = 'offset';\n } else {\n inputParam = 'page';\n }\n // modifies query values based on the pagination of variable\n // compare parameter name with the input parameter's starting naming key (ex: channelcontext in channelcontext.pagination)\n if (element.name === paginationInfo.input[inputParam].split('.')[0]) {\n element.sampleValue = variable.pagination['page'];\n } else if (element.name === paginationInfo.input.size.split('.')[0]) {\n element.sampleValue = variable.pagination['size'];\n }\n });\n }\n\n /**\n * Sets pagination on the variable based on the response of the triggered api call.\n * @param variable withholds variable information \n * @param response has data of the api call's response\n * @param options has info of the api's query params\n * @returns {void} This method does not return anything\n */\n static setVariablePagination(variable, response, options) {\n if (!variable.pagination) {\n variable.pagination = {\n empty: false\n };\n }\n variable.pagination['size'] = response.size;\n variable.pagination['page'] = response.page || 0;\n variable.pagination['totalElements'] = response.totalElements;\n variable.pagination['numberOfElements'] = variable.pagination['size'];\n variable.pagination['number'] = options['page'] ? options['page'] - 1 : 0;\n \n /**\n * Deduce totalPages from totalElements by size.\n * If the total elements are evenly split among the pages, assign the same to totalPages\n * Else assign totalPages + 1\n */\n variable.pagination['totalPages'] = variable.pagination['totalElements'] / variable.pagination['size'];\n if (variable.pagination['totalElements'] % variable.pagination['size'] === 0) {\n variable.pagination['totalPages'] = parseInt(variable.pagination['totalPages']);\n } else {\n variable.pagination['totalPages'] = parseInt(variable.pagination['totalPages']) + 1;\n }\n\n // If pagination type is cursor, fill next & prev\n if (response.next) {\n variable.pagination['next'] = response.next;\n variable.pagination['prev'] = response.prev;\n variable.pagination['last'] = response.next ? false : true;\n variable.pagination['first'] = response.prev ? false : true;\n } else {\n variable.pagination['first'] = variable.pagination['page'] <= 1 ? true : false;\n // calculate last based on current page index against total pages\n variable.pagination['last'] = response.hasMoreItems === '' ? !(variable.pagination['page'] < variable.pagination['totalPages']) : !response.hasMoreItems;\n }\n }\n\n /**\n * Resolves the expression given in pagination metadata's output\n * @param item has value of each key which is inside output pagination metadata\n * @param response has data of the api call's response\n * @param resHeaders has data of the api call's response headers\n * @param res holds the information of pagination which has to be stored on the variable\n * @param key has key name against which data has to be stored in pagination \n * @returns {void} This method does not return anything\n */\n static setPaginationItems(item, response, res, key, resHeaders) {\n // if the item has body, resolve the expression against the response\n if (_.startsWith(item, '$body')) {\n const bodyKey = item.replace('$body.', '');\n try {\n res[key] = jmespath.search(response, bodyKey);\n } catch {\n console.warn(`${item} expression needs to be corrected as per JMES guidelines`);\n }\n } else if (_.startsWith(item, '$header')) { // if the item has header, resolve the expression against the response headers \n const headerKey = item.replace('$header.', '');\n const headers = (<any>Object).fromEntries(resHeaders?.headers || resHeaders);\n const headerParams = headerKey.split('.');\n try {\n res[key] = jmespath.search(headers, headerParams[0].toLowerCase());\n } catch {\n console.warn(`${item} expression needs to be corrected as per JMES guidelines`);\n }\n if (res[key]?.length) { \n let headerVal = res[key].join();\n if (headerParams.length === 1) { \n /**\n * If the headerParams has only 1 key (which is not an object) name assing headerVal to the res[key]\n */\n res[key] = headerVal;\n } else { \n /**\n * If the headerParams has more than 1 key (an object), parse the stringified headerVal which is an object\n * Resolve the expression against headerVal object amd assign it to res[key]\n */\n let keyName = headerParams.slice(1).join('.');\n const headerResp = JSON.parse(headerVal);\n const specialChar = /[!@#$%^&*()+\\=\\[\\]{};':\"\\\\|,<>\\/?]+/;\n if (specialChar.test(keyName)) {\n // If key name has expression (ex: comparission expression) \n // add root key name to keyName for JMES to resolve the expression\n keyName = 'headerResp.' + keyName;\n }\n try {\n res[key] = jmespath.search(headerResp, keyName);\n } catch {\n console.warn(`${item} expression needs to be corrected as per JMES guidelines`);\n }\n }\n }\n }\n }\n\n /**\n * Return the pagination information of the service based on its existence on swagger or on the variable\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @returns {object} This method return pagination metadata\n */\n static getPaginationInfo(operationInfo, variable) {\n if (operationInfo?.paginationInfo) {\n return operationInfo.paginationInfo;\n } else {\n return variable._paginationConfig;\n }\n }\n\n /**\n * Set query params with the pagination info, if pagination metadata is present in query params\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @param options has info of the api's query params\n * @returns {void} This method does not return anything\n */\n static checkPaginationAtQuery(operationInfo, variable, options) { \n const paginationInfo = this.getPaginationInfo(operationInfo, variable);\n // If page is not first, pagination is present on the variable and paginationInfo's input meta has size set pagination in query params\n const hasPagination = options && options['page'] && paginationInfo?.input.size && variable.pagination; \n if (!hasPagination) {\n return;\n }\n\n let inputParam;\n // if pagination type is offset, asssign inputParam to offset else page\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n inputParam = 'offset';\n } else {\n inputParam = 'page';\n }\n const paramName = paginationInfo.input[inputParam].split('.')[0]; \n const paramObj = _.find(operationInfo.parameters, function(obj) { return obj.name === paramName }); \n // check if the variable has query params and they are not empty\n if (paramObj && paramObj.parameterType === 'query') {\n /**\n * For pagination type other than offset, assign page which is recieved from options\n * For offset type, calculate page from size and options[page]\n */\n if (!paginationInfo.output?.page && paginationInfo.type !== 'offset') {\n variable.pagination['page'] = options['page'];\n } else {\n variable.pagination['page'] = this.getOffsetInfo(variable, options);\n }\n this.setPaginationQueryParams(variable, operationInfo, paginationInfo); \n }\n }\n\n /**\n * Deduces the offset information from the size and page params\n * @param variable withholds variable information \n * @param options has info of the api's query params\n * @returns {object} Returns the next offset number\n */\n static getOffsetInfo(variable, options) {\n return variable.pagination['size'] * (options['page'] ? (options['page'] - 1) : 0);\n }\n\n /**\n * Sets Pagination data on the request information\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable \n * @param options has info of the api's query params\n * @param paginationInfo has pagination information of the variable\n * @param headers has request headers\n * @param requestBody has request body\n * @param url has request url\n * @returns {object} Returns the request object which has pagination info\n */\n static setPaginationAtReq(paginationInfo, operationInfo, variable, headers, requestBody, url, options) {\n let reqObj = {};\n let inputParam;\n let resObj = {};\n // pagination input information varies based on the type\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n inputParam = 'offset';\n } else {\n inputParam = 'page';\n }\n const paramName = paginationInfo.input[inputParam].split('.')[0]; \n // check if paramName is present in parameters of operation info \n const paramObj = _.find(operationInfo.parameters, function(obj) { return obj.name === paramName }); \n // set page/offset and size from pagination if matched parameter's type is header \n if (paramObj?.parameterType === 'header') {\n const inputBodyParam = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input[inputParam]; \n if (inputParam !== 'offset') { \n _.set(reqObj, inputBodyParam, variable.pagination['page']);\n } else {\n _.set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));\n }\n _.set(reqObj, VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paginationInfo.input.size, variable.pagination['size']);\n let headerKey = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY + paramName;\n headers[headerKey] = typeof reqObj[headerKey] === 'object' ? JSON.stringify(reqObj[headerKey]) : reqObj[headerKey];\n resObj['headers'] = headers;\n } else if (paramObj?.parameterType === 'body') { \n // set page/offset and size from pagination if matched parameter's type is body \n // assign bodyVal to updated pagination info object\n const bodyVal = JSON.parse(paramObj.sampleValue);\n const bodyParam = paginationInfo.input[inputParam].split('.')[1]\n if (bodyVal && bodyVal[bodyParam]) {\n const inputBodyParam = paginationInfo.input[inputParam].split('.').splice(1).join('.'); \n if (inputParam !== 'offset') { \n _.set(reqObj, inputBodyParam, variable.pagination['page']);\n } else {\n _.set(reqObj, inputBodyParam, this.getOffsetInfo(variable, options));\n }\n _.set(reqObj, paginationInfo.input.size.split('.').splice(1).join('.'), variable.pagination['size']);\n bodyVal[bodyParam] = reqObj[bodyParam];\n requestBody = JSON.stringify(bodyVal);\n resObj['requestBody'] = requestBody;\n }\n } else if (variable.pagination.next && paramObj) {\n /**\n * For cursor type pagination, if pagination info is present in the path \n * Based on whether user clicks on the next or prev button modify the url \n */\n \n if (paramObj.parameterType === 'path') {\n const urlParams = operationInfo.relativePath.split('/'),\n paramConfig = '{' + paramObj.name + '}',\n paramIndex = urlParams.indexOf(paramConfig);\n let invokeUrl;\n if (variable.pagination.isNext) {\n invokeUrl = variable.pagination.next.split('/');\n } else {\n invokeUrl = variable.pagination.prev.split('/');\n }\n\n let urlPathParmas;\n let urlPath;\n if (operationInfo.directPath) { // For direct path, as url has hostname, derivate pathname using URL object\n urlPath = new URL(url);\n urlPathParmas = urlPath.pathname.split('/');\n urlPathParmas[paramIndex] = invokeUrl[paramIndex];\n urlPath.pathname = urlPathParmas.join('/');\n url = urlPath.href;\n resObj['url'] = url;\n } else { // Else modify the url with index as +1 (following proxy pattern)\n urlPathParmas = url.split('/');\n urlPathParmas[paramIndex + 1] = invokeUrl[paramIndex];\n url = urlPathParmas.join('/');\n resObj['url'] = url;\n }\n\n } else if (paramObj.parameterType === 'query') {\n /**\n * For cursor type pagination, if pagination info is present in the query \n * Based on whether user clicks on the next or prev button modify the url's query params\n */\n const urlParams = url.split('?');\n let invokeUrl;\n if (variable.pagination.isNext) {\n invokeUrl = variable.pagination.next.split('?');\n } else {\n invokeUrl = variable.pagination.prev.split('?');\n }\n urlParams[1] = invokeUrl[1];\n url = urlParams.join('?');\n resObj['url'] = url;\n }\n }\n return resObj; \n }\n\n /**\n * Sets the pagination info recieved from api's response in the res object\n * @param operationInfo has metadata of the variable\n * @param res holds the information of pagination which has to be stored on the variable\n * @param paramName has key name against which data has to be stored in pagination\n * @param variable withholds variable information \n * @returns {void} This method does not return anything\n */\n static setParameterVal(paramName, res, operationInfo, variable) {\n const paginationInfo = this.getPaginationInfo(operationInfo, variable);\n const paginationParams = paginationInfo.input[paramName].split('.');\n const param = paginationParams[0]; \n const sizeObj = _.find(operationInfo.parameters, function(obj) { return obj.name === param });\n res[paramName] = _.result(sizeObj, 'sampleValue');\n // if input value is configured from object, fetch the value from the specified path\n if (paginationParams.length > 1) {\n res[paramName] = _.get(getValidJSON(res[paramName]), paginationInfo.input[paramName].split('.').splice(1).join('.'));\n }\n }\n\n /**\n * Creates res object from the response recieved from the api triggered\n * @param variable withholds variable information \n * @param operationInfo has metadata of the variable\n * @param paginationInfo has metadata of the variable's pagination\n * @param response has data of the api call's response\n * @param options has info of the api's query params\n * @param resHeaders has data of the api call's response headers\n * @returns {object} An object which holds the information of pagination which has to be stored on the variable\n */\n static generatePaginationRes(operationInfo, paginationInfo, response, resHeaders, options, variable) {\n let res = {};\n const resOutput = paginationInfo.output;\n // If pagination type is not cursor, create the following metadata \n if (!resOutput?.next) {\n /**\n * If size is present in the pagination's output metadata deduce size from api's response\n * Else deduce size from the pagination's input metadata size key\n */\n if (resOutput?.size) {\n this.setPaginationItems(resOutput.size, response, res, 'size', resHeaders);\n } else { \n this.setParameterVal('size', res, operationInfo, variable);\n }\n /**\n * If page is present in the pagination's output metadata deduce page from api's response\n * Else deduce page from the pagination's input metadata page key\n */\n if (resOutput?.page) {\n this.setPaginationItems(resOutput.page, response, res, 'page', resHeaders);\n } else if (paginationInfo.type !== 'offset') {\n this.setParameterVal('page', res, operationInfo, variable);\n }\n /**\n * If totalElements has $minValue in it, set totalElements as $minValue\n * If the rendered elements are greater than $minValue, set totalElements as Number of elements rendered + 1\n \n * If totalElements is present in the pagination's output metadata deduce totalElements from api's response\n \n * If Pagination type is offset, deduce totalElements from size and options[page] else deduce from size and res[page]\n */\n if (_.startsWith(resOutput?.totalElements, '$minValue')) {\n const totalEl = resOutput.totalElements.replace('$minValue=', '');\n const pageParam = res['page'] ? res['page'] : options['page']\n const elRendered = res['size'] * pageParam;\n if (!variable.pagination || variable.pagination['totalElements'] > elRendered) {\n res['totalElements'] = parseInt(totalEl);\n } else {\n res['totalElements'] = elRendered + 1;\n }\n } else if (resOutput?.totalElements) {\n this.setPaginationItems(resOutput.totalElements, response, res, 'totalElements', resHeaders);\n } else {\n if (paginationInfo.type === 'offset' || paginationInfo.input.offset) {\n res['totalElements'] = (res['size'] * (options['page'] ? options['page'] : 1)) + 1;\n } else {\n res['totalElements'] = (res['size'] * res['page']) + 1;\n }\n }\n /**\n * If hasMoreItems is present in the pagination's output metadata deduce hasMoreItems from api's response\n * Else assign it as empty which will be calculated at pagination object generation\n */\n if (resOutput?.hasMoreItems) {\n this.setPaginationItems(resOutput.hasMoreItems, response, res, 'hasMoreItems', resHeaders);\n } else {\n res['hasMoreItems'] = '';\n }\n } else if (resOutput) { // For cursor type pagination set next and prev keys in res object\n this.setPaginationItems(resOutput.next, response, res, 'next', resHeaders);\n this.setPaginationItems(resOutput.prev, response, res, 'prev', resHeaders);\n }\n return res;\n }\n}"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-variable.utils.js","sourceRoot":"./","sources":["src/util/variable/service-variable.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { extractType, isDefined, isDateTimeType, getBlob, replace } from \"../../util/utils\";\n\nimport { $rootScope, CONSTANTS, SWAGGER_CONSTANTS, VARIABLE_CONSTANTS, WS_CONSTANTS } from '../../constants/variables.constants';\nimport { isFileUploadSupported } from './variables.utils';\nimport { getAccessToken } from './../oAuth.utils';\nimport { formatDate} from \"./variables.utils\";\nimport { PaginationUtils } from '../../util/variable/pagination.utils';\n\nimport _ from 'lodash';\n\n\n/**\n * returns true if a Service variable is:\n * - for a query/procedure\n * - performs a PUT/POST operation, i.e, takes a Request Body as input\n * @param variable\n * @returns {any}\n */\nconst isBodyTypeQueryOrProcedure = (variable) => {\n return (_.includes(['QueryExecution', 'ProcedureExecution'], variable.controller)) && (_.includes(['put', 'post'], variable.operationType));\n};\n\n/**\n * returns true if the variable is a Query service variable\n * @param {string} controller\n * @param {string} serviceType\n * @returns {boolean}\n */\nconst isQueryServiceVar = (controller: string, serviceType: string) => {\n return controller === VARIABLE_CONSTANTS.CONTROLLER_TYPE.QUERY && serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA;\n};\n\n/**\n * Append given value to the formdata\n * @param formData\n * @param param - Param from which value has to be taken\n * @param paramValue - Value which is to be appended to formdata\n */\nconst getFormData = (formData, param, paramValue) => {\n const paramType = _.toLower(extractType(_.get(param, 'items.type') || param.type)),\n paramContentType = CONSTANTS.isStudioMode ? param['x-WM-CONTENT_TYPE'] : param.contentType;\n if (isFileUploadSupported()) {\n if ((paramType !== 'file') && (paramContentType === 'string' || !paramContentType)) {\n if (_.isObject(paramValue)) {\n paramValue = JSON.stringify(paramValue);\n }\n formData.append(param.name, paramValue);\n } else {\n if (_.isArray(paramValue) && paramType === 'file') {\n _.forEach(paramValue, function (fileObject) {\n formData.append(param.name, (fileObject && fileObject.content) || getBlob(fileObject), fileObject.name);\n });\n } else {\n formData.append(param.name, getBlob(paramValue, paramContentType), paramValue && paramValue.name);\n }\n }\n return formData;\n }\n};\n\n/**\n * Check for missing required params and format the date/time param values\n * @param inputData\n * @param params\n * @returns {{requestBody: {}; missingParams: any[]}}\n */\nconst processRequestBody = (inputData, params, variable) => {\n const requestBody = {},\n missingParams = [];\n let paramValue;\n _.forEach(params, function (param) {\n paramValue = _.get(inputData, param.name);\n if (!_.isUndefined(paramValue) && paramValue !== '' && paramValue !== null && !param.readOnly) {\n // ToDo - variable seperation\n paramValue = isDateTimeType(param.type) ? formatDate(paramValue, param.type, variable.dateFormatter) : paramValue;\n // Construct ',' separated string if param is not array type but value is an array\n if (_.isArray(paramValue) && _.toLower(extractType(param.type)) === 'string') {\n paramValue = _.join(paramValue, ',');\n }\n requestBody[param.name] = paramValue;\n } else if (param.required) {\n missingParams.push(param.name || param.id);\n }\n });\n return {\n 'requestBody': requestBody,\n 'missingParams': missingParams\n };\n};\n\n/**\n * Done only for HTTP calls made via the proxy server\n * Goes though request headers, appends 'X-' to certain headers\n * these headers need not be processed at proxy server and should directly be passed to the server\n * e.g. Authorization, Cookie, etc.\n * @param headers\n * @returns {{}}\n */\nconst cloakHeadersForProxy = (headers) => {\n const _headers = {},\n UNCLOAKED_HEADERS = VARIABLE_CONSTANTS.REST_SERVICE.UNCLOAKED_HEADERS,\n CLOAK_PREFIX = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.CLOAK_HEADER_KEY;\n _.forEach(headers, function (val, key) {\n if (_.includes(UNCLOAKED_HEADERS, key.toUpperCase())) {\n _headers[key] = val;\n } else {\n _headers[CLOAK_PREFIX + key] = val;\n }\n });\n\n return _headers;\n};\n\nexport class ServiceVariableUtils {\n /**\n * prepares the HTTP request info for a Service Variable\n * @param variable\n * @param operationInfo\n * @param inputFields\n * @returns {any}\n */\n static constructRequestParams(variable, operationInfo, inputFields, options?) {\n variable = variable || {};\n\n // operationInfo is specifically null for un_authorized access\n if (operationInfo === null) {\n return {\n 'error' : {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.USER_UNAUTHORISED,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.USER_UNAUTHORISED,\n 'field': '_wmServiceOperationInfo'\n }\n };\n } else if (_.isEmpty(operationInfo)) {\n return {\n 'error' : {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.METADATA_MISSING,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.METADATA_MISSING,\n 'field': '_wmServiceOperationInfo'\n }\n };\n } else if (operationInfo && operationInfo.invalid) {\n return {\n 'error' : {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.CRUD_OPERATION_MISSING,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.CRUD_OPERATION_MISSING,\n 'field': '_wmServiceOperationInfo'\n }\n };\n }\n\n const directPath = operationInfo.directPath || '',\n relativePath = operationInfo.basePath ? operationInfo.basePath + operationInfo.relativePath : operationInfo.relativePath,\n isBodyTypeQueryProcedure = isBodyTypeQueryOrProcedure(variable);\n let queryParams = '',\n bodyInfo,\n headers = {},\n requestBody,\n url,\n requiredParamMissing = [],\n target,\n pathParamRex,\n invokeParams,\n authDetails = null,\n uname,\n pswd,\n method,\n formData,\n isProxyCall,\n paramValueInfo,\n params,\n securityDefnObj,\n accessToken,\n withCredentials;\n\n function getFormDataObj() {\n if (formData) {\n return formData;\n }\n formData = new FormData();\n return formData;\n }\n\n securityDefnObj = _.get(operationInfo.securityDefinitions, '0');\n\n if (securityDefnObj) {\n switch (securityDefnObj.type) {\n case VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.OAUTH2:\n accessToken = getAccessToken(securityDefnObj[VARIABLE_CONSTANTS.REST_SERVICE.OAUTH_PROVIDER_KEY], null);\n if (accessToken) {\n headers[VARIABLE_CONSTANTS.REST_SERVICE.AUTH_HDR_KEY] = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.AUTH_HDR_VAL.OAUTH + ' ' + accessToken;\n } else {\n return {\n 'error': {\n 'type' : VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.NO_ACCESSTOKEN,\n 'message' : VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.NO_ACCESSTOKEN\n },\n 'securityDefnObj': securityDefnObj\n };\n }\n break;\n case VARIABLE_CONSTANTS.REST_SERVICE.SECURITY_DEFN.BASIC:\n uname = inputFields['wm_auth_username'];\n pswd = inputFields['wm_auth_password'];\n if (uname && pswd) {\n // TODO[VIBHU]: bas64 encoding alternative.\n headers[VARIABLE_CONSTANTS.REST_SERVICE.AUTH_HDR_KEY] = VARIABLE_CONSTANTS.REST_SERVICE.PREFIX.AUTH_HDR_VAL.BASIC + ' ' + btoa(uname + ':' + pswd);\n authDetails = {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.AUTH_TYPE.BASIC\n };\n } else {\n return {\n 'error': {\n 'type' : VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.NO_CREDENTIALS,\n 'message': VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.NO_CREDENTIALS\n },\n 'securityDefnObj': securityDefnObj\n };\n }\n break;\n }\n }\n // set query params, if pagination info is present and the info should be present in query\n PaginationUtils.checkPaginationAtQuery(operationInfo, variable, options);\n\n operationInfo.proxySettings = operationInfo.proxySettings || {web: true, mobile: false};\n method = operationInfo.httpMethod || operationInfo.methodType;\n isProxyCall = (function () {\n // ToDo - variable seperation\n // if (CONSTANTS.hasCordova) {\n return operationInfo.proxySettings.mobile;\n // }\n return operationInfo.proxySettings.web;\n }());\n withCredentials = operationInfo.proxySettings.withCredentials;\n url = isProxyCall ? relativePath : directPath;\n\n /* loop through all the parameters */\n _.forEach(operationInfo.parameters, function (param) {\n // Set params based on current workspace\n function setParamsOfChildNode() {\n if (inputFields) {\n // specific case for body type query/procedure variable with query params\n if (inputFields[param.name] && _.isObject(inputFields[param.name])) {\n paramValueInfo = inputFields[param.name];\n } else {\n paramValueInfo = inputFields;\n }\n params = _.get(operationInfo, ['definitions', param.type]);\n } else {\n // For Api Designer\n paramValueInfo = paramValue || {};\n params = param.children;\n }\n }\n\n let paramValue = param.sampleValue;\n\n if ((isDefined(paramValue) && paramValue !== null && paramValue !== '') || (isBodyTypeQueryProcedure && param.type !== 'file')) {\n // Format dateTime params for dataService variables\n if (variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA && isDateTimeType(param.type)) {\n // ToDo - variable seperation\n paramValue = formatDate(paramValue, param.type, variable.dateFormatter);\n }\n // Construct ',' separated string if param is not array type but value is an array\n if (_.isArray(paramValue) && _.toLower(extractType(param.type)) === 'string' && variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.DATA) {\n paramValue = _.join(paramValue, ',');\n }\n switch (param.parameterType.toUpperCase()) {\n case 'QUERY':\n // Ignore null valued query params for queryService variable\n if (_.isNull(paramValue) && isQueryServiceVar(variable.controller, variable.serviceType)) {\n break;\n }\n if (!queryParams) {\n queryParams = '?' + param.name + '=' + encodeURIComponent(paramValue);\n } else {\n queryParams += '&' + param.name + '=' + encodeURIComponent(paramValue);\n }\n break;\n case 'PATH':\n /* replacing the path param based on the regular expression in the relative path */\n pathParamRex = new RegExp('\\\\s*\\\\{\\\\s*' + param.name + '(:\\\\.\\\\+)?\\\\s*\\\\}\\\\s*');\n url = url.replace(pathParamRex, paramValue);\n break;\n case 'HEADER':\n headers[param.name] = paramValue;\n break;\n case 'BODY':\n // For post/put query methods wrap the input\n if (isBodyTypeQueryProcedure) {\n setParamsOfChildNode();\n bodyInfo = processRequestBody(paramValueInfo, params, variable);\n requestBody = bodyInfo.requestBody;\n requiredParamMissing = _.concat(requiredParamMissing, bodyInfo.missingParams);\n } else {\n requestBody = paramValue;\n }\n break;\n case 'FORMDATA':\n if (isBodyTypeQueryProcedure && param.name === SWAGGER_CONSTANTS.WM_DATA_JSON) {\n setParamsOfChildNode();\n // Process query/procedure formData non-file params params\n bodyInfo = processRequestBody(paramValueInfo, params, variable);\n requestBody = getFormData(getFormDataObj(), param, bodyInfo.requestBody);\n requiredParamMissing = _.concat(requiredParamMissing, bodyInfo.missingParams);\n } else {\n requestBody = getFormData(getFormDataObj(), param, paramValue);\n }\n break;\n }\n } else if (param.required) {\n requiredParamMissing.push(param.name || param.id);\n }\n });\n\n // if required param not found, return error\n if (requiredParamMissing.length) {\n return {\n 'error': {\n 'type': VARIABLE_CONSTANTS.REST_SERVICE.ERR_TYPE.REQUIRED_FIELD_MISSING,\n 'field': requiredParamMissing.join(','),\n 'message': replace(VARIABLE_CONSTANTS.REST_SERVICE.ERR_MSG.REQUIRED_FIELD_MISSING, [requiredParamMissing.join(',')]),\n 'skipDefaultNotification': true\n }\n };\n }\n\n // Setting appropriate content-Type for request accepting request body like POST, PUT, etc\n if (!_.includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, _.toUpper(method))) {\n /*Based on the formData browser will automatically set the content type to 'multipart/form-data' and webkit boundary*/\n if (!(operationInfo.consumes && (operationInfo.consumes[0] === WS_CONSTANTS.CONTENT_TYPES.MULTIPART_FORMDATA))) {\n headers['Content-Type'] = (operationInfo.consumes && operationInfo.consumes[0]) || 'application/json';\n }\n }\n\n // if the consumes has application/x-www-form-urlencoded and\n // if the http request of given method type can have body send the queryParams as Form Data\n if (_.includes(operationInfo.consumes, WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED)\n && !_.includes(WS_CONSTANTS.NON_BODY_HTTP_METHODS, (method || '').toUpperCase())) {\n // remove the '?' at the start of the queryParams\n if (queryParams) {\n requestBody = (requestBody ? requestBody + '&' : '') + queryParams.substring(1);\n }\n headers['Content-Type'] = WS_CONSTANTS.CONTENT_TYPES.FORM_URL_ENCODED;\n } else {\n url += queryParams;\n }\n\n /*\n * for proxy calls:\n * - cloak the proper headers (required only for REST services)\n * - prepare complete url from relativeUrl\n */\n if (isProxyCall) {\n // avoiding cloakHeadersForProxy when the method is invoked from apidesigner.\n headers = (variable.serviceType !== VARIABLE_CONSTANTS.SERVICE_TYPE.REST && variable.serviceType !== VARIABLE_CONSTANTS.SERVICE_TYPE.OPENAPI) || operationInfo.skipCloakHeaders ? headers : cloakHeadersForProxy(headers);\n if (variable.getPrefabName() && VARIABLE_CONSTANTS.REST_SUPPORTED_SERVICES.indexOf(variable.serviceType) !== -1) {\n /* if it is a prefab variable (used in a normal project), modify the url */\n url = 'prefabs/' + variable.getPrefabName() + url;\n target = 'invokePrefabRestService';\n } else if (!variable.getPrefabName()) {\n url = 'services' + url;\n }\n url = $rootScope.project.deployedUrl + url;\n }\n\n // If pagination info exists, process info in request headers or body based on the metadata\n const paginationInfo = PaginationUtils.getPaginationInfo(operationInfo, variable);\n if (paginationInfo && variable.pagination) {\n const resp = PaginationUtils.setPaginationAtReq(paginationInfo, operationInfo, variable, headers, requestBody, url, options);\n if (resp) {\n if (resp['headers']) {\n headers = resp['headers'];\n } else if (resp['requestBody']) {\n requestBody = resp['requestBody']\n } else if (resp['url']) {\n url = resp['url']\n }\n }\n }\n\n /*creating the params needed to invoke the service. url is generated from the relative path for the operation*/\n invokeParams = {\n 'projectID': $rootScope.project.id,\n 'url': url,\n 'target': target,\n 'method': method,\n 'headers': headers,\n 'data': requestBody,\n 'authDetails': authDetails,\n 'isDirectCall': !isProxyCall,\n 'isExtURL': variable.serviceType === VARIABLE_CONSTANTS.SERVICE_TYPE.REST,\n 'withCredentials': withCredentials\n };\n\n return invokeParams;\n }\n\n static isFileUploadRequest(variable) {\n // temporary fix, have to find proper solution for deciding weather to upload file through variable\n return variable.service === 'FileService' && variable.operation === 'uploadFile';\n }\n\n static isFileDeleteRequest(variable) {\n return variable.service === 'FileService' && variable.operation === 'deleteFile';\n }\n\n /**\n * This method returns array of query param names for variable other then page,size,sort\n * @params {params} params of the variable\n */\n static excludePaginationParams(params) {\n return _.map(_.reject(params, (param) => {\n return _.includes(VARIABLE_CONSTANTS.PAGINATION_PARAMS, param.name);\n }), function (param) {\n return param.name;\n });\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"variables.utils.js","sourceRoot":"./","sources":["src/util/variable/variables.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAE1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,aAAa;AACb,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAI,UAAe,CAAC;AAC3B,MAAM,CAAC,IAAI,WAAgB,CAAC;AAC5B,MAAM,CAAC,IAAI,eAAoB,CAAC;AAChC,MAAM,CAAC,IAAI,iBAAsB,CAAC;AAClC,MAAM,CAAC,IAAI,aAAkB,CAAC;AAC9B,MAAM,CAAC,IAAI,cAAmB,CAAC;AAC/B,MAAM,CAAC,IAAI,YAAiB,CAAC;AAC7B,MAAM,CAAC,IAAI,eAAoB,CAAC;AAChC,MAAM,CAAC,IAAI,aAAkB,CAAC;AAC9B,MAAM,CAAC,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5C,IAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AACzB,IAAM,YAAY,GAAG,wBAAwB,CAAC;AAC9C,IAAM,OAAO,GAAG,UAAC,QAAQ,EAAE,EAAE;IACzB,IAAI,WAAW,EACX,QAAQ,GAAG,CAAC,CAAC,IAAI,EACjB,MAAM,CAAC;IACX,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACtB,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;KAC1C;IACD,QAAQ,EAAE,CAAC;IACX,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC;QACrB,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,8DAA8D;QAC9D,IAAI,MAAM,YAAY,OAAO,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACxB;IACL,CAAC,EAAE,GAAG,CAAC,CAAC;IACR,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClC,WAAW,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,IAAY,EAAE,GAAQ;IAClD,QAAQ,IAAI,EAAE;QACV,KAAK,YAAY;YACb,UAAU,GAAG,GAAG,CAAC;YACjB,MAAM;QACV,KAAK,MAAM;YACP,WAAW,GAAG,GAAG,CAAC;YAClB,MAAM;QACV,KAAK,UAAU;YACX,eAAe,GAAG,GAAG,CAAC;YACtB,MAAM;QACV,KAAK,mBAAmB;YACpB,iBAAiB,GAAG,GAAG,CAAC;YACxB,MAAM;QACV,KAAK,QAAQ;YACT,aAAa,GAAG,GAAG,CAAC;YACpB,MAAM;QACV,KAAK,SAAS;YACV,cAAc,GAAI,GAAG,CAAC;YACtB,MAAM;QACV,KAAK,OAAO;YACR,YAAY,GAAI,GAAG,CAAC;YACpB,MAAM;QACV,KAAK,UAAU;YACX,eAAe,GAAI,GAAG,CAAC;YACvB,MAAM;QACV,KAAK,QAAQ;YACT,aAAa,GAAG,GAAG,CAAC;YACpB,MAAM;KACb;AACL,CAAC,CAAC;AACF,MAAM,CAAC,IAAM,oBAAoB,GAAG,OAAO,CAAC;AAC5C;;;GAGG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACjC,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,SAAc;IACjD,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,QAAa;QACxC,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,QAAQ,CAAC,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;SAC1D;IACL,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AACF;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,GAAQ,EAAE,cAAoB;IAClD,IAAI,GAAG,YAAY,IAAI,EAAE;QACrB,OAAO,GAAG,CAAC;KACd;IACD,IAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,OAAO,IAAI,OAAO,YAAY,MAAM,EAAE;QACtC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,IAAI,kBAAkB,EAAE,CAAC,CAAC;KAC7F;SAAM;QACH,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,IAAI,YAAY,EAAE,CAAC,CAAC;KACnE;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AACF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAC,SAAc,EAAE,GAAQ,EAAE,GAAQ,EAAE,OAAY;IACrE,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;IAC5B,IAAI,IAAI,EACJ,OAAO,EACP,QAAQ,GAAG,EAAE,CAAC;IAElB,qBAAqB;IACrB,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACrB,QAAQ,OAAO,CAAC,IAAI,EAAE;YAClB,KAAK,MAAM;gBACP,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,QAAQ;gBACT,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAChD,MAAM;SACb;KACJ;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACjB,oDAAoD;QACpD,QAAQ,GAAG,GAAG,CAAC;KAClB;SAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC9B,kDAAkD;QAClD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,sCAAsC;QACtC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACzD,GAAG,GAAG,OAAO,CAAC;QACd,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KACvB;SAAM;QACH,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KACvB;IAED,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,QAAa,EAAE,QAAa;QACtD,SAAS,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,eAAoB;IAC3C,IAAI,CAAC,eAAe,EAAE;QAClB,OAAO,eAAe,CAAC;KAC1B;IACD,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QAC5B,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,UAAC,IAAS;YACjC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAClB,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;aAC3B;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACzB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAC,KAAU,EAAE,GAAQ;oBACjC,IAAI,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;qBACjC;yBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;qBACrB;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;KACN;SAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QACpC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,UAAC,KAAU,EAAE,GAAQ;YAC5C,IAAI,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC5B,eAAe,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;aAC5C;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;aACrB;QACL,CAAC,CAAC,CAAC;KACN;SAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QACpC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;QAC9C,OAAO,eAAe,CAAC;KAC1B;AACL,CAAC,CAAC;AAEF,SAAS,UAAU,CAAC,KAAU;IAC1B,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,QAAa,EAAE,YAAiB;IAChE,IAAI,YAAiB,EACjB,UAAU,CAAC;IACf,4DAA4D;IAC5D,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC1C,OAAO,QAAQ,CAAC;KACnB;IACD,4DAA4D;IAC5D,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,YAAY,CAAC;KACvB;IACD,sGAAsG;IACtG,QAAQ,GAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,KAAU;QACnD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,kFAAkF;IAClF,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,OAAY;QACrC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IACH,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;AAClD,CAAC,CAAC;AAEF,IAAM,6BAA6B,GAAG,UAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAS;IACnF,QAAQ,QAAQ,CAAC,QAAQ,EAAE;QACvB,KAAK,kBAAkB,CAAC,QAAQ,CAAC,IAAI;YACjC,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,EAAE;gBAC/B,IAAI,QAAQ,KAAK,aAAa,EAAE;oBAC5B,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,GAAG;wBACjC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG;4BACzB,OAAO,EAAE,GAAG;yBACf,CAAC;oBACN,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG;wBAC9B,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAG,QAAQ;qBACpB,CAAC;iBACL;gBACD,gFAAgF;gBAChF,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACnG,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;iBACpC;aACJ;iBAAM;gBACH,IAAI,QAAQ,KAAK,aAAa,EAAE;oBAC5B,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC;iBAClC;qBAAM;oBACH,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;iBAC5C;gBACD,gFAAgF;gBAChF,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACtH,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;iBACpD;aACJ;YACD,MAAM;QACV,KAAK,kBAAkB,CAAC,QAAQ,CAAC,IAAI;YACjC,IAAI,QAAQ,CAAC,aAAa,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC/B;YACD,MAAM;QACV,KAAK,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACzC,KAAK,kBAAkB,CAAC,QAAQ,CAAC,KAAK;YAClC,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC9F,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC/B;YACD,MAAM;QACV,KAAK,kBAAkB,CAAC,QAAQ,CAAC,MAAM;YACnC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YAC7B,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC9F,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC/B;YACD,MAAM;KACb;AACL,CAAC,CAAC;AAEF;;;;;;;EAOE;AACF,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,GAAG,EAAE,IAAI,EAAE,QAAQ;IAC5C;;;;;;;;;;;OAWG;IACH,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,EACnB,SAAS,CAAC;IACd,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC3B,SAAS,GAAG,QAAQ,CAAC;KACxB;SAAM;QACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE;YACrB,SAAS,GAAG,QAAQ,CAAC;SACxB;aAAM,IAAI,MAAM,EAAE;YACf,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SACnD;aAAM;YACH,SAAS,GAAG,QAAQ,CAAC;SACxB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,MAAM;IACnC;;;;;;;;;;;OAWG;IACH,IAAI,aAAa,CAAC;IAClB,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC3B,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;KAC9D;SAAM;QACH,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3C;IACD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAS;IACxE,IAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAC1C,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IAClD,oGAAoG;IACpG,IAAI,SAAS,EAAE;QACX,SAAS,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;KACpC;IACD,6BAA6B,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,QAAQ;IAC9B,IAAI,MAAM,CAAC;IACX,QAAO,QAAQ,CAAC,QAAQ,EAAE;QACtB,KAAK,kBAAkB,CAAC,QAAQ,CAAC,KAAK;YAClC,MAAM,GAAG,SAAS,CAAC;YACnB,MAAM;QACV,KAAK,kBAAkB,CAAC,QAAQ,CAAC,IAAI;YACjC,MAAM,GAAG,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;YACxE,MAAM;QACV;YACI,MAAM,GAAG,aAAa,CAAC;YACvB,MAAM;KAEb;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;IACtD,IAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAC/F,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,aAAa,CAAC;IAClB,SAAS,qBAAqB;QAC1B,OAAO,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,IAAI;YAC9C,oJAAoJ;YACpJ,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,aAAa,CAAC,IAAI,IAAI,KAAK,aAAa,CAAC,CAAC;QAClK,CAAC,CAAC,CAAC;IACP,CAAC;IACD,aAAa,GAAG,qBAAqB,EAAE,CAAC;IACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;QACxB,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,IAAI;YACnC,cAAc,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjI,CAAC,CAAC,CAAC;KACN;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,IAAY,EAAE,QAAa,EAAE,IAAS,EAAE,OAAa,EAAE,uBAAiC;IAErH,IAAI,QAAQ,CAAC,qBAAqB,EAAE;QAChC,OAAO;KACV;IACD,gHAAgH;IAChH,IAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAC9B,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACtC,IAAI,aAAa,CAAC;IAClB;;;;OAIG;IACH,IAAI,IAAI,KAAK,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,uBAAuB,EAAE;QACrE,IAAI,CAAC,WAAW,EAAE;YACd,0FAA0F;YAC1F,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnF,IAAI,aAAa,EAAE;gBACf,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC;gBAC1C,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kDAAkD,CAAC;gBACpF,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAAG,IAAI,EAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAChE,sCAAsC;gBACtC,8HAA8H;gBAC9H,MAAM;aACT;SACJ;KACJ;IACD,iHAAiH;IACjH,6BAA6B;IAC9B,0CAA0C;IACzC,IAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAClC,IAAI,IAAI,KAAK,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE;QACjD,IAAI,QAAQ,CAAC,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,EAAE;YAC1E,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;SAC1F;aAAM;YACJ,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;SACxF;KACJ;SAAM;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;KACpF;AACL,CAAC,CAAC;AACF,IAAM,wBAAwB,GAAG,UAAC,IAAI;IAClC,OAAO,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,kCAAkC;AAClC,IAAM,WAAW,GAAG,UAAC,SAAS,EAAE,IAAI,EAAE,aAAa;IAC/C,IAAI,KAAK,CAAC;IACV,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QACrB,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;KAC/B;SAAM;QACH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACnB,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACvC;QACD,KAAK,GAAG,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;KACpD;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;QACxC,OAAO,KAAK,CAAC;KAChB;IACD,IAAI,IAAI,KAAK,QAAQ,CAAC,SAAS,EAAE;QAC7B,OAAO,KAAK,CAAC;KAChB;IACD,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;QAClC,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;KACzE;IACD,OAAO,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,KAAK,EAAE,IAAI,EAAE,aAAa;IACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACvB,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACvC;IACD,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG;YAC7B,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;KACN;IACD,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG,UAAC,MAAM;IACvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;KACN;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAED,IAAM,UAAU,GAAG,UAAC,QAAQ;IACxB,IAAI,MAAM,CAAC;IACX,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3I,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,GAAQ,EAAE,YAAiB;IACrD,IAAM,eAAe,GAAG;QACpB,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC,IAAI,8BAA8B;QACxE,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC,IAAI,4CAA4C;QACtF,GAAG,EAAE,YAAY,CAAC,yBAAyB,CAAC,IAAI,oDAAoD;KACvG,CAAC;IAEF,2DAA2D;IAC3D,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;IACzC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;IAE1D,sEAAsE;IACtE,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;QACrC,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,qBAAqB,CAAC;KAChF;SAAM;QACH,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC;KAC5C;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA","sourcesContent":["import {findValueOf, getValidJSON, noop, extractType, DataType, DEFAULT_FORMATS, replace} from '../utils';\n\nimport { VARIABLE_CONSTANTS } from '../../constants/variables.constants';\n\ndeclare const window: any;\n// @ts-ignore\nimport moment from 'moment';\nimport _ from 'lodash';\nimport he from 'he';\n\nexport let appManager: any;\nexport let httpService: any;\nexport let metadataService: any;\nexport let navigationService: any;\nexport let routerService: any;\nexport let toasterService: any;\nexport let oauthService: any;\nexport let securityService: any;\nexport let dialogService: any;\nexport let internalBoundNodeMap = new Map();\nconst timers = new Map();\nconst DOT_EXPR_REX = /^\\[(\"|')[\\w\\W]*(\\1)\\]$/;\nconst _invoke = (variable, op) => {\n let debouncedFn,\n cancelFn = _.noop,\n retVal;\n if (timers.has(variable)) {\n cancelFn = timers.get(variable).cancel;\n }\n cancelFn();\n debouncedFn = _.debounce(function () {\n retVal = variable[op]();\n // handle promises to avoid uncaught promise errors in console\n if (retVal instanceof Promise) {\n retVal.catch(_.noop);\n }\n }, 100);\n timers.set(variable, debouncedFn);\n debouncedFn();\n};\n\nexport const wmSetDependency = (type: string, ref: any) => {\n switch (type) {\n case 'appManager':\n appManager = ref;\n break;\n case 'http':\n httpService = ref;\n break;\n case 'metadata':\n metadataService = ref;\n break;\n case 'navigationService':\n navigationService = ref;\n break;\n case 'router':\n routerService = ref;\n break;\n case 'toaster':\n toasterService = ref;\n break;\n case 'oAuth':\n oauthService = ref;\n break;\n case 'security':\n securityService = ref;\n break;\n case 'dialog':\n dialogService = ref;\n break;\n }\n};\nexport const debounceVariableCall = _invoke;\n/**\n * returns true if HTML5 File API is available else false\n * @returns {{prototype: Blob; new(blobParts?: any[], options?: BlobPropertyBag): Blob}}\n */\nexport const isFileUploadSupported = () => {\n // ToDo - variable seperation\n return (window.File && window.FileReader && window.FileList && window.Blob);\n};\n\n/**\n * formatting the expression as required by backend which was enclosed by ${<expression>}.\n * @param fieldDefs\n * returns fieldDefs\n */\nexport const formatExportExpression = (fieldDefs: any) => {\n _.forEach(fieldDefs, function (fieldDef: any) {\n if (fieldDef.expression) {\n fieldDef.expression = '${' + fieldDef.expression + '}';\n }\n });\n return fieldDefs;\n};\n/**\n * prepare a blob object based on the content and content type provided\n * if content is blob itself, simply returns it back\n * @param val\n * @param valContentType\n * @returns {*}\n */\nexport const getBlob = (val: any, valContentType?: any) => {\n if (val instanceof Blob) {\n return val;\n }\n const jsonVal = getValidJSON(val);\n if (jsonVal && jsonVal instanceof Object) {\n val = new Blob([JSON.stringify(jsonVal)], { type: valContentType || 'application/json' });\n } else {\n val = new Blob([val], { type: valContentType || 'text/plain' });\n }\n return val;\n};\n/**\n * sets the value against passed key on the \"inputFields\" object in the variable\n * @param targetObj: the object in which the key, value is to be set\n * @param variable\n * @param key: can be:\n * - a string e.g. \"username\"\n * - an object, e.g. {\"username\": \"john\", \"ssn\": \"11111\"}\n * @param val\n * - if key is string, the value against it (for that data type)\n * - if key is object, not required\n * @param options\n * @returns {any}\n */\nexport const setInput = (targetObj: any, key: any, val: any, options: any) => {\n targetObj = targetObj || {};\n let keys,\n lastKey,\n paramObj = {};\n\n // content type check\n if (_.isObject(options)) {\n switch (options.type) {\n case 'file':\n val = getBlob(val, options.contentType);\n break;\n case 'number':\n val = _.isNumber(val) ? val : parseInt(val, 10);\n break;\n }\n }\n\n if (_.isObject(key)) {\n // check if the passed parameter is an object itself\n paramObj = key;\n } else if (key.indexOf('.') > -1) {\n // check for '.' in key e.g. 'employee.department'\n keys = key.split('.');\n lastKey = keys.pop();\n // Finding the object based on the key\n targetObj = findValueOf(targetObj, keys.join('.'), true);\n key = lastKey;\n paramObj[key] = val;\n } else {\n paramObj[key] = val;\n }\n\n _.forEach(paramObj, function (paramVal: any, paramKey: any) {\n targetObj[paramKey] = paramVal;\n });\n return targetObj;\n};\n\n/**\n * This method decodes the variable data which is encoded from backend before showing in the widgets.\n * It takes variable response content as input and iterates recursively,\n * if the value is string type then it will decode the data.\n * @param responseContent (Array of objects)\n */\nexport const decodeData = (responseContent: any) => {\n if (!responseContent) {\n return responseContent;\n }\n if (_.isArray(responseContent)) {\n _.forEach(responseContent, (data: any) => {\n if (_.isString(data)) {\n data = htmlDecode(data);\n } else if (_.isObject(data)) {\n _.forEach(data, (value: any, key: any) => {\n if (value && _.isString(value)) {\n data[key] = htmlDecode(value);\n } else if (_.isObject(value)) {\n decodeData(value);\n }\n });\n }\n });\n } else if (_.isObject(responseContent)) {\n _.forEach(responseContent, (value: any, key: any) => {\n if (value && _.isString(value)) {\n responseContent[key] = htmlDecode(value);\n } else if (_.isObject(value)) {\n decodeData(value);\n }\n });\n } else if (_.isString(responseContent)) {\n responseContent = htmlDecode(responseContent);\n return responseContent;\n }\n};\n\nfunction htmlDecode(input: any) {\n return he.unescape(input);\n}\n\n/**\n *\n * @param varOrder\n * @param optionsOrder\n * @returns {any}\n */\nexport const getEvaluatedOrderBy = (varOrder: any, optionsOrder: any) => {\n let optionFields: any,\n varOrderBy;\n // If options order by is not defined, return variable order\n if (!optionsOrder || _.isEmpty(optionsOrder)) {\n return varOrder;\n }\n // If variable order by is not defined, return options order\n if (!varOrder) {\n return optionsOrder;\n }\n // If both are present, combine the options order and variable order, with options order as precedence\n varOrder = _.split(varOrder, ',');\n optionsOrder = _.split(optionsOrder, ',');\n optionFields = _.map(optionsOrder, function (order: any) {\n return _.split(_.trim(order), ' ')[0];\n });\n // If a field is present in both options and variable, remove the variable orderby\n _.remove(varOrder, function (orderBy: any) {\n return _.includes(optionFields, _.split(_.trim(orderBy), ' ')[0]);\n });\n varOrderBy = varOrder.length ? ',' + _.join(varOrder, ',') : '';\n return _.join(optionsOrder, ',') + varOrderBy;\n};\n\nconst processVariablePostBindUpdate = (nodeName, nodeVal, nodeType, variable, noUpdate?) => {\n switch (variable.category) {\n case VARIABLE_CONSTANTS.CATEGORY.LIVE:\n if (variable.operation === 'read') {\n if (nodeName === 'dataBinding') {\n _.forEach(nodeVal, function (val, key) {\n variable.filterFields[key] = {\n 'value': val\n };\n });\n } else {\n variable.filterFields[nodeName] = {\n 'value': nodeVal,\n 'type' : nodeType\n };\n }\n /* if auto-update set for the variable with read operation only, get its data */\n if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.listRecords) && !noUpdate) {\n _invoke(variable, 'listRecords');\n }\n } else {\n if (nodeName === 'dataBinding') {\n variable.inputFields = nodeVal;\n } else {\n variable.inputFields[nodeName] = nodeVal;\n }\n /* if auto-update set for the variable with read operation only, get its data */\n if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable[variable.operation + 'Record']) && !noUpdate) {\n _invoke(variable, variable.operation + 'Record');\n }\n }\n break;\n case VARIABLE_CONSTANTS.CATEGORY.CRUD:\n if (variable.operationType === 'list' && variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.invoke) && !noUpdate) {\n _invoke(variable, 'invoke');\n }\n break;\n case VARIABLE_CONSTANTS.CATEGORY.SERVICE:\n case VARIABLE_CONSTANTS.CATEGORY.LOGIN:\n if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.invoke) && !noUpdate) {\n _invoke(variable, 'invoke');\n }\n break;\n case VARIABLE_CONSTANTS.CATEGORY.DEVICE:\n variable[nodeName] = nodeVal;\n if (variable.autoUpdate && !_.isUndefined(nodeVal) && _.isFunction(variable.invoke) && !noUpdate) {\n _invoke(variable, 'invoke');\n }\n break;\n }\n};\n\n/**\n* Returns the object node for a bind object, where the value has to be updated\n* obj.target = \"a\"\n * @param obj\n* @param root\n* @param variable\n* @returns {*}\n*/\nexport const getTargetObj = (obj, root, variable) => {\n /*\n * if the target key is in the form as \"['my.param']\"\n * keep the target key as \"my.param\" and do not split further\n * this is done, so that, the computed value against this binding is assigned as\n * {\"my.param\": \"value\"}\n * and not as\n * {\n * \"my\": {\n * \"param\": \"value\"\n * }\n * }\n */\n let target = obj.target,\n targetObj;\n const rootNode = variable[root];\n if (DOT_EXPR_REX.test(target)) {\n targetObj = rootNode;\n } else {\n target = target.substr(0, target.lastIndexOf('.'));\n if (obj.target === root) {\n targetObj = variable;\n } else if (target) {\n targetObj = findValueOf(rootNode, target, true);\n } else {\n targetObj = rootNode;\n }\n }\n return targetObj;\n};\n\n/**\n * Gets the key for the target object\n * the computed value will be updated against this key in the targetObject(computed by getTargetObj())\n * @param target\n * @param regex\n * @returns {*}\n */\nexport const getTargetNodeKey = (target) => {\n /*\n * if the target key is in the form as \"['my.param']\"\n * keep the target key as \"my.param\" and do not split further\n * this is done, so that, the computed value against this binding is assigned as\n * {\"my.param\": \"value\"}\n * and not as\n * {\n * \"my\": {\n * \"param\": \"value\"\n * }\n * }\n */\n let targetNodeKey;\n if (DOT_EXPR_REX.test(target)) {\n targetNodeKey = target.replace(/^(\\[[\"'])|([\"']\\])$/g, '');\n } else {\n targetNodeKey = target.split('.').pop();\n }\n return targetNodeKey;\n};\n\nexport const setValueToNode = (target, obj, root, variable, value, noUpdate?) => {\n const targetNodeKey = getTargetNodeKey(target),\n targetObj = getTargetObj(obj, root, variable);\n value = !_.isUndefined(value) ? value : obj.value;\n /* sanity check, user can bind parent nodes to non-object values, so child node bindings may fail */\n if (targetObj) {\n targetObj[targetNodeKey] = value;\n }\n processVariablePostBindUpdate(targetNodeKey, value, obj.type, variable, noUpdate);\n};\n\nexport const getTarget = (variable) => {\n let target;\n switch(variable.category) {\n case VARIABLE_CONSTANTS.CATEGORY.MODEL:\n target = 'dataSet';\n break;\n case VARIABLE_CONSTANTS.CATEGORY.LIVE:\n target = variable.operation === 'read' ? 'filterFields' : 'inputFields';\n break;\n default:\n target = 'dataBinding';\n break;\n\n }\n return target;\n}\n\n/**\n * The model internalBoundNodeMap stores the reference to latest computed values against internal(nested) bound nodes\n * This is done so that the internal node's computed value is not lost, once its parent node's value is computed at a later point\n * E.g.\n * Variable.employeeVar has following bindings\n * \"dataBinding\": [\n {\n \"target\": \"department.budget\",\n \"value\": \"bind:Variables.budgetVar.dataSet\"\n },\n {\n \"target\": \"department\",\n \"value\": \"bind:Variables.departmentVar.dataSet\"\n }\n ]\n * When department.budget is computed, employeeVar.dataSet = {\n * \"department\": {\n * \"budget\": {\"q1\": 1111}\n * }\n * }\n *\n * When department is computed\n * \"department\": {\n * \"name\": \"HR\",\n * \"location\": \"Hyderabad\"\n * }\n * The budget field (computed earlier) is LOST.\n *\n * To avoid this, the latest values against internal nodes (in this case department.budget) are stored in a map\n * These values are assigned back to internal fields if the parent is computed (in this case department)\n * @param target\n * @param root\n * @param variable\n */\nexport const updateInternalNodes = (target, root, variable) => {\n const boundInternalNodes = _.keys(_.get(internalBoundNodeMap.get(variable), [variable.name, root])),\n targetNodeKey = getTargetNodeKey(target);\n let internalNodes;\n function findInternalNodeBound() {\n return _.filter(boundInternalNodes, function (node) {\n // the later condition in check (targetNodeKey === root || targetNodeKey === 'dataBinding') is specifically for live variable of insert/update types\n return (node !== targetNodeKey && _.includes(node, targetNodeKey)) || ((targetNodeKey === root || targetNodeKey === 'dataBinding') && node !== targetNodeKey);\n });\n }\n internalNodes = findInternalNodeBound();\n if ((internalNodes.length)) {\n _.forEach(internalNodes, function (node) {\n setValueToNode(node, {target: node}, root, variable, _.get(internalBoundNodeMap.get(variable), [variable.name, root, node]));\n });\n }\n};\n\nexport const initiateCallback = (type: string, variable: any, data: any, options?: any, skipDefaultNotification?: boolean) => {\n\n if (variable._skipInitiateCallback) {\n return;\n }\n /*checking if event is available and variable has event property and variable event property bound to function*/\n const eventValues = variable[type],\n callBackScope = variable._context;\n let errorVariable;\n /**\n * For error event:\n * trigger app level error handler.\n * if no event is assigned, trigger default appNotification variable.\n */\n if (type === VARIABLE_CONSTANTS.EVENT.ERROR && !skipDefaultNotification) {\n if (!eventValues) {\n /* in case of error, if no event assigned, handle through default notification variable */\n errorVariable = callBackScope.Actions[VARIABLE_CONSTANTS.DEFAULT_VAR.NOTIFICATION];\n if (errorVariable) {\n data = errorVariable.getMessage() || data;\n data = _.isString(data) ? data : 'An error has occured. Please check the app logs.';\n errorVariable.invoke({ 'message' : data}, undefined, undefined);\n // $rootScope.$evalAsync(function () {\n // $rootScope.$emit(\"invoke-service\", VARIABLE_CONSTANTS.DEFAULT_VAR.NOTIFICATION, {scope: callBackScope, message: response});\n // });\n }\n }\n }\n // TODO: [Vibhu], check whether to support legacy event calling mechanism (ideally, it should have been migrated)\n // ToDo - variable seperation\n // const fn = $parseEvent(variable[type]);\n const fn = variable[type] || noop;\n if (type === VARIABLE_CONSTANTS.EVENT.BEFORE_UPDATE) {\n if (variable.category === 'wm.LiveVariable' && variable.operation === 'read') {\n return fn(variable._context, {variable: variable, dataFilter: data, options: options});\n } else {\n return fn(variable._context, {variable: variable, inputData: data, options: options});\n }\n } else {\n return fn(variable._context, {variable: variable, data: data, options: options});\n }\n};\nconst getDateTimeFormatForType = (type) => {\n return DEFAULT_FORMATS[_.toUpper(type)];\n};\n\n// Format value for datetime types\nconst _formatDate = (dateValue, type, dateFormatter) => {\n let epoch;\n if (_.isDate(dateValue)) {\n epoch = dateValue.getTime();\n } else {\n if (!isNaN(dateValue)) {\n dateValue = parseInt(dateValue, 10);\n }\n epoch = dateValue && moment(dateValue).valueOf();\n }\n if (isNaN(epoch) && type !== DataType.TIME) {\n return epoch;\n }\n if (type === DataType.TIMESTAMP) {\n return epoch;\n }\n if (type === DataType.TIME && !epoch) {\n epoch = moment(new Date().toDateString() + ' ' + dateValue).valueOf();\n }\n return dateValue && dateFormatter.format(epoch, getDateTimeFormatForType(type));\n};\n\n// Function to convert values of date time types into default formats\nexport const formatDate = (value, type, dateFormatter) => {\n if (_.includes(type, '.')) {\n type = _.toLower(extractType(type));\n }\n if (_.isArray(value)) {\n return _.map(value, function (val) {\n return _formatDate(val, type, dateFormatter);\n });\n }\n return _formatDate(value, type, dateFormatter);\n};\n\nconst parseErrors = (errors) => {\n let errMsg = '';\n if (errors && errors.error && errors.error.length) {\n errors.error.forEach((errorDetails, i) => {\n errMsg += parseError(errorDetails) + (i > 0 ? '\\n' : '');\n });\n }\n return errMsg;\n}\n\nconst parseError = (errorObj) => {\n let errMsg;\n errMsg = errorObj.message ? replace(errorObj.message, errorObj.parameters, true) : ((errorObj.parameters && errorObj.parameters[0]) || '');\n return errMsg;\n}\n\n/**\n * This method filters and returns error message from the failed network call response.\n * @param err, error form network call failure\n */\nexport const getErrMessage = (err: any, localeObject: any) => {\n const HTTP_STATUS_MSG = {\n 404: localeObject['MESSAGE_404_ERROR'] || 'Requested resource not found',\n 401: localeObject['MESSAGE_401_ERROR'] || 'Requested resource requires authentication',\n 403: localeObject['LABEL_FORBIDDEN_MESSAGE'] || 'The requested resource access/action is forbidden.'\n };\n\n // check if error message present for responded http status\n let errMsg = HTTP_STATUS_MSG[err.status];\n let errorDetails = err.error || err.data;\n errorDetails = getValidJSON(errorDetails) || errorDetails;\n\n // WM services have the format of error response as errorDetails.error\n if (errorDetails && errorDetails.errors) {\n errMsg = parseErrors(errorDetails.errors) || errMsg || 'Service Call Failed';\n } else {\n errMsg = errMsg || 'Service Call Failed';\n }\n return errMsg;\n}"]}
@@ -1,21 +0,0 @@
1
- export const entry: string;
2
- export namespace module {
3
- const rules: {
4
- test: RegExp;
5
- use: string;
6
- exclude: RegExp;
7
- }[];
8
- }
9
- export namespace resolve {
10
- const extensions: string[];
11
- }
12
- export const devtool: string;
13
- export namespace output {
14
- const filename: string;
15
- const path: string;
16
- namespace library {
17
- const type: string;
18
- const name: string;
19
- }
20
- const globalObject: string;
21
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes