@mediusinc/mng-commons-data-api 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 +14 -0
- package/esm2022/index.mjs +7 -0
- package/esm2022/lib/helpers/get-all-params.mjs +186 -0
- package/esm2022/lib/models/request-params.model.mjs +2 -0
- package/esm2022/lib/types/extract-get-all-params.type.mjs +2 -0
- package/esm2022/mediusinc-mng-commons-data-api.mjs +5 -0
- package/esm2022/tableview/index.mjs +2 -0
- package/esm2022/tableview/mediusinc-mng-commons-data-api-tableview.mjs +5 -0
- package/esm2022/tableview/tableview-get-all-params-create.mjs +18 -0
- package/fesm2022/mediusinc-mng-commons-data-api-tableview.mjs +25 -0
- package/fesm2022/mediusinc-mng-commons-data-api-tableview.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-data-api.mjs +195 -0
- package/fesm2022/mediusinc-mng-commons-data-api.mjs.map +1 -0
- package/index.d.ts +3 -0
- package/lib/helpers/get-all-params.d.ts +69 -0
- package/lib/models/request-params.model.d.ts +61 -0
- package/lib/types/extract-get-all-params.type.d.ts +14 -0
- package/openapi/README.mustache +226 -0
- package/openapi/api.module.mustache +39 -0
- package/openapi/api.service.mustache +253 -0
- package/openapi/apiInterface.mustache +47 -0
- package/openapi/apis.mustache +12 -0
- package/openapi/config.yaml +23 -0
- package/openapi/configuration.mustache +128 -0
- package/openapi/custom/base-api.service.mustache +14 -0
- package/openapi/custom/helpers.mustache +71 -0
- package/openapi/custom/modelSchema.mustache +46 -0
- package/openapi/custom/schema.mustache +18 -0
- package/openapi/encoder.mustache +20 -0
- package/openapi/git_push.sh.mustache +57 -0
- package/openapi/index.mustache +0 -0
- package/openapi/licenseInfo.mustache +11 -0
- package/openapi/model.mustache +16 -0
- package/openapi/modelAlias.mustache +1 -0
- package/openapi/modelEnum.mustache +21 -0
- package/openapi/modelGeneric.mustache +14 -0
- package/openapi/modelGenericAdditionalProperties.mustache +5 -0
- package/openapi/modelGenericEnums.mustache +30 -0
- package/openapi/modelOneOf.mustache +14 -0
- package/openapi/modelTaggedUnion.mustache +21 -0
- package/openapi/models.mustache +5 -0
- package/openapi/ng-package.mustache +6 -0
- package/openapi/package.mustache +39 -0
- package/openapi/param.mustache +69 -0
- package/openapi/tsconfig.mustache +28 -0
- package/openapi/variables.mustache +9 -0
- package/package.json +34 -0
- package/tableview/README.md +10 -0
- package/tableview/index.d.ts +1 -0
- package/tableview/tableview-get-all-params-create.d.ts +15 -0
package/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Medius Commons Data API
|
|
2
|
+
|
|
3
|
+
Commons Data API library for REST communication with backends built with `medius-data` v4.
|
|
4
|
+
OpenAPI Typescript Angular generator is used to generate models and API services.
|
|
5
|
+
|
|
6
|
+
## Namestitev
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
pnpm i @mediusinc/mng-commons-data-api
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Dependencies within commons
|
|
13
|
+
|
|
14
|
+
- `@mediusinc/mng-commons/core`
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// helpers
|
|
2
|
+
export * from './lib/helpers/get-all-params';
|
|
3
|
+
// models
|
|
4
|
+
export * from './lib/models/request-params.model';
|
|
5
|
+
// types
|
|
6
|
+
export * from './lib/types/extract-get-all-params.type';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsU0FBUztBQUNULGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsUUFBUTtBQUNSLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBoZWxwZXJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWxwZXJzL2dldC1hbGwtcGFyYW1zJztcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVxdWVzdC1wYXJhbXMubW9kZWwnO1xuXG4vLyB0eXBlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMvZXh0cmFjdC1nZXQtYWxsLXBhcmFtcy50eXBlJztcbiJdfQ==
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { CommonsInternalError, DataListParamsUtil, FilterMatchMode, mapToDataList } from '@mediusinc/mng-commons/core';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a filter match mode to its corresponding enum value.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} matchMode - The filter match mode from data list filter to convert.
|
|
6
|
+
* @returns {GetAllParamsFilterMatchType} - The converted enum value.
|
|
7
|
+
* @throws {CommonsInternalError} - If the filter match mode is not supported.
|
|
8
|
+
*/
|
|
9
|
+
export function toGetAllParamsFilterMatchMode(matchMode) {
|
|
10
|
+
switch (matchMode) {
|
|
11
|
+
case FilterMatchMode.Equals:
|
|
12
|
+
return 'EQUALS';
|
|
13
|
+
case FilterMatchMode.NotEquals:
|
|
14
|
+
return 'NOT_EQUALS';
|
|
15
|
+
case FilterMatchMode.Contains:
|
|
16
|
+
return 'CONTAINS';
|
|
17
|
+
case FilterMatchMode.NotContains:
|
|
18
|
+
return 'NOT_CONTAINS';
|
|
19
|
+
case FilterMatchMode.In:
|
|
20
|
+
return 'IN';
|
|
21
|
+
case FilterMatchMode.NotIn:
|
|
22
|
+
return 'NOT_IN';
|
|
23
|
+
case FilterMatchMode.StartsWith:
|
|
24
|
+
return 'STARTS_WITH';
|
|
25
|
+
case FilterMatchMode.EndsWith:
|
|
26
|
+
return 'ENDS_WITH';
|
|
27
|
+
case FilterMatchMode.LessThan:
|
|
28
|
+
return 'LESS_THAN';
|
|
29
|
+
case FilterMatchMode.LessThanOrEqualTo:
|
|
30
|
+
return 'LESS_THAN_OR_EQUAL_TO';
|
|
31
|
+
case FilterMatchMode.GreaterThan:
|
|
32
|
+
return 'GREATER_THAN';
|
|
33
|
+
case FilterMatchMode.GreaterThanOrEqualTo:
|
|
34
|
+
return 'GREATER_THAN_OR_EQUAL_TO';
|
|
35
|
+
case FilterMatchMode.Between:
|
|
36
|
+
return 'BETWEEN';
|
|
37
|
+
case FilterMatchMode.Exists:
|
|
38
|
+
return 'EXISTS';
|
|
39
|
+
case FilterMatchMode.DoesNotExist:
|
|
40
|
+
return 'DOES_NOT_EXIST';
|
|
41
|
+
default:
|
|
42
|
+
throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
47
|
+
*
|
|
48
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
49
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
50
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
51
|
+
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
52
|
+
*/
|
|
53
|
+
export function toGetAllParamsAsUrlQuery(params) {
|
|
54
|
+
const res = {};
|
|
55
|
+
if (params.offset != null) {
|
|
56
|
+
res.offset = params.offset;
|
|
57
|
+
}
|
|
58
|
+
if (params.limit != null) {
|
|
59
|
+
res.limit = params.limit;
|
|
60
|
+
}
|
|
61
|
+
if (params.search != null) {
|
|
62
|
+
res.globalFilter = params.search;
|
|
63
|
+
}
|
|
64
|
+
if (Array.isArray(params.sort) && params.sort.length > 0) {
|
|
65
|
+
res.sort = DataListParamsUtil.sortToUrlQuery(params);
|
|
66
|
+
}
|
|
67
|
+
if (params.filters) {
|
|
68
|
+
Object.keys(params.filters).forEach(key => {
|
|
69
|
+
res[key] = DataListParamsUtil.paramsFilterToUrlQuery(params, key);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return res;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.
|
|
76
|
+
*
|
|
77
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
78
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
79
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
80
|
+
* @returns {GetAllParamsType<Sorts, Filters>} - Get all request param object with values as objects for POST requests.
|
|
81
|
+
*/
|
|
82
|
+
export function toGetAllParams(params) {
|
|
83
|
+
const res = {};
|
|
84
|
+
if (params.offset != null) {
|
|
85
|
+
res.offset = params.offset;
|
|
86
|
+
}
|
|
87
|
+
if (params.limit != null) {
|
|
88
|
+
res.limit = params.limit;
|
|
89
|
+
}
|
|
90
|
+
if (params.search != null) {
|
|
91
|
+
res.globalFilter = {
|
|
92
|
+
value: params.search
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (Array.isArray(params.sort) && params.sort.length > 0) {
|
|
96
|
+
res.sort = params.sort.map(s => ({
|
|
97
|
+
property: s.property,
|
|
98
|
+
direction: s.ascending === true || s.ascending == null ? 'ASCENDING' : 'DESCENDING'
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
if (params.filters) {
|
|
102
|
+
Object.keys(params.filters).forEach(key => {
|
|
103
|
+
const paramsFilter = params.filters[key];
|
|
104
|
+
if (!paramsFilter.matchMode) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
let value = Array.isArray(paramsFilter.value) ? undefined : paramsFilter.value;
|
|
108
|
+
let values = Array.isArray(paramsFilter.value) ? paramsFilter.value : undefined;
|
|
109
|
+
if (paramsFilter.matchMode === FilterMatchMode.Exists || paramsFilter.matchMode === FilterMatchMode.DoesNotExist) {
|
|
110
|
+
value = undefined;
|
|
111
|
+
values = undefined;
|
|
112
|
+
}
|
|
113
|
+
else if (paramsFilter.matchMode === FilterMatchMode.In || paramsFilter.matchMode === FilterMatchMode.NotIn) {
|
|
114
|
+
if (values == null || values.length === 0) {
|
|
115
|
+
throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have values in array, but has ${values}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else if (paramsFilter.matchMode === FilterMatchMode.Between) {
|
|
119
|
+
if (values == null || values.length !== 2) {
|
|
120
|
+
throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have 2 values in array, but has ${values}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else if (paramsFilter.value == null) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const caseSensitivity = paramsFilter.caseSensitive ? 'CASE_SENSITIVE' : paramsFilter.caseSensitive === false ? 'CASE_INSENSITIVE' : undefined;
|
|
127
|
+
const filter = {
|
|
128
|
+
filterMatchType: toGetAllParamsFilterMatchMode(paramsFilter.matchMode)
|
|
129
|
+
};
|
|
130
|
+
if (value != null) {
|
|
131
|
+
filter.value = value;
|
|
132
|
+
}
|
|
133
|
+
if (values != null && Array.isArray(values) && values.length > 0) {
|
|
134
|
+
filter.values = values;
|
|
135
|
+
}
|
|
136
|
+
if (caseSensitivity != null) {
|
|
137
|
+
filter.caseSensitivity = caseSensitivity;
|
|
138
|
+
}
|
|
139
|
+
res[key] = filter;
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return res;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Converts DataListParams to sort query URL representation.
|
|
146
|
+
*
|
|
147
|
+
* @param {DataListParams} params - The params object with sort property to convert.
|
|
148
|
+
* @returns {string | undefined} - The formatted sort query URL param or undefined.
|
|
149
|
+
*/
|
|
150
|
+
export function toGetAllSortAsQueryUrl(params) {
|
|
151
|
+
return DataListParamsUtil.sortToUrlQuery(params);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Converts a DataListFilter object to a query URL string.
|
|
155
|
+
*
|
|
156
|
+
* @param {DataListFilter} filter - The filter object from params to convert.
|
|
157
|
+
* @returns {string|undefined} - The formatted filter query URL param or undefined.
|
|
158
|
+
*/
|
|
159
|
+
export function toGetAllFilterAsQueryUrl(filter) {
|
|
160
|
+
return DataListParamsUtil.filterToUrlQuery(filter);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Executes the "getAll" on API service with request parameters.
|
|
164
|
+
* Get all is expected to be executed via GET method using params as URL queries.
|
|
165
|
+
*
|
|
166
|
+
* @param {Service} service - The API service instance.
|
|
167
|
+
* @param {Function} getAllFn - The "getAll" function on provided service instance.
|
|
168
|
+
* @param {Object} params - The data list params.
|
|
169
|
+
* @returns {Observable<<DataListResult<Item>>>} An observable with data list result.
|
|
170
|
+
*/
|
|
171
|
+
export function executeGetAll(service, getAllFn, params) {
|
|
172
|
+
return getAllFn.bind(service)(toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList());
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Executes the "getAll" on API service with request parameters.
|
|
176
|
+
* Get all is expected to be executed via POST method using params as object in body of request.
|
|
177
|
+
*
|
|
178
|
+
* @param {Service} service - The API service instance.
|
|
179
|
+
* @param {Function} getAllFn - The "getAll" function on provided service instance.
|
|
180
|
+
* @param {Object} params - The data list params.
|
|
181
|
+
* @returns {Observable<<DataListResult<Item>>>} An observable with data list result.
|
|
182
|
+
*/
|
|
183
|
+
export function executeGetAllAsPost(service, getAllFn, params) {
|
|
184
|
+
return getAllFn.bind(service)(toGetAllParams(params)).pipe(mapToDataList());
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvZ2V0LWFsbC1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLG9CQUFvQixFQUFrQyxrQkFBa0IsRUFBa0IsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBSXJLOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxTQUFpQjtJQUMzRCxRQUFRLFNBQVMsRUFBRTtRQUNmLEtBQUssZUFBZSxDQUFDLE1BQU07WUFDdkIsT0FBTyxRQUFRLENBQUM7UUFDcEIsS0FBSyxlQUFlLENBQUMsU0FBUztZQUMxQixPQUFPLFlBQVksQ0FBQztRQUN4QixLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVc7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDMUIsS0FBSyxlQUFlLENBQUMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztRQUNoQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLEtBQUssZUFBZSxDQUFDLFVBQVU7WUFDM0IsT0FBTyxhQUFhLENBQUM7UUFDekIsS0FBSyxlQUFlLENBQUMsUUFBUTtZQUN6QixPQUFPLFdBQVcsQ0FBQztRQUN2QixLQUFLLGVBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLEtBQUssZUFBZSxDQUFDLGlCQUFpQjtZQUNsQyxPQUFPLHVCQUF1QixDQUFDO1FBQ25DLEtBQUssZUFBZSxDQUFDLFdBQVc7WUFDNUIsT0FBTyxjQUFjLENBQUM7UUFDMUIsS0FBSyxlQUFlLENBQUMsb0JBQW9CO1lBQ3JDLE9BQU8sMEJBQTBCLENBQUM7UUFDdEMsS0FBSyxlQUFlLENBQUMsT0FBTztZQUN4QixPQUFPLFNBQVMsQ0FBQztRQUNyQixLQUFLLGVBQWUsQ0FBQyxNQUFNO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLEtBQUssZUFBZSxDQUFDLFlBQVk7WUFDN0IsT0FBTyxnQkFBZ0IsQ0FBQztRQUM1QjtZQUNJLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxzQkFBc0IsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ3pGO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQW1DLE1BQXNDO0lBQzdHLE1BQU0sR0FBRyxHQUFHLEVBQXVDLENBQUM7SUFFcEQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtRQUN2QixHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7S0FDOUI7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ3RCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUM1QjtJQUVELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUU7UUFDdkIsR0FBRyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0tBQ3BDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDdEQsR0FBRyxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsTUFBd0IsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QyxHQUFHLENBQUMsR0FBYyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLEdBQWMsQ0FBUSxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBbUMsTUFBc0M7SUFDbkcsTUFBTSxHQUFHLEdBQUcsRUFBc0MsQ0FBQztJQUVuRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFO1FBQ3ZCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUM5QjtJQUNELElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDdEIsR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQzVCO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtRQUN2QixHQUFHLENBQUMsWUFBWSxHQUFHO1lBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7S0FDTDtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3RELEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWTtTQUN0RixDQUFDLENBQUMsQ0FBQztLQUNQO0lBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBUSxDQUFDLEdBQWMsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO2dCQUN6QixPQUFPO2FBQ1Y7WUFFRCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQy9FLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFaEYsSUFBSSxZQUFZLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsWUFBWSxFQUFFO2dCQUM5RyxLQUFLLEdBQUcsU0FBUyxDQUFDO2dCQUNsQixNQUFNLEdBQUcsU0FBUyxDQUFDO2FBQ3RCO2lCQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsRUFBRSxJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssZUFBZSxDQUFDLEtBQUssRUFBRTtnQkFDMUcsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUN2QyxNQUFNLElBQUksb0JBQW9CLENBQUMsb0JBQW9CLFlBQVksQ0FBQyxTQUFTLHVDQUF1QyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUM3SDthQUNKO2lCQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsT0FBTyxFQUFFO2dCQUMzRCxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3ZDLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxvQkFBb0IsWUFBWSxDQUFDLFNBQVMseUNBQXlDLE1BQU0sRUFBRSxDQUFDLENBQUM7aUJBQy9IO2FBQ0o7aUJBQU0sSUFBSSxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBRUQsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlJLE1BQU0sTUFBTSxHQUFnQztnQkFDeEMsZUFBZSxFQUFFLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7YUFDekUsQ0FBQztZQUVGLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtnQkFDZixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUN4QjtZQUNELElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM5RCxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzthQUMxQjtZQUNELElBQUksZUFBZSxJQUFJLElBQUksRUFBRTtnQkFDekIsTUFBTSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7YUFDNUM7WUFFQSxHQUFXLENBQUMsR0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUFpQztJQUNwRSxPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBdUI7SUFDNUQsT0FBTyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUN6QixPQUFnQixFQUNoQixRQUFvSCxFQUNwSCxNQUFzQztJQUV0QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFRLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE9BQWdCLEVBQ2hCLFFBQW1ILEVBQ25ILE1BQXNDO0lBRXRDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFRLENBQUMsQ0FBQztBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgRGF0YUxpc3RGaWx0ZXIsIERhdGFMaXN0UGFyYW1zLCBEYXRhTGlzdFBhcmFtc1V0aWwsIERhdGFMaXN0UmVzdWx0LCBGaWx0ZXJNYXRjaE1vZGUsIG1hcFRvRGF0YUxpc3R9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7R2V0QWxsUGFyYW1zRmlsdGVyTWF0Y2hUeXBlLCBHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlLCBHZXRBbGxQYXJhbXNUeXBlLCBHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGV9IGZyb20gJy4uL21vZGVscy9yZXF1ZXN0LXBhcmFtcy5tb2RlbCc7XG5cbi8qKlxuICogQ29udmVydHMgYSBmaWx0ZXIgbWF0Y2ggbW9kZSB0byBpdHMgY29ycmVzcG9uZGluZyBlbnVtIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXRjaE1vZGUgLSBUaGUgZmlsdGVyIG1hdGNoIG1vZGUgZnJvbSBkYXRhIGxpc3QgZmlsdGVyIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7R2V0QWxsUGFyYW1zRmlsdGVyTWF0Y2hUeXBlfSAtIFRoZSBjb252ZXJ0ZWQgZW51bSB2YWx1ZS5cbiAqIEB0aHJvd3Mge0NvbW1vbnNJbnRlcm5hbEVycm9yfSAtIElmIHRoZSBmaWx0ZXIgbWF0Y2ggbW9kZSBpcyBub3Qgc3VwcG9ydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaE1vZGUobWF0Y2hNb2RlOiBzdHJpbmcpOiBHZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaFR5cGUge1xuICAgIHN3aXRjaCAobWF0Y2hNb2RlKSB7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkVxdWFsczpcbiAgICAgICAgICAgIHJldHVybiAnRVFVQUxTJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzOlxuICAgICAgICAgICAgcmV0dXJuICdOT1RfRVFVQUxTJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuQ29udGFpbnM6XG4gICAgICAgICAgICByZXR1cm4gJ0NPTlRBSU5TJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTm90Q29udGFpbnM6XG4gICAgICAgICAgICByZXR1cm4gJ05PVF9DT05UQUlOUyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkluOlxuICAgICAgICAgICAgcmV0dXJuICdJTic7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLk5vdEluOlxuICAgICAgICAgICAgcmV0dXJuICdOT1RfSU4nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5TdGFydHNXaXRoOlxuICAgICAgICAgICAgcmV0dXJuICdTVEFSVFNfV0lUSCc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkVuZHNXaXRoOlxuICAgICAgICAgICAgcmV0dXJuICdFTkRTX1dJVEgnO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5MZXNzVGhhbjpcbiAgICAgICAgICAgIHJldHVybiAnTEVTU19USEFOJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG86XG4gICAgICAgICAgICByZXR1cm4gJ0xFU1NfVEhBTl9PUl9FUVVBTF9UTyc7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkdyZWF0ZXJUaGFuOlxuICAgICAgICAgICAgcmV0dXJuICdHUkVBVEVSX1RIQU4nO1xuICAgICAgICBjYXNlIEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbzpcbiAgICAgICAgICAgIHJldHVybiAnR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuQmV0d2VlbjpcbiAgICAgICAgICAgIHJldHVybiAnQkVUV0VFTic7XG4gICAgICAgIGNhc2UgRmlsdGVyTWF0Y2hNb2RlLkV4aXN0czpcbiAgICAgICAgICAgIHJldHVybiAnRVhJU1RTJztcbiAgICAgICAgY2FzZSBGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0OlxuICAgICAgICAgICAgcmV0dXJuICdET0VTX05PVF9FWElTVCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYEZpbHRlciBtYXRjaCB0eXBlICcke21hdGNoTW9kZX0nIG5vdCBzdXBwb3J0ZWQuYCk7XG4gICAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGdpdmVuIHBhcmFtZXRlcnMgb2YgYSBEYXRhTGlzdFBhcmFtcyBvYmplY3QgaW50byBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbSBvYmplY3Qgd2l0aCB2YWx1ZXMgYXMgVVJMIHF1ZXJ5IHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0RhdGFMaXN0UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBjb252ZXJ0LlxuICogQHR5cGVwYXJhbSBTb3J0cyAtIFRoZSB0eXBlIG9mIHRoZSBzb3J0aW5nIG9wdGlvbnMgZm9yIHRoZSBkYXRhIGxpc3QuXG4gKiBAdHlwZXBhcmFtIEZpbHRlcnMgLSBUaGUgdHlwZSBvZiB0aGUgZmlsdGVycyBmb3IgdGhlIGRhdGEgbGlzdC5cbiAqIEByZXR1cm5zIHtHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycz59IC0gR2V0IGFsbCByZXF1ZXN0IHBhcmFtIG9iamVjdCB3aXRoIHZhbHVlcyBhcyBVUkwgcXVlcnkgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HZXRBbGxQYXJhbXNBc1VybFF1ZXJ5PFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihwYXJhbXM6IERhdGFMaXN0UGFyYW1zPFNvcnRzLCBGaWx0ZXJzPik6IEdldEFsbFBhcmFtc1VybFF1ZXJ5VHlwZTxGaWx0ZXJzPiB7XG4gICAgY29uc3QgcmVzID0ge30gYXMgR2V0QWxsUGFyYW1zVXJsUXVlcnlUeXBlPEZpbHRlcnM+O1xuXG4gICAgaWYgKHBhcmFtcy5vZmZzZXQgIT0gbnVsbCkge1xuICAgICAgICByZXMub2Zmc2V0ID0gcGFyYW1zLm9mZnNldDtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5saW1pdCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5saW1pdCA9IHBhcmFtcy5saW1pdDtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnNlYXJjaCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5nbG9iYWxGaWx0ZXIgPSBwYXJhbXMuc2VhcmNoO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtcy5zb3J0KSAmJiBwYXJhbXMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlcy5zb3J0ID0gRGF0YUxpc3RQYXJhbXNVdGlsLnNvcnRUb1VybFF1ZXJ5KHBhcmFtcyBhcyBEYXRhTGlzdFBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5maWx0ZXJzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICByZXNba2V5IGFzIEZpbHRlcnNdID0gRGF0YUxpc3RQYXJhbXNVdGlsLnBhcmFtc0ZpbHRlclRvVXJsUXVlcnkocGFyYW1zLCBrZXkgYXMgRmlsdGVycykgYXMgYW55O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGdpdmVuIHBhcmFtZXRlcnMgb2YgYSBEYXRhTGlzdFBhcmFtcyBvYmplY3QgaW50byBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbSBvYmplY3Qgd2l0aCB2YWx1ZXMgYXMgb2JqZWN0cyBmb3IgUE9TVCByZXF1ZXN0cy5cbiAqXG4gKiBAcGFyYW0ge0RhdGFMaXN0UGFyYW1zfSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBjb252ZXJ0LlxuICogQHR5cGVwYXJhbSBTb3J0cyAtIFRoZSB0eXBlIG9mIHRoZSBzb3J0aW5nIG9wdGlvbnMgZm9yIHRoZSBkYXRhIGxpc3QuXG4gKiBAdHlwZXBhcmFtIEZpbHRlcnMgLSBUaGUgdHlwZSBvZiB0aGUgZmlsdGVycyBmb3IgdGhlIGRhdGEgbGlzdC5cbiAqIEByZXR1cm5zIHtHZXRBbGxQYXJhbXNUeXBlPFNvcnRzLCBGaWx0ZXJzPn0gLSBHZXQgYWxsIHJlcXVlc3QgcGFyYW0gb2JqZWN0IHdpdGggdmFsdWVzIGFzIG9iamVjdHMgZm9yIFBPU1QgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0dldEFsbFBhcmFtczxTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4ocGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz4pOiBHZXRBbGxQYXJhbXNUeXBlPFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgY29uc3QgcmVzID0ge30gYXMgR2V0QWxsUGFyYW1zVHlwZTxTb3J0cywgRmlsdGVycz47XG5cbiAgICBpZiAocGFyYW1zLm9mZnNldCAhPSBudWxsKSB7XG4gICAgICAgIHJlcy5vZmZzZXQgPSBwYXJhbXMub2Zmc2V0O1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmxpbWl0ICE9IG51bGwpIHtcbiAgICAgICAgcmVzLmxpbWl0ID0gcGFyYW1zLmxpbWl0O1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuc2VhcmNoICE9IG51bGwpIHtcbiAgICAgICAgcmVzLmdsb2JhbEZpbHRlciA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbXMuc2VhcmNoXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1zLnNvcnQpICYmIHBhcmFtcy5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVzLnNvcnQgPSBwYXJhbXMuc29ydC5tYXAocyA9PiAoe1xuICAgICAgICAgICAgcHJvcGVydHk6IHMucHJvcGVydHksXG4gICAgICAgICAgICBkaXJlY3Rpb246IHMuYXNjZW5kaW5nID09PSB0cnVlIHx8IHMuYXNjZW5kaW5nID09IG51bGwgPyAnQVNDRU5ESU5HJyA6ICdERVNDRU5ESU5HJ1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5maWx0ZXJzKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtcy5maWx0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXNGaWx0ZXIgPSBwYXJhbXMuZmlsdGVycyFba2V5IGFzIEZpbHRlcnNdO1xuICAgICAgICAgICAgaWYgKCFwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBBcnJheS5pc0FycmF5KHBhcmFtc0ZpbHRlci52YWx1ZSkgPyB1bmRlZmluZWQgOiBwYXJhbXNGaWx0ZXIudmFsdWU7XG4gICAgICAgICAgICBsZXQgdmFsdWVzID0gQXJyYXkuaXNBcnJheShwYXJhbXNGaWx0ZXIudmFsdWUpID8gcGFyYW1zRmlsdGVyLnZhbHVlIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICBpZiAocGFyYW1zRmlsdGVyLm1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkV4aXN0cyB8fCBwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0KSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdmFsdWVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXNGaWx0ZXIubWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuSW4gfHwgcGFyYW1zRmlsdGVyLm1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLk5vdEluKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlcyA9PSBudWxsIHx8IHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBGaWx0ZXIgd2l0aCBtb2RlICR7cGFyYW1zRmlsdGVyLm1hdGNoTW9kZX0gbXVzdCBoYXZlIHZhbHVlcyBpbiBhcnJheSwgYnV0IGhhcyAke3ZhbHVlc31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtc0ZpbHRlci5tYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlcyA9PSBudWxsIHx8IHZhbHVlcy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBGaWx0ZXIgd2l0aCBtb2RlICR7cGFyYW1zRmlsdGVyLm1hdGNoTW9kZX0gbXVzdCBoYXZlIDIgdmFsdWVzIGluIGFycmF5LCBidXQgaGFzICR7dmFsdWVzfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1zRmlsdGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNhc2VTZW5zaXRpdml0eSA9IHBhcmFtc0ZpbHRlci5jYXNlU2Vuc2l0aXZlID8gJ0NBU0VfU0VOU0lUSVZFJyA6IHBhcmFtc0ZpbHRlci5jYXNlU2Vuc2l0aXZlID09PSBmYWxzZSA/ICdDQVNFX0lOU0VOU0lUSVZFJyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IDxHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlPGFueT4+e1xuICAgICAgICAgICAgICAgIGZpbHRlck1hdGNoVHlwZTogdG9HZXRBbGxQYXJhbXNGaWx0ZXJNYXRjaE1vZGUocGFyYW1zRmlsdGVyLm1hdGNoTW9kZSlcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWVzICE9IG51bGwgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZXMpICYmIHZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYXNlU2Vuc2l0aXZpdHkgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGZpbHRlci5jYXNlU2Vuc2l0aXZpdHkgPSBjYXNlU2Vuc2l0aXZpdHk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIChyZXMgYXMgYW55KVtrZXkgYXMgRmlsdGVyc10gPSBmaWx0ZXI7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG59XG5cbi8qKlxuICogQ29udmVydHMgRGF0YUxpc3RQYXJhbXMgdG8gc29ydCBxdWVyeSBVUkwgcmVwcmVzZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHtEYXRhTGlzdFBhcmFtc30gcGFyYW1zIC0gVGhlIHBhcmFtcyBvYmplY3Qgd2l0aCBzb3J0IHByb3BlcnR5IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSBmb3JtYXR0ZWQgc29ydCBxdWVyeSBVUkwgcGFyYW0gb3IgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9HZXRBbGxTb3J0QXNRdWVyeVVybChwYXJhbXM/OiBEYXRhTGlzdFBhcmFtczxhbnksIGFueT4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBEYXRhTGlzdFBhcmFtc1V0aWwuc29ydFRvVXJsUXVlcnkocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIERhdGFMaXN0RmlsdGVyIG9iamVjdCB0byBhIHF1ZXJ5IFVSTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtEYXRhTGlzdEZpbHRlcn0gZmlsdGVyIC0gVGhlIGZpbHRlciBvYmplY3QgZnJvbSBwYXJhbXMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfSAtIFRoZSBmb3JtYXR0ZWQgZmlsdGVyIHF1ZXJ5IFVSTCBwYXJhbSBvciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0dldEFsbEZpbHRlckFzUXVlcnlVcmwoZmlsdGVyPzogRGF0YUxpc3RGaWx0ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBEYXRhTGlzdFBhcmFtc1V0aWwuZmlsdGVyVG9VcmxRdWVyeShmaWx0ZXIpO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIHRoZSBcImdldEFsbFwiIG9uIEFQSSBzZXJ2aWNlIHdpdGggcmVxdWVzdCBwYXJhbWV0ZXJzLlxuICogR2V0IGFsbCBpcyBleHBlY3RlZCB0byBiZSBleGVjdXRlZCB2aWEgR0VUIG1ldGhvZCB1c2luZyBwYXJhbXMgYXMgVVJMIHF1ZXJpZXMuXG4gKlxuICogQHBhcmFtIHtTZXJ2aWNlfSBzZXJ2aWNlIC0gVGhlIEFQSSBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0QWxsRm4gLSBUaGUgXCJnZXRBbGxcIiBmdW5jdGlvbiBvbiBwcm92aWRlZCBzZXJ2aWNlIGluc3RhbmNlLlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBkYXRhIGxpc3QgcGFyYW1zLlxuICogQHJldHVybnMge09ic2VydmFibGU8PERhdGFMaXN0UmVzdWx0PEl0ZW0+Pj59IEFuIG9ic2VydmFibGUgd2l0aCBkYXRhIGxpc3QgcmVzdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUdldEFsbDxTZXJ2aWNlLCBJdGVtLCBTb3J0cywgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4oXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBnZXRBbGxGbjogKHJlcXVlc3RQYXJhbWV0ZXJzOiBHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycz4pID0+IE9ic2VydmFibGU8e2RhdGE/OiBJdGVtW107IHRvdGFsQ291bnQ/OiBudW1iZXJ9PixcbiAgICBwYXJhbXM6IERhdGFMaXN0UGFyYW1zPFNvcnRzLCBGaWx0ZXJzPlxuKTogT2JzZXJ2YWJsZTxEYXRhTGlzdFJlc3VsdDxJdGVtPj4ge1xuICAgIHJldHVybiBnZXRBbGxGbi5iaW5kKHNlcnZpY2UpKHRvR2V0QWxsUGFyYW1zQXNVcmxRdWVyeShwYXJhbXMpKS5waXBlKG1hcFRvRGF0YUxpc3Q8SXRlbT4oKSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgdGhlIFwiZ2V0QWxsXCIgb24gQVBJIHNlcnZpY2Ugd2l0aCByZXF1ZXN0IHBhcmFtZXRlcnMuXG4gKiBHZXQgYWxsIGlzIGV4cGVjdGVkIHRvIGJlIGV4ZWN1dGVkIHZpYSBQT1NUIG1ldGhvZCB1c2luZyBwYXJhbXMgYXMgb2JqZWN0IGluIGJvZHkgb2YgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2V9IHNlcnZpY2UgLSBUaGUgQVBJIHNlcnZpY2UgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBnZXRBbGxGbiAtIFRoZSBcImdldEFsbFwiIGZ1bmN0aW9uIG9uIHByb3ZpZGVkIHNlcnZpY2UgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIGRhdGEgbGlzdCBwYXJhbXMuXG4gKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTw8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+Pn0gQW4gb2JzZXJ2YWJsZSB3aXRoIGRhdGEgbGlzdCByZXN1bHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjdXRlR2V0QWxsQXNQb3N0PFNlcnZpY2UsIEl0ZW0sIFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGdldEFsbEZuOiAocmVxdWVzdFBhcmFtZXRlcnM6IEdldEFsbFBhcmFtc1R5cGU8U29ydHMsIEZpbHRlcnM+KSA9PiBPYnNlcnZhYmxlPHtkYXRhPzogSXRlbVtdOyB0b3RhbENvdW50PzogbnVtYmVyfT4sXG4gICAgcGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz5cbik6IE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+IHtcbiAgICByZXR1cm4gZ2V0QWxsRm4uYmluZChzZXJ2aWNlKSh0b0dldEFsbFBhcmFtcyhwYXJhbXMpKS5waXBlKG1hcFRvRGF0YUxpc3Q8SXRlbT4oKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1wYXJhbXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9yZXF1ZXN0LXBhcmFtcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IChleHBlY3RlZCkgdHlwZSB3aXRob3V0IGZpbHRlcnMsIHdoaWNoIGFyZSBcImR5bmFtaWNcIiBrZXlzLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZTxTb3J0ID0gR2V0QWxsUGFyYW1zU29ydFR5cGVbXSB8IHN0cmluZywgR2xvYmFsRmlsdGVyID0gR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZSB8IHN0cmluZz4gPSB7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIGdsb2JhbEZpbHRlcj86IEdsb2JhbEZpbHRlcjtcbiAgICBzb3J0PzogU29ydDtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc29ydCBkaXJlY3Rpb24gdHlwZSBmb3IgYSBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zIChhc2NlbmRpbmcgb3IgZGVzY2VuZGluZykuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc1NvcnREaXJlY3Rpb25UeXBlID0gJ0FTQ0VORElORycgfCAnREVTQ0VORElORyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc29ydCB0eXBlIGZvciBhIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKlxuICogQHR5cGVwYXJhbSBQcm9wZXJ0eSBUaGUgdHlwZSBvZiB0aGUgcHJvcGVydHkgdG8gc29ydCBieS5cbiAqIEB0eXBlcGFyYW0gRGlyZWN0aW9uIFRoZSB0eXBlIG9mIHRoZSBzb3J0IGRpcmVjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zU29ydFR5cGU8UHJvcGVydHkgPSBzdHJpbmcsIERpcmVjdGlvbiA9IEdldEFsbFBhcmFtc1NvcnREaXJlY3Rpb25UeXBlPiA9IHtcbiAgICBwcm9wZXJ0eTogUHJvcGVydHk7XG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHBvc3NpYmxlIG1hdGNoIHR5cGVzIGZvciBmaWx0ZXJzIGluIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlck1hdGNoVHlwZSA9XG4gICAgfCAnRVFVQUxTJ1xuICAgIHwgJ05PVF9FUVVBTFMnXG4gICAgfCAnQkVUV0VFTidcbiAgICB8ICdDT05UQUlOUydcbiAgICB8ICdOT1RfQ09OVEFJTlMnXG4gICAgfCAnU1RBUlRTX1dJVEgnXG4gICAgfCAnRU5EU19XSVRIJ1xuICAgIHwgJ0lOJ1xuICAgIHwgJ05PVF9JTidcbiAgICB8ICdMRVNTX1RIQU4nXG4gICAgfCAnTEVTU19USEFOX09SX0VRVUFMX1RPJ1xuICAgIHwgJ0dSRUFURVJfVEhBTidcbiAgICB8ICdHUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8nXG4gICAgfCAnRVhJU1RTJ1xuICAgIHwgJ0RPRVNfTk9UX0VYSVNUJztcblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIHBvc3NpYmxlIGNhc2Ugc2Vuc2l0aXZpdHkgZm9yIGZpbHRlciBpbiBnZXQgYWxsIHJlcXVlc3QgcGFyYW1zLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlID0gJ0NBU0VfU0VOU0lUSVZFJyB8ICdDQVNFX0lOU0VOU0lUSVZFJztcblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGdsb2JhbCBmaWx0ZXIgKHNlYXJjaCkgaW4gZ2V0IGFsbCByZXF1ZXN0IHBhcmFtcy5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QWxsUGFyYW1zR2xvYmFsRmlsdGVyVHlwZTxDYXNlU2Vuc2l0aXZpdHkgPSBHZXRBbGxQYXJhbXNGaWx0ZXJDYXNlU2Vuc2l0aXZpdHlUeXBlPiA9IHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGNhc2VTZW5zaXRpdml0eT86IENhc2VTZW5zaXRpdml0eTtcbn07XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBmaWx0ZXJzIGluIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlcnNUeXBlPEZpbHRlclR5cGUsIEZpbHRlclByb3BlcnRpZXMgZXh0ZW5kcyBrZXlvZiBhbnk+ID0ge1xuICAgIFtQIGluIEZpbHRlclByb3BlcnRpZXNdOiBGaWx0ZXJUeXBlO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZmlsdGVyIHR5cGUgZm9yIGdldCBhbGwgcmVxdWVzdCBwYXJhbXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8VmFsdWUsIENhc2VTZW5zaXRpdml0eSA9IEdldEFsbFBhcmFtc0ZpbHRlckNhc2VTZW5zaXRpdml0eVR5cGUsIE1hdGNoVHlwZSA9IEdldEFsbFBhcmFtc0ZpbHRlck1hdGNoVHlwZT4gPSB7XG4gICAgdmFsdWU/OiBWYWx1ZTtcbiAgICB2YWx1ZXM/OiBBcnJheTxWYWx1ZT47XG4gICAgY2FzZVNlbnNpdGl2aXR5PzogQ2FzZVNlbnNpdGl2aXR5O1xuICAgIGZpbHRlck1hdGNoVHlwZTogTWF0Y2hUeXBlO1xufTtcblxuLyoqXG4gKiBEZXNjcmliZXMgZ2V0IGFsbCBwYXJhbXMgd2l0aCB2YWx1ZXMgYXMgb2JqZWN0cyAoZm9yIFBPU1QgcmVxdWVzdHMpLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNUeXBlPFNvcnRzID0gc3RyaW5nLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0gc3RyaW5nPiA9IEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlPEdldEFsbFBhcmFtc1NvcnRUeXBlPFNvcnRzPltdLCBHZXRBbGxQYXJhbXNHbG9iYWxGaWx0ZXJUeXBlPiAmXG4gICAgR2V0QWxsUGFyYW1zRmlsdGVyc1R5cGU8R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxhbnk+LCBGaWx0ZXJzPjtcblxuLyoqXG4gKiBEZXNjcmliZXMgZ2V0IGFsbCBwYXJhbXMgd2l0aCB2YWx1ZXMgYXMgVVJMIHF1ZXJpZXMgKGZvciBHRVQgcmVxdWVzdHMpLlxuICovXG5leHBvcnQgdHlwZSBHZXRBbGxQYXJhbXNVcmxRdWVyeVR5cGU8RmlsdGVycyBleHRlbmRzIGtleW9mIGFueT4gPSBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZTxzdHJpbmcsIHN0cmluZz4gJiBHZXRBbGxQYXJhbXNGaWx0ZXJzVHlwZTxzdHJpbmcsIEZpbHRlcnM+O1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1nZXQtYWxsLXBhcmFtcy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90eXBlcy9leHRyYWN0LWdldC1hbGwtcGFyYW1zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGUsIEdldEFsbFBhcmFtc1NvcnRUeXBlfSBmcm9tICcuLi9tb2RlbHMvcmVxdWVzdC1wYXJhbXMubW9kZWwnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZWAgY2xhc3MgLSBleGNsdWRlcyBvZmZzZXQsIGxpbWl0LCBzZWFyY2ggYW5kIHNvcnQgcHJvcGVydGllcy5cbiAqIEFsbCBvdGhlciBwcm9wZXJ0aWVzIGFyZSBleHBlY3RlZCB0byBiZSBmaWx0ZXJzLlxuICpcbiAqIEB0eXBlcGFyYW0gUmVxdWVzdCAtIFRoZSB0eXBlIHBhcmFtZXRlciByZXByZXNlbnRpbmcgdGhlIGV4dGVuZGVkIEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlIG9iamVjdC5cbiAqL1xuZXhwb3J0IHR5cGUgRXh0cmFjdEdldEFsbFBhcmFtc0ZpbHRlclR5cGU8UmVxdWVzdCBleHRlbmRzIEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlPiA9IGtleW9mIE9taXQ8UmVxdWVzdCwgJ29mZnNldCcgfCAnbGltaXQnIHwgJ2dsb2JhbEZpbHRlcicgfCAnc29ydCc+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZWAgY2xhc3MgLSBleHRyYWN0cyBhbGxvd2VkIHNvcnQgcHJvcGVydGllcyAodXN1YWxseSBhbiBlbnVtKSBvbiBwcm9wZXJ0eSBrZXkgd2l0aGluIGFycmF5IHR5cGUuXG4gKlxuICogQHR5cGVwYXJhbSBSZXF1ZXN0IC0gVGhlIHR5cGUgcGFyYW1ldGVyIHJlcHJlc2VudGluZyB0aGUgZXh0ZW5kZWQgR2V0QWxsUGFyYW1zRGVmYXVsdFdvRmlsdGVyc1R5cGUgb2JqZWN0LlxuICovXG5leHBvcnQgdHlwZSBFeHRyYWN0R2V0QWxsUGFyYW1zU29ydFR5cGU8UmVxdWVzdCBleHRlbmRzIEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlPEdldEFsbFBhcmFtc1NvcnRUeXBlPGFueSwgYW55PltdIHwgc3RyaW5nLCBhbnk+PiA9XG4gICAgTm9uTnVsbGFibGU8UmVxdWVzdFsnc29ydCddPiBleHRlbmRzIEFycmF5PGluZmVyIFU+IHwgc3RyaW5nID8gKCdwcm9wZXJ0eScgZXh0ZW5kcyBrZXlvZiBVID8gTm9uTnVsbGFibGU8VVsncHJvcGVydHknXT4gOiBuZXZlcikgOiBuZXZlcjtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWRhdGEtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy1kYXRhLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './tableview-get-all-params-create';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90YWJsZXZpZXcvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy1nZXQtYWxsLXBhcmFtcy1jcmVhdGUnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWRhdGEtYXBpLXRhYmxldmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RhYmxldmlldy9zcmMvbWVkaXVzaW5jLW1uZy1jb21tb25zLWRhdGEtYXBpLXRhYmxldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injector, inject } from '@angular/core';
|
|
2
|
+
import { TableviewDataProvider, TableviewDescriptor, TableviewInputBuilder } from '@mediusinc/mng-commons/tableview/api';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a tableview with a given model, service and sorts and filters extracted from Data API Get All request params, service, and optional build function.
|
|
5
|
+
*
|
|
6
|
+
* @param {ModelDescriptor<Model>} model - The model descriptor.
|
|
7
|
+
* @param {ServiceClassType<Service>} service - The class type of the service.
|
|
8
|
+
* @param {TypeDescriptor<RequestParam>} params - The request param of get all request. Filters and sorts will be taken from here.
|
|
9
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
10
|
+
*
|
|
11
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
12
|
+
*/
|
|
13
|
+
export function tableviewWithGetAllParams(model, service, params, buildFn) {
|
|
14
|
+
const builder = new TableviewInputBuilder(TableviewDescriptor.fromModel(model), TableviewDataProvider.fromService(service), inject(Injector));
|
|
15
|
+
buildFn?.(builder);
|
|
16
|
+
return builder.build();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWdldC1hbGwtcGFyYW1zLWNyZWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RhYmxldmlldy9zcmMvdGFibGV2aWV3LWdldC1hbGwtcGFyYW1zLWNyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUsvQyxPQUFPLEVBQUMscUJBQXFCLEVBQTZCLG1CQUFtQixFQUEyQixxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRTNLOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FPckMsS0FBNkIsRUFDN0IsT0FBa0MsRUFDbEMsTUFBb0MsRUFDcEMsT0FFUztJQUVULE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQXFCLENBT3ZDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXLENBQWlDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RJLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0V4dHJhY3RHZXRBbGxQYXJhbXNGaWx0ZXJUeXBlLCBFeHRyYWN0R2V0QWxsUGFyYW1zU29ydFR5cGUsIEdldEFsbFBhcmFtc0RlZmF1bHRXb0ZpbHRlcnNUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zLWRhdGEtYXBpJztcbmltcG9ydCB7U2VydmljZUNsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yLCBUeXBlRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5pbXBvcnQge1RhYmxldmlld0RhdGFQcm92aWRlciwgVGFibGV2aWV3RGF0YVByb3ZpZGVySW5zdCwgVGFibGV2aWV3RGVzY3JpcHRvciwgVGFibGV2aWV3RGVzY3JpcHRvckluc3QsIFRhYmxldmlld0lucHV0QnVpbGRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGFibGV2aWV3IHdpdGggYSBnaXZlbiBtb2RlbCwgc2VydmljZSBhbmQgc29ydHMgYW5kIGZpbHRlcnMgZXh0cmFjdGVkIGZyb20gRGF0YSBBUEkgR2V0IEFsbCByZXF1ZXN0IHBhcmFtcywgc2VydmljZSwgYW5kIG9wdGlvbmFsIGJ1aWxkIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7TW9kZWxEZXNjcmlwdG9yPE1vZGVsPn0gbW9kZWwgLSBUaGUgbW9kZWwgZGVzY3JpcHRvci5cbiAqIEBwYXJhbSB7U2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPn0gc2VydmljZSAtIFRoZSBjbGFzcyB0eXBlIG9mIHRoZSBzZXJ2aWNlLlxuICogQHBhcmFtIHtUeXBlRGVzY3JpcHRvcjxSZXF1ZXN0UGFyYW0+fSBwYXJhbXMgLSBUaGUgcmVxdWVzdCBwYXJhbSBvZiBnZXQgYWxsIHJlcXVlc3QuIEZpbHRlcnMgYW5kIHNvcnRzIHdpbGwgYmUgdGFrZW4gZnJvbSBoZXJlLlxuICogQHBhcmFtIHsoYnVpbGRlcjogVGFibGV2aWV3QnVpbGRlcikgPT4gdm9pZH0gW2J1aWxkRm5dIC0gVGhlIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdGFibGV2aWV3IHVzaW5nIHRoZSBwcmVwYXJlZCBidWlsZGVyLlxuICpcbiAqIEByZXR1cm5zIEEgdGFibGV2aWV3IGluc3RhbmNlIHdpdGggZGVzY3JpcHRvciwgZGF0YSBwcm92aWRlciBhbmQgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld1dpdGhHZXRBbGxQYXJhbXM8XG4gICAgTW9kZWwsXG4gICAgU2VydmljZSxcbiAgICBSZXF1ZXN0UGFyYW0gZXh0ZW5kcyBHZXRBbGxQYXJhbXNEZWZhdWx0V29GaWx0ZXJzVHlwZSxcbiAgICBTb3J0cyA9IEV4dHJhY3RHZXRBbGxQYXJhbXNTb3J0VHlwZTxSZXF1ZXN0UGFyYW0+LFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBFeHRyYWN0R2V0QWxsUGFyYW1zRmlsdGVyVHlwZTxSZXF1ZXN0UGFyYW0+XG4+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgIHNlcnZpY2U6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4sXG4gICAgcGFyYW1zOiBUeXBlRGVzY3JpcHRvcjxSZXF1ZXN0UGFyYW0+LFxuICAgIGJ1aWxkRm4/OiAoXG4gICAgICAgIGJ1aWxkZXI6IFRhYmxldmlld0lucHV0QnVpbGRlcjxNb2RlbCwgU2VydmljZSwgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzPiwgVGFibGV2aWV3RGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+LCBTb3J0cywgRmlsdGVycz5cbiAgICApID0+IHZvaWRcbikge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGFibGV2aWV3SW5wdXRCdWlsZGVyPFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgU2VydmljZSxcbiAgICAgICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNvcnRzLCBGaWx0ZXJzPixcbiAgICAgICAgVGFibGV2aWV3RGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+LFxuICAgICAgICBTb3J0cyxcbiAgICAgICAgRmlsdGVyc1xuICAgID4oVGFibGV2aWV3RGVzY3JpcHRvci5mcm9tTW9kZWwobW9kZWwpLCBUYWJsZXZpZXdEYXRhUHJvdmlkZXIuZnJvbVNlcnZpY2U8U2VydmljZSwgTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihzZXJ2aWNlKSwgaW5qZWN0KEluamVjdG9yKSk7XG4gICAgYnVpbGRGbj8uKGJ1aWxkZXIpO1xuICAgIHJldHVybiBidWlsZGVyLmJ1aWxkKCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { inject, Injector } from '@angular/core';
|
|
2
|
+
import { TableviewInputBuilder, TableviewDescriptor, TableviewDataProvider } from '@mediusinc/mng-commons/tableview/api';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a tableview with a given model, service and sorts and filters extracted from Data API Get All request params, service, and optional build function.
|
|
6
|
+
*
|
|
7
|
+
* @param {ModelDescriptor<Model>} model - The model descriptor.
|
|
8
|
+
* @param {ServiceClassType<Service>} service - The class type of the service.
|
|
9
|
+
* @param {TypeDescriptor<RequestParam>} params - The request param of get all request. Filters and sorts will be taken from here.
|
|
10
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
11
|
+
*
|
|
12
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
13
|
+
*/
|
|
14
|
+
function tableviewWithGetAllParams(model, service, params, buildFn) {
|
|
15
|
+
const builder = new TableviewInputBuilder(TableviewDescriptor.fromModel(model), TableviewDataProvider.fromService(service), inject(Injector));
|
|
16
|
+
buildFn?.(builder);
|
|
17
|
+
return builder.build();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Generated bundle index. Do not edit.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
export { tableviewWithGetAllParams };
|
|
25
|
+
//# sourceMappingURL=mediusinc-mng-commons-data-api-tableview.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-data-api-tableview.mjs","sources":["../../tableview/src/tableview-get-all-params-create.ts","../../tableview/src/mediusinc-mng-commons-data-api-tableview.ts"],"sourcesContent":["import {Injector, inject} from '@angular/core';\n\nimport {ExtractGetAllParamsFilterType, ExtractGetAllParamsSortType, GetAllParamsDefaultWoFiltersType} from '@mediusinc/mng-commons-data-api';\nimport {ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {ModelDescriptor, TypeDescriptor} from '@mediusinc/mng-commons/model';\nimport {TableviewDataProvider, TableviewDataProviderInst, TableviewDescriptor, TableviewDescriptorInst, TableviewInputBuilder} from '@mediusinc/mng-commons/tableview/api';\n\n/**\n * Creates a tableview with a given model, service and sorts and filters extracted from Data API Get All request params, service, and optional build function.\n *\n * @param {ModelDescriptor<Model>} model - The model descriptor.\n * @param {ServiceClassType<Service>} service - The class type of the service.\n * @param {TypeDescriptor<RequestParam>} params - The request param of get all request. Filters and sorts will be taken from here.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns A tableview instance with descriptor, data provider and actions.\n */\nexport function tableviewWithGetAllParams<\n Model,\n Service,\n RequestParam extends GetAllParamsDefaultWoFiltersType,\n Sorts = ExtractGetAllParamsSortType<RequestParam>,\n Filters extends keyof any = ExtractGetAllParamsFilterType<RequestParam>\n>(\n model: ModelDescriptor<Model>,\n service: ServiceClassType<Service>,\n params: TypeDescriptor<RequestParam>,\n buildFn?: (\n builder: TableviewInputBuilder<Model, Service, TableviewDescriptorInst<Model, Sorts, Filters>, TableviewDataProviderInst<Model, Service, Sorts, Filters>, Sorts, Filters>\n ) => void\n) {\n const builder = new TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewDataProviderInst<Model, Service, Sorts, Filters>,\n Sorts,\n Filters\n >(TableviewDescriptor.fromModel(model), TableviewDataProvider.fromService<Service, Model, Sorts, Filters>(service), inject(Injector));\n buildFn?.(builder);\n return builder.build();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAOA;;;;;;;;;AASG;AACG,SAAU,yBAAyB,CAOrC,KAA6B,EAC7B,OAAkC,EAClC,MAAoC,EACpC,OAES,EAAA;IAET,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAOvC,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAiC,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtI,IAAA,OAAO,GAAG,OAAO,CAAC,CAAC;AACnB,IAAA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AAC3B;;ACzCA;;AAEG;;;;"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { CommonsInternalError, FilterMatchMode, DataListParamsUtil, mapToDataList } from '@mediusinc/mng-commons/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Converts a filter match mode to its corresponding enum value.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} matchMode - The filter match mode from data list filter to convert.
|
|
7
|
+
* @returns {GetAllParamsFilterMatchType} - The converted enum value.
|
|
8
|
+
* @throws {CommonsInternalError} - If the filter match mode is not supported.
|
|
9
|
+
*/
|
|
10
|
+
function toGetAllParamsFilterMatchMode(matchMode) {
|
|
11
|
+
switch (matchMode) {
|
|
12
|
+
case FilterMatchMode.Equals:
|
|
13
|
+
return 'EQUALS';
|
|
14
|
+
case FilterMatchMode.NotEquals:
|
|
15
|
+
return 'NOT_EQUALS';
|
|
16
|
+
case FilterMatchMode.Contains:
|
|
17
|
+
return 'CONTAINS';
|
|
18
|
+
case FilterMatchMode.NotContains:
|
|
19
|
+
return 'NOT_CONTAINS';
|
|
20
|
+
case FilterMatchMode.In:
|
|
21
|
+
return 'IN';
|
|
22
|
+
case FilterMatchMode.NotIn:
|
|
23
|
+
return 'NOT_IN';
|
|
24
|
+
case FilterMatchMode.StartsWith:
|
|
25
|
+
return 'STARTS_WITH';
|
|
26
|
+
case FilterMatchMode.EndsWith:
|
|
27
|
+
return 'ENDS_WITH';
|
|
28
|
+
case FilterMatchMode.LessThan:
|
|
29
|
+
return 'LESS_THAN';
|
|
30
|
+
case FilterMatchMode.LessThanOrEqualTo:
|
|
31
|
+
return 'LESS_THAN_OR_EQUAL_TO';
|
|
32
|
+
case FilterMatchMode.GreaterThan:
|
|
33
|
+
return 'GREATER_THAN';
|
|
34
|
+
case FilterMatchMode.GreaterThanOrEqualTo:
|
|
35
|
+
return 'GREATER_THAN_OR_EQUAL_TO';
|
|
36
|
+
case FilterMatchMode.Between:
|
|
37
|
+
return 'BETWEEN';
|
|
38
|
+
case FilterMatchMode.Exists:
|
|
39
|
+
return 'EXISTS';
|
|
40
|
+
case FilterMatchMode.DoesNotExist:
|
|
41
|
+
return 'DOES_NOT_EXIST';
|
|
42
|
+
default:
|
|
43
|
+
throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.
|
|
48
|
+
*
|
|
49
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
50
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
51
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
52
|
+
* @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.
|
|
53
|
+
*/
|
|
54
|
+
function toGetAllParamsAsUrlQuery(params) {
|
|
55
|
+
const res = {};
|
|
56
|
+
if (params.offset != null) {
|
|
57
|
+
res.offset = params.offset;
|
|
58
|
+
}
|
|
59
|
+
if (params.limit != null) {
|
|
60
|
+
res.limit = params.limit;
|
|
61
|
+
}
|
|
62
|
+
if (params.search != null) {
|
|
63
|
+
res.globalFilter = params.search;
|
|
64
|
+
}
|
|
65
|
+
if (Array.isArray(params.sort) && params.sort.length > 0) {
|
|
66
|
+
res.sort = DataListParamsUtil.sortToUrlQuery(params);
|
|
67
|
+
}
|
|
68
|
+
if (params.filters) {
|
|
69
|
+
Object.keys(params.filters).forEach(key => {
|
|
70
|
+
res[key] = DataListParamsUtil.paramsFilterToUrlQuery(params, key);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return res;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.
|
|
77
|
+
*
|
|
78
|
+
* @param {DataListParams} params - The parameters to convert.
|
|
79
|
+
* @typeparam Sorts - The type of the sorting options for the data list.
|
|
80
|
+
* @typeparam Filters - The type of the filters for the data list.
|
|
81
|
+
* @returns {GetAllParamsType<Sorts, Filters>} - Get all request param object with values as objects for POST requests.
|
|
82
|
+
*/
|
|
83
|
+
function toGetAllParams(params) {
|
|
84
|
+
const res = {};
|
|
85
|
+
if (params.offset != null) {
|
|
86
|
+
res.offset = params.offset;
|
|
87
|
+
}
|
|
88
|
+
if (params.limit != null) {
|
|
89
|
+
res.limit = params.limit;
|
|
90
|
+
}
|
|
91
|
+
if (params.search != null) {
|
|
92
|
+
res.globalFilter = {
|
|
93
|
+
value: params.search
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (Array.isArray(params.sort) && params.sort.length > 0) {
|
|
97
|
+
res.sort = params.sort.map(s => ({
|
|
98
|
+
property: s.property,
|
|
99
|
+
direction: s.ascending === true || s.ascending == null ? 'ASCENDING' : 'DESCENDING'
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
if (params.filters) {
|
|
103
|
+
Object.keys(params.filters).forEach(key => {
|
|
104
|
+
const paramsFilter = params.filters[key];
|
|
105
|
+
if (!paramsFilter.matchMode) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
let value = Array.isArray(paramsFilter.value) ? undefined : paramsFilter.value;
|
|
109
|
+
let values = Array.isArray(paramsFilter.value) ? paramsFilter.value : undefined;
|
|
110
|
+
if (paramsFilter.matchMode === FilterMatchMode.Exists || paramsFilter.matchMode === FilterMatchMode.DoesNotExist) {
|
|
111
|
+
value = undefined;
|
|
112
|
+
values = undefined;
|
|
113
|
+
}
|
|
114
|
+
else if (paramsFilter.matchMode === FilterMatchMode.In || paramsFilter.matchMode === FilterMatchMode.NotIn) {
|
|
115
|
+
if (values == null || values.length === 0) {
|
|
116
|
+
throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have values in array, but has ${values}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (paramsFilter.matchMode === FilterMatchMode.Between) {
|
|
120
|
+
if (values == null || values.length !== 2) {
|
|
121
|
+
throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have 2 values in array, but has ${values}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (paramsFilter.value == null) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const caseSensitivity = paramsFilter.caseSensitive ? 'CASE_SENSITIVE' : paramsFilter.caseSensitive === false ? 'CASE_INSENSITIVE' : undefined;
|
|
128
|
+
const filter = {
|
|
129
|
+
filterMatchType: toGetAllParamsFilterMatchMode(paramsFilter.matchMode)
|
|
130
|
+
};
|
|
131
|
+
if (value != null) {
|
|
132
|
+
filter.value = value;
|
|
133
|
+
}
|
|
134
|
+
if (values != null && Array.isArray(values) && values.length > 0) {
|
|
135
|
+
filter.values = values;
|
|
136
|
+
}
|
|
137
|
+
if (caseSensitivity != null) {
|
|
138
|
+
filter.caseSensitivity = caseSensitivity;
|
|
139
|
+
}
|
|
140
|
+
res[key] = filter;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return res;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Converts DataListParams to sort query URL representation.
|
|
147
|
+
*
|
|
148
|
+
* @param {DataListParams} params - The params object with sort property to convert.
|
|
149
|
+
* @returns {string | undefined} - The formatted sort query URL param or undefined.
|
|
150
|
+
*/
|
|
151
|
+
function toGetAllSortAsQueryUrl(params) {
|
|
152
|
+
return DataListParamsUtil.sortToUrlQuery(params);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Converts a DataListFilter object to a query URL string.
|
|
156
|
+
*
|
|
157
|
+
* @param {DataListFilter} filter - The filter object from params to convert.
|
|
158
|
+
* @returns {string|undefined} - The formatted filter query URL param or undefined.
|
|
159
|
+
*/
|
|
160
|
+
function toGetAllFilterAsQueryUrl(filter) {
|
|
161
|
+
return DataListParamsUtil.filterToUrlQuery(filter);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Executes the "getAll" on API service with request parameters.
|
|
165
|
+
* Get all is expected to be executed via GET method using params as URL queries.
|
|
166
|
+
*
|
|
167
|
+
* @param {Service} service - The API service instance.
|
|
168
|
+
* @param {Function} getAllFn - The "getAll" function on provided service instance.
|
|
169
|
+
* @param {Object} params - The data list params.
|
|
170
|
+
* @returns {Observable<<DataListResult<Item>>>} An observable with data list result.
|
|
171
|
+
*/
|
|
172
|
+
function executeGetAll(service, getAllFn, params) {
|
|
173
|
+
return getAllFn.bind(service)(toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList());
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Executes the "getAll" on API service with request parameters.
|
|
177
|
+
* Get all is expected to be executed via POST method using params as object in body of request.
|
|
178
|
+
*
|
|
179
|
+
* @param {Service} service - The API service instance.
|
|
180
|
+
* @param {Function} getAllFn - The "getAll" function on provided service instance.
|
|
181
|
+
* @param {Object} params - The data list params.
|
|
182
|
+
* @returns {Observable<<DataListResult<Item>>>} An observable with data list result.
|
|
183
|
+
*/
|
|
184
|
+
function executeGetAllAsPost(service, getAllFn, params) {
|
|
185
|
+
return getAllFn.bind(service)(toGetAllParams(params)).pipe(mapToDataList());
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// helpers
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Generated bundle index. Do not edit.
|
|
192
|
+
*/
|
|
193
|
+
|
|
194
|
+
export { executeGetAll, executeGetAllAsPost, toGetAllFilterAsQueryUrl, toGetAllParams, toGetAllParamsAsUrlQuery, toGetAllParamsFilterMatchMode, toGetAllSortAsQueryUrl };
|
|
195
|
+
//# sourceMappingURL=mediusinc-mng-commons-data-api.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-data-api.mjs","sources":["../../src/lib/helpers/get-all-params.ts","../../src/index.ts","../../src/mediusinc-mng-commons-data-api.ts"],"sourcesContent":["import {Observable} from 'rxjs';\n\nimport {CommonsInternalError, DataListFilter, DataListParams, DataListParamsUtil, DataListResult, FilterMatchMode, mapToDataList} from '@mediusinc/mng-commons/core';\n\nimport {GetAllParamsFilterMatchType, GetAllParamsFilterType, GetAllParamsType, GetAllParamsUrlQueryType} from '../models/request-params.model';\n\n/**\n * Converts a filter match mode to its corresponding enum value.\n *\n * @param {string} matchMode - The filter match mode from data list filter to convert.\n * @returns {GetAllParamsFilterMatchType} - The converted enum value.\n * @throws {CommonsInternalError} - If the filter match mode is not supported.\n */\nexport function toGetAllParamsFilterMatchMode(matchMode: string): GetAllParamsFilterMatchType {\n switch (matchMode) {\n case FilterMatchMode.Equals:\n return 'EQUALS';\n case FilterMatchMode.NotEquals:\n return 'NOT_EQUALS';\n case FilterMatchMode.Contains:\n return 'CONTAINS';\n case FilterMatchMode.NotContains:\n return 'NOT_CONTAINS';\n case FilterMatchMode.In:\n return 'IN';\n case FilterMatchMode.NotIn:\n return 'NOT_IN';\n case FilterMatchMode.StartsWith:\n return 'STARTS_WITH';\n case FilterMatchMode.EndsWith:\n return 'ENDS_WITH';\n case FilterMatchMode.LessThan:\n return 'LESS_THAN';\n case FilterMatchMode.LessThanOrEqualTo:\n return 'LESS_THAN_OR_EQUAL_TO';\n case FilterMatchMode.GreaterThan:\n return 'GREATER_THAN';\n case FilterMatchMode.GreaterThanOrEqualTo:\n return 'GREATER_THAN_OR_EQUAL_TO';\n case FilterMatchMode.Between:\n return 'BETWEEN';\n case FilterMatchMode.Exists:\n return 'EXISTS';\n case FilterMatchMode.DoesNotExist:\n return 'DOES_NOT_EXIST';\n default:\n throw new CommonsInternalError(`Filter match type '${matchMode}' not supported.`);\n }\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as URL query string representation.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @returns {GetAllParamsUrlQueryType<Filters>} - Get all request param object with values as URL query string representation.\n */\nexport function toGetAllParamsAsUrlQuery<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsUrlQueryType<Filters> {\n const res = {} as GetAllParamsUrlQueryType<Filters>;\n\n if (params.offset != null) {\n res.offset = params.offset;\n }\n if (params.limit != null) {\n res.limit = params.limit;\n }\n\n if (params.search != null) {\n res.globalFilter = params.search;\n }\n\n if (Array.isArray(params.sort) && params.sort.length > 0) {\n res.sort = DataListParamsUtil.sortToUrlQuery(params as DataListParams);\n }\n\n if (params.filters) {\n Object.keys(params.filters).forEach(key => {\n res[key as Filters] = DataListParamsUtil.paramsFilterToUrlQuery(params, key as Filters) as any;\n });\n }\n\n return res;\n}\n\n/**\n * Converts given parameters of a DataListParams object into a get all request param object with values as objects for POST requests.\n *\n * @param {DataListParams} params - The parameters to convert.\n * @typeparam Sorts - The type of the sorting options for the data list.\n * @typeparam Filters - The type of the filters for the data list.\n * @returns {GetAllParamsType<Sorts, Filters>} - Get all request param object with values as objects for POST requests.\n */\nexport function toGetAllParams<Sorts, Filters extends keyof any>(params: DataListParams<Sorts, Filters>): GetAllParamsType<Sorts, Filters> {\n const res = {} as GetAllParamsType<Sorts, Filters>;\n\n if (params.offset != null) {\n res.offset = params.offset;\n }\n if (params.limit != null) {\n res.limit = params.limit;\n }\n\n if (params.search != null) {\n res.globalFilter = {\n value: params.search\n };\n }\n\n if (Array.isArray(params.sort) && params.sort.length > 0) {\n res.sort = params.sort.map(s => ({\n property: s.property,\n direction: s.ascending === true || s.ascending == null ? 'ASCENDING' : 'DESCENDING'\n }));\n }\n\n if (params.filters) {\n Object.keys(params.filters).forEach(key => {\n const paramsFilter = params.filters![key as Filters];\n if (!paramsFilter.matchMode) {\n return;\n }\n\n let value = Array.isArray(paramsFilter.value) ? undefined : paramsFilter.value;\n let values = Array.isArray(paramsFilter.value) ? paramsFilter.value : undefined;\n\n if (paramsFilter.matchMode === FilterMatchMode.Exists || paramsFilter.matchMode === FilterMatchMode.DoesNotExist) {\n value = undefined;\n values = undefined;\n } else if (paramsFilter.matchMode === FilterMatchMode.In || paramsFilter.matchMode === FilterMatchMode.NotIn) {\n if (values == null || values.length === 0) {\n throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have values in array, but has ${values}`);\n }\n } else if (paramsFilter.matchMode === FilterMatchMode.Between) {\n if (values == null || values.length !== 2) {\n throw new CommonsInternalError(`Filter with mode ${paramsFilter.matchMode} must have 2 values in array, but has ${values}`);\n }\n } else if (paramsFilter.value == null) {\n return;\n }\n\n const caseSensitivity = paramsFilter.caseSensitive ? 'CASE_SENSITIVE' : paramsFilter.caseSensitive === false ? 'CASE_INSENSITIVE' : undefined;\n const filter = <GetAllParamsFilterType<any>>{\n filterMatchType: toGetAllParamsFilterMatchMode(paramsFilter.matchMode)\n };\n\n if (value != null) {\n filter.value = value;\n }\n if (values != null && Array.isArray(values) && values.length > 0) {\n filter.values = values;\n }\n if (caseSensitivity != null) {\n filter.caseSensitivity = caseSensitivity;\n }\n\n (res as any)[key as Filters] = filter;\n });\n }\n\n return res;\n}\n\n/**\n * Converts DataListParams to sort query URL representation.\n *\n * @param {DataListParams} params - The params object with sort property to convert.\n * @returns {string | undefined} - The formatted sort query URL param or undefined.\n */\nexport function toGetAllSortAsQueryUrl(params?: DataListParams<any, any>): string | undefined {\n return DataListParamsUtil.sortToUrlQuery(params);\n}\n\n/**\n * Converts a DataListFilter object to a query URL string.\n *\n * @param {DataListFilter} filter - The filter object from params to convert.\n * @returns {string|undefined} - The formatted filter query URL param or undefined.\n */\nexport function toGetAllFilterAsQueryUrl(filter?: DataListFilter): string | undefined {\n return DataListParamsUtil.filterToUrlQuery(filter);\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via GET method using params as URL queries.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service instance.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function executeGetAll<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n getAllFn: (requestParameters: GetAllParamsUrlQueryType<Filters>) => Observable<{data?: Item[]; totalCount?: number}>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return getAllFn.bind(service)(toGetAllParamsAsUrlQuery(params)).pipe(mapToDataList<Item>());\n}\n\n/**\n * Executes the \"getAll\" on API service with request parameters.\n * Get all is expected to be executed via POST method using params as object in body of request.\n *\n * @param {Service} service - The API service instance.\n * @param {Function} getAllFn - The \"getAll\" function on provided service instance.\n * @param {Object} params - The data list params.\n * @returns {Observable<<DataListResult<Item>>>} An observable with data list result.\n */\nexport function executeGetAllAsPost<Service, Item, Sorts, Filters extends keyof any>(\n service: Service,\n getAllFn: (requestParameters: GetAllParamsType<Sorts, Filters>) => Observable<{data?: Item[]; totalCount?: number}>,\n params: DataListParams<Sorts, Filters>\n): Observable<DataListResult<Item>> {\n return getAllFn.bind(service)(toGetAllParams(params)).pipe(mapToDataList<Item>());\n}\n","// helpers\nexport * from './lib/helpers/get-all-params';\n\n// models\nexport * from './lib/models/request-params.model';\n\n// types\nexport * from './lib/types/extract-get-all-params.type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED