@techextensor/tab-core-utility 2.2.190 → 2.2.192
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.
- package/esm2022/index.mjs +1 -5
- package/esm2022/lib/tab-core-utility/app/constants/api-constants.mjs +15 -31
- package/esm2022/lib/tab-core-utility/app/constants/common.mjs +50 -14
- package/esm2022/lib/tab-core-utility/app/constants/storage-constants.mjs +3 -2
- package/esm2022/lib/tab-core-utility/app/crud/tab-blueprint.service.mjs +5 -5
- package/esm2022/lib/tab-core-utility/app/crud/tab-crud.service.mjs +54 -41
- package/esm2022/lib/tab-core-utility/app/crud/tab-delete.service.mjs +30 -84
- package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +12 -141
- package/esm2022/lib/tab-core-utility/app/crud/tab-get.service.mjs +41 -142
- package/esm2022/lib/tab-core-utility/app/crud/tab-insert.service.mjs +38 -89
- package/esm2022/lib/tab-core-utility/app/crud/tab-update.service.mjs +129 -159
- package/esm2022/lib/tab-core-utility/app/enums/query.enum.mjs +7 -7
- package/esm2022/lib/tab-core-utility/app/helpers/common/app.helpers.mjs +21 -28
- package/esm2022/lib/tab-core-utility/app/helpers/common/dsq.helpers.mjs +11 -9
- package/esm2022/lib/tab-core-utility/app/helpers/common/meta-data.helpers.mjs +13 -13
- package/esm2022/lib/tab-core-utility/app/helpers/common/req-res.helpers.mjs +45 -7
- package/esm2022/lib/tab-core-utility/app/helpers/common/where-clause.helpers.mjs +76 -79
- package/esm2022/lib/tab-core-utility/app/helpers/screen/grid.helpers.mjs +4 -8
- package/esm2022/lib/tab-core-utility/app/helpers/screen/media-upload.helpers.mjs +4 -4
- package/esm2022/lib/tab-core-utility/app/helpers/screen/screen.helpers.mjs +33 -8
- package/esm2022/lib/tab-core-utility/app/interfaces/common.interface.mjs +1 -1
- package/esm2022/lib/tab-core-utility/app/models/api-query.class.mjs +1 -39
- package/esm2022/lib/tab-core-utility/app/models/app-field.model.mjs +7 -36
- package/esm2022/lib/tab-core-utility/app/models/app-object.model.mjs +47 -84
- package/esm2022/lib/tab-core-utility/app/models/app-screen.model.mjs +13 -24
- package/esm2022/lib/tab-core-utility/app/models/data-source-query.model.mjs +23 -57
- package/esm2022/lib/tab-core-utility/app/models/filter.model.mjs +10 -21
- package/esm2022/lib/tab-core-utility/app/models/parameter.model.mjs +6 -12
- package/esm2022/lib/tab-core-utility/app/models/sort.model.mjs +4 -11
- package/esm2022/lib/tab-core-utility/app/utils/json.util.mjs +16 -17
- package/esm2022/lib/tab-core-utility/app/utils/req-res.util.mjs +55 -1
- package/esm2022/lib/tab-core-utility/app/utils/tab-app.util.mjs +164 -1
- package/esm2022/lib/tab-core-utility/core/http-client/api.service.mjs +1 -78
- package/index.d.ts +0 -4
- package/lib/tab-core-utility/app/constants/api-constants.d.ts +12 -19
- package/lib/tab-core-utility/app/constants/common.d.ts +0 -9
- package/lib/tab-core-utility/app/constants/storage-constants.d.ts +2 -1
- package/lib/tab-core-utility/app/crud/tab-blueprint.service.d.ts +2 -2
- package/lib/tab-core-utility/app/crud/tab-crud.service.d.ts +1 -8
- package/lib/tab-core-utility/app/crud/tab-delete.service.d.ts +10 -20
- package/lib/tab-core-utility/app/crud/tab-formio.service.d.ts +6 -33
- package/lib/tab-core-utility/app/crud/tab-get.service.d.ts +6 -48
- package/lib/tab-core-utility/app/crud/tab-insert.service.d.ts +21 -16
- package/lib/tab-core-utility/app/crud/tab-update.service.d.ts +19 -34
- package/lib/tab-core-utility/app/enums/query.enum.d.ts +6 -3
- package/lib/tab-core-utility/app/helpers/common/app.helpers.d.ts +9 -6
- package/lib/tab-core-utility/app/helpers/common/dsq.helpers.d.ts +0 -3
- package/lib/tab-core-utility/app/helpers/common/meta-data.helpers.d.ts +3 -3
- package/lib/tab-core-utility/app/helpers/common/req-res.helpers.d.ts +51 -7
- package/lib/tab-core-utility/app/helpers/common/where-clause.helpers.d.ts +0 -1
- package/lib/tab-core-utility/app/helpers/screen/grid.helpers.d.ts +1 -2
- package/lib/tab-core-utility/app/helpers/screen/media-upload.helpers.d.ts +1 -1
- package/lib/tab-core-utility/app/helpers/screen/screen.helpers.d.ts +0 -1
- package/lib/tab-core-utility/app/interfaces/common.interface.d.ts +2 -51
- package/lib/tab-core-utility/app/models/api-query.class.d.ts +9 -54
- package/lib/tab-core-utility/app/models/app-field.model.d.ts +2 -4
- package/lib/tab-core-utility/app/models/app-object.model.d.ts +3 -5
- package/lib/tab-core-utility/app/models/app-screen.model.d.ts +2 -2
- package/lib/tab-core-utility/app/models/data-source-query.model.d.ts +2 -7
- package/lib/tab-core-utility/app/models/filter.model.d.ts +2 -2
- package/lib/tab-core-utility/app/models/parameter.model.d.ts +2 -2
- package/lib/tab-core-utility/app/models/sort.model.d.ts +1 -1
- package/lib/tab-core-utility/app/utils/json.util.d.ts +2 -3
- package/lib/tab-core-utility/app/utils/req-res.util.d.ts +9 -1
- package/lib/tab-core-utility/app/utils/tab-app.util.d.ts +61 -0
- package/lib/tab-core-utility/core/http-client/api.service.d.ts +0 -46
- package/package.json +2 -3
- package/esm2022/lib/tab-core-utility/app/helpers/response.adapter.mjs +0 -38
- package/esm2022/lib/tab-core-utility/app/interfaces/signalr.interface.mjs +0 -42
- package/esm2022/lib/tab-core-utility/core/service/signalr/operation-tracker.service.mjs +0 -90
- package/esm2022/lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service.mjs +0 -268
- package/esm2022/lib/tab-core-utility/core/service/signalr/signalr.service.mjs +0 -207
- package/lib/tab-core-utility/app/helpers/response.adapter.d.ts +0 -22
- package/lib/tab-core-utility/app/interfaces/signalr.interface.d.ts +0 -84
- package/lib/tab-core-utility/core/service/signalr/operation-tracker.service.d.ts +0 -40
- package/lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service.d.ts +0 -73
- package/lib/tab-core-utility/core/service/signalr/signalr.service.d.ts +0 -122
|
@@ -1,4 +1,90 @@
|
|
|
1
|
+
import { Common } from '../constants/common';
|
|
1
2
|
import { deleteKeyFromResponse } from './req-res.util';
|
|
3
|
+
/** Get the DataSourceQuery ID from the selected AppObject's DataSourceQuery array
|
|
4
|
+
* @param dsqList - The list of DataSourceQueries
|
|
5
|
+
* @param table - The table name
|
|
6
|
+
* @param like - The like string
|
|
7
|
+
* @returns string - The ID of the DataSourceQuery
|
|
8
|
+
*/
|
|
9
|
+
export function getDsqIdfromSelectedAppObjectDSQArray(dsqList, table, like) {
|
|
10
|
+
if (dsqList) {
|
|
11
|
+
const matchName = like + '_' + table;
|
|
12
|
+
const result = dsqList.find((d) => d.QueryName === matchName);
|
|
13
|
+
return result?.ID;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Get the AppObject based on the provided ID
|
|
17
|
+
* @param id - The ID of the AppObject
|
|
18
|
+
* @returns AppObject | null - The found AppObject or null
|
|
19
|
+
*/
|
|
20
|
+
export function getAppObject(id) {
|
|
21
|
+
const tabData = Common.tabJson;
|
|
22
|
+
return (tabData?.AppObjects.find((t) => t.ID === id?.toLowerCase()) || null);
|
|
23
|
+
}
|
|
24
|
+
// function waitForData(timeout = 5000): Promise<void> {
|
|
25
|
+
// return new Promise((resolve, reject) => {
|
|
26
|
+
// const interval = 100; // Check every 100ms
|
|
27
|
+
// let waited = 0;
|
|
28
|
+
// const checkData = () => {
|
|
29
|
+
// if (Common.tabJson) {
|
|
30
|
+
// resolve();
|
|
31
|
+
// } else if (waited >= timeout) {
|
|
32
|
+
// reject(new Error('Timeout waiting for Common.tabJson'));
|
|
33
|
+
// } else {
|
|
34
|
+
// waited += interval;
|
|
35
|
+
// setTimeout(checkData, interval);
|
|
36
|
+
// }
|
|
37
|
+
// };
|
|
38
|
+
// checkData();
|
|
39
|
+
// });
|
|
40
|
+
// }
|
|
41
|
+
/**
|
|
42
|
+
* Get the AppObject from the DataSourceQuery ID
|
|
43
|
+
* @param dsqId - The DataSourceQuery ID
|
|
44
|
+
* @returns AppObject | null - The found AppObject or null
|
|
45
|
+
*/
|
|
46
|
+
export function getAppObjectFromDataSourceQueryID(dsqId) {
|
|
47
|
+
const tabData = Common.tabJson;
|
|
48
|
+
if (!dsqId || !tabData) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
for (const appObject of tabData.AppObjects) {
|
|
52
|
+
const dsq = appObject.DataSourceQueries.find((l) => l.ID === dsqId?.toLowerCase());
|
|
53
|
+
if (dsq) {
|
|
54
|
+
return appObject;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get the DataSourceQuery ID from the QueryName and table
|
|
61
|
+
* @param table - The table name
|
|
62
|
+
* @param dsq - The DataSourceQuery name
|
|
63
|
+
* @returns any - The found DataSourceQuery
|
|
64
|
+
*/
|
|
65
|
+
export function getDsqIDFromQueryName(table, dsq) {
|
|
66
|
+
const appObjectList = getAppObjectFromSystemDBTableName(table);
|
|
67
|
+
return appObjectList?.DataSourceQueries.find((d) => d.QueryName === dsq);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get the Data from the DataSourceQuery ID
|
|
71
|
+
*
|
|
72
|
+
* @param dsqId - The DataSourceQuery ID
|
|
73
|
+
* @returns any - The found Data
|
|
74
|
+
*/
|
|
75
|
+
export function getDataFromDataSourceQueryID(dsqId) {
|
|
76
|
+
const tabData = Common.tabJson;
|
|
77
|
+
if (!tabData) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
for (const appObject of tabData.AppObjects) {
|
|
81
|
+
const DSQ = appObject.DataSourceQueries.find((l) => l.ID === dsqId?.toLowerCase());
|
|
82
|
+
if (DSQ) {
|
|
83
|
+
return DSQ;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
2
88
|
/**
|
|
3
89
|
* Synchronize AppObject fields with the response
|
|
4
90
|
*
|
|
@@ -16,4 +102,81 @@ export function syncAppObjectFields(response, appObject) {
|
|
|
16
102
|
}
|
|
17
103
|
return response;
|
|
18
104
|
}
|
|
19
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Get the AppObject based on the SystemDBTableName
|
|
107
|
+
*
|
|
108
|
+
* @param tableName - The SystemDBTableName
|
|
109
|
+
* @returns AppObject | null - The found AppObject or null
|
|
110
|
+
*/
|
|
111
|
+
export function getAppObjectFromSystemDBTableName(tableName) {
|
|
112
|
+
const tabData = Common.tabJson;
|
|
113
|
+
return (tabData?.AppObjects.find((t) => t.SystemDBTableName === tableName) || null);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the fields based on the appobjectid
|
|
117
|
+
*
|
|
118
|
+
* @param appObjectId - The appobjectid
|
|
119
|
+
* @returns AppObject | null - The found AppObject or null
|
|
120
|
+
*/
|
|
121
|
+
export function getAppfieldsFromAppObjectId(appObjectId) {
|
|
122
|
+
const tabData = Common.tabJson;
|
|
123
|
+
const findAppObject = tabData?.AppObjects.find((t) => t.ID === appObjectId) || null;
|
|
124
|
+
if (findAppObject) {
|
|
125
|
+
return findAppObject.Fields;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function getLookupAppfieldsFromAppObjectId(appObjectId) {
|
|
132
|
+
const tabData = Common.tabJson;
|
|
133
|
+
const findAppObject = tabData?.AppObjects.find((t) => t.ID === appObjectId) || null;
|
|
134
|
+
if (findAppObject) {
|
|
135
|
+
const lookupFields = findAppObject.Fields.filter((t) => t.LookUpDetails);
|
|
136
|
+
if (lookupFields) {
|
|
137
|
+
return lookupFields;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export function getViewAppObjectDetailsFromDSQID(dsqID) {
|
|
145
|
+
const appObject = getAppObjectFromDataSourceQueryID(dsqID);
|
|
146
|
+
let viewAppObjectDetailsOfGrid = appObject;
|
|
147
|
+
// check appobject is table or view
|
|
148
|
+
if (appObject && appObject.ObjectType == 2) {
|
|
149
|
+
viewAppObjectDetailsOfGrid = getAppObject(appObject?.CRUDAppObjectId);
|
|
150
|
+
}
|
|
151
|
+
return viewAppObjectDetailsOfGrid;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Retrieves all appObjects and their DSQs in a single list
|
|
155
|
+
* suitable for tree view representation.
|
|
156
|
+
* @author : Parth B Thakkar
|
|
157
|
+
* @Usage : HTTP Request
|
|
158
|
+
* @returns Array<{ id: string; name: string; hasChildren: boolean; parentID: string | null }>
|
|
159
|
+
*/
|
|
160
|
+
export function getAllAppObjectsForTreeViewJson() {
|
|
161
|
+
const tabData = Common.tabJson;
|
|
162
|
+
const fieldData = [];
|
|
163
|
+
for (const appObject of tabData?.AppObjects || []) {
|
|
164
|
+
fieldData.push({
|
|
165
|
+
id: appObject.ID,
|
|
166
|
+
name: appObject.DisplayName,
|
|
167
|
+
hasChildren: true,
|
|
168
|
+
parentID: null,
|
|
169
|
+
});
|
|
170
|
+
// looping children
|
|
171
|
+
for (const dsq of appObject.DataSourceQueries) {
|
|
172
|
+
fieldData.push({
|
|
173
|
+
id: dsq.ID,
|
|
174
|
+
name: dsq.DisplayName,
|
|
175
|
+
hasChildren: false,
|
|
176
|
+
parentID: appObject.ID,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return fieldData.sort((a, b) => a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1);
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWFwcC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL3RhYi1hcHAudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQ7Ozs7O0dBS0c7QUFFSCxNQUFNLFVBQVUscUNBQXFDLENBQ25ELE9BQVksRUFDWixLQUFhLEVBQ2IsSUFBWTtJQUVaLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUNwQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUVILE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBVTtJQUNyQyxNQUFNLE9BQU8sR0FBZSxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQzNDLE9BQU8sQ0FDTCxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQ3pFLENBQUM7QUFDSixDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELDhDQUE4QztBQUM5QyxpREFBaUQ7QUFDakQsc0JBQXNCO0FBRXRCLGdDQUFnQztBQUNoQyw4QkFBOEI7QUFDOUIscUJBQXFCO0FBQ3JCLHdDQUF3QztB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QUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb24gfSBmcm9tICcuLi9jb25zdGFudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQXBwT2JqZWN0IH0gZnJvbSAnLi4vbW9kZWxzL2FwcC1vYmplY3QuY2xhc3MnO1xyXG5pbXBvcnQgeyBkZWxldGVLZXlGcm9tUmVzcG9uc2UgfSBmcm9tICcuL3JlcS1yZXMudXRpbCc7XHJcblxyXG4vKiogR2V0IHRoZSBEYXRhU291cmNlUXVlcnkgSUQgZnJvbSB0aGUgc2VsZWN0ZWQgQXBwT2JqZWN0J3MgRGF0YVNvdXJjZVF1ZXJ5IGFycmF5XHJcbiAqIEBwYXJhbSBkc3FMaXN0IC0gVGhlIGxpc3Qgb2YgRGF0YVNvdXJjZVF1ZXJpZXNcclxuICogQHBhcmFtIHRhYmxlIC0gVGhlIHRhYmxlIG5hbWVcclxuICogQHBhcmFtIGxpa2UgLSBUaGUgbGlrZSBzdHJpbmdcclxuICogQHJldHVybnMgc3RyaW5nIC0gVGhlIElEIG9mIHRoZSBEYXRhU291cmNlUXVlcnlcclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RHNxSWRmcm9tU2VsZWN0ZWRBcHBPYmplY3REU1FBcnJheShcclxuICBkc3FMaXN0OiBhbnksXHJcbiAgdGFibGU6IHN0cmluZyxcclxuICBsaWtlOiBzdHJpbmdcclxuKSB7XHJcbiAgaWYgKGRzcUxpc3QpIHtcclxuICAgIGNvbnN0IG1hdGNoTmFtZSA9IGxpa2UgKyAnXycgKyB0YWJsZTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IGRzcUxpc3QuZmluZCgoZDogYW55KSA9PiBkLlF1ZXJ5TmFtZSA9PT0gbWF0Y2hOYW1lKTtcclxuICAgIHJldHVybiByZXN1bHQ/LklEO1xyXG4gIH1cclxufVxyXG5cclxuLyoqIEdldCB0aGUgQXBwT2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBJRFxyXG4gKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhlIEFwcE9iamVjdFxyXG4gKiBAcmV0dXJucyBBcHBPYmplY3QgfCBudWxsIC0gVGhlIGZvdW5kIEFwcE9iamVjdCBvciBudWxsXHJcbiAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcE9iamVjdChpZDogc3RyaW5nKSB7XHJcbiAgY29uc3QgdGFiRGF0YTogYW55IHwgbnVsbCA9IENvbW1vbi50YWJKc29uO1xyXG4gIHJldHVybiAoXHJcbiAgICB0YWJEYXRhPy5BcHBPYmplY3RzLmZpbmQoKHQ6IGFueSkgPT4gdC5JRCA9PT0gaWQ/LnRvTG93ZXJDYXNlKCkpIHx8IG51bGxcclxuICApO1xyXG59XHJcblxyXG4vLyBmdW5jdGlvbiB3YWl0Rm9yRGF0YSh0aW1lb3V0ID0gNTAwMCk6IFByb21pc2U8dm9pZD4ge1xyXG4vLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbi8vICAgICBjb25zdCBpbnRlcnZhbCA9IDEwMDsgLy8gQ2hlY2sgZXZlcnkgMTAwbXNcclxuLy8gICAgIGxldCB3YWl0ZWQgPSAwO1xyXG5cclxuLy8gICAgIGNvbnN0IGNoZWNrRGF0YSA9ICgpID0+IHtcclxuLy8gICAgICAgaWYgKENvbW1vbi50YWJKc29uKSB7XHJcbi8vICAgICAgICAgcmVzb2x2ZSgpO1xyXG4vLyAgICAgICB9IGVsc2UgaWYgKHdhaXRlZCA+PSB0aW1lb3V0KSB7XHJcbi8vICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVGltZW91dCB3YWl0aW5nIGZvciBDb21tb24udGFiSnNvbicpKTtcclxuLy8gICAgICAgfSBlbHNlIHtcclxuLy8gICAgICAgICB3YWl0ZWQgKz0gaW50ZXJ2YWw7XHJcbi8vICAgICAgICAgc2V0VGltZW91dChjaGVja0RhdGEsIGludGVydmFsKTtcclxuLy8gICAgICAgfVxyXG4vLyAgICAgfTtcclxuXHJcbi8vICAgICBjaGVja0RhdGEoKTtcclxuLy8gICB9KTtcclxuLy8gfVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgQXBwT2JqZWN0IGZyb20gdGhlIERhdGFTb3VyY2VRdWVyeSBJRFxyXG4gKiBAcGFyYW0gZHNxSWQgLSBUaGUgRGF0YVNvdXJjZVF1ZXJ5IElEXHJcbiAqIEByZXR1cm5zIEFwcE9iamVjdCB8IG51bGwgLSBUaGUgZm91bmQgQXBwT2JqZWN0IG9yIG51bGxcclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwT2JqZWN0RnJvbURhdGFTb3VyY2VRdWVyeUlEKGRzcUlkOiBzdHJpbmcpIHtcclxuICBjb25zdCB0YWJEYXRhOiBhbnkgPSBDb21tb24udGFiSnNvbjtcclxuICBpZiAoIWRzcUlkIHx8ICF0YWJEYXRhKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGZvciAoY29uc3QgYXBwT2JqZWN0IG9mIHRhYkRhdGEuQXBwT2JqZWN0cykge1xyXG4gICAgY29uc3QgZHNxID0gYXBwT2JqZWN0LkRhdGFTb3VyY2VRdWVyaWVzLmZpbmQoXHJcbiAgICAgIChsOiBhbnkpID0+IGwuSUQgPT09IGRzcUlkPy50b0xvd2VyQ2FzZSgpXHJcbiAgICApO1xyXG4gICAgaWYgKGRzcSkge1xyXG4gICAgICByZXR1cm4gYXBwT2JqZWN0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIERhdGFTb3VyY2VRdWVyeSBJRCBmcm9tIHRoZSBRdWVyeU5hbWUgYW5kIHRhYmxlXHJcbiAqIEBwYXJhbSB0YWJsZSAtIFRoZSB0YWJsZSBuYW1lXHJcbiAqIEBwYXJhbSBkc3EgLSBUaGUgRGF0YVNvdXJjZVF1ZXJ5IG5hbWVcclxuICogQHJldHVybnMgYW55IC0gVGhlIGZvdW5kIERhdGFTb3VyY2VRdWVyeVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERzcUlERnJvbVF1ZXJ5TmFtZSh0YWJsZTogc3RyaW5nLCBkc3E6IHN0cmluZykge1xyXG4gIGNvbnN0IGFwcE9iamVjdExpc3QgPSBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUodGFibGUpO1xyXG4gIHJldHVybiBhcHBPYmplY3RMaXN0Py5EYXRhU291cmNlUXVlcmllcy5maW5kKChkOiBhbnkpID0+IGQuUXVlcnlOYW1lID09PSBkc3EpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBEYXRhIGZyb20gdGhlIERhdGFTb3VyY2VRdWVyeSBJRFxyXG4gKlxyXG4gKiBAcGFyYW0gZHNxSWQgLSBUaGUgRGF0YVNvdXJjZVF1ZXJ5IElEXHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSBmb3VuZCBEYXRhXHJcbiAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFGcm9tRGF0YVNvdXJjZVF1ZXJ5SUQoZHNxSWQ6IHN0cmluZykge1xyXG4gIGNvbnN0IHRhYkRhdGE6IGFueSA9IENvbW1vbi50YWJKc29uO1xyXG4gIGlmICghdGFiRGF0YSkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IGFwcE9iamVjdCBvZiB0YWJEYXRhLkFwcE9iamVjdHMpIHtcclxuICAgIGNvbnN0IERTUSA9IGFwcE9iamVjdC5EYXRhU291cmNlUXVlcmllcy5maW5kKFxyXG4gICAgICAobDogYW55KSA9PiBsLklEID09PSBkc3FJZD8udG9Mb3dlckNhc2UoKVxyXG4gICAgKTtcclxuICAgIGlmIChEU1EpIHtcclxuICAgICAgcmV0dXJuIERTUTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogU3luY2hyb25pemUgQXBwT2JqZWN0IGZpZWxkcyB3aXRoIHRoZSByZXNwb25zZVxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqIEBwYXJhbSBhcHBPYmplY3QgLSBUaGUgQXBwT2JqZWN0XHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSBzeW5jaHJvbml6ZWQgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3luY0FwcE9iamVjdEZpZWxkcyhyZXNwb25zZTogYW55LCBhcHBPYmplY3Q6IEFwcE9iamVjdCkge1xyXG4gIGZvciAoY29uc3Qga2V5IGluIHJlc3BvbnNlKSB7XHJcbiAgICBjb25zdCBmb3VuZE9iaiA9IGFwcE9iamVjdC5GaWVsZHMuZmluZCgoZjogYW55KSA9PiBmLkZpZWxkTmFtZSA9PT0ga2V5KTtcclxuICAgIGNvbnN0IGNoaWxEYXRhID0gYXBwT2JqZWN0LkNoaWxkUmVsYXRpb25TaGlwcz8ubWFwKFxyXG4gICAgICAoeCkgPT4geC5jaGlsZERldGFpbHMuTG9va3VwT2JqZWN0XHJcbiAgICApO1xyXG4gICAgaWYgKCFmb3VuZE9iaiAmJiAhKGNoaWxEYXRhICYmIGNoaWxEYXRhLnNvbWUoKHgpID0+IHguaW5jbHVkZXMoa2V5KSkpKSB7XHJcbiAgICAgIGRlbGV0ZUtleUZyb21SZXNwb25zZShyZXNwb25zZSwga2V5KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBBcHBPYmplY3QgYmFzZWQgb24gdGhlIFN5c3RlbURCVGFibGVOYW1lXHJcbiAqXHJcbiAqIEBwYXJhbSB0YWJsZU5hbWUgLSBUaGUgU3lzdGVtREJUYWJsZU5hbWVcclxuICogQHJldHVybnMgQXBwT2JqZWN0IHwgbnVsbCAtIFRoZSBmb3VuZCBBcHBPYmplY3Qgb3IgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSh0YWJsZU5hbWU6IHN0cmluZykge1xyXG4gIGNvbnN0IHRhYkRhdGE6IGFueSA9IENvbW1vbi50YWJKc29uO1xyXG4gIHJldHVybiAoXHJcbiAgICB0YWJEYXRhPy5BcHBPYmplY3RzLmZpbmQoXHJcbiAgICAgICh0OiB7IFN5c3RlbURCVGFibGVOYW1lOiBzdHJpbmcgfSkgPT4gdC5TeXN0ZW1EQlRhYmxlTmFtZSA9PT0gdGFibGVOYW1lXHJcbiAgICApIHx8IG51bGxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBmaWVsZHMgYmFzZWQgb24gdGhlIGFwcG9iamVjdGlkXHJcbiAqXHJcbiAqIEBwYXJhbSBhcHBPYmplY3RJZCAtIFRoZSBhcHBvYmplY3RpZFxyXG4gKiBAcmV0dXJucyBBcHBPYmplY3QgfCBudWxsIC0gVGhlIGZvdW5kIEFwcE9iamVjdCBvciBudWxsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwZmllbGRzRnJvbUFwcE9iamVjdElkKGFwcE9iamVjdElkOiBzdHJpbmcpIHtcclxuICBjb25zdCB0YWJEYXRhOiBhbnkgPSBDb21tb24udGFiSnNvbjtcclxuICBjb25zdCBmaW5kQXBwT2JqZWN0ID1cclxuICAgIHRhYkRhdGE/LkFwcE9iamVjdHMuZmluZCgodDogYW55KSA9PiB0LklEID09PSBhcHBPYmplY3RJZCkgfHwgbnVsbDtcclxuICBpZiAoZmluZEFwcE9iamVjdCkge1xyXG4gICAgcmV0dXJuIGZpbmRBcHBPYmplY3QuRmllbGRzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb29rdXBBcHBmaWVsZHNGcm9tQXBwT2JqZWN0SWQoYXBwT2JqZWN0SWQ6IHN0cmluZykge1xyXG4gIGNvbnN0IHRhYkRhdGE6IGFueSA9IENvbW1vbi50YWJKc29uO1xyXG4gIGNvbnN0IGZpbmRBcHBPYmplY3QgPVxyXG4gICAgdGFiRGF0YT8uQXBwT2JqZWN0cy5maW5kKCh0OiBhbnkpID0+IHQuSUQgPT09IGFwcE9iamVjdElkKSB8fCBudWxsO1xyXG4gIGlmIChmaW5kQXBwT2JqZWN0KSB7XHJcbiAgICBjb25zdCBsb29rdXBGaWVsZHMgPSBmaW5kQXBwT2JqZWN0LkZpZWxkcy5maWx0ZXIoXHJcbiAgICAgICh0OiBhbnkpID0+IHQuTG9va1VwRGV0YWlsc1xyXG4gICAgKTtcclxuICAgIGlmIChsb29rdXBGaWVsZHMpIHtcclxuICAgICAgcmV0dXJuIGxvb2t1cEZpZWxkcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0FwcE9iamVjdERldGFpbHNGcm9tRFNRSUQoZHNxSUQ6IHN0cmluZykge1xyXG4gIGNvbnN0IGFwcE9iamVjdCA9IGdldEFwcE9iamVjdEZyb21EYXRhU291cmNlUXVlcnlJRChkc3FJRCk7XHJcbiAgbGV0IHZpZXdBcHBPYmplY3REZXRhaWxzT2ZHcmlkID0gYXBwT2JqZWN0O1xyXG4gIC8vIGNoZWNrIGFwcG9iamVjdCBpcyB0YWJsZSBvciB2aWV3XHJcbiAgaWYgKGFwcE9iamVjdCAmJiBhcHBPYmplY3QuT2JqZWN0VHlwZSA9PSAyKSB7XHJcbiAgICB2aWV3QXBwT2JqZWN0RGV0YWlsc09mR3JpZCA9IGdldEFwcE9iamVjdChhcHBPYmplY3Q/LkNSVURBcHBPYmplY3RJZCk7XHJcbiAgfVxyXG4gIHJldHVybiB2aWV3QXBwT2JqZWN0RGV0YWlsc09mR3JpZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlcyBhbGwgYXBwT2JqZWN0cyBhbmQgdGhlaXIgRFNRcyBpbiBhIHNpbmdsZSBsaXN0XHJcbiAqIHN1aXRhYmxlIGZvciB0cmVlIHZpZXcgcmVwcmVzZW50YXRpb24uXHJcbiAqIEBhdXRob3IgOiBQYXJ0aCBCIFRoYWtrYXJcclxuICogQFVzYWdlIDogSFRUUCBSZXF1ZXN0XHJcbiAqIEByZXR1cm5zIEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBoYXNDaGlsZHJlbjogYm9vbGVhbjsgcGFyZW50SUQ6IHN0cmluZyB8IG51bGwgfT5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxBcHBPYmplY3RzRm9yVHJlZVZpZXdKc29uKCkge1xyXG4gIGNvbnN0IHRhYkRhdGEgPSBDb21tb24udGFiSnNvbjtcclxuXHJcbiAgY29uc3QgZmllbGREYXRhOiBBcnJheTx7XHJcbiAgICBpZDogc3RyaW5nOyAvLyBVVUlEIGFzIGEgc3RyaW5nXHJcbiAgICBuYW1lOiBzdHJpbmc7IC8vIE5hbWUgb2YgdGhlIG5vZGVcclxuICAgIGhhc0NoaWxkcmVuOiBib29sZWFuOyAvLyBXaGV0aGVyIHRoZSBub2RlIGhhcyBjaGlsZHJlblxyXG4gICAgcGFyZW50SUQ6IHN0cmluZyB8IG51bGw7IC8vIFBhcmVudCBJRCBpZiBhcHBsaWNhYmxlLCBvdGhlcndpc2UgbnVsbFxyXG4gIH0+ID0gW107XHJcbiAgZm9yIChjb25zdCBhcHBPYmplY3Qgb2YgdGFiRGF0YT8uQXBwT2JqZWN0cyB8fCBbXSkge1xyXG4gICAgZmllbGREYXRhLnB1c2goe1xyXG4gICAgICBpZDogYXBwT2JqZWN0LklELFxyXG4gICAgICBuYW1lOiBhcHBPYmplY3QuRGlzcGxheU5hbWUsXHJcbiAgICAgIGhhc0NoaWxkcmVuOiB0cnVlLFxyXG4gICAgICBwYXJlbnRJRDogbnVsbCxcclxuICAgIH0pO1xyXG4gICAgLy8gbG9vcGluZyBjaGlsZHJlblxyXG4gICAgZm9yIChjb25zdCBkc3Egb2YgYXBwT2JqZWN0LkRhdGFTb3VyY2VRdWVyaWVzKSB7XHJcbiAgICAgIGZpZWxkRGF0YS5wdXNoKHtcclxuICAgICAgICBpZDogZHNxLklELFxyXG4gICAgICAgIG5hbWU6IGRzcS5EaXNwbGF5TmFtZSxcclxuICAgICAgICBoYXNDaGlsZHJlbjogZmFsc2UsXHJcbiAgICAgICAgcGFyZW50SUQ6IGFwcE9iamVjdC5JRCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBmaWVsZERhdGEuc29ydCgoYSwgYikgPT5cclxuICAgIGEubmFtZS50b0xvd2VyQ2FzZSgpID4gYi5uYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogLTFcclxuICApO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { Injectable, inject } from '@angular/core';
|
|
3
3
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
4
|
import { API_URL } from './api-url.token';
|
|
6
|
-
import { Common } from '../../app/constants/common';
|
|
7
|
-
import { ResponseAdapter } from '../../app/helpers/response.adapter';
|
|
8
5
|
import * as i0 from "@angular/core";
|
|
9
6
|
export class ApiService {
|
|
10
7
|
constructor() {
|
|
@@ -124,80 +121,6 @@ export class ApiService {
|
|
|
124
121
|
deleteByUrl(url, options) {
|
|
125
122
|
return this.http.delete(url, { ...options });
|
|
126
123
|
}
|
|
127
|
-
// ==================== NEW MICROSERVICE METHODS ====================
|
|
128
|
-
/**
|
|
129
|
-
* Makes an HTTP GET request to a specific microservice
|
|
130
|
-
* @param serviceName - Name of the microservice (e.g., 'crudService', 'metadataService')
|
|
131
|
-
* @param endPointName - Endpoint path relative to the service
|
|
132
|
-
* @param params - Query parameters for the request
|
|
133
|
-
* @param reqHeader - Custom headers for the request
|
|
134
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
135
|
-
*/
|
|
136
|
-
getFromService(serviceName, endPointName, params = new HttpParams(), reqHeader) {
|
|
137
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
138
|
-
return this.http.get(`${serviceUrl}${endPointName}`, {
|
|
139
|
-
headers: reqHeader,
|
|
140
|
-
params,
|
|
141
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Makes an HTTP POST request to a specific microservice
|
|
145
|
-
* @param serviceName - Name of the microservice (e.g., 'crudService', 'formioService')
|
|
146
|
-
* @param endPointName - Endpoint path relative to the service
|
|
147
|
-
* @param data - Data to send with the request
|
|
148
|
-
* @param reqHeader - Custom headers for the request
|
|
149
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
150
|
-
*/
|
|
151
|
-
postToService(serviceName, endPointName, data, reqHeader) {
|
|
152
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
153
|
-
return this.http.post(`${serviceUrl}${endPointName}`, JSON.stringify(data), {
|
|
154
|
-
headers: reqHeader,
|
|
155
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Makes an HTTP PUT request to a specific microservice
|
|
159
|
-
* @param serviceName - Name of the microservice
|
|
160
|
-
* @param endPointName - Endpoint path relative to the service
|
|
161
|
-
* @param data - Data to send with the request
|
|
162
|
-
* @param reqHeader - Custom headers for the request
|
|
163
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
164
|
-
*/
|
|
165
|
-
putToService(serviceName, endPointName, data, reqHeader) {
|
|
166
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
167
|
-
return this.http.put(`${serviceUrl}${endPointName}`, JSON.stringify(data), {
|
|
168
|
-
headers: reqHeader,
|
|
169
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Makes an HTTP DELETE request to a specific microservice
|
|
173
|
-
* @param serviceName - Name of the microservice
|
|
174
|
-
* @param endPointName - Endpoint path relative to the service
|
|
175
|
-
* @param data - Data to send with the request (optional, for DELETE with body)
|
|
176
|
-
* @param reqHeader - Custom headers for the request
|
|
177
|
-
* @returns An Observable emitting the response data (auto-normalized to CommonApiResponse format)
|
|
178
|
-
*/
|
|
179
|
-
deleteFromService(serviceName, endPointName, data, reqHeader) {
|
|
180
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
181
|
-
return this.http.delete(`${serviceUrl}${endPointName}`, {
|
|
182
|
-
headers: reqHeader,
|
|
183
|
-
body: data ? JSON.stringify(data) : undefined
|
|
184
|
-
}).pipe(map(response => ResponseAdapter.normalize(response)));
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Makes an HTTP POST request to a specific microservice and returns a Blob response
|
|
188
|
-
* @param serviceName - Name of the microservice (e.g., 'reportService')
|
|
189
|
-
* @param endPointName - Endpoint path relative to the service
|
|
190
|
-
* @param data - Data to send with the request
|
|
191
|
-
* @param reqHeader - Custom headers for the request
|
|
192
|
-
* @returns An Observable emitting the response as a Blob
|
|
193
|
-
*/
|
|
194
|
-
postBlobToService(serviceName, endPointName, data, reqHeader) {
|
|
195
|
-
const serviceUrl = Common.apiServiceUrls[serviceName];
|
|
196
|
-
return this.http.post(`${serviceUrl}${endPointName}`, JSON.stringify(data), {
|
|
197
|
-
headers: reqHeader,
|
|
198
|
-
responseType: 'blob'
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
124
|
static { this.ɵfac = function ApiService_Factory(t) { return new (t || ApiService)(); }; }
|
|
202
125
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ApiService, factory: ApiService.ɵfac, providedIn: 'root' }); }
|
|
203
126
|
}
|
|
@@ -205,4 +128,4 @@ export class ApiService {
|
|
|
205
128
|
type: Injectable,
|
|
206
129
|
args: [{ providedIn: 'root' }]
|
|
207
130
|
}], null, null); })();
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBaVI1QztJQS9RQzs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQ0QsWUFBb0IsRUFDcEIsU0FBcUIsSUFBSSxVQUFVLEVBQUUsRUFDckMsU0FBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQ0YsWUFBb0IsRUFDcEIsSUFBUSxFQUNSLFNBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJ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dC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQVBJX1VSTCB9IGZyb20gJy4vYXBpLXVybC50b2tlbic7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL2FwcC9jb25zdGFudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVBJU2VydmljZU5hbWUsIENvbW1vbkFwaVJlc3BvbnNlLCBTdGFuZGFyZEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vYXBwL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FwcC9oZWxwZXJzL3Jlc3BvbnNlLmFkYXB0ZXInO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaV91cmwgPSBpbmplY3QoQVBJX1VSTCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgR0VUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QgKGRlZmF1bHQgaXMgYW4gZW1wdHkgSHR0cFBhcmFtcyBvYmplY3QpLlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGdldDxUPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKSxcclxuICAgIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBPU1QgcmVxdWVzdCB0byBzZW5kIGRhdGEgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgcG9zdDxULCBEPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8RCB8IGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KFxyXG4gICAgICBgJHt0aGlzLmFwaV91cmx9JHtlbmRQb2ludE5hbWV9YCxcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSksXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBVVCByZXF1ZXN0IHRvIHVwZGF0ZSBkYXRhIGF0IHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgUFVUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIHB1dDxULCBEPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YTogRCxcclxuICAgIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KFxyXG4gICAgICBgJHt0aGlzLmFwaV91cmx9JHtlbmRQb2ludE5hbWV9YCxcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSksXHJcbiAgICAgIHtcclxuICAgICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIGRlbGV0ZSBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBERUxFVEUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcmVxSGVhZGVyIFRoZSBjdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBkZWxldGU8VD4oZW5kUG9pbnROYW1lOiBzdHJpbmcsIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byByZXRyaWV2ZSBibG9iIGRhdGEgd2l0aCBjdXN0b20gaGVhZGVycy5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHBhcmFtcyBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGFzIGEgQmxvYi5cclxuICAgKi9cclxuICBnZXRCbG9iPFQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBQT1NUIHJlcXVlc3QgdG8gc2VuZCBkYXRhIGFuZCByZXRyaWV2ZSBibG9iIGRhdGEgd2l0aCBjdXN0b20gaGVhZGVycy5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBhcyBhIEJsb2IuXHJcbiAgICovXHJcbiAgcG9zdEJsb2I8VCwgRD4oXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIGRhdGE/OiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLCBkYXRhLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIFVSTC5cclxuICAgKiBAcGFyYW0gdXJsIFRoZSBVUkwgZm9yIHRoZSBIVFRQIEdFVCByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBjdXN0b20gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBnZXRCeVVybDxUPih1cmw6IHN0cmluZywgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih1cmwsIHsgLi4ub3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgUE9TVCByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIHNlbmQgd2l0aCB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBjdXN0b20gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBwb3N0QnlVcmw8VCwgRD4odXJsOiBzdHJpbmcsIGRhdGE/OiBELCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih1cmwsIEpTT04uc3RyaW5naWZ5KGRhdGEpLCB7IC4uLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBVVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgUFVUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIHB1dEJ5VXJsPFQsIEQ+KHVybDogc3RyaW5nLCBkYXRhPzogRCwgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih1cmwsIEpTT04uc3RyaW5naWZ5KGRhdGEpLCB7IC4uLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgREVMRVRFIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGRlbGV0ZUJ5VXJsPFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFQ+KHVybCwgeyAuLi5vcHRpb25zIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gTkVXIE1JQ1JPU0VSVklDRSBNRVRIT0RTID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gYSBzcGVjaWZpYyBtaWNyb3NlcnZpY2VcclxuICAgKiBAcGFyYW0gc2VydmljZU5hbWUgLSBOYW1lIG9mIHRoZSBtaWNyb3NlcnZpY2UgKGUuZy4sICdjcnVkU2VydmljZScsICdtZXRhZGF0YVNlcnZpY2UnKVxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgLSBFbmRwb2ludCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgZ2V0RnJvbVNlcnZpY2UoXHJcbiAgICBzZXJ2aWNlTmFtZTogQVBJU2VydmljZU5hbWUsXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCksXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBDb21tb24uYXBpU2VydmljZVVybHNbc2VydmljZU5hbWVdO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U3RhbmRhcmRBcGlSZXNwb25zZT4oYCR7c2VydmljZVVybH0ke2VuZFBvaW50TmFtZX1gLCB7XHJcbiAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IFJlc3BvbnNlQWRhcHRlci5ub3JtYWxpemUocmVzcG9uc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIC0gTmFtZSBvZiB0aGUgbWljcm9zZXJ2aWNlIChlLmcuLCAnY3J1ZFNlcnZpY2UnLCAnZm9ybWlvU2VydmljZScpXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSAtIEVuZHBvaW50IHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgcG9zdFRvU2VydmljZTxULCBEPihcclxuICAgIHNlcnZpY2VOYW1lOiBBUElTZXJ2aWNlTmFtZSxcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBDb21tb24uYXBpU2VydmljZVVybHNbc2VydmljZU5hbWVdO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFN0YW5kYXJkQXBpUmVzcG9uc2U+KFxyXG4gICAgICBgJHtzZXJ2aWNlVXJsfSR7ZW5kUG9pbnROYW1lfWAsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiBSZXNwb25zZUFkYXB0ZXIubm9ybWFsaXplKHJlc3BvbnNlKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBVVCByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIC0gTmFtZSBvZiB0aGUgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSAtIEVuZHBvaW50IHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0XHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgcHV0VG9TZXJ2aWNlPFQsIEQ+KFxyXG4gICAgc2VydmljZU5hbWU6IEFQSVNlcnZpY2VOYW1lLFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gQ29tbW9uLmFwaVNlcnZpY2VVcmxzW3NlcnZpY2VOYW1lXTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFN0YW5kYXJkQXBpUmVzcG9uc2U+KFxyXG4gICAgICBgJHtzZXJ2aWNlVXJsfSR7ZW5kUG9pbnROYW1lfWAsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB7XHJcbiAgICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiBSZXNwb25zZUFkYXB0ZXIubm9ybWFsaXplKHJlc3BvbnNlKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIERFTEVURSByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIC0gTmFtZSBvZiB0aGUgbWljcm9zZXJ2aWNlXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSAtIEVuZHBvaW50IHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCwgZm9yIERFTEVURSB3aXRoIGJvZHkpXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciAtIEN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgKGF1dG8tbm9ybWFsaXplZCB0byBDb21tb25BcGlSZXNwb25zZSBmb3JtYXQpXHJcbiAgICovXHJcbiAgZGVsZXRlRnJvbVNlcnZpY2U8RD4oXHJcbiAgICBzZXJ2aWNlTmFtZTogQVBJU2VydmljZU5hbWUsXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIGRhdGE/OiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gQ29tbW9uLmFwaVNlcnZpY2VVcmxzW3NlcnZpY2VOYW1lXTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPFN0YW5kYXJkQXBpUmVzcG9uc2U+KGAke3NlcnZpY2VVcmx9JHtlbmRQb2ludE5hbWV9YCwge1xyXG4gICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIGJvZHk6IGRhdGEgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6IHVuZGVmaW5lZFxyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IFJlc3BvbnNlQWRhcHRlci5ub3JtYWxpemUocmVzcG9uc2UpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIGEgc3BlY2lmaWMgbWljcm9zZXJ2aWNlIGFuZCByZXR1cm5zIGEgQmxvYiByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSAtIE5hbWUgb2YgdGhlIG1pY3Jvc2VydmljZSAoZS5nLiwgJ3JlcG9ydFNlcnZpY2UnKVxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgLSBFbmRwb2ludCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgLSBDdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBhcyBhIEJsb2JcclxuICAgKi9cclxuICBwb3N0QmxvYlRvU2VydmljZTxEPihcclxuICAgIHNlcnZpY2VOYW1lOiBBUElTZXJ2aWNlTmFtZSxcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgY29uc3Qgc2VydmljZVVybCA9IENvbW1vbi5hcGlTZXJ2aWNlVXJsc1tzZXJ2aWNlTmFtZV07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7c2VydmljZVVybH0ke2VuZFBvaW50TmFtZX1gLCBKU09OLnN0cmluZ2lmeShkYXRhKSwge1xyXG4gICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBd0o1QztJQXRKQzs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQ0QsWUFBb0IsRUFDcEIsU0FBcUIsSUFBSSxVQUFVLEVBQUUsRUFDckMsU0FBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQ0YsWUFBb0IsRUFDcEIsSUFBUSxFQUNSLFNBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLEVBQUUsRUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDcEI7WUFDRSxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUNELFlBQW9CLEVBQ3BCLElBQU8sRUFDUCxTQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ3BCO1lBQ0UsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFJLFlBQW9CLEVBQUUsU0FBdUI7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDM0QsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FDTCxZQUFvQixFQUNwQixTQUFxQixJQUFJLFVBQVUsRUFBRSxFQUNyQyxTQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLEVBQUUsRUFBRTtZQUN4RCxPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNO1lBQ04sWUFBWSxFQUFFLE1BQWdCO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQ04sWUFBb0IsRUFDcEIsSUFBUSxFQUNSLFNBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRTtZQUMvRCxPQUFPLEVBQUUsU0FBUztZQUNsQixZQUFZLEVBQUUsTUFBZ0I7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFJLEdBQVcsRUFBRSxPQUFhO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQU8sR0FBVyxFQUFFLElBQVEsRUFBRSxPQUFhO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBTyxHQUFXLEVBQUUsSUFBUSxFQUFFLE9BQWE7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUksR0FBVyxFQUFFLE9BQWE7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzsyRUF6SlUsVUFBVTt1RUFBVixVQUFVLFdBQVYsVUFBVSxtQkFERyxNQUFNOztpRkFDbkIsVUFBVTtjQUR0QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJX1VSTCB9IGZyb20gJy4vYXBpLXVybC50b2tlbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpX3VybCA9IGluamVjdChBUElfVVJMKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBHRVQgcmVxdWVzdCB0byByZXRyaWV2ZSBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBHRVQgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdCAoZGVmYXVsdCBpcyBhbiBlbXB0eSBIdHRwUGFyYW1zIG9iamVjdCkuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgZ2V0PFQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUE9TVCByZXF1ZXN0IHRvIHNlbmQgZGF0YSB0byB0aGUgc3BlY2lmaWVkIFVSTC5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIFBPU1QgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcGFyYW0gcmVxSGVhZGVyIFRoZSBjdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhIG9mIHR5cGUgVC5cclxuICAgKi9cclxuICBwb3N0PFQsIEQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhPzogRCxcclxuICAgIHJlcUhlYWRlcj86IEh0dHBIZWFkZXJzXHJcbiAgKTogT2JzZXJ2YWJsZTxEIHwgYW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oXHJcbiAgICAgIGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIGRhdGEgYXQgdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIGVuZFBvaW50TmFtZSBUaGUgVVJMIGZvciB0aGUgSFRUUCBQVVQgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgcHV0PFQsIEQ+KFxyXG4gICAgZW5kUG9pbnROYW1lOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBELFxyXG4gICAgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oXHJcbiAgICAgIGAke3RoaXMuYXBpX3VybH0ke2VuZFBvaW50TmFtZX1gLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAge1xyXG4gICAgICAgIGhlYWRlcnM6IHJlcUhlYWRlcixcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gZGVsZXRlIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIFVSTC5cclxuICAgKiBAcGFyYW0gZW5kUG9pbnROYW1lIFRoZSBVUkwgZm9yIHRoZSBIVFRQIERFTEVURSByZXF1ZXN0LlxyXG4gICAqIEBwYXJhbSByZXFIZWFkZXIgVGhlIGN1c3RvbSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGRlbGV0ZTxUPihlbmRQb2ludE5hbWU6IHN0cmluZywgcmVxSGVhZGVyPzogSHR0cEhlYWRlcnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGJsb2IgZGF0YSB3aXRoIGN1c3RvbSBoZWFkZXJzLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gcmVxSGVhZGVyIFRoZSBjdXN0b20gaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgYXMgYSBCbG9iLlxyXG4gICAqL1xyXG4gIGdldEJsb2I8VD4oXHJcbiAgICBlbmRQb2ludE5hbWU6IHN0cmluZyxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCksXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihgJHt0aGlzLmFwaV91cmx9JHtlbmRQb2ludE5hbWV9YCwge1xyXG4gICAgICBoZWFkZXJzOiByZXFIZWFkZXIsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWtlcyBhbiBIVFRQIFBPU1QgcmVxdWVzdCB0byBzZW5kIGRhdGEgYW5kIHJldHJpZXZlIGJsb2IgZGF0YSB3aXRoIGN1c3RvbSBoZWFkZXJzLlxyXG4gICAqIEBwYXJhbSBlbmRQb2ludE5hbWUgVGhlIFVSTCBmb3IgdGhlIEhUVFAgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHJlcUhlYWRlciBUaGUgY3VzdG9tIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGFzIGEgQmxvYi5cclxuICAgKi9cclxuICBwb3N0QmxvYjxULCBEPihcclxuICAgIGVuZFBvaW50TmFtZTogc3RyaW5nLFxyXG4gICAgZGF0YT86IEQsXHJcbiAgICByZXFIZWFkZXI/OiBIdHRwSGVhZGVyc1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4oYCR7dGhpcy5hcGlfdXJsfSR7ZW5kUG9pbnROYW1lfWAsIGRhdGEsIHtcclxuICAgICAgaGVhZGVyczogcmVxSGVhZGVyLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgVVJMLlxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIFVSTCBmb3IgdGhlIEhUVFAgR0VUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIGdldEJ5VXJsPFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwgeyAuLi5vcHRpb25zIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZXMgYW4gSFRUUCBQT1NUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIGZvciB0aGUgSFRUUCBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2VuZCB3aXRoIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGN1c3RvbSBvcHRpb25zIGZvciB0aGUgcmVxdWVzdCAob3B0aW9uYWwpLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBULlxyXG4gICAqL1xyXG4gIHBvc3RCeVVybDxULCBEPih1cmw6IHN0cmluZywgZGF0YT86IEQsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHVybCwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIHsgLi4ub3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgUFVUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIGZvciB0aGUgSFRUUCBQVVQgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBzZW5kIHdpdGggdGhlIHJlcXVlc3QgKG9wdGlvbmFsKS5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgY3VzdG9tIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgcHV0QnlVcmw8VCwgRD4odXJsOiBzdHJpbmcsIGRhdGE/OiBELCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KHVybCwgSlNPTi5zdHJpbmdpZnkoZGF0YSksIHsgLi4ub3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ha2VzIGFuIEhUVFAgREVMRVRFIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIGZvciB0aGUgSFRUUCBERUxFVEUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgY3VzdG9tIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0IChvcHRpb25hbCkuXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICovXHJcbiAgZGVsZXRlQnlVcmw8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VD4odXJsLCB7IC4uLm9wdGlvbnMgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/index.d.ts
CHANGED
|
@@ -36,7 +36,6 @@ export * from './lib/tab-core-utility/app/interfaces/user.interface';
|
|
|
36
36
|
export * from './lib/tab-core-utility/app/interfaces/orgInfo.interface';
|
|
37
37
|
export * from './lib/tab-core-utility/app/interfaces/schema.interface';
|
|
38
38
|
export * from './lib/tab-core-utility/app/interfaces/grid.interface';
|
|
39
|
-
export * from './lib/tab-core-utility/app/interfaces/signalr.interface';
|
|
40
39
|
export * from './lib/tab-core-utility/app/models/api-query.class';
|
|
41
40
|
export * from './lib/tab-core-utility/app/models/app-object.class';
|
|
42
41
|
export * from './lib/tab-core-utility/app/models/common.class';
|
|
@@ -57,9 +56,6 @@ export * from './lib/tab-core-utility/core/service/translation.service';
|
|
|
57
56
|
export * from './lib/tab-core-utility/core/service/notification.service';
|
|
58
57
|
export * from './lib/tab-core-utility/core/service/confirmation.service';
|
|
59
58
|
export * from './lib/tab-core-utility/core/service/encryption.service';
|
|
60
|
-
export * from './lib/tab-core-utility/core/service/signalr/signalr.service';
|
|
61
|
-
export * from './lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service';
|
|
62
|
-
export * from './lib/tab-core-utility/core/service/signalr/operation-tracker.service';
|
|
63
59
|
export * from './lib/tab-core-utility/core/pipe/translate.pipe';
|
|
64
60
|
export * from './lib/tab-core-utility/core/provider/translation.provider';
|
|
65
61
|
export * from './lib/tab-core-utility/core/provider/notification.provider';
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type { APIServiceName } from '../interfaces/common.interface';
|
|
2
1
|
export declare const API: {
|
|
3
2
|
applicationIdentifier: string;
|
|
4
3
|
applicationIdentifierForPMS: string;
|
|
5
4
|
novuBackendUrl: string;
|
|
6
5
|
novuSocketUrl: string;
|
|
6
|
+
insert: string;
|
|
7
7
|
bulkInsert: string;
|
|
8
|
+
update: string;
|
|
9
|
+
delete: string;
|
|
8
10
|
select: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
getDSQ: string;
|
|
12
|
+
getScreen: string;
|
|
13
|
+
getListFromDsq: string;
|
|
11
14
|
buildApp: string;
|
|
12
|
-
|
|
15
|
+
getSchema: string;
|
|
13
16
|
login: string;
|
|
14
17
|
pluginUpload: string;
|
|
15
18
|
getFile: string;
|
|
@@ -21,12 +24,12 @@ export declare const API: {
|
|
|
21
24
|
multipleFileUpload: string;
|
|
22
25
|
deleteFile: string;
|
|
23
26
|
getMediaFile: string;
|
|
24
|
-
|
|
27
|
+
getHistory: string;
|
|
25
28
|
changePassword: string;
|
|
26
29
|
restpassword: string;
|
|
27
30
|
getImage: string;
|
|
28
31
|
pmjayImport: string;
|
|
29
|
-
|
|
32
|
+
getScreenData: string;
|
|
30
33
|
processRequest: string;
|
|
31
34
|
getNextStatus: string;
|
|
32
35
|
updateStatus: string;
|
|
@@ -40,7 +43,7 @@ export declare const API: {
|
|
|
40
43
|
registerAppObjects: string;
|
|
41
44
|
languageResource: string;
|
|
42
45
|
refreshToken: string;
|
|
43
|
-
|
|
46
|
+
search: string;
|
|
44
47
|
cloneDsq: string;
|
|
45
48
|
InsertScreenPerformanceAnalytics: string;
|
|
46
49
|
GenerateHttpRequest: string;
|
|
@@ -48,10 +51,10 @@ export declare const API: {
|
|
|
48
51
|
GetSummaryOfPerformanceAnalytics: string;
|
|
49
52
|
GetDataJsonByType: string;
|
|
50
53
|
SyncAppFields: string;
|
|
51
|
-
|
|
54
|
+
exportReport: string;
|
|
52
55
|
RefreshGlobalSearchData: string;
|
|
53
56
|
RefreshRecordInfoData: string;
|
|
54
|
-
|
|
57
|
+
downloadReportFile: string;
|
|
55
58
|
sendReport: string;
|
|
56
59
|
GetReleaseJSONDifference: string;
|
|
57
60
|
GetDataDifference: string;
|
|
@@ -60,14 +63,4 @@ export declare const API: {
|
|
|
60
63
|
GetAllDocumnets: string;
|
|
61
64
|
GetDocumentById: string;
|
|
62
65
|
ExecuteWorkflow: string;
|
|
63
|
-
QueriesExecute: string;
|
|
64
|
-
QueriesSelect: string;
|
|
65
|
-
recordsInsert: string;
|
|
66
|
-
recordsUpdate: string;
|
|
67
|
-
recordsDelete: string;
|
|
68
|
-
fileManagerFileOperations: string;
|
|
69
|
-
fileManagerGetImage: string;
|
|
70
|
-
fileManagerUpload: string;
|
|
71
|
-
fileManagerDownload: string;
|
|
72
66
|
};
|
|
73
|
-
export declare const APIServices: Record<APIServiceName, APIServiceName>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { APIServiceUrls } from '../interfaces/common.interface';
|
|
2
1
|
export declare class Common {
|
|
3
2
|
static environmentName: string;
|
|
4
3
|
static applicationCode: string;
|
|
@@ -8,13 +7,5 @@ export declare class Common {
|
|
|
8
7
|
static tabAppObjectAccess: any;
|
|
9
8
|
static staticToken: any;
|
|
10
9
|
static i18n: any;
|
|
11
|
-
/** Microservice URLs configuration - NEW for microservices architecture */
|
|
12
|
-
static apiServiceUrls: APIServiceUrls;
|
|
13
|
-
/** SignalR hub URL for real-time notifications */
|
|
14
|
-
static signalRHubUrl: string;
|
|
15
|
-
/**
|
|
16
|
-
* Initialize the static variables
|
|
17
|
-
* Called once at application startup from the main app
|
|
18
|
-
*/
|
|
19
10
|
static init(environment: any): void;
|
|
20
11
|
}
|
|
@@ -9,14 +9,14 @@ export declare class TabBlueprintService {
|
|
|
9
9
|
* @param params - Optional parameters for the API call.
|
|
10
10
|
* @returns An observable of the API response.
|
|
11
11
|
*/
|
|
12
|
-
getNextStatus(payload: NextStatusPayload, params?: any): Observable<CommonApiResponse>;
|
|
12
|
+
getNextStatus(payload: NextStatusPayload, params?: any, customHeaders?: any): Observable<CommonApiResponse>;
|
|
13
13
|
/**
|
|
14
14
|
* Updates the status of a record.
|
|
15
15
|
* @param payload - Object containing the next possible status ID.
|
|
16
16
|
* @param params - Optional parameters for the API call.
|
|
17
17
|
* @returns An observable of the API response.
|
|
18
18
|
*/
|
|
19
|
-
updateStatus(payload: UpdateStatusPayload, params?: any): Observable<CommonApiResponse>;
|
|
19
|
+
updateStatus(payload: UpdateStatusPayload, params?: any, customHeaders?: any): Observable<CommonApiResponse>;
|
|
20
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabBlueprintService, never>;
|
|
21
21
|
static ɵprov: i0.ɵɵInjectableDeclaration<TabBlueprintService>;
|
|
22
22
|
}
|
|
@@ -6,10 +6,6 @@ export declare class TabCrudService {
|
|
|
6
6
|
private readonly _requestResponseHelper;
|
|
7
7
|
private readonly _dsqHelper;
|
|
8
8
|
private readonly _apiService;
|
|
9
|
-
private readonly _tabGetService;
|
|
10
|
-
private readonly _tabInsertService;
|
|
11
|
-
private readonly _tabUpdateService;
|
|
12
|
-
private readonly _tabDeleteService;
|
|
13
9
|
/**
|
|
14
10
|
* Returns the AppObjectModel from the given payload.
|
|
15
11
|
* @param payload The payload with either dataSourceQueryIdOrName or appObjectIdOrName.
|
|
@@ -43,16 +39,14 @@ export declare class TabCrudService {
|
|
|
43
39
|
get(payload: GetPayload, headers?: any): Observable<CommonApiResponse>;
|
|
44
40
|
/**
|
|
45
41
|
* Inserts data into the specified table.
|
|
46
|
-
* NEW: Delegates to TabInsertService which uses /records/insert endpoint with SYNC/ASYNC support
|
|
47
42
|
* @param payload The payload containing the data to insert and the AppObjectModel ID.
|
|
48
43
|
* @param headers Optional headers for the request.
|
|
49
|
-
* @returns An observable of the response from the API
|
|
44
|
+
* @returns An observable of the response from the API.
|
|
50
45
|
*/
|
|
51
46
|
insert(payload: InsertPayload, headers?: any): Observable<CommonApiResponse>;
|
|
52
47
|
bulkInsert(payload: InsertPayload, headers?: any): Observable<CommonApiResponse>;
|
|
53
48
|
/**
|
|
54
49
|
* Updates data in the specified table.
|
|
55
|
-
* NEW: Delegates to TabUpdateService which uses /records/update endpoint with SYNC/ASYNC support
|
|
56
50
|
* @param payload The payload containing the data to update, the criteria for the update, and the AppObjectModel ID.
|
|
57
51
|
* @param headers Optional headers for the request.
|
|
58
52
|
* @returns An observable of the response from the API.
|
|
@@ -60,7 +54,6 @@ export declare class TabCrudService {
|
|
|
60
54
|
update(payload: UpdatePayload, headers?: any): Observable<CommonApiResponse>;
|
|
61
55
|
/**
|
|
62
56
|
* Deletes data from the specified table.
|
|
63
|
-
* NEW: Delegates to TabDeleteService which uses /records/delete endpoint with SYNC/ASYNC support
|
|
64
57
|
* @param payload The payload containing the criteria for the delete and the AppObjectModel ID.
|
|
65
58
|
* @param headers Optional headers for the request.
|
|
66
59
|
* @returns An observable of the response from the API.
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CommonApiResponse } from '../interfaces/common.interface';
|
|
1
|
+
import { APIDeleteQuery } from "../models/api-query.class";
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class TabDeleteService {
|
|
4
|
+
private readonly dsqHelper;
|
|
5
5
|
private readonly screenHelper;
|
|
6
6
|
private readonly whereClauseHelper;
|
|
7
7
|
private readonly requestResponseHelper;
|
|
8
|
-
private readonly apiService;
|
|
9
|
-
private readonly signalRService;
|
|
10
|
-
private readonly metadataHelper;
|
|
11
8
|
/**
|
|
12
9
|
* Deletes a record based on the given screen ID, data, and object ID.
|
|
13
10
|
* @param screenId The ID of the screen.
|
|
@@ -15,7 +12,7 @@ export declare class TabDeleteService {
|
|
|
15
12
|
* @param objectIDToSave The object ID of the record to save.
|
|
16
13
|
* @returns An Observable emitting the response of the delete operation.
|
|
17
14
|
*/
|
|
18
|
-
deleteRecord(screenId: string, data: any, objectIDToSave: any): Observable<
|
|
15
|
+
deleteRecord(screenId: string, data: any, objectIDToSave: any): import("rxjs").Observable<any> | null;
|
|
19
16
|
/**
|
|
20
17
|
* Deletes a record by the specified table name and primary key value.
|
|
21
18
|
* @param tableName The name of the table.
|
|
@@ -23,20 +20,13 @@ export declare class TabDeleteService {
|
|
|
23
20
|
* @param primaryKeyValue The value of the primary key.
|
|
24
21
|
* @returns An Observable emitting the response of the delete operation.
|
|
25
22
|
*/
|
|
26
|
-
deleteRecordByTable(tableName: string, primaryKey: string, primaryKeyValue: string): Observable<
|
|
23
|
+
deleteRecordByTable(tableName: string, primaryKey: string, primaryKeyValue: string): import("rxjs").Observable<any> | null;
|
|
27
24
|
/**
|
|
28
|
-
* Executes the delete operation
|
|
29
|
-
* @param data The delete query payload
|
|
30
|
-
* @
|
|
31
|
-
* @returns An Observable emitting the response of the delete operation
|
|
32
|
-
*/
|
|
33
|
-
delete(data: any, headers?: any): Observable<CommonApiResponse>;
|
|
34
|
-
/**
|
|
35
|
-
* Handle async delete - wait for SignalR notification
|
|
36
|
-
* @param response Initial response with correlationId
|
|
37
|
-
* @returns Observable with result from SignalR notification
|
|
25
|
+
* Executes the delete operation.
|
|
26
|
+
* @param data The delete query payload.
|
|
27
|
+
* @returns An Observable emitting the response of the delete operation.
|
|
38
28
|
*/
|
|
39
|
-
|
|
29
|
+
delete(data: APIDeleteQuery, headers?: any): import("rxjs").Observable<any> | null;
|
|
40
30
|
/**
|
|
41
31
|
* Displays a delete confirmation popup.
|
|
42
32
|
* @returns True if the user confirms the delete operation, otherwise false.
|
|
@@ -48,7 +38,7 @@ export declare class TabDeleteService {
|
|
|
48
38
|
* @param values The values of the records to delete.
|
|
49
39
|
* @returns An Observable emitting the response of the delete operation.
|
|
50
40
|
*/
|
|
51
|
-
deleteMultipleRecordByTable(tableName: string, values: any): Observable<
|
|
41
|
+
deleteMultipleRecordByTable(tableName: string, values: any): import("rxjs").Observable<any> | null;
|
|
52
42
|
/**
|
|
53
43
|
* Deletes multiple records from the specified table based on the provided data array.
|
|
54
44
|
* The data array should contain key-value pairs without primary key information.
|
|
@@ -56,7 +46,7 @@ export declare class TabDeleteService {
|
|
|
56
46
|
* @param values The array of data objects to delete.
|
|
57
47
|
* @returns An Observable emitting the response of the delete operation.
|
|
58
48
|
*/
|
|
59
|
-
deleteMultipleRecordByTableWithoutPrimaryKey(tableName: string, values: any, headers?: any): Observable<
|
|
49
|
+
deleteMultipleRecordByTableWithoutPrimaryKey(tableName: string, values: any, headers?: any): import("rxjs").Observable<any> | null;
|
|
60
50
|
/**
|
|
61
51
|
* Generates a values array from the data.
|
|
62
52
|
* @param dataArray The array of data.
|