@techextensor/tab-core-utility 2.2.11 → 2.2.14

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 (99) hide show
  1. package/esm2022/index.mjs +65 -65
  2. package/esm2022/lib/tab-core-utility/app/constants/api-constants.mjs +35 -0
  3. package/esm2022/lib/tab-core-utility/app/constants/common.mjs +33 -0
  4. package/esm2022/lib/tab-core-utility/app/constants/error-messages.mjs +13 -0
  5. package/esm2022/lib/tab-core-utility/app/constants/storage-constants.mjs +16 -0
  6. package/esm2022/lib/tab-core-utility/app/crud/tab-delete.service.mjs +145 -0
  7. package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +40 -0
  8. package/esm2022/lib/tab-core-utility/app/crud/tab-get.service.mjs +131 -0
  9. package/esm2022/lib/tab-core-utility/app/crud/tab-insert.service.mjs +77 -0
  10. package/esm2022/lib/tab-core-utility/app/crud/tab-update.service.mjs +105 -0
  11. package/esm2022/lib/tab-core-utility/app/crud/tab-workflow.service.mjs +43 -0
  12. package/esm2022/lib/tab-core-utility/app/enums/controllers.enum.mjs +26 -0
  13. package/esm2022/lib/tab-core-utility/app/enums/dsq.enum.mjs +48 -0
  14. package/esm2022/lib/tab-core-utility/app/enums/permission.enum.mjs +20 -0
  15. package/esm2022/lib/tab-core-utility/app/enums/query.enum.mjs +14 -0
  16. package/esm2022/lib/tab-core-utility/app/enums/workflow.enum.mjs +37 -0
  17. package/esm2022/lib/tab-core-utility/app/helpers/common/app.helpers.mjs +84 -0
  18. package/esm2022/lib/tab-core-utility/app/helpers/common/dsq.helpers.mjs +70 -0
  19. package/esm2022/lib/tab-core-utility/app/helpers/common/req-res.helpers.mjs +64 -0
  20. package/esm2022/lib/tab-core-utility/app/helpers/common/template.helpers.mjs +58 -0
  21. package/esm2022/lib/tab-core-utility/app/helpers/common/where-clause.helpers.mjs +208 -0
  22. package/esm2022/lib/tab-core-utility/app/helpers/screen/forms.helpers.mjs +38 -0
  23. package/esm2022/lib/tab-core-utility/app/helpers/screen/grid-column-data.helpers.mjs +78 -0
  24. package/esm2022/lib/tab-core-utility/app/helpers/screen/grid.helpers.mjs +112 -0
  25. package/esm2022/lib/tab-core-utility/app/helpers/screen/media-upload.helpers.mjs +77 -0
  26. package/esm2022/lib/tab-core-utility/app/helpers/screen/plugin.helpers.mjs +55 -0
  27. package/esm2022/lib/tab-core-utility/app/helpers/screen/screen.helpers.mjs +26 -0
  28. package/esm2022/lib/tab-core-utility/app/interfaces/grid.interface.mjs +3 -0
  29. package/esm2022/lib/tab-core-utility/app/interfaces/orgInfo.interface.mjs +2 -0
  30. package/esm2022/lib/tab-core-utility/app/interfaces/schema.interface.mjs +2 -0
  31. package/esm2022/lib/tab-core-utility/app/models/api-query.class.mjs +47 -0
  32. package/esm2022/lib/tab-core-utility/app/models/app-object.class.mjs +30 -0
  33. package/esm2022/lib/tab-core-utility/app/models/common.class.mjs +12 -0
  34. package/esm2022/lib/tab-core-utility/app/models/data-source-queries.class.mjs +31 -0
  35. package/esm2022/lib/tab-core-utility/app/utils/filter.util.mjs +75 -0
  36. package/esm2022/lib/tab-core-utility/app/utils/form-builder.util.mjs +39 -0
  37. package/esm2022/lib/tab-core-utility/app/utils/json.util.mjs +138 -0
  38. package/esm2022/lib/tab-core-utility/app/utils/operators.util.mjs +129 -0
  39. package/esm2022/lib/tab-core-utility/app/utils/req-res.util.mjs +168 -0
  40. package/esm2022/lib/tab-core-utility/app/utils/tab-app.util.mjs +99 -0
  41. package/esm2022/lib/tab-core-utility/auth/idb-storage.service.mjs +69 -0
  42. package/esm2022/lib/tab-core-utility/auth/session-storage.service.mjs +52 -0
  43. package/esm2022/lib/tab-core-utility/core/error-handler/error-handler-interceptor.service.mjs +26 -0
  44. package/esm2022/lib/tab-core-utility/core/error-handler/error-handler.store.mjs +21 -0
  45. package/esm2022/lib/tab-core-utility/core/error-handler/models/error-handler.state.mjs +5 -0
  46. package/esm2022/lib/tab-core-utility/core/util/auth.utils.mjs +21 -0
  47. package/esm2022/lib/tab-core-utility/store/auth.store.mjs +43 -0
  48. package/esm2022/lib/tab-core-utility/store/orginfo.store.mjs +42 -0
  49. package/esm2022/lib/tab-core-utility/store/schema.store.mjs +68 -0
  50. package/index.d.ts +54 -0
  51. package/lib/tab-core-utility/app/constants/api-constants.d.ts +32 -0
  52. package/lib/tab-core-utility/app/constants/common.d.ts +8 -0
  53. package/lib/tab-core-utility/app/constants/error-messages.d.ts +6 -0
  54. package/lib/tab-core-utility/app/constants/storage-constants.d.ts +15 -0
  55. package/lib/tab-core-utility/app/crud/tab-delete.service.d.ts +51 -0
  56. package/lib/tab-core-utility/app/crud/tab-formio.service.d.ts +17 -0
  57. package/lib/tab-core-utility/app/crud/tab-get.service.d.ts +58 -0
  58. package/lib/tab-core-utility/app/crud/tab-insert.service.d.ts +37 -0
  59. package/lib/tab-core-utility/app/crud/tab-update.service.d.ts +14 -0
  60. package/lib/tab-core-utility/app/crud/tab-workflow.service.d.ts +20 -0
  61. package/lib/tab-core-utility/app/enums/controllers.enum.d.ts +24 -0
  62. package/lib/tab-core-utility/app/enums/dsq.enum.d.ts +42 -0
  63. package/lib/tab-core-utility/app/enums/permission.enum.d.ts +16 -0
  64. package/lib/tab-core-utility/app/enums/query.enum.d.ts +11 -0
  65. package/lib/tab-core-utility/app/enums/workflow.enum.d.ts +30 -0
  66. package/lib/tab-core-utility/app/helpers/common/app.helpers.d.ts +33 -0
  67. package/lib/tab-core-utility/app/helpers/common/dsq.helpers.d.ts +32 -0
  68. package/lib/tab-core-utility/app/helpers/common/req-res.helpers.d.ts +62 -0
  69. package/lib/tab-core-utility/app/helpers/common/template.helpers.d.ts +25 -0
  70. package/lib/tab-core-utility/app/helpers/common/where-clause.helpers.d.ts +82 -0
  71. package/lib/tab-core-utility/app/helpers/screen/forms.helpers.d.ts +11 -0
  72. package/lib/tab-core-utility/app/helpers/screen/grid-column-data.helpers.d.ts +33 -0
  73. package/lib/tab-core-utility/app/helpers/screen/grid.helpers.d.ts +63 -0
  74. package/lib/tab-core-utility/app/helpers/screen/media-upload.helpers.d.ts +38 -0
  75. package/lib/tab-core-utility/app/helpers/screen/plugin.helpers.d.ts +25 -0
  76. package/lib/tab-core-utility/app/helpers/screen/screen.helpers.d.ts +11 -0
  77. package/lib/tab-core-utility/app/interfaces/grid.interface.d.ts +110 -0
  78. package/lib/tab-core-utility/app/interfaces/orgInfo.interface.d.ts +31 -0
  79. package/lib/tab-core-utility/app/interfaces/schema.interface.d.ts +11 -0
  80. package/lib/tab-core-utility/app/models/api-query.class.d.ts +69 -0
  81. package/lib/tab-core-utility/app/models/app-object.class.d.ts +74 -0
  82. package/lib/tab-core-utility/app/models/common.class.d.ts +24 -0
  83. package/lib/tab-core-utility/app/models/data-source-queries.class.d.ts +95 -0
  84. package/lib/tab-core-utility/app/utils/filter.util.d.ts +30 -0
  85. package/lib/tab-core-utility/app/utils/form-builder.util.d.ts +13 -0
  86. package/lib/tab-core-utility/app/utils/json.util.d.ts +25 -0
  87. package/lib/tab-core-utility/app/utils/operators.util.d.ts +21 -0
  88. package/lib/tab-core-utility/app/utils/req-res.util.d.ts +61 -0
  89. package/lib/tab-core-utility/app/utils/tab-app.util.d.ts +48 -0
  90. package/lib/tab-core-utility/auth/idb-storage.service.d.ts +14 -0
  91. package/lib/tab-core-utility/auth/session-storage.service.d.ts +22 -0
  92. package/lib/tab-core-utility/core/error-handler/error-handler-interceptor.service.d.ts +3 -0
  93. package/lib/tab-core-utility/core/error-handler/error-handler.store.d.ts +10 -0
  94. package/lib/tab-core-utility/core/error-handler/models/error-handler.state.d.ts +5 -0
  95. package/lib/tab-core-utility/core/util/auth.utils.d.ts +9 -0
  96. package/lib/tab-core-utility/store/auth.store.d.ts +19 -0
  97. package/lib/tab-core-utility/store/orginfo.store.d.ts +22 -0
  98. package/lib/tab-core-utility/store/schema.store.d.ts +32 -0
  99. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { ApiService } from '../../../core/http-client/api.service';
4
+ import { getHeaders } from '../../utils/req-res.util';
5
+ import { API } from '../../constants/api-constants';
6
+ import { LocalStorageService } from '../../../auth/local-storage.service';
7
+ import { IdbService } from '../../../auth/idb-storage.service';
8
+ import { Common } from '../../constants/common';
9
+ import { StorageConstants } from '../../constants/storage-constants';
10
+ import * as i0 from "@angular/core";
11
+ export class AppHelper {
12
+ constructor() {
13
+ this.apiService = inject(ApiService);
14
+ this.localStorageService = inject(LocalStorageService);
15
+ this.idbService = inject(IdbService);
16
+ }
17
+ /**
18
+ * Rebuilds the application.
19
+ * @param data Optional data for rebuilding the application
20
+ * @returns Result of the rebuild operation
21
+ */
22
+ rebuildApp(data) {
23
+ const headers = getHeaders();
24
+ if (headers) {
25
+ return this.apiService.post(API.buildApp, data ? data : {}, headers);
26
+ }
27
+ return null;
28
+ }
29
+ /**
30
+ * Publishes the application.
31
+ * @param params Optional parameters for publishing the application
32
+ * @returns Result of the publish operation
33
+ */
34
+ publishApp(params) {
35
+ const headers = getHeaders();
36
+ if (headers) {
37
+ return this.apiService.get(API.publishApp, params, headers);
38
+ }
39
+ return null;
40
+ }
41
+ /**
42
+ * Retrieves screen data.
43
+ * @param params Optional parameters for retrieving screen data
44
+ * @returns Screen data
45
+ */
46
+ getScreen(params) {
47
+ const headers = getHeaders();
48
+ if (headers) {
49
+ return this.apiService.get(API.getScreen, params, headers);
50
+ }
51
+ return null;
52
+ }
53
+ /**
54
+ * Retrieves schema data.
55
+ * @param params Optional parameters for retrieving schema data
56
+ * @returns Subscription for getting schema data
57
+ */
58
+ getSchema(params) {
59
+ const headers = getHeaders();
60
+ if (headers) {
61
+ return this.apiService.get(API.getSchema, params, headers);
62
+ }
63
+ return null;
64
+ }
65
+ storeSchemaIntoIDB() {
66
+ this.idbService.clearIndexedDB();
67
+ this.getSchema()?.subscribe({
68
+ next: (value) => {
69
+ Common.tabJson = JSON.parse(value.Result);
70
+ this.idbService.setItem(StorageConstants.tabData, JSON.parse(value.Result));
71
+ },
72
+ error: (response) => {
73
+ console.log(response);
74
+ }
75
+ });
76
+ }
77
+ static { this.ɵfac = function AppHelper_Factory(t) { return new (t || AppHelper)(); }; }
78
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AppHelper, factory: AppHelper.ɵfac, providedIn: 'root' }); }
79
+ }
80
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppHelper, [{
81
+ type: Injectable,
82
+ args: [{ providedIn: 'root' }]
83
+ }], null, null); })();
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vYXBwLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRXJFLE1BQU0sT0FBTyxTQUFTO0lBRHRCO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQW9FbEQ7SUFqRUM7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxJQUFVO1FBQ25CLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxNQUFZO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLE1BQVk7UUFDcEIsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsTUFBWTtRQUNwQixNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsQ0FBQztZQUMxQixJQUFJLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1lBQy9FLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxRQUFlLEVBQUUsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN6QixDQUFDO1NBQ0osQ0FBQyxDQUFBO0lBQ0YsQ0FBQzswRUFyRVUsU0FBUzt1RUFBVCxTQUFTLFdBQVQsU0FBUyxtQkFESSxNQUFNOztpRkFDbkIsU0FBUztjQURyQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gJy4uLy4uL3V0aWxzL3JlcS1yZXMudXRpbCc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2F1dGgvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWRiU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2F1dGgvaWRiLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFNjaGVtYVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY2hlbWEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHMnO1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQXBwSGVscGVyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaWRiU2VydmljZSA9IGluamVjdChJZGJTZXJ2aWNlKTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJlYnVpbGRzIHRoZSBhcHBsaWNhdGlvbi5cclxuICAgKiBAcGFyYW0gZGF0YSBPcHRpb25hbCBkYXRhIGZvciByZWJ1aWxkaW5nIHRoZSBhcHBsaWNhdGlvblxyXG4gICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgcmVidWlsZCBvcGVyYXRpb25cclxuICAgKi9cclxuICByZWJ1aWxkQXBwKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLmJ1aWxkQXBwLCBkYXRhID8gZGF0YSA6IHt9LCBoZWFkZXJzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHVibGlzaGVzIHRoZSBhcHBsaWNhdGlvbi5cclxuICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHB1Ymxpc2hpbmcgdGhlIGFwcGxpY2F0aW9uXHJcbiAgICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSBwdWJsaXNoIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHB1Ymxpc2hBcHAocGFyYW1zPzogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoQVBJLnB1Ymxpc2hBcHAsIHBhcmFtcywgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBzY3JlZW4gZGF0YS5cclxuICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHJldHJpZXZpbmcgc2NyZWVuIGRhdGFcclxuICAgKiBAcmV0dXJucyBTY3JlZW4gZGF0YVxyXG4gICAqL1xyXG4gIGdldFNjcmVlbihwYXJhbXM/OiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChBUEkuZ2V0U2NyZWVuLCBwYXJhbXMsIGhlYWRlcnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgc2NoZW1hIGRhdGEuXHJcbiAgICogQHBhcmFtIHBhcmFtcyBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciByZXRyaWV2aW5nIHNjaGVtYSBkYXRhXHJcbiAgICogQHJldHVybnMgU3Vic2NyaXB0aW9uIGZvciBnZXR0aW5nIHNjaGVtYSBkYXRhXHJcbiAgICovXHJcbiAgZ2V0U2NoZW1hKHBhcmFtcz86IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0KEFQSS5nZXRTY2hlbWEsIHBhcmFtcywgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHN0b3JlU2NoZW1hSW50b0lEQigpe1xyXG4gICAgdGhpcy5pZGJTZXJ2aWNlLmNsZWFySW5kZXhlZERCKClcclxuICAgIHRoaXMuZ2V0U2NoZW1hKCk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICh2YWx1ZTogU2NoZW1hUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIENvbW1vbi50YWJKc29uID0gSlNPTi5wYXJzZSh2YWx1ZS5SZXN1bHQpO1xyXG4gICAgICAgICAgdGhpcy5pZGJTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUNvbnN0YW50cy50YWJEYXRhLCBKU09OLnBhcnNlKHZhbHVlLlJlc3VsdCkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAocmVzcG9uc2U6IEVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSlcclxuICAgICAgfVxyXG4gIH0pXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,70 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { ApiService } from '../../../core/http-client/api.service';
4
+ import { QueryType } from '../../enums/query.enum';
5
+ import { API } from '../../constants/api-constants';
6
+ import { getHeaders } from '../../utils/req-res.util';
7
+ import { getAppObjectFromDataSourceQueryID } from '../../utils/tab-app.util';
8
+ import { AccessPermission } from '../../enums/permission.enum';
9
+ import * as i0 from "@angular/core";
10
+ export class DSQHelper {
11
+ constructor() {
12
+ this.apiService = inject(ApiService);
13
+ }
14
+ /**
15
+ * Executes a query based on the query type
16
+ * @param data The data to be executed
17
+ * @param queryType The type of query to be executed
18
+ * @returns The result of the query execution
19
+ */
20
+ executeQuery(data, queryType) {
21
+ switch (queryType) {
22
+ case QueryType.Insert:
23
+ return this.execution(data, API.insert);
24
+ case QueryType.Update:
25
+ return this.execution(data, API.update);
26
+ case QueryType.Delete:
27
+ return this.execution(data, API.delete);
28
+ case QueryType.Select:
29
+ return this.execution(data, API.select);
30
+ default:
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Executes an HTTP POST request with the provided data and URL
36
+ * @param data The data to be sent in the POST request
37
+ * @param endPointName The URL to send the POST request to
38
+ * @returns The result of the POST request if headers are available, otherwise null
39
+ */
40
+ execution(data, endPointName) {
41
+ const headers = getHeaders();
42
+ if (headers) {
43
+ return this.apiService.post(endPointName, data, headers);
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * Checks if the user has access to the specified object based on roles and access type
49
+ * @param dsqId The DataSourceQuery ID to check access for
50
+ * @param accessType The type of access to check (e.g., read, write)
51
+ * @param roles The roles of the user with IDs
52
+ * @returns True if the user has access, false otherwise
53
+ */
54
+ doesHaveObjectAccess(dsqId, accessType, roles) {
55
+ const appObject = getAppObjectFromDataSourceQueryID(dsqId);
56
+ if (appObject) {
57
+ const accessList = appObject.AccessList.filter((access) => roles.some((role) => access.RoleID.toLowerCase() === role.ID.toLowerCase() &&
58
+ access.IsEnabled));
59
+ return accessList.some((access) => access[accessType] === AccessPermission.All);
60
+ }
61
+ return false;
62
+ }
63
+ static { this.ɵfac = function DSQHelper_Factory(t) { return new (t || DSQHelper)(); }; }
64
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DSQHelper, factory: DSQHelper.ɵfac, providedIn: 'root' }); }
65
+ }
66
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DSQHelper, [{
67
+ type: Injectable,
68
+ args: [{ providedIn: 'root' }]
69
+ }], null, null); })();
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNxLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vZHNxLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQW1FbEQ7SUFqRUM7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsSUFBUyxFQUFFLFNBQW9CO1FBQzFDLFFBQVEsU0FBUyxFQUFFLENBQUM7WUFDbEIsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUM7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFNBQVMsQ0FBQyxJQUFTLEVBQUUsWUFBb0I7UUFDL0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsb0JBQW9CLENBQ2xCLEtBQWEsRUFDYixVQUFzQixFQUN0QixLQUF1QjtRQUV2QixNQUFNLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxVQUFVLEdBQVUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUNwRSxLQUFLLENBQUMsSUFBSSxDQUNSLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFO2dCQUNyRCxNQUFNLENBQUMsU0FBUyxDQUNuQixDQUNGLENBQUM7WUFFRixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQ3BCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsR0FBRyxDQUN4RCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzswRUFuRVUsU0FBUzt1RUFBVCxTQUFTLFdBQVQsU0FBUyxtQkFESSxNQUFNOztpRkFDbkIsU0FBUztjQURyQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlcnlUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvcXVlcnkuZW51bSc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gJy4uLy4uL3V0aWxzL3JlcS1yZXMudXRpbCc7XHJcbmltcG9ydCB7IGdldEFwcE9iamVjdEZyb21EYXRhU291cmNlUXVlcnlJRCB9IGZyb20gJy4uLy4uL3V0aWxzL3RhYi1hcHAudXRpbCc7XHJcbmltcG9ydCB7IEFjY2Vzc1Blcm1pc3Npb24sIEFjY2Vzc1R5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wZXJtaXNzaW9uLmVudW0nO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIERTUUhlbHBlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBhIHF1ZXJ5IGJhc2VkIG9uIHRoZSBxdWVyeSB0eXBlXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gYmUgZXhlY3V0ZWRcclxuICAgKiBAcGFyYW0gcXVlcnlUeXBlIFRoZSB0eXBlIG9mIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgcXVlcnkgZXhlY3V0aW9uXHJcbiAgICovXHJcbiAgZXhlY3V0ZVF1ZXJ5KGRhdGE6IGFueSwgcXVlcnlUeXBlOiBRdWVyeVR5cGUpIHtcclxuICAgIHN3aXRjaCAocXVlcnlUeXBlKSB7XHJcbiAgICAgIGNhc2UgUXVlcnlUeXBlLkluc2VydDpcclxuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb24oZGF0YSwgQVBJLmluc2VydCk7XHJcbiAgICAgIGNhc2UgUXVlcnlUeXBlLlVwZGF0ZTpcclxuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb24oZGF0YSwgQVBJLnVwZGF0ZSk7XHJcbiAgICAgIGNhc2UgUXVlcnlUeXBlLkRlbGV0ZTpcclxuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb24oZGF0YSwgQVBJLmRlbGV0ZSk7XHJcbiAgICAgIGNhc2UgUXVlcnlUeXBlLlNlbGVjdDpcclxuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb24oZGF0YSwgQVBJLnNlbGVjdCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBhbiBIVFRQIFBPU1QgcmVxdWVzdCB3aXRoIHRoZSBwcm92aWRlZCBkYXRhIGFuZCBVUkxcclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBiZSBzZW50IGluIHRoZSBQT1NUIHJlcXVlc3RcclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgdG8gc2VuZCB0aGUgUE9TVCByZXF1ZXN0IHRvXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgUE9TVCByZXF1ZXN0IGlmIGhlYWRlcnMgYXJlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIG51bGxcclxuICAgKi9cclxuICBwcml2YXRlIGV4ZWN1dGlvbihkYXRhOiBhbnksIGVuZFBvaW50TmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGVuZFBvaW50TmFtZSwgZGF0YSwgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgdXNlciBoYXMgYWNjZXNzIHRvIHRoZSBzcGVjaWZpZWQgb2JqZWN0IGJhc2VkIG9uIHJvbGVzIGFuZCBhY2Nlc3MgdHlwZVxyXG4gICAqIEBwYXJhbSBkc3FJZCBUaGUgRGF0YVNvdXJjZVF1ZXJ5IElEIHRvIGNoZWNrIGFjY2VzcyBmb3JcclxuICAgKiBAcGFyYW0gYWNjZXNzVHlwZSBUaGUgdHlwZSBvZiBhY2Nlc3MgdG8gY2hlY2sgKGUuZy4sIHJlYWQsIHdyaXRlKVxyXG4gICAqIEBwYXJhbSByb2xlcyBUaGUgcm9sZXMgb2YgdGhlIHVzZXIgd2l0aCBJRHNcclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB1c2VyIGhhcyBhY2Nlc3MsIGZhbHNlIG90aGVyd2lzZVxyXG4gICAqL1xyXG4gIGRvZXNIYXZlT2JqZWN0QWNjZXNzKFxyXG4gICAgZHNxSWQ6IHN0cmluZyxcclxuICAgIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGUsXHJcbiAgICByb2xlczogW3sgSUQ6IHN0cmluZyB9XVxyXG4gICkge1xyXG4gICAgY29uc3QgYXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0RnJvbURhdGFTb3VyY2VRdWVyeUlEKGRzcUlkKTtcclxuXHJcbiAgICBpZiAoYXBwT2JqZWN0KSB7XHJcbiAgICAgIGNvbnN0IGFjY2Vzc0xpc3Q6IGFueVtdID0gYXBwT2JqZWN0LkFjY2Vzc0xpc3QuZmlsdGVyKChhY2Nlc3M6IGFueSkgPT5cclxuICAgICAgICByb2xlcy5zb21lKFxyXG4gICAgICAgICAgKHJvbGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzcy5Sb2xlSUQudG9Mb3dlckNhc2UoKSA9PT0gcm9sZS5JRC50b0xvd2VyQ2FzZSgpICYmXHJcbiAgICAgICAgICAgIGFjY2Vzcy5Jc0VuYWJsZWRcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICByZXR1cm4gYWNjZXNzTGlzdC5zb21lKFxyXG4gICAgICAgIChhY2Nlc3MpID0+IGFjY2Vzc1thY2Nlc3NUeXBlXSA9PT0gQWNjZXNzUGVybWlzc2lvbi5BbGxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,64 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable } from '@angular/core';
3
+ import { QueryType } from '../../enums/query.enum';
4
+ import * as i0 from "@angular/core";
5
+ export class RequestResponseHelper {
6
+ /**
7
+ * Generates the payload for inserting data into a table
8
+ * @param table The table name to insert data into
9
+ * @param whereClause The filter criteria for the insert operation
10
+ * @param value The value sets to be inserted
11
+ * @returns The payload for the insert operation
12
+ */
13
+ insertPayload(table, whereClause, value) {
14
+ return this.createPayload(table, whereClause, value, QueryType.Insert);
15
+ }
16
+ /**
17
+ * Generates the payload for deleting data from a table
18
+ * @param tableName The table name to delete data from
19
+ * @param whereClause The filter criteria for the delete operation
20
+ * @returns The payload for the delete operation
21
+ */
22
+ deletePayload(tableName, whereClause) {
23
+ return {
24
+ QueryObjectID: tableName,
25
+ QueryType: QueryType.Delete,
26
+ Joins: [],
27
+ WhereClause: whereClause,
28
+ };
29
+ }
30
+ /**
31
+ * Generates the payload for updating data in a table
32
+ * @param tableName The table name to update data in
33
+ * @param whereClause The filter criteria for the update operation
34
+ * @param value The value sets to be updated
35
+ * @returns The payload for the update operation
36
+ */
37
+ updateRequestPayload(tableName, whereClause, value) {
38
+ return this.createPayload(tableName, whereClause, value, QueryType.Update);
39
+ }
40
+ /**
41
+ * Creates a payload object based on the input parameters
42
+ * @param table The table name for the payload
43
+ * @param whereClause The filter criteria for the payload
44
+ * @param value The value sets for the payload
45
+ * @param queryType The type of query for the payload
46
+ * @returns The payload object with QueryObjectID, QueryType, Joins, WhereClause, and Values
47
+ */
48
+ createPayload(table, whereClause, value, queryType) {
49
+ return {
50
+ QueryObjectID: table,
51
+ QueryType: queryType,
52
+ Joins: [],
53
+ WhereClause: whereClause,
54
+ Values: value,
55
+ };
56
+ }
57
+ static { this.ɵfac = function RequestResponseHelper_Factory(t) { return new (t || RequestResponseHelper)(); }; }
58
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: RequestResponseHelper, factory: RequestResponseHelper.ɵfac, providedIn: 'root' }); }
59
+ }
60
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RequestResponseHelper, [{
61
+ type: Injectable,
62
+ args: [{ providedIn: 'root' }]
63
+ }], null, null); })();
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLXJlcy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRW5ELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEM7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUNYLEtBQWEsRUFDYixXQUE4QixFQUM5QixLQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxTQUFpQixFQUFFLFdBQThCO1FBQzdELE9BQU87WUFDTCxhQUFhLEVBQUUsU0FBUztZQUN4QixTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDM0IsS0FBSyxFQUFFLEVBQUU7WUFDVCxXQUFXLEVBQUUsV0FBVztTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILG9CQUFvQixDQUNsQixTQUFpQixFQUNqQixXQUE4QixFQUM5QixLQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsYUFBYSxDQUNYLEtBQWEsRUFDYixXQUE4QixFQUM5QixLQUFxQixFQUNyQixTQUFvQjtRQUVwQixPQUFPO1lBQ0wsYUFBYSxFQUFFLEtBQUs7WUFDcEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsS0FBSyxFQUFFLEVBQUU7WUFDVCxXQUFXLEVBQUUsV0FBVztZQUN4QixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUM7SUFDSixDQUFDO3NGQW5FVSxxQkFBcUI7dUVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUIsbUJBRFIsTUFBTTs7aUZBQ25CLHFCQUFxQjtjQURqQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBUElGaWx0ZXJDcml0ZXJpYSwgQVBJVmFsdWVTZXRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwaS1xdWVyeS5jbGFzcyc7XHJcbmltcG9ydCB7IFF1ZXJ5VHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3F1ZXJ5LmVudW0nO1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdFJlc3BvbnNlSGVscGVyIHtcclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgdGhlIHBheWxvYWQgZm9yIGluc2VydGluZyBkYXRhIGludG8gYSB0YWJsZVxyXG4gICAqIEBwYXJhbSB0YWJsZSBUaGUgdGFibGUgbmFtZSB0byBpbnNlcnQgZGF0YSBpbnRvXHJcbiAgICogQHBhcmFtIHdoZXJlQ2xhdXNlIFRoZSBmaWx0ZXIgY3JpdGVyaWEgZm9yIHRoZSBpbnNlcnQgb3BlcmF0aW9uXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBzZXRzIHRvIGJlIGluc2VydGVkXHJcbiAgICogQHJldHVybnMgVGhlIHBheWxvYWQgZm9yIHRoZSBpbnNlcnQgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgaW5zZXJ0UGF5bG9hZChcclxuICAgIHRhYmxlOiBzdHJpbmcsXHJcbiAgICB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEsXHJcbiAgICB2YWx1ZTogQVBJVmFsdWVTZXRzW11cclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVBheWxvYWQodGFibGUsIHdoZXJlQ2xhdXNlLCB2YWx1ZSwgUXVlcnlUeXBlLkluc2VydCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgdGhlIHBheWxvYWQgZm9yIGRlbGV0aW5nIGRhdGEgZnJvbSBhIHRhYmxlXHJcbiAgICogQHBhcmFtIHRhYmxlTmFtZSBUaGUgdGFibGUgbmFtZSB0byBkZWxldGUgZGF0YSBmcm9tXHJcbiAgICogQHBhcmFtIHdoZXJlQ2xhdXNlIFRoZSBmaWx0ZXIgY3JpdGVyaWEgZm9yIHRoZSBkZWxldGUgb3BlcmF0aW9uXHJcbiAgICogQHJldHVybnMgVGhlIHBheWxvYWQgZm9yIHRoZSBkZWxldGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgZGVsZXRlUGF5bG9hZCh0YWJsZU5hbWU6IHN0cmluZywgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBRdWVyeU9iamVjdElEOiB0YWJsZU5hbWUsXHJcbiAgICAgIFF1ZXJ5VHlwZTogUXVlcnlUeXBlLkRlbGV0ZSxcclxuICAgICAgSm9pbnM6IFtdLFxyXG4gICAgICBXaGVyZUNsYXVzZTogd2hlcmVDbGF1c2UsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBwYXlsb2FkIGZvciB1cGRhdGluZyBkYXRhIGluIGEgdGFibGVcclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSB0YWJsZSBuYW1lIHRvIHVwZGF0ZSBkYXRhIGluXHJcbiAgICogQHBhcmFtIHdoZXJlQ2xhdXNlIFRoZSBmaWx0ZXIgY3JpdGVyaWEgZm9yIHRoZSB1cGRhdGUgb3BlcmF0aW9uXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBzZXRzIHRvIGJlIHVwZGF0ZWRcclxuICAgKiBAcmV0dXJucyBUaGUgcGF5bG9hZCBmb3IgdGhlIHVwZGF0ZSBvcGVyYXRpb25cclxuICAgKi9cclxuICB1cGRhdGVSZXF1ZXN0UGF5bG9hZChcclxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxyXG4gICAgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhLFxyXG4gICAgdmFsdWU6IEFQSVZhbHVlU2V0c1tdXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVQYXlsb2FkKHRhYmxlTmFtZSwgd2hlcmVDbGF1c2UsIHZhbHVlLCBRdWVyeVR5cGUuVXBkYXRlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBwYXlsb2FkIG9iamVjdCBiYXNlZCBvbiB0aGUgaW5wdXQgcGFyYW1ldGVyc1xyXG4gICAqIEBwYXJhbSB0YWJsZSBUaGUgdGFibGUgbmFtZSBmb3IgdGhlIHBheWxvYWRcclxuICAgKiBAcGFyYW0gd2hlcmVDbGF1c2UgVGhlIGZpbHRlciBjcml0ZXJpYSBmb3IgdGhlIHBheWxvYWRcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHNldHMgZm9yIHRoZSBwYXlsb2FkXHJcbiAgICogQHBhcmFtIHF1ZXJ5VHlwZSBUaGUgdHlwZSBvZiBxdWVyeSBmb3IgdGhlIHBheWxvYWRcclxuICAgKiBAcmV0dXJucyBUaGUgcGF5bG9hZCBvYmplY3Qgd2l0aCBRdWVyeU9iamVjdElELCBRdWVyeVR5cGUsIEpvaW5zLCBXaGVyZUNsYXVzZSwgYW5kIFZhbHVlc1xyXG4gICAqL1xyXG4gIGNyZWF0ZVBheWxvYWQoXHJcbiAgICB0YWJsZTogc3RyaW5nLFxyXG4gICAgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhLFxyXG4gICAgdmFsdWU6IEFQSVZhbHVlU2V0c1tdLFxyXG4gICAgcXVlcnlUeXBlOiBRdWVyeVR5cGVcclxuICApIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIFF1ZXJ5T2JqZWN0SUQ6IHRhYmxlLFxyXG4gICAgICBRdWVyeVR5cGU6IHF1ZXJ5VHlwZSxcclxuICAgICAgSm9pbnM6IFtdLFxyXG4gICAgICBXaGVyZUNsYXVzZTogd2hlcmVDbGF1c2UsXHJcbiAgICAgIFZhbHVlczogdmFsdWUsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,58 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { ApiService } from '../../../core/http-client/api.service';
4
+ import { API } from '../../constants/api-constants';
5
+ import { Liquid } from 'liquidjs';
6
+ import { of } from 'rxjs';
7
+ import { getHeaders } from '../../utils/req-res.util';
8
+ import * as i0 from "@angular/core";
9
+ export class TemplateHelper {
10
+ constructor() {
11
+ this.apiService = inject(ApiService);
12
+ this.engine = new Liquid();
13
+ }
14
+ /**
15
+ * Parses the template using local rendering.
16
+ *
17
+ * @param template - The template to be parsed.
18
+ * @param templateVariables - The variables to be used for template rendering.
19
+ * @returns The rendered template result.
20
+ */
21
+ templateParseLocally(template, templateVariables) {
22
+ return this.engine.parseAndRenderSync(template ?? '', templateVariables && templateVariables !== '' ? JSON.parse(templateVariables) : {});
23
+ }
24
+ /**
25
+ * Parses the template universally, either using local rendering or server-side rendering.
26
+ *
27
+ * @param data - The data to be used for template parsing.
28
+ * @param shouldFailOnServerParse - Indicates whether to fail on server-side parse if local parsing fails.
29
+ * @returns An observable that emits the parsed template result.
30
+ */
31
+ templateParseUniversal(data, onFailedParseOnServer = true) {
32
+ let html = '';
33
+ try {
34
+ html = this.templateParseLocally(data.Value, data.Templatevariables);
35
+ }
36
+ catch (error) {
37
+ console.log('Local parse failed', error);
38
+ if (onFailedParseOnServer) {
39
+ return this.templateParse(data);
40
+ }
41
+ }
42
+ return of({ Result: html });
43
+ }
44
+ templateParse(data) {
45
+ const headers = getHeaders();
46
+ if (headers) {
47
+ return this.apiService.post(API.templateParse, data, headers);
48
+ }
49
+ return of(null);
50
+ }
51
+ static { this.ɵfac = function TemplateHelper_Factory(t) { return new (t || TemplateHelper)(); }; }
52
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TemplateHelper, factory: TemplateHelper.ɵfac, providedIn: 'root' }); }
53
+ }
54
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TemplateHelper, [{
55
+ type: Injectable,
56
+ args: [{ providedIn: 'root' }]
57
+ }], null, null); })();
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi90ZW1wbGF0ZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBR3RELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7S0E2Qy9CO0lBM0NDOzs7Ozs7T0FNRztJQUNILG9CQUFvQixDQUFDLFFBQWdCLEVBQUUsaUJBQXlCO1FBQzlELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FDbkMsUUFBUSxJQUFJLEVBQUUsRUFDZCxpQkFBaUIsSUFBSSxpQkFBaUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHNCQUFzQixDQUFDLElBQVMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzVELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBUztRQUM3QixNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQzsrRUE5Q1UsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERCxNQUFNOztpRkFDbkIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBMaXF1aWQgfSBmcm9tICdsaXF1aWRqcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tICcuLi8uLi91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlSGVscGVyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBlbmdpbmUgPSBuZXcgTGlxdWlkKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB0aGUgdGVtcGxhdGUgdXNpbmcgbG9jYWwgcmVuZGVyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlIC0gVGhlIHRlbXBsYXRlIHRvIGJlIHBhcnNlZC5cclxuICAgKiBAcGFyYW0gdGVtcGxhdGVWYXJpYWJsZXMgLSBUaGUgdmFyaWFibGVzIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHJlbmRlcmluZy5cclxuICAgKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgdGVtcGxhdGUgcmVzdWx0LlxyXG4gICAqL1xyXG4gIHRlbXBsYXRlUGFyc2VMb2NhbGx5KHRlbXBsYXRlOiBzdHJpbmcsIHRlbXBsYXRlVmFyaWFibGVzOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lLnBhcnNlQW5kUmVuZGVyU3luYyhcclxuICAgICAgdGVtcGxhdGUgPz8gJycsXHJcbiAgICAgIHRlbXBsYXRlVmFyaWFibGVzICYmIHRlbXBsYXRlVmFyaWFibGVzICE9PSAnJyA/IEpTT04ucGFyc2UodGVtcGxhdGVWYXJpYWJsZXMpIDoge31cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYXJzZXMgdGhlIHRlbXBsYXRlIHVuaXZlcnNhbGx5LCBlaXRoZXIgdXNpbmcgbG9jYWwgcmVuZGVyaW5nIG9yIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gYmUgdXNlZCBmb3IgdGVtcGxhdGUgcGFyc2luZy5cclxuICAgKiBAcGFyYW0gc2hvdWxkRmFpbE9uU2VydmVyUGFyc2UgLSBJbmRpY2F0ZXMgd2hldGhlciB0byBmYWlsIG9uIHNlcnZlci1zaWRlIHBhcnNlIGlmIGxvY2FsIHBhcnNpbmcgZmFpbHMuXHJcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBwYXJzZWQgdGVtcGxhdGUgcmVzdWx0LlxyXG4gICAqL1xyXG4gIHRlbXBsYXRlUGFyc2VVbml2ZXJzYWwoZGF0YTogYW55LCBvbkZhaWxlZFBhcnNlT25TZXJ2ZXIgPSB0cnVlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBodG1sID0gJyc7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaHRtbCA9IHRoaXMudGVtcGxhdGVQYXJzZUxvY2FsbHkoZGF0YS5WYWx1ZSwgZGF0YS5UZW1wbGF0ZXZhcmlhYmxlcyk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZygnTG9jYWwgcGFyc2UgZmFpbGVkJywgZXJyb3IpO1xyXG4gICAgICBpZiAob25GYWlsZWRQYXJzZU9uU2VydmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVQYXJzZShkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvZih7IFJlc3VsdDogaHRtbCB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdGVtcGxhdGVQYXJzZShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkudGVtcGxhdGVQYXJzZSwgZGF0YSwgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,208 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable } from '@angular/core';
3
+ import { from } from 'rxjs';
4
+ import { filter, map, toArray } from 'rxjs/operators';
5
+ import { ConjuctionClause, RelationalOperator, FilterValueType, } from '../../enums/dsq.enum';
6
+ import { APIFilterCriteria } from '../../models/api-query.class';
7
+ import { getAppObjectFromSystemDBTableName, getAppObject, } from '../../utils/tab-app.util';
8
+ import * as i0 from "@angular/core";
9
+ export class WhereClauseHelper {
10
+ /**
11
+ * Binds the where clause for deleting records based on field, value, field name, and CRUD table name
12
+ * @param fields The fields to bind the where clause
13
+ * @param value The value to match in the where clause
14
+ * @param fieldName The field name to match in the where clause
15
+ * @param crudTableName The CRUD table name for the where clause
16
+ * @returns The bound where clause for delete operation
17
+ */
18
+ bindWhereClauseForDelete(fields, value, fieldName, crudTableName) {
19
+ const appobj = getAppObjectFromSystemDBTableName(crudTableName);
20
+ if (appobj && appobj.CRUDAppObjectId !== null) {
21
+ const crudAppObj = getAppObject(appobj.CRUDAppObjectId);
22
+ if (crudAppObj) {
23
+ crudTableName = crudAppObj.SystemDBTableName;
24
+ }
25
+ }
26
+ return this.bindWhereClause(fields, value, fieldName, crudTableName);
27
+ }
28
+ /**
29
+ * Binds the where clause for deleting records with multiple primary keys
30
+ * @param data The data containing primary key values
31
+ * @param fieldName The field name of the primary key
32
+ * @param crudTableName The CRUD table name for the where clause
33
+ * @returns The bound where clause for delete operation with multiple primary keys
34
+ */
35
+ bindWhereClauseForDeleteWithMultiplePrimaryKeys(data, fieldName, crudTableName) {
36
+ return this.bindWhereClauseForMultiplePrimaryKeys(data, fieldName, crudTableName);
37
+ }
38
+ /**
39
+ * Binds the where clause for an insert operation
40
+ * @returns The bound where clause for insert operation
41
+ */
42
+ bindWhereClauseForInsert() {
43
+ return this.bindWhereClauseEmpty();
44
+ }
45
+ /**
46
+ * Binds an empty where clause
47
+ * @returns The bound empty where clause
48
+ */
49
+ bindWhereClauseEmpty() {
50
+ const whereClause = new APIFilterCriteria();
51
+ whereClause.FilterLogic = '1';
52
+ whereClause.Filters = [];
53
+ return whereClause;
54
+ }
55
+ /**
56
+ * Binds the where clause based on provided parameters
57
+ * @param fields The fields to bind the where clause
58
+ * @param value The value to match in the where clause
59
+ * @param fieldName The field name to match in the where clause
60
+ * @param crudTableName The CRUD table name for the where clause
61
+ * @returns The bound where clause
62
+ */
63
+ bindWhereClause(fields, value, fieldName, crudTableName) {
64
+ return from(fields).pipe(filter((f) => fieldName
65
+ ? f.Field?.FieldName === fieldName
66
+ : f.Field?.FieldName === 'Id' || f.Field?.FieldName === 'ID'), map((field) => ({
67
+ ConjuctionClause: ConjuctionClause.AND,
68
+ FieldID: crudTableName + '.' + field.Field.SystemDBFieldName,
69
+ RelationalOperator: RelationalOperator.EqualTo,
70
+ ValueType: FilterValueType.Literal,
71
+ value: value,
72
+ Sequence: 0,
73
+ GroupID: 0,
74
+ })), toArray(), map((filters) => {
75
+ const whereClause = new APIFilterCriteria();
76
+ whereClause.Filters = filters;
77
+ whereClause.FilterLogic = '1';
78
+ return whereClause;
79
+ }));
80
+ }
81
+ /**
82
+ * Binds the where clause for deleting records with multiple primary keys
83
+ * @param data The data containing primary key values
84
+ * @param primaryKeys The array of primary key fields
85
+ * @param crudTableName The CRUD table name for the where clause
86
+ * @returns The bound where clause for delete operation with multiple primary keys
87
+ */
88
+ bindWhereClauseForMultiplePrimaryKeys(data, primaryKeys, crudTableName) {
89
+ const whereClause = new APIFilterCriteria();
90
+ whereClause.Filters = [];
91
+ if (primaryKeys && primaryKeys.length > 0) {
92
+ primaryKeys.forEach((element) => {
93
+ const value = data[element.FieldName];
94
+ if (value) {
95
+ const filter = {
96
+ ConjuctionClause: ConjuctionClause.AND,
97
+ FieldID: crudTableName + '.' + element.SystemDBFieldName,
98
+ RelationalOperator: RelationalOperator.EqualTo,
99
+ ValueType: FilterValueType.Literal,
100
+ value: value,
101
+ Sequence: 0,
102
+ GroupID: 0,
103
+ };
104
+ whereClause.Filters.push(filter);
105
+ }
106
+ });
107
+ }
108
+ whereClause.FilterLogic = '1';
109
+ return whereClause;
110
+ }
111
+ /**
112
+ * Binds the where clause for updating records
113
+ * @param tableName The name of the table to update
114
+ * @param queryFieldsArray The array of fields and values for the update query
115
+ * @returns The bound where clause for update operation
116
+ */
117
+ bindWhereClauseForUpdate(tableName, queryFieldsArray) {
118
+ const whereClause = new APIFilterCriteria();
119
+ whereClause.Filters = [];
120
+ if (queryFieldsArray.length) {
121
+ queryFieldsArray.forEach((element) => {
122
+ const filter = {
123
+ ConjuctionClause: ConjuctionClause.AND,
124
+ FieldID: tableName + '.' + element.FieldName,
125
+ RelationalOperator: RelationalOperator.EqualTo,
126
+ ValueType: FilterValueType.Literal,
127
+ value: element.FieldValue,
128
+ Sequence: 0,
129
+ GroupID: 0,
130
+ };
131
+ whereClause.Filters.push(filter);
132
+ });
133
+ }
134
+ whereClause.FilterLogic = '1';
135
+ return whereClause;
136
+ }
137
+ /**
138
+ * Binds the where clause for deleting records by table and primary key
139
+ * @param tableName The name of the table from which to delete records
140
+ * @param primaryKey The name of the primary key field
141
+ * @param primaryKeyValue The value of the primary key
142
+ * @returns The bound where clause for delete operation using table and primary key
143
+ */
144
+ bindWhereClauseForDeleteByTable(tableName, primaryKey, primaryKeyValue) {
145
+ const whereClause = new APIFilterCriteria();
146
+ whereClause.Filters = [];
147
+ const filter = {
148
+ ConjuctionClause: ConjuctionClause.AND,
149
+ FieldID: tableName + '.' + primaryKey,
150
+ RelationalOperator: RelationalOperator.EqualTo,
151
+ ValueType: FilterValueType.Literal,
152
+ value: primaryKeyValue,
153
+ Sequence: 0,
154
+ GroupID: 0,
155
+ };
156
+ whereClause.Filters.push(filter);
157
+ whereClause.FilterLogic = '1';
158
+ return whereClause;
159
+ }
160
+ /**
161
+ * Binds the where clause for deleting records using IN operator by table
162
+ * @param tableName The name of the table from which to delete records
163
+ * @param primaryKey The name of the primary key field
164
+ * @param values The array of values for the IN operator
165
+ * @returns The bound where clause for delete operation using IN operator and table
166
+ */
167
+ bindWhereClauseForDeleteUsingInOperatorByTable(tableName, primaryKey, values) {
168
+ const appobj = getAppObjectFromSystemDBTableName(tableName);
169
+ if (appobj?.CRUDAppObjectId !== null) {
170
+ const crudAppObj = getAppObject(appobj.CRUDAppObjectId);
171
+ if (crudAppObj) {
172
+ tableName = crudAppObj.SystemDBTableName;
173
+ }
174
+ }
175
+ const whereClause = new APIFilterCriteria();
176
+ whereClause.Filters = [];
177
+ const filter = {
178
+ ConjuctionClause: ConjuctionClause.AND,
179
+ FieldID: tableName + '.' + primaryKey,
180
+ RelationalOperator: RelationalOperator.IN,
181
+ ValueType: FilterValueType.Literal,
182
+ value: values.join(','),
183
+ Sequence: 0,
184
+ GroupID: 0,
185
+ };
186
+ whereClause.Filters.push(filter);
187
+ whereClause.FilterLogic = '1';
188
+ return whereClause;
189
+ }
190
+ /**
191
+ * Binds the where clause for updating records in a grid
192
+ * @param Fields The fields to bind the where clause
193
+ * @param value The value to match in the where clause
194
+ * @param fieldName The field name to match in the where clause
195
+ * @param crudTableName The CRUD table name for the where clause
196
+ * @returns The bound where clause for update operation in a grid
197
+ */
198
+ bindWhereClauseForUpdateGrid(Fields, value, fieldName, crudTableName) {
199
+ return this.bindWhereClause(Fields, value, fieldName, crudTableName);
200
+ }
201
+ static { this.ɵfac = function WhereClauseHelper_Factory(t) { return new (t || WhereClauseHelper)(); }; }
202
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WhereClauseHelper, factory: WhereClauseHelper.ɵfac, providedIn: 'root' }); }
203
+ }
204
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WhereClauseHelper, [{
205
+ type: Injectable,
206
+ args: [{ providedIn: 'root' }]
207
+ }], null, null); })();
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hlcmUtY2xhdXNlLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vd2hlcmUtY2xhdXNlLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixlQUFlLEdBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQyxZQUFZLEdBQ2IsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHbEMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7OztPQU9HO0lBQ0gsd0JBQXdCLENBQ3RCLE1BQVcsRUFDWCxLQUFVLEVBQ1YsU0FBaUIsRUFDakIsYUFBcUI7UUFFckIsTUFBTSxNQUFNLEdBQUcsaUNBQWlDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3hELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsYUFBYSxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFD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QyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3pDLFNBQVMsRUFBRSxlQUFlLENBQUMsT0FBTztZQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDdkIsUUFBUSxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsQ0FBQztTQUNYLENBQUM7UUFDRixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxXQUFXLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUM5QixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILDRCQUE0QixDQUMxQixNQUFXLEVBQ1gsS0FBVSxFQUNWLFNBQWlCLEVBQ2pCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN2RSxDQUFDO2tGQWxQVSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBREosTUFBTTs7aUZBQ25CLGlCQUFpQjtjQUQ3QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb25qdWN0aW9uQ2xhdXNlLFxyXG4gIFJlbGF0aW9uYWxPcGVyYXRvcixcclxuICBGaWx0ZXJWYWx1ZVR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vZW51bXMvZHNxLmVudW0nO1xyXG5pbXBvcnQgeyBBUElGaWx0ZXJDcml0ZXJpYSB9IGZyb20gJy4uLy4uL21vZGVscy9hcGktcXVlcnkuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSxcclxuICBnZXRBcHBPYmplY3QsXHJcbn0gZnJvbSAnLi4vLi4vdXRpbHMvdGFiLWFwcC51dGlsJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBXaGVyZUNsYXVzZUhlbHBlciB7XHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyBiYXNlZCBvbiBmaWVsZCwgdmFsdWUsIGZpZWxkIG5hbWUsIGFuZCBDUlVEIHRhYmxlIG5hbWVcclxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gYmluZCB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSBmb3IgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0ZSBvcGVyYXRpb25cclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JEZWxldGUoXHJcbiAgICBmaWVsZHM6IGFueSxcclxuICAgIHZhbHVlOiBhbnksXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNydWRUYWJsZU5hbWU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgY29uc3QgYXBwb2JqID0gZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lKGNydWRUYWJsZU5hbWUpO1xyXG4gICAgaWYgKGFwcG9iaiAmJiBhcHBvYmouQ1JVREFwcE9iamVjdElkICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGNydWRBcHBPYmogPSBnZXRBcHBPYmplY3QoYXBwb2JqLkNSVURBcHBPYmplY3RJZCk7XHJcbiAgICAgIGlmIChjcnVkQXBwT2JqKSB7XHJcbiAgICAgICAgY3J1ZFRhYmxlTmFtZSA9IGNydWRBcHBPYmouU3lzdGVtREJUYWJsZU5hbWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmJpbmRXaGVyZUNsYXVzZShmaWVsZHMsIHZhbHVlLCBmaWVsZE5hbWUsIGNydWRUYWJsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyB3aXRoIG11bHRpcGxlIHByaW1hcnkga2V5c1xyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIGNvbnRhaW5pbmcgcHJpbWFyeSBrZXkgdmFsdWVzXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXlcclxuICAgKiBAcGFyYW0gY3J1ZFRhYmxlTmFtZSBUaGUgQ1JVRCB0YWJsZSBuYW1lIGZvciB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiB3aXRoIG11bHRpcGxlIHByaW1hcnkga2V5c1xyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZVdpdGhNdWx0aXBsZVByaW1hcnlLZXlzKFxyXG4gICAgZGF0YTogYW55LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmJpbmRXaGVyZUNsYXVzZUZvck11bHRpcGxlUHJpbWFyeUtleXMoXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgY3J1ZFRhYmxlTmFtZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGFuIGluc2VydCBvcGVyYXRpb25cclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBpbnNlcnQgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9ySW5zZXJ0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmluZFdoZXJlQ2xhdXNlRW1wdHkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIGFuIGVtcHR5IHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCBlbXB0eSB3aGVyZSBjbGF1c2VcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VFbXB0eSgpIHtcclxuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgYmFzZWQgb24gcHJvdmlkZWQgcGFyYW1ldGVyc1xyXG4gICAqIEBwYXJhbSBmaWVsZHMgVGhlIGZpZWxkcyB0byBiaW5kIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIG1hdGNoIGluIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gZmllbGROYW1lIFRoZSBmaWVsZCBuYW1lIHRvIG1hdGNoIGluIHRoZSB3aGVyZSBjbGF1c2VcclxuICAgKiBAcGFyYW0gY3J1ZFRhYmxlTmFtZSBUaGUgQ1JVRCB0YWJsZSBuYW1lIGZvciB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYmluZFdoZXJlQ2xhdXNlKFxyXG4gICAgZmllbGRzOiBhbnksXHJcbiAgICB2YWx1ZTogYW55LFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBjcnVkVGFibGVOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIHJldHVybiBmcm9tKGZpZWxkcykucGlwZShcclxuICAgICAgZmlsdGVyKChmOiBhbnkpID0+XHJcbiAgICAgICAgZmllbGROYW1lXHJcbiAgICAgICAgICA/IGYuRmllbGQ/LkZpZWxkTmFtZSA9PT0gZmllbGROYW1lXHJcbiAgICAgICAgICA6IGYuRmllbGQ/LkZpZWxkTmFtZSA9PT0gJ0lkJyB8fCBmLkZpZWxkPy5GaWVsZE5hbWUgPT09ICdJRCdcclxuICAgICAgKSxcclxuICAgICAgbWFwKChmaWVsZDogYW55KSA9PiAoe1xyXG4gICAgICAgIENvbmp1Y3Rpb25DbGF1c2U6IENvbmp1Y3Rpb25DbGF1c2UuQU5ELFxyXG4gICAgICAgIEZpZWxkSUQ6IGNydWRUYWJsZU5hbWUgKyAnLicgKyBmaWVsZC5GaWVsZC5TeXN0ZW1EQkZpZWxkTmFtZSxcclxuICAgICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLFxyXG4gICAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsXHJcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIFNlcXVlbmNlOiAwLFxyXG4gICAgICAgIEdyb3VwSUQ6IDAsXHJcbiAgICAgIH0pKSxcclxuICAgICAgdG9BcnJheSgpLFxyXG4gICAgICBtYXAoKGZpbHRlcnM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzID0gZmlsdGVycztcclxuICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgICAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyB3aXRoIG11bHRpcGxlIHByaW1hcnkga2V5c1xyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIGNvbnRhaW5pbmcgcHJpbWFyeSBrZXkgdmFsdWVzXHJcbiAgICogQHBhcmFtIHByaW1hcnlLZXlzIFRoZSBhcnJheSBvZiBwcmltYXJ5IGtleSBmaWVsZHNcclxuICAgKiBAcGFyYW0gY3J1ZFRhYmxlTmFtZSBUaGUgQ1JVRCB0YWJsZSBuYW1lIGZvciB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiB3aXRoIG11bHRpcGxlIHByaW1hcnkga2V5c1xyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvck11bHRpcGxlUHJpbWFyeUtleXMoXHJcbiAgICBkYXRhOiBhbnksXHJcbiAgICBwcmltYXJ5S2V5czogYW55LFxyXG4gICAgY3J1ZFRhYmxlTmFtZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IG5ldyBBUElGaWx0ZXJDcml0ZXJpYSgpO1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVycyA9IFtdO1xyXG4gICAgaWYgKHByaW1hcnlLZXlzICYmIHByaW1hcnlLZXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcHJpbWFyeUtleXMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW2VsZW1lbnQuRmllbGROYW1lXTtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge1xyXG4gICAgICAgICAgICBDb25qdWN0aW9uQ2xhdXNlOiBDb25qdWN0aW9uQ2xhdXNlLkFORCxcclxuICAgICAgICAgICAgRmllbGRJRDogY3J1ZFRhYmxlTmFtZSArICcuJyArIGVsZW1lbnQuU3lzdGVtREJGaWVsZE5hbWUsXHJcbiAgICAgICAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLkVxdWFsVG8sXHJcbiAgICAgICAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsXHJcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgU2VxdWVuY2U6IDAsXHJcbiAgICAgICAgICAgIEdyb3VwSUQ6IDAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgd2hlcmVDbGF1c2UuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgdXBkYXRpbmcgcmVjb3Jkc1xyXG4gICAqIEBwYXJhbSB0YWJsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIHVwZGF0ZVxyXG4gICAqIEBwYXJhbSBxdWVyeUZpZWxkc0FycmF5IFRoZSBhcnJheSBvZiBmaWVsZHMgYW5kIHZhbHVlcyBmb3IgdGhlIHVwZGF0ZSBxdWVyeVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIHVwZGF0ZSBvcGVyYXRpb25cclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGUodGFibGVOYW1lOiBzdHJpbmcsIHF1ZXJ5RmllbGRzQXJyYXk6IGFueSkge1xyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIGlmIChxdWVyeUZpZWxkc0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICBxdWVyeUZpZWxkc0FycmF5LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge1xyXG4gICAgICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsXHJcbiAgICAgICAgICBGaWVsZElEOiB0YWJsZU5hbWUgKyAnLicgKyBlbGVtZW50LkZpZWxkTmFtZSxcclxuICAgICAgICAgIFJlbGF0aW9uYWxPcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLkVxdWFsVG8sXHJcbiAgICAgICAgICBWYWx1ZVR5cGU6IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsLFxyXG4gICAgICAgICAgdmFsdWU6IGVsZW1lbnQuRmllbGRWYWx1ZSxcclxuICAgICAgICAgIFNlcXVlbmNlOiAwLFxyXG4gICAgICAgICAgR3JvdXBJRDogMCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRpbmcgcmVjb3JkcyBieSB0YWJsZSBhbmQgcHJpbWFyeSBrZXlcclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBmcm9tIHdoaWNoIHRvIGRlbGV0ZSByZWNvcmRzXHJcbiAgICogQHBhcmFtIHByaW1hcnlLZXkgVGhlIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5IGZpZWxkXHJcbiAgICogQHBhcmFtIHByaW1hcnlLZXlWYWx1ZSBUaGUgdmFsdWUgb2YgdGhlIHByaW1hcnkga2V5XHJcbiAgICogQHJldHVybnMgVGhlIGJvdW5kIHdoZXJlIGNsYXVzZSBmb3IgZGVsZXRlIG9wZXJhdGlvbiB1c2luZyB0YWJsZSBhbmQgcHJpbWFyeSBrZXlcclxuICAgKi9cclxuICBiaW5kV2hlcmVDbGF1c2VGb3JEZWxldGVCeVRhYmxlKFxyXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXHJcbiAgICBwcmltYXJ5S2V5OiBzdHJpbmcsXHJcbiAgICBwcmltYXJ5S2V5VmFsdWU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge1xyXG4gICAgICBDb25qdWN0aW9uQ2xhdXNlOiBDb25qdWN0aW9uQ2xhdXNlLkFORCxcclxuICAgICAgRmllbGRJRDogdGFibGVOYW1lICsgJy4nICsgcHJpbWFyeUtleSxcclxuICAgICAgUmVsYXRpb25hbE9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuRXF1YWxUbyxcclxuICAgICAgVmFsdWVUeXBlOiBGaWx0ZXJWYWx1ZVR5cGUuTGl0ZXJhbCxcclxuICAgICAgdmFsdWU6IHByaW1hcnlLZXlWYWx1ZSxcclxuICAgICAgU2VxdWVuY2U6IDAsXHJcbiAgICAgIEdyb3VwSUQ6IDAsXHJcbiAgICB9O1xyXG4gICAgd2hlcmVDbGF1c2UuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyA9ICcxJztcclxuICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIHRoZSB3aGVyZSBjbGF1c2UgZm9yIGRlbGV0aW5nIHJlY29yZHMgdXNpbmcgSU4gb3BlcmF0b3IgYnkgdGFibGVcclxuICAgKiBAcGFyYW0gdGFibGVOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBmcm9tIHdoaWNoIHRvIGRlbGV0ZSByZWNvcmRzXHJcbiAgICogQHBhcmFtIHByaW1hcnlLZXkgVGhlIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5IGZpZWxkXHJcbiAgICogQHBhcmFtIHZhbHVlcyBUaGUgYXJyYXkgb2YgdmFsdWVzIGZvciB0aGUgSU4gb3BlcmF0b3JcclxuICAgKiBAcmV0dXJucyBUaGUgYm91bmQgd2hlcmUgY2xhdXNlIGZvciBkZWxldGUgb3BlcmF0aW9uIHVzaW5nIElOIG9wZXJhdG9yIGFuZCB0YWJsZVxyXG4gICAqL1xyXG4gIGJpbmRXaGVyZUNsYXVzZUZvckRlbGV0ZVVzaW5nSW5PcGVyYXRvckJ5VGFibGUoXHJcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcclxuICAgIHByaW1hcnlLZXk6IHN0cmluZyxcclxuICAgIHZhbHVlczogW11cclxuICApIHtcclxuICAgIGNvbnN0IGFwcG9iaiA9IGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSh0YWJsZU5hbWUpO1xyXG4gICAgaWYgKGFwcG9iaj8uQ1JVREFwcE9iamVjdElkICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGNydWRBcHBPYmogPSBnZXRBcHBPYmplY3QoYXBwb2JqLkNSVURBcHBPYmplY3RJZCk7XHJcbiAgICAgIGlmIChjcnVkQXBwT2JqKSB7XHJcbiAgICAgICAgdGFibGVOYW1lID0gY3J1ZEFwcE9iai5TeXN0ZW1EQlRhYmxlTmFtZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcclxuICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge1xyXG4gICAgICBDb25qdWN0aW9uQ2xhdXNlOiBDb25qdWN0aW9uQ2xhdXNlLkFORCxcclxuICAgICAgRmllbGRJRDogdGFibGVOYW1lICsgJy4nICsgcHJpbWFyeUtleSxcclxuICAgICAgUmVsYXRpb25hbE9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuSU4sXHJcbiAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsXHJcbiAgICAgIHZhbHVlOiB2YWx1ZXMuam9pbignLCcpLFxyXG4gICAgICBTZXF1ZW5jZTogMCxcclxuICAgICAgR3JvdXBJRDogMCxcclxuICAgIH07XHJcbiAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTtcclxuICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG4gICAgcmV0dXJuIHdoZXJlQ2xhdXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZHMgdGhlIHdoZXJlIGNsYXVzZSBmb3IgdXBkYXRpbmcgcmVjb3JkcyBpbiBhIGdyaWRcclxuICAgKiBAcGFyYW0gRmllbGRzIFRoZSBmaWVsZHMgdG8gYmluZCB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSB0byBtYXRjaCBpbiB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSBmb3IgdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBib3VuZCB3aGVyZSBjbGF1c2UgZm9yIHVwZGF0ZSBvcGVyYXRpb24gaW4gYSBncmlkXHJcbiAgICovXHJcbiAgYmluZFdoZXJlQ2xhdXNlRm9yVXBkYXRlR3JpZChcclxuICAgIEZpZWxkczogYW55LFxyXG4gICAgdmFsdWU6IGFueSxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgY3J1ZFRhYmxlTmFtZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iaW5kV2hlcmVDbGF1c2UoRmllbGRzLCB2YWx1ZSwgZmllbGROYW1lLCBjcnVkVGFibGVOYW1lKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,38 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class FormDataHelper {
5
+ /**
6
+ * Sets form data based on the provided data object.
7
+ * @param data$ An Observable emitting the data object containing form data.
8
+ * @returns An Observable emitting an object containing the modified form data.
9
+ */
10
+ setFormData(data) {
11
+ const objNew = {};
12
+ if (!!data && !!data.Result) {
13
+ Object.entries(data.Result[0]).forEach(([key, value]) => {
14
+ if (key !== undefined) {
15
+ if (typeof value === 'number') {
16
+ value = value.toString();
17
+ }
18
+ if (key == 'Logo') {
19
+ if (value !== '' && value !== null && value !== undefined) {
20
+ // Additional handling can be added here if necessary
21
+ }
22
+ }
23
+ else {
24
+ objNew[key] = value;
25
+ }
26
+ }
27
+ });
28
+ }
29
+ return objNew;
30
+ }
31
+ static { this.ɵfac = function FormDataHelper_Factory(t) { return new (t || FormDataHelper)(); }; }
32
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FormDataHelper, factory: FormDataHelper.ɵfac, providedIn: 'root' }); }
33
+ }
34
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormDataHelper, [{
35
+ type: Injectable,
36
+ args: [{ providedIn: 'root' }]
37
+ }], null, null); })();
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9mb3Jtcy5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sY0FBYztJQUV6Qjs7OztLQUlDO0lBQ0QsV0FBVyxDQUFDLElBQVM7UUFDbkIsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN0QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUM5QixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUMzQixDQUFDO29CQUNELElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNsQixJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7NEJBQzFELHFEQUFxRDt3QkFDdkQsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDdEIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrRUExQlUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERCxNQUFNOztpRkFDbkIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEZvcm1EYXRhSGVscGVyIHtcclxuXHJcbiAgLyoqXHJcbiAqIFNldHMgZm9ybSBkYXRhIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkYXRhIG9iamVjdC5cclxuICogQHBhcmFtIGRhdGEkIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGRhdGEgb2JqZWN0IGNvbnRhaW5pbmcgZm9ybSBkYXRhLlxyXG4gKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtb2RpZmllZCBmb3JtIGRhdGEuXHJcbiAqL1xyXG4gIHNldEZvcm1EYXRhKGRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgb2JqTmV3OiBhbnkgPSB7fTtcclxuICAgIGlmICghIWRhdGEgJiYgISFkYXRhLlJlc3VsdCkge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhLlJlc3VsdFswXSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoa2V5ID09ICdMb2dvJykge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAvLyBBZGRpdGlvbmFsIGhhbmRsaW5nIGNhbiBiZSBhZGRlZCBoZXJlIGlmIG5lY2Vzc2FyeVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvYmpOZXdba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqTmV3O1xyXG4gIH1cclxufVxyXG4iXX0=