@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.
- package/README.md +16 -0
- package/esm2022/index.mjs +9 -0
- package/esm2022/lib/models/query-result.model.mjs +24 -0
- package/esm2022/lib/serder/object-serializer.mjs +184 -0
- package/esm2022/lib/services/api.abstract.service.mjs +55 -0
- package/esm2022/lib/services/crud-api.abstract.service.mjs +82 -0
- package/esm2022/lib/services/get-all-api.abstract.service.mjs +49 -0
- package/esm2022/mediusinc-mng-commons-data-api-class.mjs +5 -0
- package/esm2022/tableview/index.mjs +3 -0
- package/esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs +5 -0
- package/esm2022/tableview/tableview-crud-create.mjs +40 -0
- package/esm2022/tableview/tableview-crud.data-provider.mjs +50 -0
- package/esm2022/v1/helpers/query-param-convert.mjs +103 -0
- package/esm2022/v1/helpers/tableview-crud-create.mjs +21 -0
- package/esm2022/v1/index.mjs +21 -0
- package/esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs +5 -0
- package/esm2022/v1/models/builders/query-param.builder.mjs +83 -0
- package/esm2022/v1/models/filter-match-type.model.mjs +27 -0
- package/esm2022/v1/models/filter-param.model.mjs +33 -0
- package/esm2022/v1/models/query-mode.model.mjs +18 -0
- package/esm2022/v1/models/query-param.model.mjs +68 -0
- package/esm2022/v1/models/query-result.model.mjs +24 -0
- package/esm2022/v1/provide.mjs +40 -0
- package/esm2022/v1/services/api.abstract.service.mjs +70 -0
- package/esm2022/v1/services/crud-api.abstract.service.mjs +83 -0
- package/esm2022/v1/services/get-all-api.abstract.service.mjs +38 -0
- package/esm2022/v1/tableview/tableview-crud.data-provider.mjs +50 -0
- package/esm2022/v1/utils/query-param-map.util.mjs +57 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs +95 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs +698 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class.mjs +396 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/models/query-result.model.d.ts +13 -0
- package/lib/serder/object-serializer.d.ts +26 -0
- package/lib/services/api.abstract.service.d.ts +22 -0
- package/lib/services/crud-api.abstract.service.d.ts +25 -0
- package/lib/services/get-all-api.abstract.service.d.ts +14 -0
- package/openapi/model.mustache +83 -0
- package/openapi/models.mustache +6 -0
- package/package.json +41 -0
- package/tableview/README.md +10 -0
- package/tableview/index.d.ts +2 -0
- package/tableview/tableview-crud-create.d.ts +40 -0
- package/tableview/tableview-crud.data-provider.d.ts +16 -0
- package/v1/README.md +12 -0
- package/v1/helpers/query-param-convert.d.ts +23 -0
- package/v1/helpers/tableview-crud-create.d.ts +23 -0
- package/v1/index.d.ts +14 -0
- package/v1/models/builders/query-param.builder.d.ts +36 -0
- package/v1/models/filter-match-type.model.d.ts +25 -0
- package/v1/models/filter-param.model.d.ts +23 -0
- package/v1/models/query-mode.model.d.ts +16 -0
- package/v1/models/query-param.model.d.ts +31 -0
- package/v1/models/query-result.model.d.ts +24 -0
- package/v1/provide.d.ts +9 -0
- package/v1/services/api.abstract.service.d.ts +36 -0
- package/v1/services/crud-api.abstract.service.d.ts +37 -0
- package/v1/services/get-all-api.abstract.service.d.ts +30 -0
- package/v1/tableview/tableview-crud.data-provider.d.ts +29 -0
- 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==
|