@acorex/connectivity 21.0.0-next.2 → 21.0.0-next.21
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/api/index.d.ts +6 -65
- package/fesm2022/{acorex-connectivity-api-execute.command-CQt_HF1B.mjs → acorex-connectivity-api-execute.command-Di850KiF.mjs} +7 -7
- package/fesm2022/acorex-connectivity-api-execute.command-Di850KiF.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-api.mjs +128 -206
- package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
- package/fesm2022/acorex-connectivity-mock-assign-to-manager.command-T6-ao4e9.mjs +66 -0
- package/fesm2022/acorex-connectivity-mock-assign-to-manager.command-T6-ao4e9.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-category-with-items.query-Dsxj98tX.mjs → acorex-connectivity-mock-category-with-items.query-KB7GIYeb.mjs} +4 -4
- package/fesm2022/{acorex-connectivity-mock-category-with-items.query-Dsxj98tX.mjs.map → acorex-connectivity-mock-category-with-items.query-KB7GIYeb.mjs.map} +1 -1
- package/fesm2022/acorex-connectivity-mock-check-permission.command-C-AZTcHP.mjs +53 -0
- package/fesm2022/acorex-connectivity-mock-check-permission.command-C-AZTcHP.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-complete-signature-process.command-CHci1rOa.mjs +80 -0
- package/fesm2022/acorex-connectivity-mock-complete-signature-process.command-CHci1rOa.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-distribution-record.command-DRiDwlqN.mjs → acorex-connectivity-mock-distribution-record.command-DMoZvago.mjs} +4 -4
- package/fesm2022/{acorex-connectivity-mock-distribution-record.command-DRiDwlqN.mjs.map → acorex-connectivity-mock-distribution-record.command-DMoZvago.mjs.map} +1 -1
- package/fesm2022/acorex-connectivity-mock-get-application-versions-chart-data.query-B1TrIBvU.mjs +115 -0
- package/fesm2022/acorex-connectivity-mock-get-application-versions-chart-data.query-B1TrIBvU.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-CvNjA4OH.mjs +163 -0
- package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-CvNjA4OH.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-employee-list.query--f2M5RgC.mjs +213 -0
- package/fesm2022/acorex-connectivity-mock-get-employee-list.query--f2M5RgC.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-location-list.query-Cz55arFF.mjs +209 -0
- package/fesm2022/acorex-connectivity-mock-get-location-list.query-Cz55arFF.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-C7v7D4ep.mjs +186 -0
- package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-C7v7D4ep.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-product-list.query-DTj8RYwR.mjs +246 -0
- package/fesm2022/acorex-connectivity-mock-get-product-list.query-DTj8RYwR.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-product-pdf-data.query-DdLhRbP5.mjs +192 -0
- package/fesm2022/acorex-connectivity-mock-get-product-pdf-data.query-DdLhRbP5.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-ybmzmVl5.mjs +56 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-ybmzmVl5.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-kciEUx7d.mjs +246 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-kciEUx7d.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-BDfrwf5Z.mjs +258 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-BDfrwf5Z.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-BD4T2loB.mjs +56 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-BD4T2loB.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-CMJ8W3Ns.mjs +294 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-CMJ8W3Ns.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-C-gCUjbX.mjs +212 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-C-gCUjbX.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-notify-signers.command-DLMsWjWQ.mjs +69 -0
- package/fesm2022/acorex-connectivity-mock-notify-signers.command-DLMsWjWQ.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-request-signature.command-JNkj9-Yz.mjs +72 -0
- package/fesm2022/acorex-connectivity-mock-request-signature.command-JNkj9-Yz.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-sample.command-CkH5bmEs.mjs → acorex-connectivity-mock-sample.command-CyrjdvEA.mjs} +4 -4
- package/fesm2022/{acorex-connectivity-mock-sample.command-CkH5bmEs.mjs.map → acorex-connectivity-mock-sample.command-CyrjdvEA.mjs.map} +1 -1
- package/fesm2022/acorex-connectivity-mock-validate-all-signatures.command-xKr94NrA.mjs +81 -0
- package/fesm2022/acorex-connectivity-mock-validate-all-signatures.command-xKr94NrA.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock.mjs +63874 -45210
- package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
- package/fesm2022/acorex-connectivity-utils.mjs +7 -7
- package/fesm2022/acorex-connectivity-utils.mjs.map +1 -1
- package/mock/index.d.ts +986 -1839
- package/package.json +6 -6
- package/fesm2022/acorex-connectivity-api-execute.command-CQt_HF1B.mjs.map +0 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
4
|
+
import { RootConfig } from '@acorex/modules/location-management';
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
class GetLocationListQuery {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.entityService = inject(AXPEntityService);
|
|
10
|
+
this.locationService = this.entityService
|
|
11
|
+
.withEntity(`${RootConfig.module.name}.${RootConfig.entities.location.name}`)
|
|
12
|
+
.data();
|
|
13
|
+
}
|
|
14
|
+
async fetch(input) {
|
|
15
|
+
// Extract location-specific filters from AXPFilterClause format
|
|
16
|
+
const extractedFilters = this.extractLocationFilters(input.filters);
|
|
17
|
+
// Separate custom filters from entity filters
|
|
18
|
+
const entityFilters = [];
|
|
19
|
+
if (extractedFilters && extractedFilters.length > 0) {
|
|
20
|
+
for (const filter of extractedFilters) {
|
|
21
|
+
entityFilters.push(filter);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Get all locations from storage with entity filters
|
|
25
|
+
const allLocationsResult = await this.locationService.query({
|
|
26
|
+
skip: 0,
|
|
27
|
+
take: 10000, // Get all locations for aggregation
|
|
28
|
+
filter: entityFilters.length > 0
|
|
29
|
+
? {
|
|
30
|
+
logic: input.logic || 'and',
|
|
31
|
+
filters: entityFilters,
|
|
32
|
+
}
|
|
33
|
+
: undefined,
|
|
34
|
+
});
|
|
35
|
+
const allLocations = allLocationsResult.items;
|
|
36
|
+
// Group locations by country, province, and city
|
|
37
|
+
const locationGroups = new Map();
|
|
38
|
+
for (const location of allLocations) {
|
|
39
|
+
// Get geographic information
|
|
40
|
+
const countryId = location.countryId || 'unknown';
|
|
41
|
+
const countryTitle = location.country?.title || 'Unknown Country';
|
|
42
|
+
const provinceId = location.stateId || 'unknown';
|
|
43
|
+
const provinceTitle = location.state?.title || 'Unknown Province';
|
|
44
|
+
const cityId = location.cityId || 'unknown';
|
|
45
|
+
const cityTitle = location.city?.title || 'Unknown City';
|
|
46
|
+
// Create nested map structure: country -> province -> city -> locations[]
|
|
47
|
+
if (!locationGroups.has(countryId)) {
|
|
48
|
+
locationGroups.set(countryId, new Map());
|
|
49
|
+
}
|
|
50
|
+
const provinceMap = locationGroups.get(countryId);
|
|
51
|
+
if (!provinceMap.has(provinceId)) {
|
|
52
|
+
provinceMap.set(provinceId, new Map());
|
|
53
|
+
}
|
|
54
|
+
const cityMap = provinceMap.get(provinceId);
|
|
55
|
+
if (!cityMap.has(cityId)) {
|
|
56
|
+
cityMap.set(cityId, []);
|
|
57
|
+
}
|
|
58
|
+
cityMap.get(cityId).push(location);
|
|
59
|
+
}
|
|
60
|
+
// Aggregate data by country, province, and city
|
|
61
|
+
const aggregatedResults = [];
|
|
62
|
+
for (const [countryId, provinceMap] of locationGroups.entries()) {
|
|
63
|
+
const firstLocation = Array.from(provinceMap.values())[0]?.values().next().value?.[0];
|
|
64
|
+
const countryTitle = firstLocation?.country?.title || 'Unknown Country';
|
|
65
|
+
for (const [provinceId, cityMap] of provinceMap.entries()) {
|
|
66
|
+
const firstLocationInProvince = cityMap.values().next().value?.[0];
|
|
67
|
+
const provinceTitle = firstLocationInProvince?.state?.title || 'Unknown Province';
|
|
68
|
+
for (const [cityId, locations] of cityMap.entries()) {
|
|
69
|
+
const cityTitle = locations[0]?.city?.title || 'Unknown City';
|
|
70
|
+
aggregatedResults.push({
|
|
71
|
+
countryId,
|
|
72
|
+
countryTitle,
|
|
73
|
+
provinceId,
|
|
74
|
+
provinceTitle,
|
|
75
|
+
cityId,
|
|
76
|
+
cityTitle,
|
|
77
|
+
locationCount: locations.length,
|
|
78
|
+
totalLocations: locations.length,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Apply sorting if provided
|
|
84
|
+
if (input.sort && input.sort.length > 0) {
|
|
85
|
+
aggregatedResults.sort((a, b) => {
|
|
86
|
+
for (const sortField of input.sort) {
|
|
87
|
+
const field = sortField.field;
|
|
88
|
+
const aValue = a[field];
|
|
89
|
+
const bValue = b[field];
|
|
90
|
+
const dir = sortField.dir === 'asc' ? 1 : -1;
|
|
91
|
+
// Handle undefined values
|
|
92
|
+
if (aValue === undefined && bValue === undefined)
|
|
93
|
+
continue;
|
|
94
|
+
if (aValue === undefined)
|
|
95
|
+
return 1 * dir;
|
|
96
|
+
if (bValue === undefined)
|
|
97
|
+
return -1 * dir;
|
|
98
|
+
if (aValue < bValue)
|
|
99
|
+
return -1 * dir;
|
|
100
|
+
if (aValue > bValue)
|
|
101
|
+
return 1 * dir;
|
|
102
|
+
}
|
|
103
|
+
return 0;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// Apply pagination
|
|
107
|
+
const skip = input.skip || 0;
|
|
108
|
+
const take = input.take || 10;
|
|
109
|
+
const total = aggregatedResults.length;
|
|
110
|
+
const items = aggregatedResults.slice(skip, skip + take);
|
|
111
|
+
return {
|
|
112
|
+
items,
|
|
113
|
+
total,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//#region ---- Filter Extraction ----
|
|
117
|
+
/**
|
|
118
|
+
* Extract location-specific filters from AXPFilterClause format
|
|
119
|
+
* Maps report parameter paths to location entity field names
|
|
120
|
+
*/
|
|
121
|
+
extractLocationFilters(parameters) {
|
|
122
|
+
const filters = [];
|
|
123
|
+
const paramsAny = parameters;
|
|
124
|
+
if (!paramsAny?.filters || !Array.isArray(paramsAny.filters)) {
|
|
125
|
+
console.log('⚠️ [extractLocationFilters] No filters array found or not an array');
|
|
126
|
+
return filters;
|
|
127
|
+
}
|
|
128
|
+
for (const filter of paramsAny.filters) {
|
|
129
|
+
if (!filter?.field || filter?.value === undefined || filter?.value === null) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
const field = filter.field;
|
|
133
|
+
const value = filter.value;
|
|
134
|
+
const operator = filter.operator || { type: 'equal' };
|
|
135
|
+
// Handle location-specific field mappings
|
|
136
|
+
if (field === 'country') {
|
|
137
|
+
// Country filter
|
|
138
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
139
|
+
filters.push({
|
|
140
|
+
field: 'countryId',
|
|
141
|
+
operator: { type: 'in' },
|
|
142
|
+
value: value,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
else if (value) {
|
|
146
|
+
filters.push({
|
|
147
|
+
field: 'countryId',
|
|
148
|
+
operator: { type: 'equal' },
|
|
149
|
+
value: value,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else if (field === 'province') {
|
|
154
|
+
// Province/State filter
|
|
155
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
156
|
+
filters.push({
|
|
157
|
+
field: 'stateId',
|
|
158
|
+
operator: { type: 'in' },
|
|
159
|
+
value: value,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else if (value) {
|
|
163
|
+
filters.push({
|
|
164
|
+
field: 'stateId',
|
|
165
|
+
operator: { type: 'equal' },
|
|
166
|
+
value: value,
|
|
167
|
+
});
|
|
168
|
+
console.log('✅ [extractLocationFilters] Added province filter (equal):', value);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else if (field === 'city') {
|
|
172
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
173
|
+
filters.push({
|
|
174
|
+
field: 'cityId',
|
|
175
|
+
operator: { type: 'in' },
|
|
176
|
+
value: value,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
else if (value) {
|
|
180
|
+
filters.push({
|
|
181
|
+
field: 'cityId',
|
|
182
|
+
operator: { type: 'equal' },
|
|
183
|
+
value: value,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
// Direct field mapping
|
|
189
|
+
filters.push({
|
|
190
|
+
field: field,
|
|
191
|
+
operator: operator,
|
|
192
|
+
value: value,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return filters;
|
|
197
|
+
}
|
|
198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GetLocationListQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
199
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GetLocationListQuery, providedIn: 'root' }); }
|
|
200
|
+
}
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GetLocationListQuery, decorators: [{
|
|
202
|
+
type: Injectable,
|
|
203
|
+
args: [{
|
|
204
|
+
providedIn: 'root',
|
|
205
|
+
}]
|
|
206
|
+
}] });
|
|
207
|
+
|
|
208
|
+
export { GetLocationListQuery };
|
|
209
|
+
//# sourceMappingURL=acorex-connectivity-mock-get-location-list.query-Cz55arFF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-get-location-list.query-Cz55arFF.mjs","sources":["../tmp-esm2022/mock/lib/report-management/samples/get-location-list.query.js"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig as LocationRootConfig } from '@acorex/modules/location-management';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class GetLocationListQuery {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.locationService = this.entityService\n .withEntity(`${LocationRootConfig.module.name}.${LocationRootConfig.entities.location.name}`)\n .data();\n }\n async fetch(input) {\n // Extract location-specific filters from AXPFilterClause format\n const extractedFilters = this.extractLocationFilters(input.filters);\n // Separate custom filters from entity filters\n const entityFilters = [];\n if (extractedFilters && extractedFilters.length > 0) {\n for (const filter of extractedFilters) {\n entityFilters.push(filter);\n }\n }\n // Get all locations from storage with entity filters\n const allLocationsResult = await this.locationService.query({\n skip: 0,\n take: 10000, // Get all locations for aggregation\n filter: entityFilters.length > 0\n ? {\n logic: input.logic || 'and',\n filters: entityFilters,\n }\n : undefined,\n });\n const allLocations = allLocationsResult.items;\n // Group locations by country, province, and city\n const locationGroups = new Map();\n for (const location of allLocations) {\n // Get geographic information\n const countryId = location.countryId || 'unknown';\n const countryTitle = location.country?.title || 'Unknown Country';\n const provinceId = location.stateId || 'unknown';\n const provinceTitle = location.state?.title || 'Unknown Province';\n const cityId = location.cityId || 'unknown';\n const cityTitle = location.city?.title || 'Unknown City';\n // Create nested map structure: country -> province -> city -> locations[]\n if (!locationGroups.has(countryId)) {\n locationGroups.set(countryId, new Map());\n }\n const provinceMap = locationGroups.get(countryId);\n if (!provinceMap.has(provinceId)) {\n provinceMap.set(provinceId, new Map());\n }\n const cityMap = provinceMap.get(provinceId);\n if (!cityMap.has(cityId)) {\n cityMap.set(cityId, []);\n }\n cityMap.get(cityId).push(location);\n }\n // Aggregate data by country, province, and city\n const aggregatedResults = [];\n for (const [countryId, provinceMap] of locationGroups.entries()) {\n const firstLocation = Array.from(provinceMap.values())[0]?.values().next().value?.[0];\n const countryTitle = firstLocation?.country?.title || 'Unknown Country';\n for (const [provinceId, cityMap] of provinceMap.entries()) {\n const firstLocationInProvince = cityMap.values().next().value?.[0];\n const provinceTitle = firstLocationInProvince?.state?.title || 'Unknown Province';\n for (const [cityId, locations] of cityMap.entries()) {\n const cityTitle = locations[0]?.city?.title || 'Unknown City';\n aggregatedResults.push({\n countryId,\n countryTitle,\n provinceId,\n provinceTitle,\n cityId,\n cityTitle,\n locationCount: locations.length,\n totalLocations: locations.length,\n });\n }\n }\n }\n // Apply sorting if provided\n if (input.sort && input.sort.length > 0) {\n aggregatedResults.sort((a, b) => {\n for (const sortField of input.sort) {\n const field = sortField.field;\n const aValue = a[field];\n const bValue = b[field];\n const dir = sortField.dir === 'asc' ? 1 : -1;\n // Handle undefined values\n if (aValue === undefined && bValue === undefined)\n continue;\n if (aValue === undefined)\n return 1 * dir;\n if (bValue === undefined)\n return -1 * dir;\n if (aValue < bValue)\n return -1 * dir;\n if (aValue > bValue)\n return 1 * dir;\n }\n return 0;\n });\n }\n // Apply pagination\n const skip = input.skip || 0;\n const take = input.take || 10;\n const total = aggregatedResults.length;\n const items = aggregatedResults.slice(skip, skip + take);\n return {\n items,\n total,\n };\n }\n //#region ---- Filter Extraction ----\n /**\n * Extract location-specific filters from AXPFilterClause format\n * Maps report parameter paths to location entity field names\n */\n extractLocationFilters(parameters) {\n const filters = [];\n const paramsAny = parameters;\n if (!paramsAny?.filters || !Array.isArray(paramsAny.filters)) {\n console.log('⚠️ [extractLocationFilters] No filters array found or not an array');\n return filters;\n }\n for (const filter of paramsAny.filters) {\n if (!filter?.field || filter?.value === undefined || filter?.value === null) {\n continue;\n }\n const field = filter.field;\n const value = filter.value;\n const operator = filter.operator || { type: 'equal' };\n // Handle location-specific field mappings\n if (field === 'country') {\n // Country filter\n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n field: 'countryId',\n operator: { type: 'in' },\n value: value,\n });\n }\n else if (value) {\n filters.push({\n field: 'countryId',\n operator: { type: 'equal' },\n value: value,\n });\n }\n }\n else if (field === 'province') {\n // Province/State filter\n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n field: 'stateId',\n operator: { type: 'in' },\n value: value,\n });\n }\n else if (value) {\n filters.push({\n field: 'stateId',\n operator: { type: 'equal' },\n value: value,\n });\n console.log('✅ [extractLocationFilters] Added province filter (equal):', value);\n }\n }\n else if (field === 'city') {\n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n field: 'cityId',\n operator: { type: 'in' },\n value: value,\n });\n }\n else if (value) {\n filters.push({\n field: 'cityId',\n operator: { type: 'equal' },\n value: value,\n });\n }\n }\n else {\n // Direct field mapping\n filters.push({\n field: field,\n operator: operator,\n value: value,\n });\n }\n }\n return filters;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: GetLocationListQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: GetLocationListQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: GetLocationListQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxvY2F0aW9uLWxpc3QucXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nvbm5lY3Rpdml0eS9tb2NrL3NyYy9saWIvcmVwb3J0LW1hbmFnZW1lbnQvc2FtcGxlcy9nZXQtbG9jYXRpb24tbGlzdC5xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsVUFBVSxJQUFJLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBZ0N2RixZQUFZO0FBS1osTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUltQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDekMsVUFBVSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzVGLElBQUksRUFBb0QsQ0FBQztLQThNN0Q7SUE1TUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFzQztRQUNoRCxnRUFBZ0U7UUFDaEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLDhDQUE4QztRQUM5QyxNQUFNLGFBQWEsR0FBeUMsRUFBRSxDQUFDO1FBRS9ELElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BELEtBQUssTUFBTSxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdEMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFN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SCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sdUJBQXVCO2dCQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLEtBQUssRUFBRSxLQUFLO29CQUNaLFFBQVEsRUFBRSxRQUFRO29CQUNsQixLQUFLLEVBQUUsS0FBSztpQkFDYixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBL01VLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhNTG9jYXRpb25NYW5hZ2VtZW50TG9jYXRpb25FbnRpdHlNb2RlbCB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9sb2NhdGlvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFJvb3RDb25maWcgYXMgTG9jYXRpb25Sb290Q29uZmlnIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2xvY2F0aW9uLW1hbmFnZW1lbnQnO1xuXG4vLyNyZWdpb24gLS0tLSAgIFF1ZXJ5IElucHV0L091dHB1dCBUeXBlcyAgIC0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRMb2NhdGlvbkxpc3RRdWVyeUlucHV0IHtcbiAgc2tpcD86IG51bWJlcjtcbiAgdGFrZT86IG51bWJlcjtcbiAgc29ydD86IEFycmF5PHsgZmllbGQ6IHN0cmluZzsgZGlyOiAnYXNjJyB8ICdkZXNjJyB9PjtcbiAgZmlsdGVycz86IEFycmF5PHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIG9wZXJhdG9yOiB7IHR5cGU6IHN0cmluZyB9O1xuICAgIHZhbHVlOiBhbnk7XG4gIH0+O1xuICBsb2dpYz86ICdhbmQnIHwgJ29yJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkJ5Q2l0eVJlc3VsdCB7XG4gIGNvdW50cnlJZD86IHN0cmluZztcbiAgY291bnRyeVRpdGxlPzogc3RyaW5nO1xuICBwcm92aW5jZUlkPzogc3RyaW5nO1xuICBwcm92aW5jZVRpdGxlPzogc3RyaW5nO1xuICBjaXR5SWQ/OiBzdHJpbmc7XG4gIGNpdHlUaXRsZT86IHN0cmluZztcbiAgbG9jYXRpb25Db3VudDogbnVtYmVyO1xuICB0b3RhbExvY2F0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldExvY2F0aW9uTGlzdFF1ZXJ5UmVzdWx0IHtcbiAgaXRlbXM6IExvY2F0aW9uQnlDaXR5UmVzdWx0W107XG4gIHRvdGFsOiBudW1iZXI7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2V0TG9jYXRpb25MaXN0UXVlcnkgaW1wbGVtZW50cyBBWFBRdWVyeTxHZXRMb2NhdGlvbkxpc3RRdWVyeUlucHV0LCBHZXRMb2NhdGlvbkxpc3RRdWVyeVJlc3VsdD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG4gIHByaXZhdGUgbG9jYXRpb25TZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlXG4gICAgLndpdGhFbnRpdHkoYCR7TG9jYXRpb25Sb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke0xvY2F0aW9uUm9vdENvbmZpZy5lbnRpdGllcy5sb2NhdGlvbi5uYW1lfWApXG4gICAgLmRhdGE8c3RyaW5nLCBBWE1Mb2NhdGlvbk1hbmFnZW1lbnRMb2NhdGlvbkVudGl0eU1vZGVsPigpO1xuXG4gIGFzeW5jIGZldGNoKGlucHV0OiBHZXRMb2NhdGlvbkxpc3RRdWVyeUlucHV0IHwgYW55KTogUHJvbWlzZTxHZXRMb2NhdGlvbkxpc3RRdWVyeVJlc3VsdD4ge1xuICAgIC8vIEV4dHJhY3QgbG9jYXRpb24tc3BlY2lmaWMgZmlsdGVycyBmcm9tIEFYUEZpbHRlckNsYXVzZSBmb3JtYXRcbiAgICBjb25zdCBleHRyYWN0ZWRGaWx0ZXJzID0gdGhpcy5leHRyYWN0TG9jYXRpb25GaWx0ZXJzKGlucHV0LmZpbHRlcnMpO1xuICAgIC8vIFNlcGFyYXRlIGN1c3RvbSBmaWx0ZXJzIGZyb20gZW50aXR5IGZpbHRlcnNcbiAgICBjb25zdCBlbnRpdHlGaWx0ZXJzOiBHZXRMb2NhdGlvbkxpc3RRdWVyeUlucHV0WydmaWx0ZXJzJ10gPSBbXTtcblxuICAgIGlmIChleHRyYWN0ZWRGaWx0ZXJzICYmIGV4dHJhY3RlZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZXh0cmFjdGVkRmlsdGVycykge1xuICAgICAgICBlbnRpdHlGaWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gR2V0IGFsbCBsb2NhdGlvbnMgZnJvbSBzdG9yYWdlIHdpdGggZW50aXR5IGZpbHRlcnNcbiAgICBjb25zdCBhbGxMb2NhdGlvbnNSZXN1bHQgPSBhd2FpdCB0aGlzLmxvY2F0aW9uU2VydmljZS5xdWVyeSh7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMDAsIC8vIEdldCBhbGwgbG9jYXRpb25zIGZvciBhZ2dyZWdhdGlvblxuICAgICAgZmlsdGVyOlxuICAgICAgICBlbnRpdHlGaWx0ZXJzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/ICh7XG4gICAgICAgICAgICBsb2dpYzogaW5wdXQubG9naWMgfHwgJ2FuZCcsXG4gICAgICAgICAgICBmaWx0ZXJzOiBlbnRpdHlGaWx0ZXJzLFxuICAgICAgICAgIH0gYXMgYW55KVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYWxsTG9jYXRpb25zID0gYWxsTG9jYXRpb25zUmVzdWx0Lml0ZW1zO1xuXG4gICAgLy8gR3JvdXAgbG9jYXRpb25zIGJ5IGNvdW50cnksIHByb3ZpbmNlLCBhbmQgY2l0eVxuICAgIGNvbnN0IGxvY2F0aW9uR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIEFYTUxvY2F0aW9uTWFuYWdlbWVudExvY2F0aW9uRW50aXR5TW9kZWxbXT4+PigpO1xuXG4gICAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBhbGxMb2NhdGlvbnMpIHtcbiAgICAgIC8vIEdldCBnZW9ncmFwaGljIGluZm9ybWF0aW9uXG4gICAgICBjb25zdCBjb3VudHJ5SWQgPSAobG9jYXRpb24gYXMgYW55KS5jb3VudHJ5SWQgfHwgJ3Vua25vd24nO1xuICAgICAgY29uc3QgY291bnRyeVRpdGxlID0gKGxvY2F0aW9uIGFzIGFueSkuY291bnRyeT8udGl0bGUgfHwgJ1Vua25vd24gQ291bnRyeSc7XG5cbiAgICAgIGNvbnN0IHByb3ZpbmNlSWQgPSAobG9jYXRpb24gYXMgYW55KS5zdGF0ZUlkIHx8ICd1bmtub3duJztcbiAgICAgIGNvbnN0IHByb3ZpbmNlVGl0bGUgPSAobG9jYXRpb24gYXMgYW55KS5zdGF0ZT8udGl0bGUgfHwgJ1Vua25vd24gUHJvdmluY2UnO1xuXG4gICAgICBjb25zdCBjaXR5SWQgPSAobG9jYXRpb24gYXMgYW55KS5jaXR5SWQgfHwgJ3Vua25vd24nO1xuICAgICAgY29uc3QgY2l0eVRpdGxlID0gKGxvY2F0aW9uIGFzIGFueSkuY2l0eT8udGl0bGUgfHwgJ1Vua25vd24gQ2l0eSc7XG5cbiAgICAgIC8vIENyZWF0ZSBuZXN0ZWQgbWFwIHN0cnVjdHVyZTogY291bnRyeSAtPiBwcm92aW5jZSAtPiBjaXR5IC0+IGxvY2F0aW9uc1tdXG4gICAgICBpZiAoIWxvY2F0aW9uR3JvdXBzLmhhcyhjb3VudHJ5SWQpKSB7XG4gICAgICAgIGxvY2F0aW9uR3JvdXBzLnNldChjb3VudHJ5SWQsIG5ldyBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb3ZpbmNlTWFwID0gbG9jYXRpb25Hcm91cHMuZ2V0KGNvdW50cnlJZCkhO1xuICAgICAgaWYgKCFwcm92aW5jZU1hcC5oYXMocHJvdmluY2VJZCkpIHtcbiAgICAgICAgcHJvdmluY2VNYXAuc2V0KHByb3ZpbmNlSWQsIG5ldyBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNpdHlNYXAgPSBwcm92aW5jZU1hcC5nZXQocHJvdmluY2VJZCkhO1xuICAgICAgaWYgKCFjaXR5TWFwLmhhcyhjaXR5SWQpKSB7XG4gICAgICAgIGNpdHlNYXAuc2V0KGNpdHlJZCwgW10pO1xuICAgICAgfVxuXG4gICAgICBjaXR5TWFwLmdldChjaXR5SWQpIS5wdXNoKGxvY2F0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBBZ2dyZWdhdGUgZGF0YSBieSBjb3VudHJ5LCBwcm92aW5jZSwgYW5kIGNpdHlcbiAgICBjb25zdCBhZ2dyZWdhdGVkUmVzdWx0czogTG9jYXRpb25CeUNpdHlSZXN1bHRbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBbY291bnRyeUlkLCBwcm92aW5jZU1hcF0gb2YgbG9jYXRpb25Hcm91cHMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBmaXJzdExvY2F0aW9uID0gQXJyYXkuZnJvbShwcm92aW5jZU1hcC52YWx1ZXMoKSlbMF0/LnZhbHVlcygpLm5leHQoKS52YWx1ZT8uWzBdO1xuICAgICAgY29uc3QgY291bnRyeVRpdGxlID0gKGZpcnN0TG9jYXRpb24gYXMgYW55KT8uY291bnRyeT8udGl0bGUgfHwgJ1Vua25vd24gQ291bnRyeSc7XG5cbiAgICAgIGZvciAoY29uc3QgW3Byb3ZpbmNlSWQsIGNpdHlNYXBdIG9mIHByb3ZpbmNlTWFwLmVudHJpZXMoKSkge1xuICAgICAgICBjb25zdCBmaXJzdExvY2F0aW9uSW5Qcm92aW5jZSA9IGNpdHlNYXAudmFsdWVzKCkubmV4dCgpLnZhbHVlPy5bMF07XG4gICAgICAgIGNvbnN0IHByb3ZpbmNlVGl0bGUgPSAoZmlyc3RMb2NhdGlvbkluUHJvdmluY2UgYXMgYW55KT8uc3RhdGU/LnRpdGxlIHx8ICdVbmtub3duIFByb3ZpbmNlJztcblxuICAgICAgICBmb3IgKGNvbnN0IFtjaXR5SWQsIGxvY2F0aW9uc10gb2YgY2l0eU1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICBjb25zdCBjaXR5VGl0bGUgPSAobG9jYXRpb25zWzBdIGFzIGFueSk/LmNpdHk/LnRpdGxlIHx8ICdVbmtub3duIENpdHknO1xuXG4gICAgICAgICAgYWdncmVnYXRlZFJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgICBjb3VudHJ5SWQsXG4gICAgICAgICAgICBjb3VudHJ5VGl0bGUsXG4gICAgICAgICAgICBwcm92aW5jZUlkLFxuICAgICAgICAgICAgcHJvdmluY2VUaXRsZSxcbiAgICAgICAgICAgIGNpdHlJZCxcbiAgICAgICAgICAgIGNpdHlUaXRsZSxcbiAgICAgICAgICAgIGxvY2F0aW9uQ291bnQ6IGxvY2F0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbExvY2F0aW9uczogbG9jYXRpb25zLmxlbmd0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFwcGx5IHNvcnRpbmcgaWYgcHJvdmlkZWRcbiAgICBpZiAoaW5wdXQuc29ydCAmJiBpbnB1dC5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFnZ3JlZ2F0ZWRSZXN1bHRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBzb3J0RmllbGQgb2YgaW5wdXQuc29ydCEpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IHNvcnRGaWVsZC5maWVsZCBhcyBrZXlvZiBMb2NhdGlvbkJ5Q2l0eVJlc3VsdDtcbiAgICAgICAgICBjb25zdCBhVmFsdWUgPSBhW2ZpZWxkXTtcbiAgICAgICAgICBjb25zdCBiVmFsdWUgPSBiW2ZpZWxkXTtcbiAgICAgICAgICBjb25zdCBkaXIgPSBzb3J0RmllbGQuZGlyID09PSAnYXNjJyA/IDEgOiAtMTtcblxuICAgICAgICAgIC8vIEhhbmRsZSB1bmRlZmluZWQgdmFsdWVzXG4gICAgICAgICAgaWYgKGFWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIGJWYWx1ZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcbiAgICAgICAgICBpZiAoYVZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiAxICogZGlyO1xuICAgICAgICAgIGlmIChiVmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIC0xICogZGlyO1xuXG4gICAgICAgICAgaWYgKGFWYWx1ZSA8IGJWYWx1ZSkgcmV0dXJuIC0xICogZGlyO1xuICAgICAgICAgIGlmIChhVmFsdWUgPiBiVmFsdWUpIHJldHVybiAxICogZGlyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgcGFnaW5hdGlvblxuICAgIGNvbnN0IHNraXAgPSBpbnB1dC5za2lwIHx8IDA7XG4gICAgY29uc3QgdGFrZSA9IGlucHV0LnRha2UgfHwgMTA7XG4gICAgY29uc3QgdG90YWwgPSBhZ2dyZWdhdGVkUmVzdWx0cy5sZW5ndGg7XG4gICAgY29uc3QgaXRlbXMgPSBhZ2dyZWdhdGVkUmVzdWx0cy5zbGljZShza2lwLCBza2lwICsgdGFrZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXMsXG4gICAgICB0b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0gICBGaWx0ZXIgRXh0cmFjdGlvbiAgIC0tLS1cblxuICAvKipcbiAgICogRXh0cmFjdCBsb2NhdGlvbi1zcGVjaWZpYyBmaWx0ZXJzIGZyb20gQVhQRmlsdGVyQ2xhdXNlIGZvcm1hdFxuICAgKiBNYXBzIHJlcG9ydCBwYXJhbWV0ZXIgcGF0aHMgdG8gbG9jYXRpb24gZW50aXR5IGZpZWxkIG5hbWVzXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RMb2NhdGlvbkZpbHRlcnMocGFyYW1ldGVyczogYW55KTogR2V0TG9jYXRpb25MaXN0UXVlcnlJbnB1dFsnZmlsdGVycyddIHtcbiAgICBjb25zdCBmaWx0ZXJzOiBHZXRMb2NhdGlvbkxpc3RRdWVyeUlucHV0WydmaWx0ZXJzJ10gPSBbXTtcbiAgICBjb25zdCBwYXJhbXNBbnkgPSBwYXJhbWV0ZXJzIGFzIGFueTtcblxuICAgIGlmICghcGFyYW1zQW55Py5maWx0ZXJzIHx8ICFBcnJheS5pc0FycmF5KHBhcmFtc0FueS5maWx0ZXJzKSkge1xuICAgICAgY29uc29sZS5sb2coJ+KaoO+4jyBbZXh0cmFjdExvY2F0aW9uRmlsdGVyc10gTm8gZmlsdGVycyBhcnJheSBmb3VuZCBvciBub3QgYW4gYXJyYXknKTtcbiAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgIH1cblxuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgcGFyYW1zQW55LmZpbHRlcnMpIHtcbiAgICAgIGlmICghZmlsdGVyPy5maWVsZCB8fCBmaWx0ZXI/LnZhbHVlID09PSB1bmRlZmluZWQgfHwgZmlsdGVyPy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmllbGQgPSBmaWx0ZXIuZmllbGQ7XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlci52YWx1ZTtcbiAgICAgIGNvbnN0IG9wZXJhdG9yID0gZmlsdGVyLm9wZXJhdG9yIHx8IHsgdHlwZTogJ2VxdWFsJyB9O1xuXG4gICAgICAvLyBIYW5kbGUgbG9jYXRpb24tc3BlY2lmaWMgZmllbGQgbWFwcGluZ3NcbiAgICAgIGlmIChmaWVsZCA9PT0gJ2NvdW50cnknKSB7XG4gICAgICAgIC8vIENvdW50cnkgZmlsdGVyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiAnY291bnRyeUlkJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdpbicgfSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDogJ2NvdW50cnlJZCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdwcm92aW5jZScpIHtcbiAgICAgICAgLy8gUHJvdmluY2UvU3RhdGUgZmlsdGVyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiAnc3RhdGVJZCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnaW4nIH0sXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6ICdzdGF0ZUlkJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdlcXVhbCcgfSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zb2xlLmxvZygn4pyFIFtleHRyYWN0TG9jYXRpb25GaWx0ZXJzXSBBZGRlZCBwcm92aW5jZSBmaWx0ZXIgKGVxdWFsKTonLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdjaXR5Jykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDogJ2NpdHlJZCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnaW4nIH0sXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6ICdjaXR5SWQnLFxuICAgICAgICAgICAgb3BlcmF0b3I6IHsgdHlwZTogJ2VxdWFsJyB9LFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEaXJlY3QgZmllbGQgbWFwcGluZ1xuICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgICAgICBvcGVyYXRvcjogb3BlcmF0b3IsXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIl19"],"names":["LocationRootConfig"],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
4
|
+
import { RootConfig } from '@acorex/modules/product-catalog';
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
class GetProductChartDataQuery {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.entityService = inject(AXPEntityService);
|
|
10
|
+
this.productService = this.entityService.withEntity(`${RootConfig.module.name}.${RootConfig.entities.product.name}`).data();
|
|
11
|
+
}
|
|
12
|
+
async fetch(input) {
|
|
13
|
+
// Extract product-specific filters from AXPFilterClause format
|
|
14
|
+
const extractedFilters = this.extractProductFilters(input.filters);
|
|
15
|
+
// Separate custom filters from entity filters
|
|
16
|
+
const entityFilters = [];
|
|
17
|
+
let priceRangeFilter;
|
|
18
|
+
if (extractedFilters && extractedFilters.length > 0) {
|
|
19
|
+
for (const filter of extractedFilters) {
|
|
20
|
+
if (filter.field === 'priceRange') {
|
|
21
|
+
priceRangeFilter = filter.value;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
entityFilters.push(filter);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Get all products from storage with entity filters (no pagination for charts)
|
|
29
|
+
const allProductsResult = await this.productService.query({
|
|
30
|
+
skip: 0,
|
|
31
|
+
take: 10000, // Get all products for aggregation
|
|
32
|
+
filter: entityFilters.length > 0
|
|
33
|
+
? {
|
|
34
|
+
logic: input.logic || 'and',
|
|
35
|
+
filters: entityFilters,
|
|
36
|
+
}
|
|
37
|
+
: undefined,
|
|
38
|
+
});
|
|
39
|
+
let allProducts = allProductsResult.items;
|
|
40
|
+
// Apply custom price range filter after fetching
|
|
41
|
+
if (priceRangeFilter && priceRangeFilter !== 'all') {
|
|
42
|
+
allProducts = this.applyPriceRangeFilter(allProducts, priceRangeFilter);
|
|
43
|
+
}
|
|
44
|
+
// Group products by brand
|
|
45
|
+
const brandGroups = new Map();
|
|
46
|
+
for (const product of allProducts) {
|
|
47
|
+
const brandKey = product.brand?.title || product.brandId || 'Unknown';
|
|
48
|
+
if (!brandGroups.has(brandKey)) {
|
|
49
|
+
brandGroups.set(brandKey, []);
|
|
50
|
+
}
|
|
51
|
+
brandGroups.get(brandKey).push(product);
|
|
52
|
+
}
|
|
53
|
+
// Aggregate data by brand for chart
|
|
54
|
+
const chartResults = [];
|
|
55
|
+
for (const [brandName, products] of brandGroups.entries()) {
|
|
56
|
+
chartResults.push({
|
|
57
|
+
brand: brandName,
|
|
58
|
+
productCount: products.length,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
items: chartResults,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//#region ---- Filter Extraction ----
|
|
66
|
+
/**
|
|
67
|
+
* Extract product-specific filters from AXPFilterClause format
|
|
68
|
+
* Maps report parameter paths to product entity field names
|
|
69
|
+
*/
|
|
70
|
+
extractProductFilters(parameters) {
|
|
71
|
+
const filters = [];
|
|
72
|
+
const paramsAny = parameters;
|
|
73
|
+
if (!paramsAny?.filters || !Array.isArray(paramsAny.filters)) {
|
|
74
|
+
return filters;
|
|
75
|
+
}
|
|
76
|
+
for (const filter of paramsAny.filters) {
|
|
77
|
+
if (!filter?.field || filter?.value === undefined || filter?.value === null) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const field = filter.field;
|
|
81
|
+
const value = filter.value;
|
|
82
|
+
const operator = filter.operator || { type: 'equal' };
|
|
83
|
+
// Handle product-specific field mappings
|
|
84
|
+
if (field === 'brand') {
|
|
85
|
+
// Brand filter - can be array of IDs or single ID
|
|
86
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
87
|
+
filters.push({
|
|
88
|
+
field: 'brandId',
|
|
89
|
+
operator: { type: 'in' },
|
|
90
|
+
value: value,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
else if (value) {
|
|
94
|
+
filters.push({
|
|
95
|
+
field: 'brandId',
|
|
96
|
+
operator: { type: 'equal' },
|
|
97
|
+
value: value,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else if (field === 'category') {
|
|
102
|
+
// Category filter - can be array of IDs or single ID
|
|
103
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
104
|
+
filters.push({
|
|
105
|
+
field: 'categoryIds',
|
|
106
|
+
operator: { type: 'contains' },
|
|
107
|
+
value: value[0], // Use first category for contains check
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (value) {
|
|
111
|
+
filters.push({
|
|
112
|
+
field: 'categoryIds',
|
|
113
|
+
operator: { type: 'contains' },
|
|
114
|
+
value: value,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else if (field === 'status') {
|
|
119
|
+
// Status filter - skip 'all' value
|
|
120
|
+
if (value && value !== 'all') {
|
|
121
|
+
filters.push({
|
|
122
|
+
field: 'statusId',
|
|
123
|
+
operator: { type: 'equal' },
|
|
124
|
+
value: value,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else if (field === 'priceRange') {
|
|
129
|
+
// Price range filter - custom logic handled in query
|
|
130
|
+
filters.push({
|
|
131
|
+
field: 'priceRange',
|
|
132
|
+
operator: { type: 'equal' },
|
|
133
|
+
value: value,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else if (field === 'startDate' || field === 'endDate') {
|
|
137
|
+
// Date filters - can be handled if needed
|
|
138
|
+
// For now, skip as they might not be directly on product entity
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Direct field mapping
|
|
142
|
+
filters.push({
|
|
143
|
+
field: field,
|
|
144
|
+
operator: operator,
|
|
145
|
+
value: value,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return filters;
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region ---- Custom Filter Handlers ----
|
|
153
|
+
/**
|
|
154
|
+
* Apply custom price range filter to products
|
|
155
|
+
*/
|
|
156
|
+
applyPriceRangeFilter(products, priceRange) {
|
|
157
|
+
return products.filter((product) => {
|
|
158
|
+
const price = product.basePrice || 0;
|
|
159
|
+
switch (priceRange) {
|
|
160
|
+
case 'under-50':
|
|
161
|
+
return price < 50;
|
|
162
|
+
case '50-100':
|
|
163
|
+
return price >= 50 && price < 100;
|
|
164
|
+
case '100-500':
|
|
165
|
+
return price >= 100 && price < 500;
|
|
166
|
+
case '500-1000':
|
|
167
|
+
return price >= 500 && price < 1000;
|
|
168
|
+
case 'over-1000':
|
|
169
|
+
return price >= 1000;
|
|
170
|
+
default:
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GetProductChartDataQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
176
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GetProductChartDataQuery, providedIn: 'root' }); }
|
|
177
|
+
}
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GetProductChartDataQuery, decorators: [{
|
|
179
|
+
type: Injectable,
|
|
180
|
+
args: [{
|
|
181
|
+
providedIn: 'root',
|
|
182
|
+
}]
|
|
183
|
+
}] });
|
|
184
|
+
|
|
185
|
+
export { GetProductChartDataQuery };
|
|
186
|
+
//# sourceMappingURL=acorex-connectivity-mock-get-product-chart-data.query-C7v7D4ep.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-get-product-chart-data.query-C7v7D4ep.mjs","sources":["../tmp-esm2022/mock/lib/product-catalog/reports/get-product-chart-data.query.js"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '@acorex/modules/product-catalog';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class GetProductChartDataQuery {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.productService = this.entityService.withEntity(`${RootConfig.module.name}.${RootConfig.entities.product.name}`).data();\n }\n async fetch(input) {\n // Extract product-specific filters from AXPFilterClause format\n const extractedFilters = this.extractProductFilters(input.filters);\n // Separate custom filters from entity filters\n const entityFilters = [];\n let priceRangeFilter;\n if (extractedFilters && extractedFilters.length > 0) {\n for (const filter of extractedFilters) {\n if (filter.field === 'priceRange') {\n priceRangeFilter = filter.value;\n }\n else {\n entityFilters.push(filter);\n }\n }\n }\n // Get all products from storage with entity filters (no pagination for charts)\n const allProductsResult = await this.productService.query({\n skip: 0,\n take: 10000, // Get all products for aggregation\n filter: entityFilters.length > 0\n ? {\n logic: input.logic || 'and',\n filters: entityFilters,\n }\n : undefined,\n });\n let allProducts = allProductsResult.items;\n // Apply custom price range filter after fetching\n if (priceRangeFilter && priceRangeFilter !== 'all') {\n allProducts = this.applyPriceRangeFilter(allProducts, priceRangeFilter);\n }\n // Group products by brand\n const brandGroups = new Map();\n for (const product of allProducts) {\n const brandKey = product.brand?.title || product.brandId || 'Unknown';\n if (!brandGroups.has(brandKey)) {\n brandGroups.set(brandKey, []);\n }\n brandGroups.get(brandKey).push(product);\n }\n // Aggregate data by brand for chart\n const chartResults = [];\n for (const [brandName, products] of brandGroups.entries()) {\n chartResults.push({\n brand: brandName,\n productCount: products.length,\n });\n }\n return {\n items: chartResults,\n };\n }\n //#region ---- Filter Extraction ----\n /**\n * Extract product-specific filters from AXPFilterClause format\n * Maps report parameter paths to product entity field names\n */\n extractProductFilters(parameters) {\n const filters = [];\n const paramsAny = parameters;\n if (!paramsAny?.filters || !Array.isArray(paramsAny.filters)) {\n return filters;\n }\n for (const filter of paramsAny.filters) {\n if (!filter?.field || filter?.value === undefined || filter?.value === null) {\n continue;\n }\n const field = filter.field;\n const value = filter.value;\n const operator = filter.operator || { type: 'equal' };\n // Handle product-specific field mappings\n if (field === 'brand') {\n // Brand filter - can be array of IDs or single ID\n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n field: 'brandId',\n operator: { type: 'in' },\n value: value,\n });\n }\n else if (value) {\n filters.push({\n field: 'brandId',\n operator: { type: 'equal' },\n value: value,\n });\n }\n }\n else if (field === 'category') {\n // Category filter - can be array of IDs or single ID\n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n field: 'categoryIds',\n operator: { type: 'contains' },\n value: value[0], // Use first category for contains check\n });\n }\n else if (value) {\n filters.push({\n field: 'categoryIds',\n operator: { type: 'contains' },\n value: value,\n });\n }\n }\n else if (field === 'status') {\n // Status filter - skip 'all' value\n if (value && value !== 'all') {\n filters.push({\n field: 'statusId',\n operator: { type: 'equal' },\n value: value,\n });\n }\n }\n else if (field === 'priceRange') {\n // Price range filter - custom logic handled in query\n filters.push({\n field: 'priceRange',\n operator: { type: 'equal' },\n value: value,\n });\n }\n else if (field === 'startDate' || field === 'endDate') {\n // Date filters - can be handled if needed\n // For now, skip as they might not be directly on product entity\n }\n else {\n // Direct field mapping\n filters.push({\n field: field,\n operator: operator,\n value: value,\n });\n }\n }\n return filters;\n }\n //#endregion\n //#region ---- Custom Filter Handlers ----\n /**\n * Apply custom price range filter to products\n */\n applyPriceRangeFilter(products, priceRange) {\n return products.filter((product) => {\n const price = product.basePrice || 0;\n switch (priceRange) {\n case 'under-50':\n return price < 50;\n case '50-100':\n return price >= 50 && price < 100;\n case '100-500':\n return price >= 100 && price < 500;\n case '500-1000':\n return price >= 500 && price < 1000;\n case 'over-1000':\n return price >= 1000;\n default:\n return true;\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: GetProductChartDataQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: GetProductChartDataQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: GetProductChartDataQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2R1Y3QtY2hhcnQtZGF0YS5xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29ubmVjdGl2aXR5L21vY2svc3JjL2xpYi9wcm9kdWN0LWNhdGFsb2cvcmVwb3J0cy9nZXQtcHJvZHVjdC1jaGFydC1kYXRhLnF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFzQjdELFlBQVk7QUFLWixNQUFNLE9BQU8sd0JBQXdCO0lBSHJDO1FBSW1CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUErQyxDQUFDO0tBMEw3SztJQXhMQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQTBDO1FBQ3BELCtEQUErRDtRQUMvRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkUsOENBQThDO1FBQzlDLE1BQU0sYUFBYSxHQUE2QyxFQUFFLENBQUM7UUFDbkUsSUFBSSxnQkFBb0MsQ0FBQztRQUV6QyxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxLQUFLLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3RDLElBQUksTUFBTSxD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QUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO1lBRXJDLFFBQVEsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLEtBQUssVUFBVTtvQkFDYixPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssUUFBUTtvQkFDWCxPQUFPLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDcEMsS0FBSyxTQUFTO29CQUNaLE9BQU8sS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUNyQyxLQUFLLFVBQVU7b0JBQ2IsT0FBTyxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ3RDLEtBQUssV0FBVztvQkFDZCxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7Z0JBQ3ZCO29CQUNFLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBekxVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhNUHJvZHVjdENhdGFsb2dQcm9kdWN0RW50aXR5TW9kZWwgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvcHJvZHVjdC1jYXRhbG9nJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvcHJvZHVjdC1jYXRhbG9nJztcblxuLy8jcmVnaW9uIC0tLS0gICBRdWVyeSBJbnB1dC9PdXRwdXQgVHlwZXMgICAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0UHJvZHVjdENoYXJ0RGF0YVF1ZXJ5SW5wdXQge1xuICBmaWx0ZXJzPzogQXJyYXk8e1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgb3BlcmF0b3I6IHsgdHlwZTogc3RyaW5nIH07XG4gICAgdmFsdWU6IGFueTtcbiAgfT47XG4gIGxvZ2ljPzogJ2FuZCcgfCAnb3InO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RDaGFydERhdGFSZXN1bHQge1xuICBicmFuZDogc3RyaW5nO1xuICBwcm9kdWN0Q291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQcm9kdWN0Q2hhcnREYXRhUXVlcnlSZXN1bHQge1xuICBpdGVtczogUHJvZHVjdENoYXJ0RGF0YVJlc3VsdFtdO1xufVxuXG4vLyNlbmRyZWdpb25cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdldFByb2R1Y3RDaGFydERhdGFRdWVyeSBpbXBsZW1lbnRzIEFYUFF1ZXJ5PEdldFByb2R1Y3RDaGFydERhdGFRdWVyeUlucHV0LCBHZXRQcm9kdWN0Q2hhcnREYXRhUXVlcnlSZXN1bHQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVNlcnZpY2UpO1xuICBwcml2YXRlIHByb2R1Y3RTZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlLndpdGhFbnRpdHkoYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnByb2R1Y3QubmFtZX1gKS5kYXRhPHN0cmluZywgQVhNUHJvZHVjdENhdGFsb2dQcm9kdWN0RW50aXR5TW9kZWw+KCk7XG5cbiAgYXN5bmMgZmV0Y2goaW5wdXQ6IEdldFByb2R1Y3RDaGFydERhdGFRdWVyeUlucHV0IHwgYW55KTogUHJvbWlzZTxHZXRQcm9kdWN0Q2hhcnREYXRhUXVlcnlSZXN1bHQ+IHtcbiAgICAvLyBFeHRyYWN0IHByb2R1Y3Qtc3BlY2lmaWMgZmlsdGVycyBmcm9tIEFYUEZpbHRlckNsYXVzZSBmb3JtYXRcbiAgICBjb25zdCBleHRyYWN0ZWRGaWx0ZXJzID0gdGhpcy5leHRyYWN0UHJvZHVjdEZpbHRlcnMoaW5wdXQuZmlsdGVycyk7XG5cbiAgICAvLyBTZXBhcmF0ZSBjdXN0b20gZmlsdGVycyBmcm9tIGVudGl0eSBmaWx0ZXJzXG4gICAgY29uc3QgZW50aXR5RmlsdGVyczogR2V0UHJvZHVjdENoYXJ0RGF0YVF1ZXJ5SW5wdXRbJ2ZpbHRlcnMnXSA9IFtdO1xuICAgIGxldCBwcmljZVJhbmdlRmlsdGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZXh0cmFjdGVkRmlsdGVycyAmJiBleHRyYWN0ZWRGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGV4dHJhY3RlZEZpbHRlcnMpIHtcbiAgICAgICAgaWYgKGZpbHRlci5maWVsZCA9PT0gJ3ByaWNlUmFuZ2UnKSB7XG4gICAgICAgICAgcHJpY2VSYW5nZUZpbHRlciA9IGZpbHRlci52YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbnRpdHlGaWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdldCBhbGwgcHJvZHVjdHMgZnJvbSBzdG9yYWdlIHdpdGggZW50aXR5IGZpbHRlcnMgKG5vIHBhZ2luYXRpb24gZm9yIGNoYXJ0cylcbiAgICBjb25zdCBhbGxQcm9kdWN0c1Jlc3VsdCA9IGF3YWl0IHRoaXMucHJvZHVjdFNlcnZpY2UucXVlcnkoe1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAwLCAvLyBHZXQgYWxsIHByb2R1Y3RzIGZvciBhZ2dyZWdhdGlvblxuICAgICAgZmlsdGVyOlxuICAgICAgICBlbnRpdHlGaWx0ZXJzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/ICh7XG4gICAgICAgICAgICBsb2dpYzogaW5wdXQubG9naWMgfHwgJ2FuZCcsXG4gICAgICAgICAgICBmaWx0ZXJzOiBlbnRpdHlGaWx0ZXJzLFxuICAgICAgICAgIH0gYXMgYW55KVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgbGV0IGFsbFByb2R1Y3RzID0gYWxsUHJvZHVjdHNSZXN1bHQuaXRlbXM7XG5cbiAgICAvLyBBcHBseSBjdXN0b20gcHJpY2UgcmFuZ2UgZmlsdGVyIGFmdGVyIGZldGNoaW5nXG4gICAgaWYgKHByaWNlUmFuZ2VGaWx0ZXIgJiYgcHJpY2VSYW5nZUZpbHRlciAhPT0gJ2FsbCcpIHtcbiAgICAgIGFsbFByb2R1Y3RzID0gdGhpcy5hcHBseVByaWNlUmFuZ2VGaWx0ZXIoYWxsUHJvZHVjdHMsIHByaWNlUmFuZ2VGaWx0ZXIpO1xuICAgIH1cblxuICAgIC8vIEdyb3VwIHByb2R1Y3RzIGJ5IGJyYW5kXG4gICAgY29uc3QgYnJhbmRHcm91cHMgPSBuZXcgTWFwPHN0cmluZywgQVhNUHJvZHVjdENhdGFsb2dQcm9kdWN0RW50aXR5TW9kZWxbXT4oKTtcblxuICAgIGZvciAoY29uc3QgcHJvZHVjdCBvZiBhbGxQcm9kdWN0cykge1xuICAgICAgY29uc3QgYnJhbmRLZXkgPSBwcm9kdWN0LmJyYW5kPy50aXRsZSB8fCBwcm9kdWN0LmJyYW5kSWQgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWJyYW5kR3JvdXBzLmhhcyhicmFuZEtleSkpIHtcbiAgICAgICAgYnJhbmRHcm91cHMuc2V0KGJyYW5kS2V5LCBbXSk7XG4gICAgICB9XG5cbiAgICAgIGJyYW5kR3JvdXBzLmdldChicmFuZEtleSkhLnB1c2gocHJvZHVjdCk7XG4gICAgfVxuXG4gICAgLy8gQWdncmVnYXRlIGRhdGEgYnkgYnJhbmQgZm9yIGNoYXJ0XG4gICAgY29uc3QgY2hhcnRSZXN1bHRzOiBQcm9kdWN0Q2hhcnREYXRhUmVzdWx0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgW2JyYW5kTmFtZSwgcHJvZHVjdHNdIG9mIGJyYW5kR3JvdXBzLmVudHJpZXMoKSkge1xuICAgICAgY2hhcnRSZXN1bHRzLnB1c2goe1xuICAgICAgICBicmFuZDogYnJhbmROYW1lLFxuICAgICAgICBwcm9kdWN0Q291bnQ6IHByb2R1Y3RzLmxlbmd0aCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogY2hhcnRSZXN1bHRzLFxuICAgIH07XG4gIH1cblxuICAvLyNyZWdpb24gLS0tLSAgIEZpbHRlciBFeHRyYWN0aW9uICAgLS0tLVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHByb2R1Y3Qtc3BlY2lmaWMgZmlsdGVycyBmcm9tIEFYUEZpbHRlckNsYXVzZSBmb3JtYXRcbiAgICogTWFwcyByZXBvcnQgcGFyYW1ldGVyIHBhdGhzIHRvIHByb2R1Y3QgZW50aXR5IGZpZWxkIG5hbWVzXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RQcm9kdWN0RmlsdGVycyhwYXJhbWV0ZXJzOiBhbnkpOiBHZXRQcm9kdWN0Q2hhcnREYXRhUXVlcnlJbnB1dFsnZmlsdGVycyddIHtcbiAgICBjb25zdCBmaWx0ZXJzOiBHZXRQcm9kdWN0Q2hhcnREYXRhUXVlcnlJbnB1dFsnZmlsdGVycyddID0gW107XG4gICAgY29uc3QgcGFyYW1zQW55ID0gcGFyYW1ldGVycyBhcyBhbnk7XG5cbiAgICBpZiAoIXBhcmFtc0FueT8uZmlsdGVycyB8fCAhQXJyYXkuaXNBcnJheShwYXJhbXNBbnkuZmlsdGVycykpIHtcbiAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIHBhcmFtc0FueS5maWx0ZXJzKSB7XG4gICAgICBpZiAoIWZpbHRlcj8uZmllbGQgfHwgZmlsdGVyPy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpbHRlcj8udmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpZWxkID0gZmlsdGVyLmZpZWxkO1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXIudmFsdWU7XG4gICAgICBjb25zdCBvcGVyYXRvciA9IGZpbHRlci5vcGVyYXRvciB8fCB7IHR5cGU6ICdlcXVhbCcgfTtcblxuICAgICAgLy8gSGFuZGxlIHByb2R1Y3Qtc3BlY2lmaWMgZmllbGQgbWFwcGluZ3NcbiAgICAgIGlmIChmaWVsZCA9PT0gJ2JyYW5kJykge1xuICAgICAgICAvLyBCcmFuZCBmaWx0ZXIgLSBjYW4gYmUgYXJyYXkgb2YgSURzIG9yIHNpbmdsZSBJRFxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDogJ2JyYW5kSWQnLFxuICAgICAgICAgICAgb3BlcmF0b3I6IHsgdHlwZTogJ2luJyB9LFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiAnYnJhbmRJZCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdjYXRlZ29yeScpIHtcbiAgICAgICAgLy8gQ2F0ZWdvcnkgZmlsdGVyIC0gY2FuIGJlIGFycmF5IG9mIElEcyBvciBzaW5nbGUgSURcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6ICdjYXRlZ29yeUlkcycsXG4gICAgICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnY29udGFpbnMnIH0sXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWVbMF0sIC8vIFVzZSBmaXJzdCBjYXRlZ29yeSBmb3IgY29udGFpbnMgY2hlY2tcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDogJ2NhdGVnb3J5SWRzJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgLy8gU3RhdHVzIGZpbHRlciAtIHNraXAgJ2FsbCcgdmFsdWVcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnYWxsJykge1xuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDogJ3N0YXR1c0lkJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdlcXVhbCcgfSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChmaWVsZCA9PT0gJ3ByaWNlUmFuZ2UnKSB7XG4gICAgICAgIC8vIFByaWNlIHJhbmdlIGZpbHRlciAtIGN1c3RvbSBsb2dpYyBoYW5kbGVkIGluIHF1ZXJ5XG4gICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6ICdwcmljZVJhbmdlJyxcbiAgICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZmllbGQgPT09ICdzdGFydERhdGUnIHx8IGZpZWxkID09PSAnZW5kRGF0ZScpIHtcbiAgICAgICAgLy8gRGF0ZSBmaWx0ZXJzIC0gY2FuIGJlIGhhbmRsZWQgaWYgbmVlZGVkXG4gICAgICAgIC8vIEZvciBub3csIHNraXAgYXMgdGhleSBtaWdodCBub3QgYmUgZGlyZWN0bHkgb24gcHJvZHVjdCBlbnRpdHlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERpcmVjdCBmaWVsZCBtYXBwaW5nXG4gICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICAgIG9wZXJhdG9yOiBvcGVyYXRvcixcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDdXN0b20gRmlsdGVyIEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBBcHBseSBjdXN0b20gcHJpY2UgcmFuZ2UgZmlsdGVyIHRvIHByb2R1Y3RzXG4gICAqL1xuICBwcml2YXRlIGFwcGx5UHJpY2VSYW5nZUZpbHRlcihcbiAgICBwcm9kdWN0czogQVhNUHJvZHVjdENhdGFsb2dQcm9kdWN0RW50aXR5TW9kZWxbXSxcbiAgICBwcmljZVJhbmdlOiBzdHJpbmdcbiAgKTogQVhNUHJvZHVjdENhdGFsb2dQcm9kdWN0RW50aXR5TW9kZWxbXSB7XG4gICAgcmV0dXJuIHByb2R1Y3RzLmZpbHRlcigocHJvZHVjdCkgPT4ge1xuICAgICAgY29uc3QgcHJpY2UgPSBwcm9kdWN0LmJhc2VQcmljZSB8fCAwO1xuXG4gICAgICBzd2l0Y2ggKHByaWNlUmFuZ2UpIHtcbiAgICAgICAgY2FzZSAndW5kZXItNTAnOlxuICAgICAgICAgIHJldHVybiBwcmljZSA8IDUwO1xuICAgICAgICBjYXNlICc1MC0xMDAnOlxuICAgICAgICAgIHJldHVybiBwcmljZSA+PSA1MCAmJiBwcmljZSA8IDEwMDtcbiAgICAgICAgY2FzZSAnMTAwLTUwMCc6XG4gICAgICAgICAgcmV0dXJuIHByaWNlID49IDEwMCAmJiBwcmljZSA8IDUwMDtcbiAgICAgICAgY2FzZSAnNTAwLTEwMDAnOlxuICAgICAgICAgIHJldHVybiBwcmljZSA+PSA1MDAgJiYgcHJpY2UgPCAxMDAwO1xuICAgICAgICBjYXNlICdvdmVyLTEwMDAnOlxuICAgICAgICAgIHJldHVybiBwcmljZSA+PSAxMDAwO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbiJdfQ=="],"names":[],"mappings":"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"}
|