@mediusinc/mng-commons-data-api-class 5.0.0-rc.0

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 (63) hide show
  1. package/README.md +16 -0
  2. package/esm2022/index.mjs +9 -0
  3. package/esm2022/lib/models/query-result.model.mjs +24 -0
  4. package/esm2022/lib/serder/object-serializer.mjs +184 -0
  5. package/esm2022/lib/services/api.abstract.service.mjs +55 -0
  6. package/esm2022/lib/services/crud-api.abstract.service.mjs +82 -0
  7. package/esm2022/lib/services/get-all-api.abstract.service.mjs +49 -0
  8. package/esm2022/mediusinc-mng-commons-data-api-class.mjs +5 -0
  9. package/esm2022/tableview/index.mjs +3 -0
  10. package/esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs +5 -0
  11. package/esm2022/tableview/tableview-crud-create.mjs +40 -0
  12. package/esm2022/tableview/tableview-crud.data-provider.mjs +50 -0
  13. package/esm2022/v1/helpers/query-param-convert.mjs +103 -0
  14. package/esm2022/v1/helpers/tableview-crud-create.mjs +21 -0
  15. package/esm2022/v1/index.mjs +21 -0
  16. package/esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs +5 -0
  17. package/esm2022/v1/models/builders/query-param.builder.mjs +83 -0
  18. package/esm2022/v1/models/filter-match-type.model.mjs +27 -0
  19. package/esm2022/v1/models/filter-param.model.mjs +33 -0
  20. package/esm2022/v1/models/query-mode.model.mjs +18 -0
  21. package/esm2022/v1/models/query-param.model.mjs +68 -0
  22. package/esm2022/v1/models/query-result.model.mjs +24 -0
  23. package/esm2022/v1/provide.mjs +40 -0
  24. package/esm2022/v1/services/api.abstract.service.mjs +70 -0
  25. package/esm2022/v1/services/crud-api.abstract.service.mjs +83 -0
  26. package/esm2022/v1/services/get-all-api.abstract.service.mjs +38 -0
  27. package/esm2022/v1/tableview/tableview-crud.data-provider.mjs +50 -0
  28. package/esm2022/v1/utils/query-param-map.util.mjs +57 -0
  29. package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs +95 -0
  30. package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs.map +1 -0
  31. package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs +698 -0
  32. package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs.map +1 -0
  33. package/fesm2022/mediusinc-mng-commons-data-api-class.mjs +396 -0
  34. package/fesm2022/mediusinc-mng-commons-data-api-class.mjs.map +1 -0
  35. package/index.d.ts +5 -0
  36. package/lib/models/query-result.model.d.ts +13 -0
  37. package/lib/serder/object-serializer.d.ts +26 -0
  38. package/lib/services/api.abstract.service.d.ts +22 -0
  39. package/lib/services/crud-api.abstract.service.d.ts +25 -0
  40. package/lib/services/get-all-api.abstract.service.d.ts +14 -0
  41. package/openapi/model.mustache +83 -0
  42. package/openapi/models.mustache +6 -0
  43. package/package.json +41 -0
  44. package/tableview/README.md +10 -0
  45. package/tableview/index.d.ts +2 -0
  46. package/tableview/tableview-crud-create.d.ts +40 -0
  47. package/tableview/tableview-crud.data-provider.d.ts +16 -0
  48. package/v1/README.md +12 -0
  49. package/v1/helpers/query-param-convert.d.ts +23 -0
  50. package/v1/helpers/tableview-crud-create.d.ts +23 -0
  51. package/v1/index.d.ts +14 -0
  52. package/v1/models/builders/query-param.builder.d.ts +36 -0
  53. package/v1/models/filter-match-type.model.d.ts +25 -0
  54. package/v1/models/filter-param.model.d.ts +23 -0
  55. package/v1/models/query-mode.model.d.ts +16 -0
  56. package/v1/models/query-param.model.d.ts +31 -0
  57. package/v1/models/query-result.model.d.ts +24 -0
  58. package/v1/provide.d.ts +9 -0
  59. package/v1/services/api.abstract.service.d.ts +36 -0
  60. package/v1/services/crud-api.abstract.service.d.ts +37 -0
  61. package/v1/services/get-all-api.abstract.service.d.ts +30 -0
  62. package/v1/tableview/tableview-crud.data-provider.d.ts +29 -0
  63. package/v1/utils/query-param-map.util.d.ts +22 -0
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # Medius Commons Data API as Class
2
+
3
+ Commons Data API library for REST communication with backends built with `medius-data` v4 and pre v4 (aka Medius QueryParam).
4
+ OpenAPI Typescript Node generator is used to generate models.
5
+
6
+ Abstract API service class are available for easier development of API services.
7
+
8
+ ## Namestitev
9
+
10
+ ```bash
11
+ pnpm i @mediusinc/mng-commons-data-api-class
12
+ ```
13
+
14
+ ## Dependencies within commons
15
+
16
+ - `@mediusinc/mng-commons/core`
@@ -0,0 +1,9 @@
1
+ // models
2
+ export * from './lib/models/query-result.model';
3
+ // serder
4
+ export * from './lib/serder/object-serializer';
5
+ // services
6
+ export * from './lib/services/api.abstract.service';
7
+ export * from './lib/services/crud-api.abstract.service';
8
+ export * from './lib/services/get-all-api.abstract.service';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsU0FBUztBQUNULGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsV0FBVztBQUNYLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsJztcblxuLy8gc2VyZGVyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJkZXIvb2JqZWN0LXNlcmlhbGl6ZXInO1xuXG4vLyBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpLmFic3RyYWN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY3J1ZC1hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9nZXQtYWxsLWFwaS5hYnN0cmFjdC5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ export class QueryResult {
2
+ static fromArray(pageData, allDataCount) {
3
+ const mqr = new QueryResult();
4
+ mqr.totalCount = allDataCount ?? pageData.length;
5
+ mqr.data = pageData;
6
+ return mqr;
7
+ }
8
+ static { this.attributeTypeMap = [
9
+ {
10
+ name: 'totalCount',
11
+ baseName: 'totalCount',
12
+ type: 'number'
13
+ },
14
+ {
15
+ name: 'data',
16
+ baseName: 'data',
17
+ type: 'Array<T>'
18
+ }
19
+ ]; }
20
+ static getAttributeTypeMap() {
21
+ return QueryResult.attributeTypeMap;
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxXQUFXO0lBTXBCLE1BQU0sQ0FBQyxTQUFTLENBQU8sUUFBZ0IsRUFBRSxZQUFxQjtRQUMxRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsRUFBUSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakQsR0FBRyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO2FBRU0scUJBQWdCLEdBQTZCO1FBQ2hEO1lBQ0ksSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFLFlBQVk7WUFDdEIsSUFBSSxFQUFFLFFBQVE7U0FDakI7UUFDRDtZQUNJLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUFFLFVBQVU7U0FDbkI7S0FDSixDQUFDO0lBRUYsTUFBTSxDQUFDLG1CQUFtQjtRQUN0QixPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5UmVzdWx0PEl0ZW0+IGltcGxlbWVudHMgSU1lZGl1c1F1ZXJ5UmVzdWx0VjI8SXRlbT4ge1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZGF0YT86IEFycmF5PEl0ZW0+O1xuXG4gICAgc3RhdGljIGRpc2NyaW1pbmF0b3I/OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbUFycmF5PEl0ZW0+KHBhZ2VEYXRhOiBJdGVtW10sIGFsbERhdGFDb3VudD86IG51bWJlcikge1xuICAgICAgICBjb25zdCBtcXIgPSBuZXcgUXVlcnlSZXN1bHQ8SXRlbT4oKTtcbiAgICAgICAgbXFyLnRvdGFsQ291bnQgPSBhbGxEYXRhQ291bnQgPz8gcGFnZURhdGEubGVuZ3RoO1xuICAgICAgICBtcXIuZGF0YSA9IHBhZ2VEYXRhO1xuICAgICAgICByZXR1cm4gbXFyO1xuICAgIH1cblxuICAgIHN0YXRpYyBhdHRyaWJ1dGVUeXBlTWFwOiBBcnJheTxDbGFzc0F0dHJpYnV0ZURlZj4gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd0b3RhbENvdW50JyxcbiAgICAgICAgICAgIGJhc2VOYW1lOiAndG90YWxDb3VudCcsXG4gICAgICAgICAgICB0eXBlOiAnbnVtYmVyJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2RhdGEnLFxuICAgICAgICAgICAgdHlwZTogJ0FycmF5PFQ+J1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIHN0YXRpYyBnZXRBdHRyaWJ1dGVUeXBlTWFwKCkge1xuICAgICAgICByZXR1cm4gUXVlcnlSZXN1bHQuYXR0cmlidXRlVHlwZU1hcDtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lZGl1c1F1ZXJ5UmVzdWx0VjI8SXRlbT4ge1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZGF0YT86IEFycmF5PEl0ZW0+O1xufVxuIl19
@@ -0,0 +1,184 @@
1
+ import { DateUtil, TypeRegistry, findReflectTypeName } from '@mediusinc/mng-commons/core';
2
+ export class ObjectSerializer {
3
+ constructor() {
4
+ this._logCategory = 'ObjectSerializer';
5
+ this._primitives = ['string', 'boolean', 'double', 'integer', 'long', 'float', 'number', 'any'];
6
+ this.dateTimeInUtc = false;
7
+ this.dateTimeWithTimezone = true;
8
+ this.dateTimeWithMillis = true;
9
+ }
10
+ static { this._instance = new ObjectSerializer(); }
11
+ get primitives() {
12
+ return this._primitives;
13
+ }
14
+ /**
15
+ * Only use one instance of object (out of Angular context)
16
+ */
17
+ static get() {
18
+ return ObjectSerializer._instance;
19
+ }
20
+ configure(config) {
21
+ if (config.dateTimeInUtc !== undefined) {
22
+ this.dateTimeInUtc = config.dateTimeInUtc;
23
+ }
24
+ if (config.dateTimeWithTimezone !== undefined) {
25
+ this.dateTimeWithTimezone = config.dateTimeWithTimezone;
26
+ }
27
+ if (config.dateTimeWithMillis !== undefined) {
28
+ this.dateTimeWithMillis = config.dateTimeWithMillis;
29
+ }
30
+ }
31
+ findCorrectType(data, expectedTypeName) {
32
+ if (data == undefined) {
33
+ return expectedTypeName;
34
+ }
35
+ else if (this._primitives.indexOf(expectedTypeName.toLowerCase()) !== -1) {
36
+ return expectedTypeName;
37
+ }
38
+ else if (expectedTypeName === 'Date') {
39
+ return expectedTypeName;
40
+ }
41
+ else {
42
+ const enumType = TypeRegistry.get().findEnum(expectedTypeName);
43
+ if (enumType) {
44
+ return expectedTypeName;
45
+ }
46
+ const type = TypeRegistry.get().findType(expectedTypeName);
47
+ if (!type) {
48
+ return expectedTypeName; // w/e we don't know the type
49
+ }
50
+ // Check the discriminator
51
+ const discriminatorProperty = type.discriminator;
52
+ if (discriminatorProperty == null) {
53
+ return expectedTypeName; // the type does not have a discriminator. use it.
54
+ }
55
+ else {
56
+ if (data[discriminatorProperty]) {
57
+ const discriminatorType = data[discriminatorProperty];
58
+ const type = TypeRegistry.get().findType(expectedTypeName);
59
+ if (type) {
60
+ return discriminatorType; // use the type given in the discriminator
61
+ }
62
+ else {
63
+ return expectedTypeName; // discriminator did not map to a type
64
+ }
65
+ }
66
+ else {
67
+ return expectedTypeName; // discriminator was not present (or an empty string)
68
+ }
69
+ }
70
+ }
71
+ }
72
+ serializeClass(data, type) {
73
+ return this.serialize(data, findReflectTypeName(type) ?? undefined);
74
+ }
75
+ serializeClassArray(data, type) {
76
+ return this.serialize(data, `Array<${findReflectTypeName(type)}>`);
77
+ }
78
+ serialize(data, typeName, subtype) {
79
+ if (data == undefined) {
80
+ return data;
81
+ }
82
+ else if (typeName && this._primitives.indexOf(typeName.toLowerCase()) !== -1) {
83
+ return data;
84
+ }
85
+ else if (typeName && typeName.lastIndexOf('Array<', 0) === 0) {
86
+ // string.startsWith pre es6
87
+ let subType = typeName.replace('Array<', ''); // Array<Type> => Type>
88
+ subType = subType.substring(0, subType.length - 1); // Type> => Type
89
+ const transformedData = [];
90
+ // tslint:disable-next-line:prefer-for-of
91
+ for (let index = 0; index < data.length; index++) {
92
+ const datum = data[index];
93
+ transformedData.push(this.serialize(datum, subType));
94
+ }
95
+ return transformedData;
96
+ }
97
+ else if (typeName === 'Date') {
98
+ const dateOnly = subtype?.toLowerCase() === 'date';
99
+ return DateUtil.toIsoString(data, dateOnly ? 'date' : 'date-time', {
100
+ utc: this.dateTimeInUtc,
101
+ noTimezone: !this.dateTimeWithTimezone,
102
+ noMillis: !this.dateTimeWithMillis
103
+ });
104
+ }
105
+ else if (typeName) {
106
+ const enumType = TypeRegistry.get().findEnum(typeName);
107
+ if (enumType) {
108
+ return data;
109
+ }
110
+ const type = TypeRegistry.get().findType(typeName);
111
+ if (!type) {
112
+ // in case we dont know the type
113
+ return data;
114
+ }
115
+ // Get the actual type of this object
116
+ const correctedTypeName = this.findCorrectType(data, typeName);
117
+ const correctedType = TypeRegistry.get().findType(correctedTypeName);
118
+ // get the map for the correct type.
119
+ const attributeTypes = correctedType.getAttributeTypeMap();
120
+ const instance = {};
121
+ // tslint:disable-next-line:prefer-for-of
122
+ for (let index = 0; index < attributeTypes.length; index++) {
123
+ const attributeType = attributeTypes[index];
124
+ instance[attributeType.baseName] = this.serialize(data[attributeType.name], attributeType.type, attributeType.subtype);
125
+ }
126
+ return instance;
127
+ }
128
+ else {
129
+ return data;
130
+ }
131
+ }
132
+ deserializeClass(data, type) {
133
+ return this.deserialize(data, findReflectTypeName(type) ?? undefined);
134
+ }
135
+ deserializeClassArray(data, type) {
136
+ return this.deserialize(data, `Array<${findReflectTypeName(type)}>`);
137
+ }
138
+ deserialize(data, type) {
139
+ // polymorphism may change the actual type.
140
+ if (data == undefined || !type) {
141
+ return data;
142
+ }
143
+ const correctedTypeName = this.findCorrectType(data, type);
144
+ if (this._primitives.indexOf(correctedTypeName.toLowerCase()) !== -1) {
145
+ return data;
146
+ }
147
+ else if (correctedTypeName.lastIndexOf('Array<', 0) === 0) {
148
+ // string.startsWith pre es6
149
+ let subType = correctedTypeName.replace('Array<', ''); // Array<Type> => Type>
150
+ subType = subType.substring(0, subType.length - 1); // Type> => Type
151
+ const transformedData = [];
152
+ // tslint:disable-next-line:prefer-for-of
153
+ for (let index = 0; index < data.length; index++) {
154
+ const datum = data[index];
155
+ transformedData.push(this.deserialize(datum, subType));
156
+ }
157
+ return transformedData;
158
+ }
159
+ else if (correctedTypeName === 'Date') {
160
+ return new Date(data);
161
+ }
162
+ else {
163
+ const enumType = TypeRegistry.get().findEnum(correctedTypeName);
164
+ if (enumType) {
165
+ // is Enum
166
+ return data;
167
+ }
168
+ const correctedType = TypeRegistry.get().findType(correctedTypeName);
169
+ if (!correctedType) {
170
+ // dont know the type
171
+ return data;
172
+ }
173
+ const instance = new correctedType();
174
+ const attributeTypes = correctedType.getAttributeTypeMap();
175
+ // tslint:disable-next-line:prefer-for-of
176
+ for (let index = 0; index < attributeTypes.length; index++) {
177
+ const attributeType = attributeTypes[index];
178
+ instance[attributeType.name] = this.deserialize(data[attributeType.baseName], attributeType.type);
179
+ }
180
+ return instance;
181
+ }
182
+ }
183
+ }
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcmRlci9vYmplY3Qtc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFFBQVEsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUV0SCxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBRXFCLGlCQUFZLEdBQUcsa0JBQWtCLENBQUM7UUFDbEMsZ0JBQVcsR0FBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5RyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0Qix5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO0lBaUx0QyxDQUFDO2FBdkxrQixjQUFTLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQUFBM0MsQ0FBNEM7SUFRcEUsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRztRQUNiLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBK0Y7UUFDNUcsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7U0FDN0M7UUFDRCxJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLEVBQUU7WUFDM0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztTQUMzRDtRQUNELElBQUksTUFBTSxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFB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USxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDaEUsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsVUFBVTtnQkFDVixPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hCLHFCQUFxQjtnQkFDckIsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDckMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixFQUE4QixDQUFDO1lBQ3ZGLHlDQUF5QztZQUN6QyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDeEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckc7WUFDRCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzQXR0cmlidXRlRGVmLCBDbGFzc1R5cGUsIERhdGVVdGlsLCBUeXBlUmVnaXN0cnksIGZpbmRSZWZsZWN0VHlwZU5hbWV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RTZXJpYWxpemVyIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE9iamVjdFNlcmlhbGl6ZXIgPSBuZXcgT2JqZWN0U2VyaWFsaXplcigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvZ0NhdGVnb3J5ID0gJ09iamVjdFNlcmlhbGl6ZXInO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByaW1pdGl2ZXM6IHN0cmluZ1tdID0gWydzdHJpbmcnLCAnYm9vbGVhbicsICdkb3VibGUnLCAnaW50ZWdlcicsICdsb25nJywgJ2Zsb2F0JywgJ251bWJlcicsICdhbnknXTtcblxuICAgIHByaXZhdGUgZGF0ZVRpbWVJblV0YyA9IGZhbHNlO1xuICAgIHByaXZhdGUgZGF0ZVRpbWVXaXRoVGltZXpvbmUgPSB0cnVlO1xuICAgIHByaXZhdGUgZGF0ZVRpbWVXaXRoTWlsbGlzID0gdHJ1ZTtcblxuICAgIHB1YmxpYyBnZXQgcHJpbWl0aXZlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByaW1pdGl2ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT25seSB1c2Ugb25lIGluc3RhbmNlIG9mIG9iamVjdCAob3V0IG9mIEFuZ3VsYXIgY29udGV4dClcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldCgpOiBPYmplY3RTZXJpYWxpemVyIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdFNlcmlhbGl6ZXIuX2luc3RhbmNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmUoY29uZmlnOiB7ZGF0ZVRpbWVJblV0Yz86IGJvb2xlYW47IGRhdGVUaW1lV2l0aFRpbWV6b25lPzogYm9vbGVhbjsgZGF0ZVRpbWVXaXRoTWlsbGlzPzogYm9vbGVhbn0pOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvbmZpZy5kYXRlVGltZUluVXRjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVJblV0YyA9IGNvbmZpZy5kYXRlVGltZUluVXRjO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcuZGF0ZVRpbWVXaXRoVGltZXpvbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlVGltZVdpdGhUaW1lem9uZSA9IGNvbmZpZy5kYXRlVGltZVdpdGhUaW1lem9uZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLmRhdGVUaW1lV2l0aE1pbGxpcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lV2l0aE1pbGxpcyA9IGNvbmZpZy5kYXRlVGltZVdpdGhNaWxsaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZENvcnJlY3RUeXBlKGRhdGE6IGFueSwgZXhwZWN0ZWRUeXBlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGRhdGEgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlTmFtZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9wcmltaXRpdmVzLmluZGV4T2YoZXhwZWN0ZWRUeXBlTmFtZS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGVOYW1lO1xuICAgICAgICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZU5hbWUgPT09ICdEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZU5hbWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlbnVtVHlwZSA9IFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kRW51bShleHBlY3RlZFR5cGVOYW1lKTtcbiAgICAgICAgICAgIGlmIChlbnVtVHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGVOYW1lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB0eXBlID0gVHlwZVJlZ2lzdHJ5LmdldCgpLmZpbmRUeXBlKGV4cGVjdGVkVHlwZU5hbWUpO1xuICAgICAgICAgICAgaWYgKCF0eXBlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkVHlwZU5hbWU7IC8vIHcvZSB3ZSBkb24ndCBrbm93IHRoZSB0eXBlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENoZWNrIHRoZSBkaXNjcmltaW5hdG9yXG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yUHJvcGVydHkgPSB0eXBlLmRpc2NyaW1pbmF0b3I7XG4gICAgICAgICAgICBpZiAoZGlzY3JpbWluYXRvclByb3BlcnR5ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlTmFtZTsgLy8gdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIGRpc2NyaW1pbmF0b3IuIHVzZSBpdC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFbZGlzY3JpbWluYXRvclByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yVHlwZSA9IGRhdGFbZGlzY3JpbWluYXRvclByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kVHlwZShleHBlY3RlZFR5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkaXNjcmltaW5hdG9yVHlwZTsgLy8gdXNlIHRoZSB0eXBlIGdpdmVuIGluIHRoZSBkaXNjcmltaW5hdG9yXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRUeXBlTmFtZTsgLy8gZGlzY3JpbWluYXRvciBkaWQgbm90IG1hcCB0byBhIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFR5cGVOYW1lOyAvLyBkaXNjcmltaW5hdG9yIHdhcyBub3QgcHJlc2VudCAob3IgYW4gZW1wdHkgc3RyaW5nKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXJpYWxpemVDbGFzczxUPihkYXRhOiBULCB0eXBlOiBDbGFzc1R5cGU8VD4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKGRhdGEsIGZpbmRSZWZsZWN0VHlwZU5hbWUodHlwZSkgPz8gdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VyaWFsaXplQ2xhc3NBcnJheTxUPihkYXRhOiBBcnJheTxUPiwgdHlwZTogQ2xhc3NUeXBlPFQ+KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZShkYXRhLCBgQXJyYXk8JHtmaW5kUmVmbGVjdFR5cGVOYW1lKHR5cGUpfT5gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VyaWFsaXplKGRhdGE6IGFueSwgdHlwZU5hbWU/OiBzdHJpbmcsIHN1YnR5cGU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGRhdGEgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlTmFtZSAmJiB0aGlzLl9wcmltaXRpdmVzLmluZGV4T2YodHlwZU5hbWUudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlTmFtZSAmJiB0eXBlTmFtZS5sYXN0SW5kZXhPZignQXJyYXk8JywgMCkgPT09IDApIHtcbiAgICAgICAgICAgIC8vIHN0cmluZy5zdGFydHNXaXRoIHByZSBlczZcbiAgICAgICAgICAgIGxldCBzdWJUeXBlOiBzdHJpbmcgPSB0eXBlTmFtZS5yZXBsYWNlKCdBcnJheTwnLCAnJyk7IC8vIEFycmF5PFR5cGU+ID0+IFR5cGU+XG4gICAgICAgICAgICBzdWJUeXBlID0gc3ViVHlwZS5zdWJzdHJpbmcoMCwgc3ViVHlwZS5sZW5ndGggLSAxKTsgLy8gVHlwZT4gPT4gVHlwZVxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWREYXRhOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdHVtID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZWREYXRhLnB1c2godGhpcy5zZXJpYWxpemUoZGF0dW0sIHN1YlR5cGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZERhdGE7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09ICdEYXRlJykge1xuICAgICAgICAgICAgY29uc3QgZGF0ZU9ubHkgPSBzdWJ0eXBlPy50b0xvd2VyQ2FzZSgpID09PSAnZGF0ZSc7XG4gICAgICAgICAgICByZXR1cm4gRGF0ZVV0aWwudG9Jc29TdHJpbmcoZGF0YSwgZGF0ZU9ubHkgPyAnZGF0ZScgOiAnZGF0ZS10aW1lJywge1xuICAgICAgICAgICAgICAgIHV0YzogdGhpcy5kYXRlVGltZUluVXRjLFxuICAgICAgICAgICAgICAgIG5vVGltZXpvbmU6ICF0aGlzLmRhdGVUaW1lV2l0aFRpbWV6b25lLFxuICAgICAgICAgICAgICAgIG5vTWlsbGlzOiAhdGhpcy5kYXRlVGltZVdpdGhNaWxsaXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBlbnVtVHlwZSA9IFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kRW51bSh0eXBlTmFtZSk7XG4gICAgICAgICAgICBpZiAoZW51bVR5cGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdHlwZSA9IFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kVHlwZSh0eXBlTmFtZSk7XG4gICAgICAgICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHdlIGRvbnQga25vdyB0aGUgdHlwZVxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIGFjdHVhbCB0eXBlIG9mIHRoaXMgb2JqZWN0XG4gICAgICAgICAgICBjb25zdCBjb3JyZWN0ZWRUeXBlTmFtZSA9IHRoaXMuZmluZENvcnJlY3RUeXBlKGRhdGEsIHR5cGVOYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGNvcnJlY3RlZFR5cGUgPSBUeXBlUmVnaXN0cnkuZ2V0KCkuZmluZFR5cGUoY29ycmVjdGVkVHlwZU5hbWUpO1xuXG4gICAgICAgICAgICAvLyBnZXQgdGhlIG1hcCBmb3IgdGhlIGNvcnJlY3QgdHlwZS5cbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGVzID0gY29ycmVjdGVkVHlwZS5nZXRBdHRyaWJ1dGVUeXBlTWFwKCkgYXMgQXJyYXk8Q2xhc3NBdHRyaWJ1dGVEZWY+O1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2U6IHtbaW5kZXg6IHN0cmluZ106IGFueX0gPSB7fTtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItZm9yLW9mXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXR0cmlidXRlVHlwZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZVR5cGVzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVthdHRyaWJ1dGVUeXBlLmJhc2VOYW1lXSA9IHRoaXMuc2VyaWFsaXplKGRhdGFbYXR0cmlidXRlVHlwZS5uYW1lXSwgYXR0cmlidXRlVHlwZS50eXBlLCBhdHRyaWJ1dGVUeXBlLnN1YnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzZXJpYWxpemVDbGFzczxUPihkYXRhOiBhbnksIHR5cGU6IENsYXNzVHlwZTxUPik6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZShkYXRhLCBmaW5kUmVmbGVjdFR5cGVOYW1lKHR5cGUpID8/IHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc2VyaWFsaXplQ2xhc3NBcnJheTxUPihkYXRhOiBhbnksIHR5cGU6IENsYXNzVHlwZTxUPik6IEFycmF5PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoZGF0YSwgYEFycmF5PCR7ZmluZFJlZmxlY3RUeXBlTmFtZSh0eXBlKX0+YCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc2VyaWFsaXplKGRhdGE6IGFueSwgdHlwZT86IHN0cmluZykge1xuICAgICAgICAvLyBwb2x5bW9ycGhpc20gbWF5IGNoYW5nZSB0aGUgYWN0dWFsIHR5cGUuXG4gICAgICAgIGlmIChkYXRhID09IHVuZGVmaW5lZCB8fCAhdHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3JyZWN0ZWRUeXBlTmFtZSA9IHRoaXMuZmluZENvcnJlY3RUeXBlKGRhdGEsIHR5cGUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9wcmltaXRpdmVzLmluZGV4T2YoY29ycmVjdGVkVHlwZU5hbWUudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSBlbHNlIGlmIChjb3JyZWN0ZWRUeXBlTmFtZS5sYXN0SW5kZXhPZignQXJyYXk8JywgMCkgPT09IDApIHtcbiAgICAgICAgICAgIC8vIHN0cmluZy5zdGFydHNXaXRoIHByZSBlczZcbiAgICAgICAgICAgIGxldCBzdWJUeXBlOiBzdHJpbmcgPSBjb3JyZWN0ZWRUeXBlTmFtZS5yZXBsYWNlKCdBcnJheTwnLCAnJyk7IC8vIEFycmF5PFR5cGU+ID0+IFR5cGU+XG4gICAgICAgICAgICBzdWJUeXBlID0gc3ViVHlwZS5zdWJzdHJpbmcoMCwgc3ViVHlwZS5sZW5ndGggLSAxKTsgLy8gVHlwZT4gPT4gVHlwZVxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZWREYXRhOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdHVtID0gZGF0YVtpbmRleF07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZWREYXRhLnB1c2godGhpcy5kZXNlcmlhbGl6ZShkYXR1bSwgc3ViVHlwZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkRGF0YTtcbiAgICAgICAgfSBlbHNlIGlmIChjb3JyZWN0ZWRUeXBlTmFtZSA9PT0gJ0RhdGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBlbnVtVHlwZSA9IFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kRW51bShjb3JyZWN0ZWRUeXBlTmFtZSk7XG4gICAgICAgICAgICBpZiAoZW51bVR5cGUpIHtcbiAgICAgICAgICAgICAgICAvLyBpcyBFbnVtXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvcnJlY3RlZFR5cGUgPSBUeXBlUmVnaXN0cnkuZ2V0KCkuZmluZFR5cGUoY29ycmVjdGVkVHlwZU5hbWUpO1xuICAgICAgICAgICAgaWYgKCFjb3JyZWN0ZWRUeXBlKSB7XG4gICAgICAgICAgICAgICAgLy8gZG9udCBrbm93IHRoZSB0eXBlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjb3JyZWN0ZWRUeXBlKCk7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVUeXBlcyA9IGNvcnJlY3RlZFR5cGUuZ2V0QXR0cmlidXRlVHlwZU1hcCgpIGFzIEFycmF5PENsYXNzQXR0cmlidXRlRGVmPjtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItZm9yLW9mXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXR0cmlidXRlVHlwZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZVR5cGVzW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVthdHRyaWJ1dGVUeXBlLm5hbWVdID0gdGhpcy5kZXNlcmlhbGl6ZShkYXRhW2F0dHJpYnV0ZVR5cGUuYmFzZU5hbWVdLCBhdHRyaWJ1dGVUeXBlLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { inject } from '@angular/core';
3
+ import { ObjectSerializer } from '../serder/object-serializer';
4
+ export class ACommonsBaseApiService {
5
+ constructor() {
6
+ this.objectSerializer = ObjectSerializer.get();
7
+ this.http = inject(HttpClient);
8
+ }
9
+ getUrl(...pathSegments) {
10
+ let baseUrl = this.getBasePath();
11
+ if (baseUrl.endsWith('/')) {
12
+ baseUrl = baseUrl.substring(0, baseUrl.length - 1);
13
+ }
14
+ const serviceBasePath = this.getServiceBasePath();
15
+ let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');
16
+ // omit first and last '/'
17
+ if (path.startsWith('/')) {
18
+ path = path.substring(1);
19
+ }
20
+ if (path.endsWith('/')) {
21
+ path = path.substring(0, path.length - 1);
22
+ }
23
+ // replace any double '//' from path that could come from joining paths
24
+ path = path.replace('//', '/');
25
+ return `${baseUrl}/${path}`;
26
+ }
27
+ deserializeQueryResult(item, qrType) {
28
+ return this.deserializeClass(item, qrType);
29
+ }
30
+ deserializeClass(item, type) {
31
+ return this.objectSerializer.deserializeClass(item, type);
32
+ }
33
+ deserializeClassArray(item, type) {
34
+ return this.objectSerializer.deserializeClassArray(item, type);
35
+ }
36
+ serializeClass(item, type) {
37
+ return this.objectSerializer.serializeClass(item, type);
38
+ }
39
+ serializeClassArray(item, type) {
40
+ return this.objectSerializer.serializeClassArray(item, type);
41
+ }
42
+ }
43
+ export class ACommonsApiService extends ACommonsBaseApiService {
44
+ constructor(type) {
45
+ super();
46
+ this.type = type;
47
+ }
48
+ deserialize(item) {
49
+ return this.deserializeClass(item, this.type);
50
+ }
51
+ serialize(item) {
52
+ return this.serializeClass(item, this.type);
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmFic3RyYWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS5hYnN0cmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXJDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE1BQU0sT0FBZ0Isc0JBQXNCO0lBSXhDO1FBSG1CLHFCQUFnQixHQUFxQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUkzRSxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBTVMsTUFBTSxDQUFDLEdBQUcsWUFBMkI7UUFDM0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0RDtRQUNELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xELElBQUksSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkYsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUNELHVFQUF1RTtRQUN2RSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsc0JBQXNCLENBQUssSUFBUyxFQUFFLE1BQXFCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsZ0JBQWdCLENBQUksSUFBUyxFQUFFLElBQWtCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMscUJBQXFCLENBQUksSUFBUyxFQUFFLElBQWtCO1FBQzVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsY0FBYyxDQUFJLElBQU8sRUFBRSxJQUFrQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxtQkFBbUIsQ0FBSSxJQUFjLEVBQUUsSUFBa0I7UUFDL0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBZ0Isa0JBQXNCLFNBQVEsc0JBQXNCO0lBQ3RFLFlBQWdDLElBQWtCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRG9CLFNBQUksR0FBSixJQUFJLENBQWM7SUFFbEQsQ0FBQztJQUVTLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUFPO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtPYmplY3RTZXJpYWxpemVyfSBmcm9tICcuLi9zZXJkZXIvb2JqZWN0LXNlcmlhbGl6ZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQUNvbW1vbnNCYXNlQXBpU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9iamVjdFNlcmlhbGl6ZXI6IE9iamVjdFNlcmlhbGl6ZXIgPSBPYmplY3RTZXJpYWxpemVyLmdldCgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldEJhc2VQYXRoKCk6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTZXJ2aWNlQmFzZVBhdGgoKTogc3RyaW5nIHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBnZXRVcmwoLi4ucGF0aFNlZ21lbnRzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGJhc2VVcmwgPSB0aGlzLmdldEJhc2VQYXRoKCk7XG4gICAgICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIGJhc2VVcmwgPSBiYXNlVXJsLnN1YnN0cmluZygwLCBiYXNlVXJsLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlcnZpY2VCYXNlUGF0aCA9IHRoaXMuZ2V0U2VydmljZUJhc2VQYXRoKCk7XG4gICAgICAgIGxldCBwYXRoID0gW3NlcnZpY2VCYXNlUGF0aCwgLi4ucGF0aFNlZ21lbnRzXS5maWx0ZXIocyA9PiBzICYmIHMubGVuZ3RoKS5qb2luKCcvJyk7XG4gICAgICAgIC8vIG9taXQgZmlyc3QgYW5kIGxhc3QgJy8nXG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJlcGxhY2UgYW55IGRvdWJsZSAnLy8nIGZyb20gcGF0aCB0aGF0IGNvdWxkIGNvbWUgZnJvbSBqb2luaW5nIHBhdGhzXG4gICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJy8vJywgJy8nKTtcbiAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9LyR7cGF0aH1gO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXNlcmlhbGl6ZVF1ZXJ5UmVzdWx0PFFSPihpdGVtOiBhbnksIHFyVHlwZTogQ2xhc3NUeXBlPFFSPik6IFFSIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemVDbGFzcyhpdGVtLCBxclR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXNlcmlhbGl6ZUNsYXNzPEM+KGl0ZW06IGFueSwgdHlwZTogQ2xhc3NUeXBlPEM+KTogQyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcmlhbGl6ZXIuZGVzZXJpYWxpemVDbGFzcyhpdGVtLCB0eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVDbGFzc0FycmF5PEM+KGl0ZW06IGFueSwgdHlwZTogQ2xhc3NUeXBlPEM+KTogQXJyYXk8Qz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RTZXJpYWxpemVyLmRlc2VyaWFsaXplQ2xhc3NBcnJheShpdGVtLCB0eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VyaWFsaXplQ2xhc3M8Qz4oaXRlbTogQywgdHlwZTogQ2xhc3NUeXBlPEM+KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VyaWFsaXplci5zZXJpYWxpemVDbGFzcyhpdGVtLCB0eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VyaWFsaXplQ2xhc3NBcnJheTxDPihpdGVtOiBBcnJheTxDPiwgdHlwZTogQ2xhc3NUeXBlPEM+KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VyaWFsaXplci5zZXJpYWxpemVDbGFzc0FycmF5KGl0ZW0sIHR5cGUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFDb21tb25zQXBpU2VydmljZTxUPiBleHRlbmRzIEFDb21tb25zQmFzZUFwaVNlcnZpY2Uge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdHlwZTogQ2xhc3NUeXBlPFQ+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc2VyaWFsaXplKGl0ZW06IGFueSk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZUNsYXNzKGl0ZW0sIHRoaXMudHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZShpdGVtOiBUKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplQ2xhc3MoaXRlbSwgdGhpcy50eXBlKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,82 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { map } from 'rxjs/operators';
3
+ import { ACommonsGetAllApiService } from './get-all-api.abstract.service';
4
+ export class ACommonsCrudApiService extends ACommonsGetAllApiService {
5
+ constructor(fetchType, requestType, queryResultType) {
6
+ super(fetchType, queryResultType);
7
+ this.requestType = requestType;
8
+ }
9
+ createPost(item, params) {
10
+ const url = this.getUrl(this.getCreatePostPath(item));
11
+ return this.http
12
+ .post(url, this.serializeRequest(item), {
13
+ withCredentials: true,
14
+ observe: 'body',
15
+ reportProgress: false,
16
+ params: params
17
+ })
18
+ .pipe(map(res => this.deserialize(res)));
19
+ }
20
+ getByIdGet(id, params, locale) {
21
+ const url = this.getUrl(this.getGetByIdGetPath(id));
22
+ if (params && locale) {
23
+ params = params.set('lang', locale);
24
+ }
25
+ else if (locale) {
26
+ params = new HttpParams().set('lang', locale);
27
+ }
28
+ return this.http
29
+ .get(url, {
30
+ withCredentials: true,
31
+ observe: 'body',
32
+ reportProgress: false,
33
+ params: params
34
+ })
35
+ .pipe(map(res => this.deserialize(res)));
36
+ }
37
+ updatePut(id, item, params) {
38
+ const url = this.getUrl(this.getUpdatePutPath(id, item));
39
+ return this.http
40
+ .put(url, this.serializeRequest(item), {
41
+ withCredentials: true,
42
+ observe: 'body',
43
+ reportProgress: false,
44
+ params: params
45
+ })
46
+ .pipe(map(res => this.deserialize(res)));
47
+ }
48
+ removeDelete(id, item, params) {
49
+ const url = this.getUrl(this.getRemoveDeletePath(id, item));
50
+ return this.http
51
+ .request('delete', url, {
52
+ withCredentials: true,
53
+ observe: 'body',
54
+ reportProgress: false,
55
+ body: item ? this.serialize(item) : undefined,
56
+ params: params
57
+ })
58
+ .pipe(map(res => (res ? this.deserialize(res) : null)));
59
+ }
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ getCreatePostPath(item) {
62
+ return '';
63
+ }
64
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
65
+ getUpdatePutPath(id, item) {
66
+ return ``;
67
+ }
68
+ getGetByIdGetPath(id) {
69
+ return `/${id}`;
70
+ }
71
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
+ getRemoveDeletePath(id, item) {
73
+ return `/${id}`;
74
+ }
75
+ deserializeRequest(item) {
76
+ return this.deserializeClass(item, this.requestType);
77
+ }
78
+ serializeRequest(item) {
79
+ return this.serializeClass(item, this.requestType);
80
+ }
81
+ }
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1hcGkuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvY3J1ZC1hcGkuYWJzdHJhY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBS25DLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBWXhFLE1BQU0sT0FBZ0Isc0JBQ2xCLFNBQVEsd0JBQW9EO0lBRzVELFlBQ0ksU0FBK0IsRUFDckIsV0FBbUMsRUFDN0MsZUFBMkM7UUFFM0MsS0FBSyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUh4QixnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7SUFJakQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFpQixFQUFFLE1BQW1CO1FBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLElBQUksQ0FBVSxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQVUsRUFBRSxNQUFtQixFQUFFLE1BQWU7UUFDOUQsTUFBTSxH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Q0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxJQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Q2xhc3NUeXBlLCBJZFR5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7UXVlcnlSZXN1bHR9IGZyb20gJy4uL21vZGVscy9xdWVyeS1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHtBQ29tbW9uc0dldEFsbEFwaVNlcnZpY2V9IGZyb20gJy4vZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1vbnNDcnVkQXBpU2VydmljZTxGZXRjaFR5cGUsIFJlcXVlc3RUeXBlPiB7XG4gICAgY3JlYXRlUG9zdD8oaXRlbTogUmVxdWVzdFR5cGUsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEZldGNoVHlwZT47XG5cbiAgICBnZXRCeUlkR2V0PyhpZDogSWRUeXBlLCBwYXJhbXM/OiBIdHRwUGFyYW1zLCBsb2NhbGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZldGNoVHlwZT47XG5cbiAgICB1cGRhdGVQdXQ/KGlkOiBJZFR5cGUsIGl0ZW06IFJlcXVlc3RUeXBlLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxGZXRjaFR5cGU+O1xuXG4gICAgcmVtb3ZlRGVsZXRlPyhpZDogSWRUeXBlLCBpdGVtPzogRmV0Y2hUeXBlLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxGZXRjaFR5cGUgfCBudWxsPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFDb21tb25zQ3J1ZEFwaVNlcnZpY2U8RmV0Y2hUeXBlLCBSZXF1ZXN0VHlwZSwgUXVlcnlSZXN1bHRUeXBlIGV4dGVuZHMgUXVlcnlSZXN1bHQ8YW55Pj5cbiAgICBleHRlbmRzIEFDb21tb25zR2V0QWxsQXBpU2VydmljZTxGZXRjaFR5cGUsIFF1ZXJ5UmVzdWx0VHlwZT5cbiAgICBpbXBsZW1lbnRzIElDb21tb25zQ3J1ZEFwaVNlcnZpY2U8RmV0Y2hUeXBlLCBSZXF1ZXN0VHlwZT5cbntcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoVHlwZTogQ2xhc3NUeXBlPEZldGNoVHlwZT4sXG4gICAgICAgIHByb3RlY3RlZCByZXF1ZXN0VHlwZTogQ2xhc3NUeXBlPFJlcXVlc3RUeXBlPixcbiAgICAgICAgcXVlcnlSZXN1bHRUeXBlOiBDbGFzc1R5cGU8UXVlcnlSZXN1bHRUeXBlPlxuICAgICkge1xuICAgICAgICBzdXBlcihmZXRjaFR5cGUsIHF1ZXJ5UmVzdWx0VHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVBvc3QoaXRlbTogUmVxdWVzdFR5cGUsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEZldGNoVHlwZT4ge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCh0aGlzLmdldENyZWF0ZVBvc3RQYXRoKGl0ZW0pKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8dW5rbm93bj4odXJsLCB0aGlzLnNlcmlhbGl6ZVJlcXVlc3QoaXRlbSksIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZShyZXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJ5SWRHZXQoaWQ6IElkVHlwZSwgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxGZXRjaFR5cGU+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRHZXRCeUlkR2V0UGF0aChpZCkpO1xuICAgICAgICBpZiAocGFyYW1zICYmIGxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbGFuZycsIGxvY2FsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnbGFuZycsIGxvY2FsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDx1bmtub3duPih1cmwsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZShyZXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVB1dChpZDogSWRUeXBlLCBpdGVtOiBSZXF1ZXN0VHlwZSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RmV0Y2hUeXBlPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKHRoaXMuZ2V0VXBkYXRlUHV0UGF0aChpZCwgaXRlbSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucHV0PHVua25vd24+KHVybCwgdGhpcy5zZXJpYWxpemVSZXF1ZXN0KGl0ZW0pLCB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShtYXAocmVzID0+IHRoaXMuZGVzZXJpYWxpemUocmVzKSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVEZWxldGUoaWQ6IElkVHlwZSwgaXRlbT86IEZldGNoVHlwZSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RmV0Y2hUeXBlIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCh0aGlzLmdldFJlbW92ZURlbGV0ZVBhdGgoaWQsIGl0ZW0pKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnJlcXVlc3Q8dW5rbm93bj4oJ2RlbGV0ZScsIHVybCwge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJvZHk6IGl0ZW0gPyB0aGlzLnNlcmlhbGl6ZShpdGVtKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gKHJlcyA/IHRoaXMuZGVzZXJpYWxpemUocmVzKSA6IG51bGwpKSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBnZXRDcmVhdGVQb3N0UGF0aChpdGVtOiBSZXF1ZXN0VHlwZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIGdldFVwZGF0ZVB1dFBhdGgoaWQ6IElkVHlwZSwgaXRlbTogUmVxdWVzdFR5cGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEdldEJ5SWRHZXRQYXRoKGlkOiBJZFR5cGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYC8ke2lkfWA7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBnZXRSZW1vdmVEZWxldGVQYXRoKGlkOiBJZFR5cGUsIGl0ZW0/OiBGZXRjaFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGAvJHtpZH1gO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXNlcmlhbGl6ZVJlcXVlc3QoaXRlbTogYW55KTogUmVxdWVzdFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZUNsYXNzKGl0ZW0sIHRoaXMucmVxdWVzdFR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXJpYWxpemVSZXF1ZXN0KGl0ZW06IFJlcXVlc3RUeXBlKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplQ2xhc3MoaXRlbSwgdGhpcy5yZXF1ZXN0VHlwZSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,49 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { map } from 'rxjs/operators';
3
+ import { DataListParamsUtil } from '@mediusinc/mng-commons/core';
4
+ import { ACommonsApiService } from './api.abstract.service';
5
+ export class ACommonsGetAllApiService extends ACommonsApiService {
6
+ constructor(fetchType, queryResultType) {
7
+ super(fetchType);
8
+ this.queryResultType = queryResultType;
9
+ }
10
+ getAllGet(requestParams, params, locale) {
11
+ const url = this.getUrl(this.getGetAllGetPath());
12
+ if (!params) {
13
+ params = new HttpParams();
14
+ }
15
+ if (locale) {
16
+ params = params.set('lang', locale);
17
+ }
18
+ if (requestParams?.limit) {
19
+ params = params.set('limit', requestParams.limit);
20
+ }
21
+ if (requestParams?.offset) {
22
+ params = params.set('offset', requestParams.offset);
23
+ }
24
+ const sort = DataListParamsUtil.sortToUrlQuery(requestParams);
25
+ if (sort) {
26
+ params = params.set('sort', sort);
27
+ }
28
+ if (requestParams?.filters) {
29
+ Object.keys(requestParams.filters).forEach(key => {
30
+ const value = DataListParamsUtil.paramsFilterToUrlQuery(requestParams, key);
31
+ if (value) {
32
+ params = params.set(key, value);
33
+ }
34
+ });
35
+ }
36
+ return this.http
37
+ .get(url, {
38
+ withCredentials: true,
39
+ observe: 'body',
40
+ reportProgress: false,
41
+ params: params
42
+ })
43
+ .pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));
44
+ }
45
+ getGetAllGetPath() {
46
+ return '/get-all';
47
+ }
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBNEIsa0JBQWtCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUcxRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQU0xRCxNQUFNLE9BQWdCLHdCQUNsQixTQUFRLGtCQUE2QjtJQUdyQyxZQUNJLFNBQStCLEVBQ3JCLGVBQTJDO1FBRXJELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUZQLG9CQUFlLEdBQWYsZUFBZSxDQUE0QjtJQUd6RCxDQUFDO0lBRU0sU0FBUyxDQUFDLGFBQThCLEVBQUUsTUFBbUIsRUFBRSxNQUFlO1FBQ2pGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2QztRQUVELElBQUksYUFBYSxFQUFFLEtBQUssRUFBRTtZQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUQsSUFBSSxJQUFJLEVBQUU7WUFDTixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUU7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVFLElBQUksS0FBSyxFQUFFO29CQUNQLE1BQU0sR0FBRyxNQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDcEM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FBVSxHQUFHLEVBQUU7WUFDZixlQUFlLEVBQUUsSUFBSTtZQUNyQixPQUFPLEVBQUUsTUFBTTtZQUNmLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFUyxnQkFBZ0I7UUFDdEIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0NsYXNzVHlwZSwgRGF0YUxpc3RQYXJhbXMsIERhdGFMaXN0UGFyYW1zVXRpbH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtRdWVyeVJlc3VsdH0gZnJvbSAnLi4vbW9kZWxzL3F1ZXJ5LXJlc3VsdC5tb2RlbCc7XG5pbXBvcnQge0FDb21tb25zQXBpU2VydmljZX0gZnJvbSAnLi9hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1vbnNHZXRBbGxBcGlTZXJ2aWNlPFFSVCBleHRlbmRzIFF1ZXJ5UmVzdWx0PGFueT4+IHtcbiAgICBnZXRBbGxHZXQocmVxdWVzdFBhcmFtcz86IERhdGFMaXN0UGFyYW1zPGFueSwgYW55PiwgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxRUlQ+O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQUNvbW1vbnNHZXRBbGxBcGlTZXJ2aWNlPEZldGNoVHlwZSwgUXVlcnlSZXN1bHRUeXBlIGV4dGVuZHMgUXVlcnlSZXN1bHQ8YW55Pj5cbiAgICBleHRlbmRzIEFDb21tb25zQXBpU2VydmljZTxGZXRjaFR5cGU+XG4gICAgaW1wbGVtZW50cyBJQ29tbW9uc0dldEFsbEFwaVNlcnZpY2U8UXVlcnlSZXN1bHRUeXBlPlxue1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmV0Y2hUeXBlOiBDbGFzc1R5cGU8RmV0Y2hUeXBlPixcbiAgICAgICAgcHJvdGVjdGVkIHF1ZXJ5UmVzdWx0VHlwZTogQ2xhc3NUeXBlPFF1ZXJ5UmVzdWx0VHlwZT5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoZmV0Y2hUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWxsR2V0KHJlcXVlc3RQYXJhbXM/OiBEYXRhTGlzdFBhcmFtcywgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxRdWVyeVJlc3VsdFR5cGU+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRHZXRBbGxHZXRQYXRoKCkpO1xuICAgICAgICBpZiAoIXBhcmFtcykge1xuICAgICAgICAgICAgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdsYW5nJywgbG9jYWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXF1ZXN0UGFyYW1zPy5saW1pdCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbGltaXQnLCByZXF1ZXN0UGFyYW1zLmxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdFBhcmFtcz8ub2Zmc2V0KSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdvZmZzZXQnLCByZXF1ZXN0UGFyYW1zLm9mZnNldCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3J0ID0gRGF0YUxpc3RQYXJhbXNVdGlsLnNvcnRUb1VybFF1ZXJ5KHJlcXVlc3RQYXJhbXMpO1xuICAgICAgICBpZiAoc29ydCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc29ydCcsIHNvcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcXVlc3RQYXJhbXM/LmZpbHRlcnMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlcXVlc3RQYXJhbXMuZmlsdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gRGF0YUxpc3RQYXJhbXNVdGlsLnBhcmFtc0ZpbHRlclRvVXJsUXVlcnkocmVxdWVzdFBhcmFtcywga2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zIS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PHVua25vd24+KHVybCwge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiB0aGlzLmRlc2VyaWFsaXplUXVlcnlSZXN1bHQocmVzLCB0aGlzLnF1ZXJ5UmVzdWx0VHlwZSkpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0R2V0QWxsR2V0UGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy9nZXQtYWxsJztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWRhdGEtYXBpLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy1kYXRhLWFwaS1jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './tableview-crud.data-provider';
2
+ export * from './tableview-crud-create';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90YWJsZXZpZXcvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3LWNydWQuZGF0YS1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy1jcnVkLWNyZWF0ZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWRhdGEtYXBpLWNsYXNzLXRhYmxldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RhYmxldmlldy9zcmMvbWVkaXVzaW5jLW1uZy1jb21tb25zLWRhdGEtYXBpLWNsYXNzLXRhYmxldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Injector, inject } from '@angular/core';
2
+ import { TableviewDescriptor, TableviewInputBuilder } from '@mediusinc/mng-commons/tableview/api';
3
+ import { TableviewCrudDataProvider } from './tableview-crud.data-provider';
4
+ function prepareBuilder(type, requestType, service, modelConfig, buildFn) {
5
+ const builder = new TableviewInputBuilder(TableviewDescriptor.fromClass(type, modelConfig?.idProperty, modelConfig?.titleProperty, modelConfig?.i18nBaseKey), TableviewCrudDataProvider.create(type, requestType, service, modelConfig?.idProperty), inject(Injector));
6
+ buildFn?.(builder);
7
+ return builder.build();
8
+ }
9
+ /**
10
+ * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.
11
+ * Sorts and filters are expected to be keys of class.
12
+ *
13
+ * @param {ClassType<Model>} type - The class representing the model.
14
+ * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.
15
+ * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.
16
+ * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.
17
+ * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
18
+ *
19
+ * @returns A tableview instance with descriptor, data provider and actions.
20
+ */
21
+ export function tableviewCrud(type, requestType, service, modelConfig, buildFn) {
22
+ return prepareBuilder(type, requestType, service, modelConfig, buildFn);
23
+ }
24
+ /**
25
+ * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.
26
+ *
27
+ * @param {ClassType<Model>} type - The class representing the model.
28
+ * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.
29
+ * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.
30
+ * @param {TypeDescriptor<Sorts>} sorts - The available sort keys of get all request.
31
+ * @param {TypeDescriptor<Filters>} filters - The available filter keys of get all request.
32
+ * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.
33
+ * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
34
+ *
35
+ * @returns A tableview instance with descriptor, data provider and actions.
36
+ */
37
+ export function tableviewCrudWithSortAndFilter(type, requestType, service, sorts, filters, modelConfig, buildFn) {
38
+ return prepareBuilder(type, requestType, service, modelConfig, buildFn);
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWNydWQtY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGFibGV2aWV3L3NyYy90YWJsZXZpZXctY3J1ZC1jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLL0MsT0FBTyxFQUFDLG1CQUFtQixFQUEyQixxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXpILE9BQU8sRUFBQyx5QkFBeUIsRUFBZ0MsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RyxTQUFTLGNBQWMsQ0FPbkIsSUFBc0IsRUFDdEIsV0FBb0MsRUFDcEMsT0FBa0MsRUFDbEMsV0FJQyxFQUNELE9BU1M7SUFFVCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixDQVFyQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQ2xILHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEVBQ3JGLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FDbkIsQ0FBQztJQUNGLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxhQUFhLENBT3pCLElBQXNCLEVBQ3RCLFdBQW9DLEVBQ3BDLE9BQWtDLEVBQ2xDLFdBSUMsRUFDRCxPQVNTO0lBRVQsT0FBTyxjQUFjLENBQStDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QixDQU8xQyxJQUFzQixFQUN0QixXQUFvQyxFQUNwQyxPQUFrQyxFQUNsQyxLQUE0QixFQUM1QixPQUFnQyxFQUNoQyxXQUlDLEVBQ0QsT0FTUztJQUVULE9BQU8sY0FBYyxDQUErQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0b3IsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7SUNvbW1vbnNDcnVkQXBpU2VydmljZSwgSUNvbW1vbnNHZXRBbGxBcGlTZXJ2aWNlLCBRdWVyeVJlc3VsdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1kYXRhLWFwaS1jbGFzcyc7XG5pbXBvcnQge0NsYXNzVHlwZSwgU2VydmljZUNsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7VHlwZURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtUYWJsZXZpZXdEZXNjcmlwdG9yLCBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdCwgVGFibGV2aWV3SW5wdXRCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge1RhYmxldmlld0NydWREYXRhUHJvdmlkZXIsIFRhYmxldmlld0NydWREYXRhUHJvdmlkZXJJbnN0fSBmcm9tICcuL3RhYmxldmlldy1jcnVkLmRhdGEtcHJvdmlkZXInO1xuXG5mdW5jdGlvbiBwcmVwYXJlQnVpbGRlcjxcbiAgICBNb2RlbCxcbiAgICBSZXF1ZXN0TW9kZWwsXG4gICAgU2VydmljZSBleHRlbmRzIElDb21tb25zQ3J1ZEFwaVNlcnZpY2U8TW9kZWwsIFJlcXVlc3RNb2RlbD4gJiBJQ29tbW9uc0dldEFsbEFwaVNlcnZpY2U8UXVlcnlSZXN1bHQ8TW9kZWw+PixcbiAgICBTb3J0cyxcbiAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55XG4+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgcmVxdWVzdFR5cGU6IENsYXNzVHlwZTxSZXF1ZXN0TW9kZWw+LFxuICAgIHNlcnZpY2U6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4sXG4gICAgbW9kZWxDb25maWc/OiB7XG4gICAgICAgIGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICAgICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIE1vZGVsO1xuICAgICAgICBpMThuQmFzZUtleT86IHN0cmluZztcbiAgICB9LFxuICAgIGJ1aWxkRm4/OiAoXG4gICAgICAgIGJ1aWxkZXI6IFRhYmxldmlld0lucHV0QnVpbGRlcjxcbiAgICAgICAgICAgIE1vZGVsLFxuICAgICAgICAgICAgU2VydmljZSxcbiAgICAgICAgICAgIFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTb3J0cywgRmlsdGVycz4sXG4gICAgICAgICAgICBUYWJsZXZpZXdDcnVkRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgUmVxdWVzdE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4sXG4gICAgICAgICAgICBTb3J0cyxcbiAgICAgICAgICAgIEZpbHRlcnNcbiAgICAgICAgPlxuICAgICkgPT4gdm9pZFxuKSB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBUYWJsZXZpZXdJbnB1dEJ1aWxkZXI8XG4gICAgICAgIE1vZGVsLFxuICAgICAgICBTZXJ2aWNlLFxuICAgICAgICBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU29ydHMsIEZpbHRlcnM+LFxuICAgICAgICBUYWJsZXZpZXdDcnVkRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgUmVxdWVzdE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4sXG4gICAgICAgIFNvcnRzLFxuICAgICAgICBGaWx0ZXJzXG4gICAgPihcbiAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvci5mcm9tQ2xhc3ModHlwZSwgbW9kZWxDb25maWc/LmlkUHJvcGVydHksIG1vZGVsQ29uZmlnPy50aXRsZVByb3BlcnR5LCBtb2RlbENvbmZpZz8uaTE4bkJhc2VLZXkpLFxuICAgICAgICBUYWJsZXZpZXdDcnVkRGF0YVByb3ZpZGVyLmNyZWF0ZSh0eXBlLCByZXF1ZXN0VHlwZSwgc2VydmljZSwgbW9kZWxDb25maWc/LmlkUHJvcGVydHkpLFxuICAgICAgICBpbmplY3QoSW5qZWN0b3IpXG4gICAgKTtcbiAgICBidWlsZEZuPy4oYnVpbGRlcik7XG4gICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGFibGV2aWV3IHdpdGggdGhlIGdpdmVuIGNsYXNzLCByZXF1ZXN0IGNsYXNzLCBzZXJ2aWNlIGJhc2VkIG9uIGRhdGEgQVBJIHYyLCBzb3J0LCBmaWx0ZXJzIGFuZCBvcHRpb25hbCBjbGFzcy9tb2RlbCBjb25maWd1cmF0aW9uLlxuICogU29ydHMgYW5kIGZpbHRlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIGtleXMgb2YgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtDbGFzc1R5cGU8TW9kZWw+fSB0eXBlIC0gVGhlIGNsYXNzIHJlcHJlc2VudGluZyB0aGUgbW9kZWwuXG4gKiBAcGFyYW0ge0NsYXNzVHlwZTxSZXF1ZXN0TW9kZWw+fSByZXF1ZXN0VHlwZSAtIFRoZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIG1vZGVsIGZvciBjcmVhdGUgYW5kIHVwZGF0ZSBvcGVyYXRpb25zLlxuICogQHBhcmFtIHtTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+fSBzZXJ2aWNlIC0gVGhlIGNsYXNzIHR5cGUgb2YgdGhlIHNlcnZpY2UgaW1wbGVtZW50aW5nIGBJTW5nQ3J1ZEFwaVNlcnZpY2VgIGFuZCBgSU1uZ0dldEFsbEFwaVNlcnZpY2VgLlxuICogQHBhcmFtIHt7IGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbDsgdGl0bGVQcm9wZXJ0eT86IGtleW9mIE1vZGVsOyBpMThuQmFzZUtleT86IENsYXNzVHlwZTxhbnk+IHwgc3RyaW5nOyB9fSBbbW9kZWxDb25maWddIC0gQWRkaXRpb25hbCBvcHRpb25hbCBtb2RlbCBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHsoYnVpbGRlcjogVGFibGV2aWV3QnVpbGRlcikgPT4gdm9pZH0gW2J1aWxkRm5dIC0gVGhlIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdGFibGV2aWV3IHVzaW5nIHRoZSBwcmVwYXJlZCBidWlsZGVyLlxuICpcbiAqIEByZXR1cm5zIEEgdGFibGV2aWV3IGluc3RhbmNlIHdpdGggZGVzY3JpcHRvciwgZGF0YSBwcm92aWRlciBhbmQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld0NydWQ8XG4gICAgTW9kZWwsXG4gICAgUmVxdWVzdE1vZGVsLFxuICAgIFNlcnZpY2UgZXh0ZW5kcyBJQ29tbW9uc0NydWRBcGlTZXJ2aWNlPE1vZGVsLCBSZXF1ZXN0TW9kZWw+ICYgSUNvbW1vbnNHZXRBbGxBcGlTZXJ2aWNlPFF1ZXJ5UmVzdWx0PE1vZGVsPj4sXG4gICAgU29ydHMgPSBrZXlvZiBNb2RlbCxcbiAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWxcbj4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICByZXF1ZXN0VHlwZTogQ2xhc3NUeXBlPFJlcXVlc3RNb2RlbD4sXG4gICAgc2VydmljZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPixcbiAgICBtb2RlbENvbmZpZz86IHtcbiAgICAgICAgaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsO1xuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG4gICAgICAgIGkxOG5CYXNlS2V5Pzogc3RyaW5nO1xuICAgIH0sXG4gICAgYnVpbGRGbj86IChcbiAgICAgICAgYnVpbGRlcjogVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICAgICAgTW9kZWwsXG4gICAgICAgICAgICBTZXJ2aWNlLFxuICAgICAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzPixcbiAgICAgICAgICAgIFRhYmxldmlld0NydWREYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBSZXF1ZXN0TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPixcbiAgICAgICAgICAgIFNvcnRzLFxuICAgICAgICAgICAgRmlsdGVyc1xuICAgICAgICA+XG4gICAgKSA9PiB2b2lkXG4pIHtcbiAgICByZXR1cm4gcHJlcGFyZUJ1aWxkZXI8TW9kZWwsIFJlcXVlc3RNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+KHR5cGUsIHJlcXVlc3RUeXBlLCBzZXJ2aWNlLCBtb2RlbENvbmZpZywgYnVpbGRGbik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRhYmxldmlldyB3aXRoIHRoZSBnaXZlbiBjbGFzcywgcmVxdWVzdCBjbGFzcywgc2VydmljZSBiYXNlZCBvbiBkYXRhIEFQSSB2Miwgc29ydCwgZmlsdGVycyBhbmQgb3B0aW9uYWwgY2xhc3MvbW9kZWwgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0NsYXNzVHlwZTxNb2RlbD59IHR5cGUgLSBUaGUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBtb2RlbC5cbiAqIEBwYXJhbSB7Q2xhc3NUeXBlPFJlcXVlc3RNb2RlbD59IHJlcXVlc3RUeXBlIC0gVGhlIGNsYXNzIHJlcHJlc2VudGluZyB0aGUgbW9kZWwgZm9yIGNyZWF0ZSBhbmQgdXBkYXRlIG9wZXJhdGlvbnMuXG4gKiBAcGFyYW0ge1NlcnZpY2VDbGFzc1R5cGU8U2VydmljZT59IHNlcnZpY2UgLSBUaGUgY2xhc3MgdHlwZSBvZiB0aGUgc2VydmljZSBpbXBsZW1lbnRpbmcgYElNbmdDcnVkQXBpU2VydmljZWAgYW5kIGBJTW5nR2V0QWxsQXBpU2VydmljZWAuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPFNvcnRzPn0gc29ydHMgLSBUaGUgYXZhaWxhYmxlIHNvcnQga2V5cyBvZiBnZXQgYWxsIHJlcXVlc3QuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPEZpbHRlcnM+fSBmaWx0ZXJzIC0gVGhlIGF2YWlsYWJsZSBmaWx0ZXIga2V5cyBvZiBnZXQgYWxsIHJlcXVlc3QuXG4gKiBAcGFyYW0ge3sgaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsOyB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWw7IGkxOG5CYXNlS2V5PzogQ2xhc3NUeXBlPGFueT4gfCBzdHJpbmc7IH19IFttb2RlbENvbmZpZ10gLSBBZGRpdGlvbmFsIG9wdGlvbmFsIG1vZGVsIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0geyhidWlsZGVyOiBUYWJsZXZpZXdCdWlsZGVyKSA9PiB2b2lkfSBbYnVpbGRGbl0gLSBUaGUgb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY3VzdG9taXplIHRoZSB0YWJsZXZpZXcgdXNpbmcgdGhlIHByZXBhcmVkIGJ1aWxkZXIuXG4gKlxuICogQHJldHVybnMgQSB0YWJsZXZpZXcgaW5zdGFuY2Ugd2l0aCBkZXNjcmlwdG9yLCBkYXRhIHByb3ZpZGVyIGFuZCBhY3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFibGV2aWV3Q3J1ZFdpdGhTb3J0QW5kRmlsdGVyPFxuICAgIE1vZGVsLFxuICAgIFJlcXVlc3RNb2RlbCxcbiAgICBTZXJ2aWNlIGV4dGVuZHMgSUNvbW1vbnNDcnVkQXBpU2VydmljZTxNb2RlbCwgUmVxdWVzdE1vZGVsPiAmIElDb21tb25zR2V0QWxsQXBpU2VydmljZTxRdWVyeVJlc3VsdDxNb2RlbD4+LFxuICAgIFNvcnRzLFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnlcbj4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICByZXF1ZXN0VHlwZTogQ2xhc3NUeXBlPFJlcXVlc3RNb2RlbD4sXG4gICAgc2VydmljZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPixcbiAgICBzb3J0czogVHlwZURlc2NyaXB0b3I8U29ydHM+LFxuICAgIGZpbHRlcnM6IFR5cGVEZXNjcmlwdG9yPEZpbHRlcnM+LFxuICAgIG1vZGVsQ29uZmlnPzoge1xuICAgICAgICBpZFByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG4gICAgICAgIHRpdGxlUHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICAgICAgaTE4bkJhc2VLZXk/OiBzdHJpbmc7XG4gICAgfSxcbiAgICBidWlsZEZuPzogKFxuICAgICAgICBidWlsZGVyOiBUYWJsZXZpZXdJbnB1dEJ1aWxkZXI8XG4gICAgICAgICAgICBNb2RlbCxcbiAgICAgICAgICAgIFNlcnZpY2UsXG4gICAgICAgICAgICBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU29ydHMsIEZpbHRlcnM+LFxuICAgICAgICAgICAgVGFibGV2aWV3Q3J1ZERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFJlcXVlc3RNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+LFxuICAgICAgICAgICAgU29ydHMsXG4gICAgICAgICAgICBGaWx0ZXJzXG4gICAgICAgID5cbiAgICApID0+IHZvaWRcbikge1xuICAgIHJldHVybiBwcmVwYXJlQnVpbGRlcjxNb2RlbCwgUmVxdWVzdE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4odHlwZSwgcmVxdWVzdFR5cGUsIHNlcnZpY2UsIG1vZGVsQ29uZmlnLCBidWlsZEZuKTtcbn1cbiJdfQ==