bways-report 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +150 -51
  2. package/esm2022/lib/core/errors/reporting-errors.mjs +2 -2
  3. package/esm2022/lib/core/index.mjs +3 -1
  4. package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
  5. package/esm2022/lib/core/models/report-definition.model.mjs +1 -1
  6. package/esm2022/lib/core/models/report-grid.model.mjs +1 -1
  7. package/esm2022/lib/core/services/report-session-context.service.mjs +50 -5
  8. package/esm2022/lib/core/utils/data-normalization.util.mjs +56 -0
  9. package/esm2022/lib/core/utils/report-parameter.util.mjs +180 -0
  10. package/esm2022/lib/data-access/adapters/http-datasource.adapter.mjs +82 -0
  11. package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +34 -9
  12. package/esm2022/lib/data-access/adapters/http-masterdata.adapter.mjs +38 -0
  13. package/esm2022/lib/data-access/adapters/http-persistence.adapter.mjs +217 -0
  14. package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +3 -1
  15. package/esm2022/lib/data-access/adapters/index.mjs +8 -3
  16. package/esm2022/lib/data-access/adapters/local-storage-persistence.adapter.mjs +167 -0
  17. package/esm2022/lib/data-access/adapters/mock-datasource.adapter.mjs +60 -0
  18. package/esm2022/lib/data-access/contracts/api-dtos.mjs +6 -0
  19. package/esm2022/lib/data-access/contracts/index.mjs +2 -1
  20. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +24 -3
  21. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +572 -102
  22. package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +593 -0
  23. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +225 -25
  24. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +568 -12
  25. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +238 -11
  26. package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +191 -25
  27. package/esm2022/lib/features/designer/designer.component.mjs +245 -27
  28. package/esm2022/lib/features/designer/index.mjs +4 -1
  29. package/esm2022/lib/features/designer/rpt-report-designer.component.mjs +102 -0
  30. package/esm2022/lib/features/designer/services/designer-state.service.mjs +18 -10
  31. package/esm2022/lib/features/designer/services/report-template.service.mjs +318 -0
  32. package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +41 -9
  33. package/esm2022/lib/features/export/index.mjs +2 -2
  34. package/esm2022/lib/features/export/models/export.models.mjs +1 -1
  35. package/esm2022/lib/features/export/services/report-export.service.mjs +420 -5
  36. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
  37. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +239 -33
  38. package/esm2022/lib/features/runtime/index.mjs +2 -1
  39. package/esm2022/lib/features/runtime/report-execution.service.mjs +56 -0
  40. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +423 -30
  41. package/esm2022/lib/features/runtime/report-runtime.component.mjs +349 -7
  42. package/esm2022/lib/features/runtime/rpt-report.component.mjs +545 -0
  43. package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +19 -8
  44. package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +18 -7
  45. package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +3 -3
  46. package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +3 -3
  47. package/esm2022/lib/primitives/components/date-range/rpt-date-range.component.mjs +346 -0
  48. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +728 -74
  49. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +30 -1
  50. package/esm2022/lib/primitives/components/index.mjs +2 -1
  51. package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +3 -3
  52. package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +3 -3
  53. package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +3 -3
  54. package/esm2022/lib/primitives/register-builtins.mjs +51 -2
  55. package/esm2022/lib/provide-reporting.mjs +145 -24
  56. package/fesm2022/bways-report.mjs +7797 -921
  57. package/fesm2022/bways-report.mjs.map +1 -1
  58. package/lib/core/index.d.ts +2 -0
  59. package/lib/core/models/report-datasource.model.d.ts +9 -0
  60. package/lib/core/models/report-definition.model.d.ts +2 -0
  61. package/lib/core/models/report-grid.model.d.ts +67 -1
  62. package/lib/core/services/report-session-context.service.d.ts +6 -1
  63. package/lib/core/utils/data-normalization.util.d.ts +15 -0
  64. package/lib/core/utils/report-parameter.util.d.ts +35 -0
  65. package/lib/data-access/adapters/http-datasource.adapter.d.ts +20 -0
  66. package/lib/data-access/adapters/http-lookup.adapter.d.ts +3 -0
  67. package/lib/data-access/adapters/http-masterdata.adapter.d.ts +13 -0
  68. package/lib/data-access/adapters/http-persistence.adapter.d.ts +27 -0
  69. package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +2 -0
  70. package/lib/data-access/adapters/index.d.ts +7 -2
  71. package/lib/data-access/adapters/local-storage-persistence.adapter.d.ts +19 -0
  72. package/lib/data-access/adapters/mock-datasource.adapter.d.ts +9 -0
  73. package/lib/data-access/contracts/api-dtos.d.ts +67 -0
  74. package/lib/data-access/contracts/index.d.ts +1 -0
  75. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +2 -1
  76. package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +22 -0
  77. package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +1 -1
  78. package/lib/features/designer/components/property-editor/property-editor-action.component.d.ts +33 -0
  79. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +13 -0
  80. package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +16 -2
  81. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +9 -1
  82. package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +12 -1
  83. package/lib/features/designer/designer.component.d.ts +11 -0
  84. package/lib/features/designer/index.d.ts +4 -0
  85. package/lib/features/designer/rpt-report-designer.component.d.ts +38 -0
  86. package/lib/features/designer/services/designer-state.service.d.ts +1 -1
  87. package/lib/features/designer/services/report-template.service.d.ts +32 -0
  88. package/lib/features/designer/utilities/canvas-layout.util.d.ts +4 -0
  89. package/lib/features/export/index.d.ts +2 -2
  90. package/lib/features/export/models/export.models.d.ts +23 -0
  91. package/lib/features/export/services/report-export.service.d.ts +31 -2
  92. package/lib/features/runtime/dynamic-renderer.component.d.ts +42 -2
  93. package/lib/features/runtime/index.d.ts +2 -0
  94. package/lib/features/runtime/report-execution.service.d.ts +16 -0
  95. package/lib/features/runtime/report-grid-bridge.component.d.ts +171 -6
  96. package/lib/features/runtime/report-runtime.component.d.ts +86 -1
  97. package/lib/features/runtime/rpt-report.component.d.ts +69 -0
  98. package/lib/primitives/components/button/rpt-button.component.d.ts +5 -2
  99. package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +1 -0
  100. package/lib/primitives/components/date-range/rpt-date-range.component.d.ts +43 -0
  101. package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +55 -7
  102. package/lib/primitives/components/index.d.ts +2 -0
  103. package/lib/provide-reporting.d.ts +79 -26
  104. package/package.json +2 -1
  105. package/schematics/collection.json +10 -0
  106. package/schematics/ng-add/index.js +45 -0
  107. package/schematics/ng-add/schema.json +17 -0
@@ -0,0 +1,217 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { of } from 'rxjs';
4
+ import { catchError } from 'rxjs/operators';
5
+ import { ReportPersistenceAdapter } from '../contracts/report-persistence.contract';
6
+ import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Built-in HTTP adapter for report definitions persistence.
10
+ * Connects to NestJS `/api/reporting/reports` endpoints.
11
+ * Includes in-memory mock fallback when the remote backend is unreachable.
12
+ */
13
+ export class HttpReportPersistenceAdapter extends ReportPersistenceAdapter {
14
+ http = inject(HttpClient, { optional: true });
15
+ config = inject(REPORTING_CONFIG, { optional: true });
16
+ mockStore = new Map();
17
+ constructor() {
18
+ super();
19
+ this.seedDefaultMockReports();
20
+ }
21
+ load(reportId) {
22
+ const baseUrl = this.config?.apiBaseUrl;
23
+ if (baseUrl && this.http) {
24
+ return this.http
25
+ .get(`${baseUrl}/reports/${encodeURIComponent(reportId)}`)
26
+ .pipe(catchError((err) => {
27
+ console.warn(`[HttpReportPersistenceAdapter] Failed to load remote report ${reportId}:`, err);
28
+ return of(this.getMockReport(reportId));
29
+ }));
30
+ }
31
+ return of(this.getMockReport(reportId));
32
+ }
33
+ save(report) {
34
+ const baseUrl = this.config?.apiBaseUrl;
35
+ if (baseUrl && this.http) {
36
+ const payload = {
37
+ id: report.id,
38
+ name: report.name,
39
+ description: report.description,
40
+ category: report.category,
41
+ version: report.version,
42
+ isPublished: report.isPublished ?? false,
43
+ definition: report,
44
+ };
45
+ return this.http
46
+ .post(`${baseUrl}/reports`, payload)
47
+ .pipe(catchError((err) => {
48
+ console.warn('[HttpReportPersistenceAdapter] Failed to save remote report, storing in mock:', err);
49
+ this.mockStore.set(report.id, { ...report, updatedAt: new Date().toISOString() });
50
+ return of(report);
51
+ }));
52
+ }
53
+ this.mockStore.set(report.id, { ...report, updatedAt: new Date().toISOString() });
54
+ return of(report);
55
+ }
56
+ list() {
57
+ const baseUrl = this.config?.apiBaseUrl;
58
+ if (baseUrl && this.http) {
59
+ return this.http.get(`${baseUrl}/reports`).pipe(catchError((err) => {
60
+ console.warn('[HttpReportPersistenceAdapter] Failed to list remote reports, returning mock list:', err);
61
+ return of(this.getMockSummaries());
62
+ }));
63
+ }
64
+ return of(this.getMockSummaries());
65
+ }
66
+ delete(reportId) {
67
+ const baseUrl = this.config?.apiBaseUrl;
68
+ if (baseUrl && this.http) {
69
+ return this.http
70
+ .delete(`${baseUrl}/reports/${encodeURIComponent(reportId)}`)
71
+ .pipe(catchError((err) => {
72
+ console.warn(`[HttpReportPersistenceAdapter] Failed to delete remote report ${reportId}:`, err);
73
+ this.mockStore.delete(reportId);
74
+ return of(undefined);
75
+ }));
76
+ }
77
+ this.mockStore.delete(reportId);
78
+ return of(undefined);
79
+ }
80
+ publish(reportId, version) {
81
+ const baseUrl = this.config?.apiBaseUrl;
82
+ if (baseUrl && this.http) {
83
+ return this.http
84
+ .post(`${baseUrl}/reports/${encodeURIComponent(reportId)}/publish`, { version })
85
+ .pipe(catchError((err) => {
86
+ console.warn(`[HttpReportPersistenceAdapter] Failed to publish remote report ${reportId}:`, err);
87
+ const r = this.mockStore.get(reportId);
88
+ if (r) {
89
+ r.isPublished = true;
90
+ r.version = version;
91
+ }
92
+ return of(undefined);
93
+ }));
94
+ }
95
+ const r = this.mockStore.get(reportId);
96
+ if (r) {
97
+ r.isPublished = true;
98
+ r.version = version;
99
+ }
100
+ return of(undefined);
101
+ }
102
+ getMockReport(id) {
103
+ const existing = this.mockStore.get(id);
104
+ if (existing)
105
+ return existing;
106
+ const fallback = {
107
+ id,
108
+ name: 'Default Report',
109
+ schemaVersion: 1,
110
+ version: 1,
111
+ isPublished: true,
112
+ components: [],
113
+ parameters: [],
114
+ dataSources: [],
115
+ layout: {
116
+ columns: 12,
117
+ gap: 16,
118
+ padding: 16,
119
+ },
120
+ };
121
+ this.mockStore.set(id, fallback);
122
+ return fallback;
123
+ }
124
+ getMockSummaries() {
125
+ return Array.from(this.mockStore.values()).map((r) => ({
126
+ id: r.id,
127
+ name: r.name,
128
+ description: r.description,
129
+ category: r.category,
130
+ version: r.version,
131
+ isPublished: Boolean(r.isPublished),
132
+ updatedAt: r.updatedAt,
133
+ }));
134
+ }
135
+ seedDefaultMockReports() {
136
+ const seed = {
137
+ id: 'sales-summary',
138
+ name: 'Sales Register & Analysis',
139
+ description: 'Comprehensive sales performance and invoice tracking',
140
+ category: 'Sales',
141
+ schemaVersion: 1,
142
+ version: 1,
143
+ isPublished: true,
144
+ parameters: [],
145
+ dataSources: [
146
+ {
147
+ id: 'ds-sales',
148
+ name: 'Sales Register SP',
149
+ endpoint: 'usp_GetSalesRegister',
150
+ method: 'STORED_PROCEDURE',
151
+ },
152
+ ],
153
+ components: [
154
+ {
155
+ id: 'cmp-from-date',
156
+ key: 'fromDate',
157
+ type: 'date',
158
+ properties: { label: 'From Date', placeholder: 'dd/MM/yyyy' },
159
+ validation: {},
160
+ },
161
+ {
162
+ id: 'cmp-to-date',
163
+ key: 'toDate',
164
+ type: 'date',
165
+ properties: { label: 'To Date', placeholder: 'dd/MM/yyyy' },
166
+ validation: {},
167
+ },
168
+ {
169
+ id: 'cmp-customer',
170
+ key: 'customerId',
171
+ type: 'dropdown',
172
+ properties: {
173
+ label: 'Customer',
174
+ sourceType: 'table',
175
+ entityName: 'Customers',
176
+ valueField: 'customerId',
177
+ displayField: 'customerName',
178
+ },
179
+ validation: {},
180
+ },
181
+ {
182
+ id: 'cmp-grid',
183
+ key: 'salesGrid',
184
+ type: 'grid',
185
+ properties: {
186
+ dataSourceId: 'ds-sales',
187
+ pageSize: 25,
188
+ enableSorting: true,
189
+ enableFiltering: true,
190
+ columns: [
191
+ { field: 'invoiceNo', headerText: 'Invoice #' },
192
+ { field: 'date', headerText: 'Date' },
193
+ { field: 'customer', headerText: 'Customer' },
194
+ { field: 'amount', headerText: 'Amount', format: 'currency' },
195
+ { field: 'status', headerText: 'Status' },
196
+ ],
197
+ },
198
+ validation: {},
199
+ },
200
+ ],
201
+ layout: {
202
+ columns: 12,
203
+ gap: 16,
204
+ padding: 16,
205
+ },
206
+ };
207
+ this.mockStore.set(seed.id, seed);
208
+ }
209
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportPersistenceAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
210
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportPersistenceAdapter });
211
+ }
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportPersistenceAdapter, decorators: [{
213
+ type: Injectable
214
+ }], ctorParameters: () => [] });
215
+ /** Convenience alias */
216
+ export const HttpPersistenceAdapter = HttpReportPersistenceAdapter;
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1wZXJzaXN0ZW5jZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvYWRhcHRlcnMvaHR0cC1wZXJzaXN0ZW5jZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUs1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFHNUU7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx3QkFBd0I7SUFDdkQsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdEQsU0FBUyxHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0lBRWpFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWdCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1FBQ3hDLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUks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LE9BQU8sRUFBRSxFQUFFO2FBQ1o7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQXpOVSw0QkFBNEI7NEdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7QUE2Tlgsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBSZXBvcnREZWZpbml0aW9uLFxuICBSZXBvcnRTdW1tYXJ5LFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIgfSBmcm9tICcuLi9jb250cmFjdHMvcmVwb3J0LXBlcnNpc3RlbmNlLmNvbnRyYWN0JztcbmltcG9ydCB7IFJFUE9SVElOR19DT05GSUcgfSBmcm9tICcuLi8uLi9jb3JlL3Rva2Vucy9yZXBvcnRpbmctY29uZmlnLnRva2VuJztcbmltcG9ydCB7IFNhdmVSZXBvcnRSZXF1ZXN0RHRvIH0gZnJvbSAnLi4vY29udHJhY3RzL2FwaS1kdG9zJztcblxuLyoqXG4gKiBCdWlsdC1pbiBIVFRQIGFkYXB0ZXIgZm9yIHJlcG9ydCBkZWZpbml0aW9ucyBwZXJzaXN0ZW5jZS5cbiAqIENvbm5lY3RzIHRvIE5lc3RKUyBgL2FwaS9yZXBvcnRpbmcvcmVwb3J0c2AgZW5kcG9pbnRzLlxuICogSW5jbHVkZXMgaW4tbWVtb3J5IG1vY2sgZmFsbGJhY2sgd2hlbiB0aGUgcmVtb3RlIGJhY2tlbmQgaXMgdW5yZWFjaGFibGUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIGV4dGVuZHMgUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KFJFUE9SVElOR19DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrU3RvcmUgPSBuZXcgTWFwPHN0cmluZywgUmVwb3J0RGVmaW5pdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VlZERlZmF1bHRNb2NrUmVwb3J0cygpO1xuICB9XG5cbiAgbG9hZChyZXBvcnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnPy5hcGlCYXNlVXJsO1xuICAgIGlmIChiYXNlVXJsICYmIHRoaXMuaHR0cCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PFJlcG9ydERlZmluaXRpb24+KGAke2Jhc2VVcmx9L3JlcG9ydHMvJHtlbmNvZGVVUklDb21wb25lbnQocmVwb3J0SWQpfWApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbSHR0cFJlcG9ydFBlcnNpc3RlbmNlQWRhcHRlcl0gRmFpbGVkIHRvIGxvYWQgcmVtb3RlIHJlcG9ydCAke3JlcG9ydElkfTpgLCBlcnIpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0TW9ja1JlcG9ydChyZXBvcnRJZCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLmdldE1vY2tSZXBvcnQocmVwb3J0SWQpKTtcbiAgfVxuXG4gIHNhdmUocmVwb3J0OiBSZXBvcnREZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnPy5hcGlCYXNlVXJsO1xuICAgIGlmIChiYXNlVXJsICYmIHRoaXMuaHR0cCkge1xuICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZVJlcG9ydFJlcXVlc3REdG8gPSB7XG4gICAgICAgIGlkOiByZXBvcnQuaWQsXG4gICAgICAgIG5hbWU6IHJlcG9ydC5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcmVwb3J0LmRlc2NyaXB0aW9uLFxuICAgICAgICBjYXRlZ29yeTogcmVwb3J0LmNhdGVnb3J5LFxuICAgICAgICB2ZXJzaW9uOiByZXBvcnQudmVyc2lvbixcbiAgICAgICAgaXNQdWJsaXNoZWQ6IHJlcG9ydC5pc1B1Ymxpc2hlZCA/PyBmYWxzZSxcbiAgICAgICAgZGVmaW5pdGlvbjogcmVwb3J0LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucG9zdDxSZXBvcnREZWZpbml0aW9uPihgJHtiYXNlVXJsfS9yZXBvcnRzYCwgcGF5bG9hZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tIdHRwUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyXSBGYWlsZWQgdG8gc2F2ZSByZW1vdGUgcmVwb3J0LCBzdG9yaW5nIGluIG1vY2s6JywgZXJyKTtcbiAgICAgICAgICAgIHRoaXMubW9ja1N0b3JlLnNldChyZXBvcnQuaWQsIHsgLi4ucmVwb3J0LCB1cGRhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSB9KTtcbiAgICAgICAgICAgIHJldHVybiBvZihyZXBvcnQpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5tb2NrU3RvcmUuc2V0KHJlcG9ydC5pZCwgeyAuLi5yZXBvcnQsIHVwZGF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpIH0pO1xuICAgIHJldHVybiBvZihyZXBvcnQpO1xuICB9XG5cbiAgbGlzdCgpOiBPYnNlcnZhYmxlPFJlcG9ydFN1bW1hcnlbXT4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlcG9ydFN1bW1hcnlbXT4oYCR7YmFzZVVybH0vcmVwb3J0c2ApLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW0h0dHBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXJdIEZhaWxlZCB0byBsaXN0IHJlbW90ZSByZXBvcnRzLCByZXR1cm5pbmcgbW9jayBsaXN0OicsIGVycik7XG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0TW9ja1N1bW1hcmllcygpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLmdldE1vY2tTdW1tYXJpZXMoKSk7XG4gIH1cblxuICBkZWxldGUocmVwb3J0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLmRlbGV0ZTx2b2lkPihgJHtiYXNlVXJsfS9yZXBvcnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlcG9ydElkKX1gKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0h0dHBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXJdIEZhaWxlZCB0byBkZWxldGUgcmVtb3RlIHJlcG9ydCAke3JlcG9ydElkfTpgLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy5tb2NrU3RvcmUuZGVsZXRlKHJlcG9ydElkKTtcbiAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHRoaXMubW9ja1N0b3JlLmRlbGV0ZShyZXBvcnRJZCk7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaXNoKHJlcG9ydElkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8dm9pZD4oYCR7YmFzZVVybH0vcmVwb3J0cy8ke2VuY29kZVVSSUNvbXBvbmVudChyZXBvcnRJZCl9L3B1Ymxpc2hgLCB7IHZlcnNpb24gfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtIdHRwUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyXSBGYWlsZWQgdG8gcHVibGlzaCByZW1vdGUgcmVwb3J0ICR7cmVwb3J0SWR9OmAsIGVycik7XG4gICAgICAgICAgICBjb25zdCByID0gdGhpcy5tb2NrU3RvcmUuZ2V0KHJlcG9ydElkKTtcbiAgICAgICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgICAgIHIuaXNQdWJsaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICByLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgciA9IHRoaXMubW9ja1N0b3JlLmdldChyZXBvcnRJZCk7XG4gICAgaWYgKHIpIHtcbiAgICAgIHIuaXNQdWJsaXNoZWQgPSB0cnVlO1xuICAgICAgci52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vY2tSZXBvcnQoaWQ6IHN0cmluZyk6IFJlcG9ydERlZmluaXRpb24ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5tb2NrU3RvcmUuZ2V0KGlkKTtcbiAgICBpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcblxuICAgIGNvbnN0IGZhbGxiYWNrOiBSZXBvcnREZWZpbml0aW9uID0ge1xuICAgICAgaWQsXG4gICAgICBuYW1lOiAnRGVmYXVsdCBSZXBvcnQnLFxuICAgICAgc2NoZW1hVmVyc2lvbjogMSxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgICBpc1B1Ymxpc2hlZDogdHJ1ZSxcbiAgICAgIGNvbXBvbmVudHM6IFtdLFxuICAgICAgcGFyYW1ldGVyczogW10sXG4gICAgICBkYXRhU291cmNlczogW10sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgY29sdW1uczogMTIsXG4gICAgICAgIGdhcDogMTYsXG4gICAgICAgIHBhZGRpbmc6IDE2LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubW9ja1N0b3JlLnNldChpZCwgZmFsbGJhY2spO1xuICAgIHJldHVybiBmYWxsYmFjaztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9ja1N1bW1hcmllcygpOiBSZXBvcnRTdW1tYXJ5W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMubW9ja1N0b3JlLnZhbHVlcygpKS5tYXAoKHIpID0+ICh7XG4gICAgICBpZDogci5pZCxcbiAgICAgIG5hbWU6IHIubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiByLmRlc2NyaXB0aW9uLFxuICAgICAgY2F0ZWdvcnk6IHIuY2F0ZWdvcnksXG4gICAgICB2ZXJzaW9uOiByLnZlcnNpb24sXG4gICAgICBpc1B1Ymxpc2hlZDogQm9vbGVhbihyLmlzUHVibGlzaGVkKSxcbiAgICAgIHVwZGF0ZWRBdDogci51cGRhdGVkQXQsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWVkRGVmYXVsdE1vY2tSZXBvcnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlZWQ6IFJlcG9ydERlZmluaXRpb24gPSB7XG4gICAgICBpZDogJ3NhbGVzLXN1bW1hcnknLFxuICAgICAgbmFtZTogJ1NhbGVzIFJlZ2lzdGVyICYgQW5hbHlzaXMnLFxuICAgICAgZGVzY3JpcHRpb246ICdDb21wcmVoZW5zaXZlIHNhbGVzIHBlcmZvcm1hbmNlIGFuZCBpbnZvaWNlIHRyYWNraW5nJyxcbiAgICAgIGNhdGVnb3J5OiAnU2FsZXMnLFxuICAgICAgc2NoZW1hVmVyc2lvbjogMSxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgICBpc1B1Ymxpc2hlZDogdHJ1ZSxcbiAgICAgIHBhcmFtZXRlcnM6IFtdLFxuICAgICAgZGF0YVNvdXJjZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZHMtc2FsZXMnLFxuICAgICAgICAgIG5hbWU6ICdTYWxlcyBSZWdpc3RlciBTUCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICd1c3BfR2V0U2FsZXNSZWdpc3RlcicsXG4gICAgICAgICAgbWV0aG9kOiAnU1RPUkVEX1BST0NFRFVSRScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY29tcG9uZW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjbXAtZnJvbS1kYXRlJyxcbiAgICAgICAgICBrZXk6ICdmcm9tRGF0ZScsXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHsgbGFiZWw6ICdGcm9tIERhdGUnLCBwbGFjZWhvbGRlcjogJ2RkL01NL3l5eXknIH0sXG4gICAgICAgICAgdmFsaWRhdGlvbjoge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2NtcC10by1kYXRlJyxcbiAgICAgICAgICBrZXk6ICd0b0RhdGUnLFxuICAgICAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGxhYmVsOiAnVG8gRGF0ZScsIHBsYWNlaG9sZGVyOiAnZGQvTU0veXl5eScgfSxcbiAgICAgICAgICB2YWxpZGF0aW9uOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnY21wLWN1c3RvbWVyJyxcbiAgICAgICAgICBrZXk6ICdjdXN0b21lcklkJyxcbiAgICAgICAgICB0eXBlOiAnZHJvcGRvd24nLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGxhYmVsOiAnQ3VzdG9tZXInLFxuICAgICAgICAgICAgc291cmNlVHlwZTogJ3RhYmxlJyxcbiAgICAgICAgICAgIGVudGl0eU5hbWU6ICdDdXN0b21lcnMnLFxuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2N1c3RvbWVySWQnLFxuICAgICAgICAgICAgZGlzcGxheUZpZWxkOiAnY3VzdG9tZXJOYW1lJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRpb246IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdjbXAtZ3JpZCcsXG4gICAgICAgICAga2V5OiAnc2FsZXNHcmlkJyxcbiAgICAgICAgICB0eXBlOiAnZ3JpZCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgZGF0YVNvdXJjZUlkOiAnZHMtc2FsZXMnLFxuICAgICAgICAgICAgcGFnZVNpemU6IDI1LFxuICAgICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGVuYWJsZUZpbHRlcmluZzogdHJ1ZSxcbiAgICAgICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICAgICAgeyBmaWVsZDogJ2ludm9pY2VObycsIGhlYWRlclRleHQ6ICdJbnZvaWNlICMnIH0sXG4gICAgICAgICAgICAgIHsgZmllbGQ6ICdkYXRlJywgaGVhZGVyVGV4dDogJ0RhdGUnIH0sXG4gICAgICAgICAgICAgIHsgZmllbGQ6ICdjdXN0b21lcicsIGhlYWRlclRleHQ6ICdDdXN0b21lcicgfSxcbiAgICAgICAgICAgICAgeyBmaWVsZDogJ2Ftb3VudCcsIGhlYWRlclRleHQ6ICdBbW91bnQnLCBmb3JtYXQ6ICdjdXJyZW5jeScgfSxcbiAgICAgICAgICAgICAgeyBmaWVsZDogJ3N0YXR1cycsIGhlYWRlclRleHQ6ICdTdGF0dXMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdGlvbjoge30sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIGNvbHVtbnM6IDEyLFxuICAgICAgICBnYXA6IDE2LFxuICAgICAgICBwYWRkaW5nOiAxNixcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm1vY2tTdG9yZS5zZXQoc2VlZC5pZCwgc2VlZCk7XG4gIH1cbn1cblxuLyoqIENvbnZlbmllbmNlIGFsaWFzICovXG5leHBvcnQgY29uc3QgSHR0cFBlcnNpc3RlbmNlQWRhcHRlciA9IEh0dHBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXI7XG4iXX0=
@@ -116,4 +116,6 @@ export class HttpReportSchemaDiscoveryAdapter extends ReportSchemaDiscoveryAdapt
116
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter, decorators: [{
117
117
  type: Injectable
118
118
  }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1zY2hlbWEtZGlzY292ZXJ5LmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUtMLDRCQUE0QixHQUM3QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUU1RTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsNEJBQTRCO0lBQy9ELElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELFlBQVksR0FBNkI7UUFDeEQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDdEssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDbkssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUU7UUFDOUosRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtRQUN0SixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsc0NBQXNDLEVBQUU7UUFDL0wsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO0tBQ2hMLENBQUM7SUFFZSxXQUFXLEdBQTJDO1FBQ3JFLFNBQVMsRUFBRTtZQUNULEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNsRixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdEYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzlFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUM3RSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7U0FDcEY7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDOUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2xGLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUN6RTtRQUNELFFBQVEsRUFBRTtZQUNSLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNoRixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDcEYsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzVFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtTQUNqRjtRQUNELGNBQWMsRUFB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QUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO2FBQy9CLENBQUM7aUJBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQTRCO1FBQ3JELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzt3R0FwSFUsZ0NBQWdDOzRHQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIERhdGFiYXNlRW50aXR5TWV0YWRhdGEsXG4gIERhdGFiYXNlRW50aXR5VHlwZSxcbiAgRW50aXR5Q29sdW1uTWV0YWRhdGEsXG4gIFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhLFxuICBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxufSBmcm9tICcuLi9jb250cmFjdHMvc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5pbXBvcnQgeyBSRVBPUlRJTkdfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29yZS90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5cbi8qKlxuICogQnVpbHQtaW4gSFRUUCBhZGFwdGVyIGZvciBiYWNrZW5kIGRhdGFiYXNlIHNjaGVtYSBkaXNjb3ZlcnkuXG4gKiBDb25uZWN0cyB0byBOZXN0SlMgLyBSRVNUIGJhY2tlbmQgZW5kcG9pbnRzLCB3aXRoIGZhbGxiYWNrIG1vY2sgc2NoZW1hIGZvciBkZXZlbG9wbWVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIGV4dGVuZHMgUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChSRVBPUlRJTkdfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja0VudGl0aWVzOiBEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10gPSBbXG4gICAgeyBuYW1lOiAnQ3VzdG9tZXJzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnQ3VzdG9tZXIgRGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdTYWxlcyAmIENSTScsIGRlc2NyaXB0aW9uOiAnQWN0aXZlIGN1c3RvbWVyIGFjY291bnRzIGFuZCBwcm9maWxlcycgfSxcbiAgICB7IG5hbWU6ICdCcmFuY2hlcycsIHNjaGVtYTogJ2RibycsIHR5cGU6ICd0YWJsZScsIGZyaWVuZGx5TmFtZTogJ0JyYW5jaCBMb2NhdGlvbnMnLCBjYXRlZ29yeTogJ01hc3RlciBEYXRhJywgZGVzY3JpcHRpb246ICdDb21wYW55IGJyYW5jaGVzIGFuZCByZWdpb25hbCBvZmZpY2VzJyB9LFxuICAgIHsgbmFtZTogJ1Byb2R1Y3RzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnUHJvZHVjdCBDYXRhbG9nJywgY2F0ZWdvcnk6ICdJbnZlbnRvcnknLCBkZXNjcmlwdGlvbjogJ1Byb2R1Y3QgY2F0YWxvZyB3aXRoIGNhdGVnb3J5IGNvZGVzJyB9LFxuICAgIHsgbmFtZTogJ1BheW1lbnRNZXRob2RzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnUGF5bWVudCBNZXRob2RzJywgY2F0ZWdvcnk6ICdGaW5hbmNlJywgZGVzY3JpcHRpb246ICdBdmFpbGFibGUgcGF5bWVudCBtb2RlcycgfSxcbiAgICB7IG5hbWU6ICd1c3BfR2V0Q3VzdG9tZXJMaXN0Jywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3N0b3JlZF9wcm9jZWR1cmUnLCBmcmllbmRseU5hbWU6ICdDdXN0b21lciBEaXJlY3RvcnkgKFNQKScsIGNhdGVnb3J5OiAnU2FsZXMgJiBDUk0nLCBkZXNjcmlwdGlvbjogJ1JldHVybnMgZmlsdGVyZWQgY3VzdG9tZXJzIGJ5IGJyYW5jaCcgfSxcbiAgICB7IG5hbWU6ICd1c3BfR2V0QnJhbmNoTG9va3VwJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3N0b3JlZF9wcm9jZWR1cmUnLCBmcmllbmRseU5hbWU6ICdBY3RpdmUgQnJhbmNoZXMgKFNQKScsIGNhdGVnb3J5OiAnTWFzdGVyIERhdGEnLCBkZXNjcmlwdGlvbjogJ1JldHVybnMgYWN0aXZlIGJyYW5jaGVzJyB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbHVtbnM6IFJlY29yZDxzdHJpbmcsIEVudGl0eUNvbHVtbk1ldGFkYXRhW10+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBmaWVsZDogJ2N1c3RvbWVySWQnLCBsYWJlbDogJ0N1c3RvbWVyIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICdjdXN0b21lck5hbWUnLCBsYWJlbDogJ0N1c3RvbWVyIE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCBBZGRyZXNzJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgICAgeyBmaWVsZDogJ2JyYW5jaElkJywgbGFiZWw6ICdCcmFuY2ggSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiB0cnVlIH0sXG4gICAgICB7IGZpZWxkOiAnaXNBY3RpdmUnLCBsYWJlbDogJ0FjdGl2ZSBTdGF0dXMnLCBkYXRhVHlwZTogJ2Jvb2xlYW4nLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICBdLFxuICAgIEJyYW5jaGVzOiBbXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoSWQnLCBsYWJlbDogJ0JyYW5jaCBJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoTmFtZScsIGxhYmVsOiAnQnJhbmNoIE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3JlZ2lvbicsIGxhYmVsOiAnUmVnaW9uJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgUHJvZHVjdHM6IFtcbiAgICAgIHsgZmllbGQ6ICdwcm9kdWN0SWQnLCBsYWJlbDogJ1Byb2R1Y3QgSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3Byb2R1Y3ROYW1lJywgbGFiZWw6ICdQcm9kdWN0IE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2NhdGVnb3J5JywgbGFiZWw6ICdDYXRlZ29yeScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICAgIHsgZmllbGQ6ICd1bml0UHJpY2UnLCBsYWJlbDogJ1VuaXQgUHJpY2UnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgUGF5bWVudE1ldGhvZHM6IFtcbiAgICAgIHsgZmllbGQ6ICdjb2RlJywgbGFiZWw6ICdQYXltZW50IENvZGUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3RpdGxlJywgbGFiZWw6ICdNZXRob2QgVGl0bGUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgdXNwX0dldEN1c3RvbWVyTGlzdDogW1xuICAgICAgeyBmaWVsZDogJ2lkJywgbGFiZWw6ICdJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnbmFtZScsIGxhYmVsOiAnQ3VzdG9tZXIgTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoJywgbGFiZWw6ICdCcmFuY2ggQ29kZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgZmllbGQ6ICdpZCcsIGxhYmVsOiAnQnJhbmNoIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICduYW1lJywgbGFiZWw6ICdCcmFuY2ggTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgXSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vY2tQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBQcm9jZWR1cmVQYXJhbWV0ZXJNZXRhZGF0YVtdPiA9IHtcbiAgICB1c3BfR2V0Q3VzdG9tZXJMaXN0OiBbXG4gICAgICB7IG5hbWU6ICdAQnJhbmNoSWQnLCBmcmllbmRseUxhYmVsOiAnQnJhbmNoIExvY2F0aW9uJywgZGF0YVR5cGU6ICdudW1iZXInLCBzcWxUeXBlOiAnSU5UJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBjdXN0b21lcnMgYmVsb25naW5nIHRvIHRoaXMgYnJhbmNoJyB9LFxuICAgICAgeyBuYW1lOiAnQEFjdGl2ZU9ubHknLCBmcmllbmRseUxhYmVsOiAnQWN0aXZlIE9ubHknLCBkYXRhVHlwZTogJ2Jvb2xlYW4nLCBzcWxUeXBlOiAnQklUJywgcmVxdWlyZWQ6IGZhbHNlLCBkZWZhdWx0VmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnT25seSBzaG93IGFjdGl2ZSBjdXN0b21lcnMnIH0sXG4gICAgXSxcbiAgICB1c3BfR2V0QnJhbmNoTG9va3VwOiBbXG4gICAgICB7IG5hbWU6ICdAUmVnaW9uJywgZnJpZW5kbHlMYWJlbDogJ0dlb2dyYXBoaWNhbCBSZWdpb24nLCBkYXRhVHlwZTogJ3N0cmluZycsIHNxbFR5cGU6ICdWQVJDSEFSKDUwKScsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZ2VvZ3JhcGhpY2FsIHJlZ2lvbicgfSxcbiAgICBdLFxuICB9O1xuXG4gIGdldEVudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBPYnNlcnZhYmxlPERhdGFiYXNlRW50aXR5TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIGNvbnN0IHR5cGVQYXJhbSA9IHR5cGVzID8gdHlwZXMuam9pbignLCcpIDogJyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPihgJHtiYXNlVXJsfS9zY2hlbWEvZW50aXRpZXNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB0eXBlUGFyYW0gPyB7IHR5cGVzOiB0eXBlUGFyYW0gfSA6IHt9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEFQSSByZXF1ZXN0IGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIG1vY2sgc2NoZW1hOicsIGVycik7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5maWx0ZXJNb2NrRW50aXRpZXModHlwZXMpKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodGhpcy5maWx0ZXJNb2NrRW50aXRpZXModHlwZXMpKTtcbiAgfVxuXG4gIGdldENvbHVtbnMoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIHNjaGVtYSA9ICdkYm8nLFxuICAgIHR5cGU/OiBEYXRhYmFzZUVudGl0eVR5cGVcbiAgKTogT2JzZXJ2YWJsZTxFbnRpdHlDb2x1bW5NZXRhZGF0YVtdPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnPy5hcGlCYXNlVXJsO1xuICAgIGlmIChiYXNlVXJsICYmIHRoaXMuaHR0cCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEVudGl0eUNvbHVtbk1ldGFkYXRhW10+KGAke2Jhc2VVcmx9L3NjaGVtYS9jb2x1bW5zYCwge1xuICAgICAgICAgIHBhcmFtczogeyBlbnRpdHlOYW1lLCBzY2hlbWEsIC4uLih0eXBlID8geyB0eXBlIH0gOiB7fSkgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtIdHRwU2NoZW1hRGlzY292ZXJ5XSBGYWlsZWQgdG8gZ2V0IGNvbHVtbnMgZm9yICR7ZW50aXR5TmFtZX06YCwgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLm1vY2tDb2x1bW5zW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodGhpcy5tb2NrQ29sdW1uc1tlbnRpdHlOYW1lXSA/PyBbXSk7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKGVudGl0eU5hbWU6IHN0cmluZywgc2NoZW1hID0gJ2RibycpOiBPYnNlcnZhYmxlPFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhW10+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8UHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGFbXT4oYCR7YmFzZVVybH0vc2NoZW1hL3BhcmFtZXRlcnNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB7IGVudGl0eU5hbWUsIHNjaGVtYSB9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEZhaWxlZCB0byBnZXQgcGFyYW1ldGVycyBmb3IgJHtlbnRpdHlOYW1lfTpgLCBlcnIpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubW9ja1BhcmFtZXRlcnNbZW50aXR5TmFtZV0gPz8gW10pO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLm1vY2tQYXJhbWV0ZXJzW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyTW9ja0VudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10ge1xuICAgIGlmICghdHlwZXMgfHwgdHlwZXMubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5tb2NrRW50aXRpZXM7XG4gICAgcmV0dXJuIHRoaXMubW9ja0VudGl0aWVzLmZpbHRlcigoZSkgPT4gdHlwZXMuaW5jbHVkZXMoZS50eXBlKSk7XG4gIH1cbn1cbiJdfQ==
119
+ /** Convenience alias */
120
+ export const HttpSchemaDiscoveryAdapter = HttpReportSchemaDiscoveryAdapter;
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1zY2hlbWEtZGlzY292ZXJ5LmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUtMLDRCQUE0QixHQUM3QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUU1RTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsNEJBQTRCO0lBQy9ELElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELFlBQVksR0FBNkI7UUFDeEQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDdEssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDbkssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUU7UUFDOUosRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtRQUN0SixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsc0NBQXNDLEVBQUU7UUFDL0wsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO0tBQ2hMLENBQUM7SUFFZSxXQUFXLEdBQTJDO1FBQ3JFLFNBQVMsRUFBRTtZQUNULEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNsRixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdEYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzlFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUM3RSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7U0FDcEY7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDOUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2xGLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUN6RTtRQUNELFFBQVEsRUFBRTtZQUNSLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNoRixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDcEYsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzVFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtTQUNqRjtRQUNELGNBQWMsRUFB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QUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO2FBQy9CLENBQUM7aUJBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQTRCO1FBQ3JELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzt3R0FwSFUsZ0NBQWdDOzRHQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVU7O0FBd0hYLHdCQUF3QjtBQUN4QixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgRGF0YWJhc2VFbnRpdHlNZXRhZGF0YSxcbiAgRGF0YWJhc2VFbnRpdHlUeXBlLFxuICBFbnRpdHlDb2x1bW5NZXRhZGF0YSxcbiAgUHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGEsXG4gIFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsXG59IGZyb20gJy4uL2NvbnRyYWN0cy9zY2hlbWEtZGlzY292ZXJ5LmNvbnRyYWN0JztcbmltcG9ydCB7IFJFUE9SVElOR19DT05GSUcgfSBmcm9tICcuLi8uLi9jb3JlL3Rva2Vucy9yZXBvcnRpbmctY29uZmlnLnRva2VuJztcblxuLyoqXG4gKiBCdWlsdC1pbiBIVFRQIGFkYXB0ZXIgZm9yIGJhY2tlbmQgZGF0YWJhc2Ugc2NoZW1hIGRpc2NvdmVyeS5cbiAqIENvbm5lY3RzIHRvIE5lc3RKUyAvIFJFU1QgYmFja2VuZCBlbmRwb2ludHMsIHdpdGggZmFsbGJhY2sgbW9jayBzY2hlbWEgZm9yIGRldmVsb3BtZW50LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIgZXh0ZW5kcyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KFJFUE9SVElOR19DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrRW50aXRpZXM6IERhdGFiYXNlRW50aXR5TWV0YWRhdGFbXSA9IFtcbiAgICB7IG5hbWU6ICdDdXN0b21lcnMnLCBzY2hlbWE6ICdkYm8nLCB0eXBlOiAndGFibGUnLCBmcmllbmRseU5hbWU6ICdDdXN0b21lciBEaXJlY3RvcnknLCBjYXRlZ29yeTogJ1NhbGVzICYgQ1JNJywgZGVzY3JpcHRpb246ICdBY3RpdmUgY3VzdG9tZXIgYWNjb3VudHMgYW5kIHByb2ZpbGVzJyB9LFxuICAgIHsgbmFtZTogJ0JyYW5jaGVzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnQnJhbmNoIExvY2F0aW9ucycsIGNhdGVnb3J5OiAnTWFzdGVyIERhdGEnLCBkZXNjcmlwdGlvbjogJ0NvbXBhbnkgYnJhbmNoZXMgYW5kIHJlZ2lvbmFsIG9mZmljZXMnIH0sXG4gICAgeyBuYW1lOiAnUHJvZHVjdHMnLCBzY2hlbWE6ICdkYm8nLCB0eXBlOiAndGFibGUnLCBmcmllbmRseU5hbWU6ICdQcm9kdWN0IENhdGFsb2cnLCBjYXRlZ29yeTogJ0ludmVudG9yeScsIGRlc2NyaXB0aW9uOiAnUHJvZHVjdCBjYXRhbG9nIHdpdGggY2F0ZWdvcnkgY29kZXMnIH0sXG4gICAgeyBuYW1lOiAnUGF5bWVudE1ldGhvZHMnLCBzY2hlbWE6ICdkYm8nLCB0eXBlOiAndGFibGUnLCBmcmllbmRseU5hbWU6ICdQYXltZW50IE1ldGhvZHMnLCBjYXRlZ29yeTogJ0ZpbmFuY2UnLCBkZXNjcmlwdGlvbjogJ0F2YWlsYWJsZSBwYXltZW50IG1vZGVzJyB9LFxuICAgIHsgbmFtZTogJ3VzcF9HZXRDdXN0b21lckxpc3QnLCBzY2hlbWE6ICdkYm8nLCB0eXBlOiAnc3RvcmVkX3Byb2NlZHVyZScsIGZyaWVuZGx5TmFtZTogJ0N1c3RvbWVyIERpcmVjdG9yeSAoU1ApJywgY2F0ZWdvcnk6ICdTYWxlcyAmIENSTScsIGRlc2NyaXB0aW9uOiAnUmV0dXJucyBmaWx0ZXJlZCBjdXN0b21lcnMgYnkgYnJhbmNoJyB9LFxuICAgIHsgbmFtZTogJ3VzcF9HZXRCcmFuY2hMb29rdXAnLCBzY2hlbWE6ICdkYm8nLCB0eXBlOiAnc3RvcmVkX3Byb2NlZHVyZScsIGZyaWVuZGx5TmFtZTogJ0FjdGl2ZSBCcmFuY2hlcyAoU1ApJywgY2F0ZWdvcnk6ICdNYXN0ZXIgRGF0YScsIGRlc2NyaXB0aW9uOiAnUmV0dXJucyBhY3RpdmUgYnJhbmNoZXMnIH0sXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrQ29sdW1uczogUmVjb3JkPHN0cmluZywgRW50aXR5Q29sdW1uTWV0YWRhdGFbXT4gPSB7XG4gICAgQ3VzdG9tZXJzOiBbXG4gICAgICB7IGZpZWxkOiAnY3VzdG9tZXJJZCcsIGxhYmVsOiAnQ3VzdG9tZXIgSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2N1c3RvbWVyTmFtZScsIGxhYmVsOiAnQ3VzdG9tZXIgTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnZW1haWwnLCBsYWJlbDogJ0VtYWlsIEFkZHJlc3MnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiB0cnVlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoSWQnLCBsYWJlbDogJ0JyYW5jaCBJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICAgIHsgZmllbGQ6ICdpc0FjdGl2ZScsIGxhYmVsOiAnQWN0aXZlIFN0YXR1cycsIGRhdGFUeXBlOiAnYm9vbGVhbicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgQnJhbmNoZXM6IFtcbiAgICAgIHsgZmllbGQ6ICdicmFuY2hJZCcsIGxhYmVsOiAnQnJhbmNoIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICdicmFuY2hOYW1lJywgbGFiZWw6ICdCcmFuY2ggTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAncmVnaW9uJywgbGFiZWw6ICdSZWdpb24nLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiB0cnVlIH0sXG4gICAgXSxcbiAgICBQcm9kdWN0czogW1xuICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RJZCcsIGxhYmVsOiAnUHJvZHVjdCBJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAncHJvZHVjdE5hbWUnLCBsYWJlbDogJ1Byb2R1Y3QgTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnY2F0ZWdvcnknLCBsYWJlbDogJ0NhdGVnb3J5JywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgICAgeyBmaWVsZDogJ3VuaXRQcmljZScsIGxhYmVsOiAnVW5pdCBQcmljZScsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgXSxcbiAgICBQYXltZW50TWV0aG9kczogW1xuICAgICAgeyBmaWVsZDogJ2NvZGUnLCBsYWJlbDogJ1BheW1lbnQgQ29kZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAndGl0bGUnLCBsYWJlbDogJ01ldGhvZCBUaXRsZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgXSxcbiAgICB1c3BfR2V0Q3VzdG9tZXJMaXN0OiBbXG4gICAgICB7IGZpZWxkOiAnaWQnLCBsYWJlbDogJ0lEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICduYW1lJywgbGFiZWw6ICdDdXN0b21lciBOYW1lJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICdicmFuY2gnLCBsYWJlbDogJ0JyYW5jaCBDb2RlJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgdXNwX0dldEJyYW5jaExvb2t1cDogW1xuICAgICAgeyBmaWVsZDogJ2lkJywgbGFiZWw6ICdCcmFuY2ggSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ25hbWUnLCBsYWJlbDogJ0JyYW5jaCBOYW1lJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICBdLFxuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja1BhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhW10+ID0ge1xuICAgIHVzcF9HZXRDdXN0b21lckxpc3Q6IFtcbiAgICAgIHsgbmFtZTogJ0BCcmFuY2hJZCcsIGZyaWVuZGx5TGFiZWw6ICdCcmFuY2ggTG9jYXRpb24nLCBkYXRhVHlwZTogJ251bWJlcicsIHNxbFR5cGU6ICdJTlQnLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRmlsdGVyIGN1c3RvbWVycyBiZWxvbmdpbmcgdG8gdGhpcyBicmFuY2gnIH0sXG4gICAgICB7IG5hbWU6ICdAQWN0aXZlT25seScsIGZyaWVuZGx5TGFiZWw6ICdBY3RpdmUgT25seScsIGRhdGFUeXBlOiAnYm9vbGVhbicsIHNxbFR5cGU6ICdCSVQnLCByZXF1aXJlZDogZmFsc2UsIGRlZmF1bHRWYWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdPbmx5IHNob3cgYWN0aXZlIGN1c3RvbWVycycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgbmFtZTogJ0BSZWdpb24nLCBmcmllbmRseUxhYmVsOiAnR2VvZ3JhcGhpY2FsIFJlZ2lvbicsIGRhdGFUeXBlOiAnc3RyaW5nJywgc3FsVHlwZTogJ1ZBUkNIQVIoNTApJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBnZW9ncmFwaGljYWwgcmVnaW9uJyB9LFxuICAgIF0sXG4gIH07XG5cbiAgZ2V0RW50aXRpZXModHlwZXM/OiBEYXRhYmFzZUVudGl0eVR5cGVbXSk6IE9ic2VydmFibGU8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnPy5hcGlCYXNlVXJsO1xuICAgIGlmIChiYXNlVXJsICYmIHRoaXMuaHR0cCkge1xuICAgICAgY29uc3QgdHlwZVBhcmFtID0gdHlwZXMgPyB0eXBlcy5qb2luKCcsJykgOiAnJztcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10+KGAke2Jhc2VVcmx9L3NjaGVtYS9lbnRpdGllc2AsIHtcbiAgICAgICAgICBwYXJhbXM6IHR5cGVQYXJhbSA/IHsgdHlwZXM6IHR5cGVQYXJhbSB9IDoge30sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbSHR0cFNjaGVtYURpc2NvdmVyeV0gQVBJIHJlcXVlc3QgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gbW9jayBzY2hlbWE6JywgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmZpbHRlck1vY2tFbnRpdGllcyh0eXBlcykpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLmZpbHRlck1vY2tFbnRpdGllcyh0eXBlcykpO1xuICB9XG5cbiAgZ2V0Q29sdW1ucyhcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgc2NoZW1hID0gJ2RibycsXG4gICAgdHlwZT86IERhdGFiYXNlRW50aXR5VHlwZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eUNvbHVtbk1ldGFkYXRhW10+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8RW50aXR5Q29sdW1uTWV0YWRhdGFbXT4oYCR7YmFzZVVybH0vc2NoZW1hL2NvbHVtbnNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB7IGVudGl0eU5hbWUsIHNjaGVtYSwgLi4uKHR5cGUgPyB7IHR5cGUgfSA6IHt9KSB9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEZhaWxlZCB0byBnZXQgY29sdW1ucyBmb3IgJHtlbnRpdHlOYW1lfTpgLCBlcnIpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubW9ja0NvbHVtbnNbZW50aXR5TmFtZV0gPz8gW10pO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLm1vY2tDb2x1bW5zW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoZW50aXR5TmFtZTogc3RyaW5nLCBzY2hlbWEgPSAnZGJvJyk6IE9ic2VydmFibGU8UHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxQcm9jZWR1cmVQYXJhbWV0ZXJNZXRhZGF0YVtdPihgJHtiYXNlVXJsfS9zY2hlbWEvcGFyYW1ldGVyc2AsIHtcbiAgICAgICAgICBwYXJhbXM6IHsgZW50aXR5TmFtZSwgc2NoZW1hIH0sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbSHR0cFNjaGVtYURpc2NvdmVyeV0gRmFpbGVkIHRvIGdldCBwYXJhbWV0ZXJzIGZvciAke2VudGl0eU5hbWV9OmAsIGVycik7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5tb2NrUGFyYW1ldGVyc1tlbnRpdHlOYW1lXSA/PyBbXSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHRoaXMubW9ja1BhcmFtZXRlcnNbZW50aXR5TmFtZV0gPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJNb2NrRW50aXRpZXModHlwZXM/OiBEYXRhYmFzZUVudGl0eVR5cGVbXSk6IERhdGFiYXNlRW50aXR5TWV0YWRhdGFbXSB7XG4gICAgaWYgKCF0eXBlcyB8fCB0eXBlcy5sZW5ndGggPT09IDApIHJldHVybiB0aGlzLm1vY2tFbnRpdGllcztcbiAgICByZXR1cm4gdGhpcy5tb2NrRW50aXRpZXMuZmlsdGVyKChlKSA9PiB0eXBlcy5pbmNsdWRlcyhlLnR5cGUpKTtcbiAgfVxufVxuXG4vKiogQ29udmVuaWVuY2UgYWxpYXMgKi9cbmV4cG9ydCBjb25zdCBIdHRwU2NoZW1hRGlzY292ZXJ5QWRhcHRlciA9IEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyO1xuIl19
@@ -1,3 +1,8 @@
1
- export { HttpReportSchemaDiscoveryAdapter } from './http-schema-discovery.adapter';
2
- export { HttpReportLookupAdapter } from './http-lookup.adapter';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlcic7XG5leHBvcnQgeyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciB9IGZyb20gJy4vaHR0cC1sb29rdXAuYWRhcHRlcic7XG4iXX0=
1
+ export { HttpReportSchemaDiscoveryAdapter, HttpSchemaDiscoveryAdapter, } from './http-schema-discovery.adapter';
2
+ export { HttpReportLookupAdapter, HttpLookupAdapter, } from './http-lookup.adapter';
3
+ export { HttpReportDataSourceAdapter, HttpDataSourceAdapter, } from './http-datasource.adapter';
4
+ export { HttpReportPersistenceAdapter, HttpPersistenceAdapter, } from './http-persistence.adapter';
5
+ export { HttpMasterDataAdapter, } from './http-masterdata.adapter';
6
+ export { LocalStorageReportPersistenceAdapter, } from './local-storage-persistence.adapter';
7
+ export { MockReportDataSourceAdapter, } from './mock-datasource.adapter';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLDBCQUEwQixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ2xCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixxQkFBcUIsR0FDdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUN2QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxxQkFBcUIsR0FDdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsb0NBQW9DLEdBQ3JDLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNMLDJCQUEyQixHQUM1QixNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgSHR0cFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsXG4gIEh0dHBTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxufSBmcm9tICcuL2h0dHAtc2NoZW1hLWRpc2NvdmVyeS5hZGFwdGVyJztcbmV4cG9ydCB7XG4gIEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyLFxuICBIdHRwTG9va3VwQWRhcHRlcixcbn0gZnJvbSAnLi9odHRwLWxvb2t1cC5hZGFwdGVyJztcbmV4cG9ydCB7XG4gIEh0dHBSZXBvcnREYXRhU291cmNlQWRhcHRlcixcbiAgSHR0cERhdGFTb3VyY2VBZGFwdGVyLFxufSBmcm9tICcuL2h0dHAtZGF0YXNvdXJjZS5hZGFwdGVyJztcbmV4cG9ydCB7XG4gIEh0dHBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsXG4gIEh0dHBQZXJzaXN0ZW5jZUFkYXB0ZXIsXG59IGZyb20gJy4vaHR0cC1wZXJzaXN0ZW5jZS5hZGFwdGVyJztcbmV4cG9ydCB7XG4gIEh0dHBNYXN0ZXJEYXRhQWRhcHRlcixcbn0gZnJvbSAnLi9odHRwLW1hc3RlcmRhdGEuYWRhcHRlcic7XG5leHBvcnQge1xuICBMb2NhbFN0b3JhZ2VSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsXG59IGZyb20gJy4vbG9jYWwtc3RvcmFnZS1wZXJzaXN0ZW5jZS5hZGFwdGVyJztcbmV4cG9ydCB7XG4gIE1vY2tSZXBvcnREYXRhU291cmNlQWRhcHRlcixcbn0gZnJvbSAnLi9tb2NrLWRhdGFzb3VyY2UuYWRhcHRlcic7XG4iXX0=
@@ -0,0 +1,167 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { of, throwError } from 'rxjs';
3
+ import { ReportPersistenceAdapter } from '../contracts/report-persistence.contract';
4
+ import { ReportTemplateService } from '../../features/designer/services/report-template.service';
5
+ import * as i0 from "@angular/core";
6
+ const STORAGE_PREFIX = 'bways_rpt_def_';
7
+ const INDEX_KEY = 'bways_rpt_index';
8
+ export class LocalStorageReportPersistenceAdapter extends ReportPersistenceAdapter {
9
+ templateService = inject(ReportTemplateService, { optional: true });
10
+ constructor() {
11
+ super();
12
+ this.seedDefaultBlueprintsIfEmpty();
13
+ }
14
+ seedDefaultBlueprintsIfEmpty() {
15
+ if (typeof window === 'undefined' || !window.localStorage) {
16
+ return;
17
+ }
18
+ const index = this.getIndex();
19
+ if (index.length === 0 && this.templateService) {
20
+ const blueprints = this.templateService.getTemplates();
21
+ blueprints.forEach((bp) => {
22
+ const def = {
23
+ ...bp.definition,
24
+ id: bp.id,
25
+ parameters: bp.definition.parameters || [],
26
+ layout: bp.definition.layout,
27
+ dataSources: bp.definition.dataSources,
28
+ components: bp.definition.components,
29
+ grid: bp.definition.grid,
30
+ };
31
+ this.saveDirect(def);
32
+ });
33
+ }
34
+ }
35
+ getIndex() {
36
+ if (typeof window === 'undefined' || !window.localStorage) {
37
+ return [];
38
+ }
39
+ try {
40
+ const raw = window.localStorage.getItem(INDEX_KEY);
41
+ return raw ? JSON.parse(raw) : [];
42
+ }
43
+ catch {
44
+ return [];
45
+ }
46
+ }
47
+ saveIndex(index) {
48
+ if (typeof window !== 'undefined' && window.localStorage) {
49
+ window.localStorage.setItem(INDEX_KEY, JSON.stringify(index));
50
+ }
51
+ }
52
+ saveDirect(def) {
53
+ if (typeof window === 'undefined' || !window.localStorage) {
54
+ return;
55
+ }
56
+ window.localStorage.setItem(STORAGE_PREFIX + def.id, JSON.stringify(def));
57
+ const index = this.getIndex();
58
+ if (!index.includes(def.id)) {
59
+ index.push(def.id);
60
+ this.saveIndex(index);
61
+ }
62
+ }
63
+ load(reportId) {
64
+ if (typeof window === 'undefined' || !window.localStorage) {
65
+ return throwError(() => new Error('LocalStorage is not available in current environment.'));
66
+ }
67
+ const raw = window.localStorage.getItem(STORAGE_PREFIX + reportId);
68
+ if (raw) {
69
+ try {
70
+ const def = JSON.parse(raw);
71
+ return of(def);
72
+ }
73
+ catch (err) {
74
+ return throwError(() => new Error(`Failed to parse report "${reportId}" from LocalStorage.`));
75
+ }
76
+ }
77
+ // Fallback: check template service blueprints
78
+ if (this.templateService) {
79
+ const bp = this.templateService.getTemplateById(reportId);
80
+ if (bp) {
81
+ const def = {
82
+ ...bp.definition,
83
+ id: bp.id,
84
+ parameters: bp.definition.parameters || [],
85
+ layout: bp.definition.layout,
86
+ dataSources: bp.definition.dataSources,
87
+ components: bp.definition.components,
88
+ grid: bp.definition.grid,
89
+ };
90
+ this.saveDirect(def);
91
+ return of(def);
92
+ }
93
+ }
94
+ return throwError(() => new Error(`Report definition with ID "${reportId}" not found in LocalStorage.`));
95
+ }
96
+ save(report) {
97
+ if (typeof window === 'undefined' || !window.localStorage) {
98
+ return throwError(() => new Error('LocalStorage is not available in current environment.'));
99
+ }
100
+ try {
101
+ this.saveDirect(report);
102
+ return of(report);
103
+ }
104
+ catch (err) {
105
+ return throwError(() => err instanceof Error ? err : new Error(String(err)));
106
+ }
107
+ }
108
+ list() {
109
+ if (typeof window === 'undefined' || !window.localStorage) {
110
+ return of([]);
111
+ }
112
+ const index = this.getIndex();
113
+ const summaries = [];
114
+ for (const id of index) {
115
+ const raw = window.localStorage.getItem(STORAGE_PREFIX + id);
116
+ if (raw) {
117
+ try {
118
+ const def = JSON.parse(raw);
119
+ summaries.push({
120
+ id: def.id,
121
+ name: def.name,
122
+ description: def.description,
123
+ category: def.category,
124
+ version: def.version,
125
+ isPublished: !!def.isPublished,
126
+ lastModified: def.updatedAt ?? def.createdAt,
127
+ lastModifiedBy: def.updatedBy,
128
+ });
129
+ }
130
+ catch { }
131
+ }
132
+ }
133
+ return of(summaries);
134
+ }
135
+ delete(reportId) {
136
+ if (typeof window !== 'undefined' && window.localStorage) {
137
+ window.localStorage.removeItem(STORAGE_PREFIX + reportId);
138
+ const index = this.getIndex().filter((id) => id !== reportId);
139
+ this.saveIndex(index);
140
+ }
141
+ return of(undefined);
142
+ }
143
+ publish(reportId, version) {
144
+ const raw = typeof window !== 'undefined' && window.localStorage
145
+ ? window.localStorage.getItem(STORAGE_PREFIX + reportId)
146
+ : null;
147
+ if (raw) {
148
+ try {
149
+ const def = JSON.parse(raw);
150
+ def.version = version;
151
+ def.isPublished = true;
152
+ this.saveDirect(def);
153
+ }
154
+ catch { }
155
+ }
156
+ return of(undefined);
157
+ }
158
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageReportPersistenceAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
159
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageReportPersistenceAdapter, providedIn: 'root' });
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalStorageReportPersistenceAdapter, decorators: [{
162
+ type: Injectable,
163
+ args: [{
164
+ providedIn: 'root',
165
+ }]
166
+ }], ctorParameters: () => [] });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1wZXJzaXN0ZW5jZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvYWRhcHRlcnMvbG9jYWwtc3RvcmFnZS1wZXJzaXN0ZW5jZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOztBQUVqRyxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUN4QyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztBQUtwQyxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsd0JBQXdCO0lBQy9ELGVBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVyRjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLDRCQUE0QjtRQUNsQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxD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QUFDLEdBQUcsQ0FBcUIsQ0FBQztnQkFDaEQsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ3RCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7d0dBbEtVLG9DQUFvQzs0R0FBcEMsb0NBQW9DLGNBRm5DLE1BQU07OzRGQUVQLG9DQUFvQztrQkFIaEQsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIgfSBmcm9tICcuLi9jb250cmFjdHMvcmVwb3J0LXBlcnNpc3RlbmNlLmNvbnRyYWN0JztcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb24sIFJlcG9ydFN1bW1hcnkgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnRUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mZWF0dXJlcy9kZXNpZ25lci9zZXJ2aWNlcy9yZXBvcnQtdGVtcGxhdGUuc2VydmljZSc7XG5cbmNvbnN0IFNUT1JBR0VfUFJFRklYID0gJ2J3YXlzX3JwdF9kZWZfJztcbmNvbnN0IElOREVYX0tFWSA9ICdid2F5c19ycHRfaW5kZXgnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIGV4dGVuZHMgUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZVNlcnZpY2UgPSBpbmplY3QoUmVwb3J0VGVtcGxhdGVTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZWVkRGVmYXVsdEJsdWVwcmludHNJZkVtcHR5KCk7XG4gIH1cblxuICBwcml2YXRlIHNlZWREZWZhdWx0Qmx1ZXByaW50c0lmRW1wdHkoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleCgpO1xuICAgIGlmIChpbmRleC5sZW5ndGggPT09IDAgJiYgdGhpcy50ZW1wbGF0ZVNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGJsdWVwcmludHMgPSB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZXMoKTtcbiAgICAgIGJsdWVwcmludHMuZm9yRWFjaCgoYnApID0+IHtcbiAgICAgICAgY29uc3QgZGVmOiBSZXBvcnREZWZpbml0aW9uID0ge1xuICAgICAgICAgIC4uLmJwLmRlZmluaXRpb24sXG4gICAgICAgICAgaWQ6IGJwLmlkLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IGJwLmRlZmluaXRpb24ucGFyYW1ldGVycyB8fCBbXSxcbiAgICAgICAgICBsYXlvdXQ6IGJwLmRlZmluaXRpb24ubGF5b3V0LFxuICAgICAgICAgIGRhdGFTb3VyY2VzOiBicC5kZWZpbml0aW9uLmRhdGFTb3VyY2VzLFxuICAgICAgICAgIGNvbXBvbmVudHM6IGJwLmRlZmluaXRpb24uY29tcG9uZW50cyxcbiAgICAgICAgICBncmlkOiBicC5kZWZpbml0aW9uLmdyaWQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2F2ZURpcmVjdChkZWYpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleCgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oSU5ERVhfS0VZKTtcbiAgICAgIHJldHVybiByYXcgPyBKU09OLnBhcnNlKHJhdykgOiBbXTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVJbmRleChpbmRleDogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmxvY2FsU3RvcmFnZSkge1xuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKElOREVYX0tFWSwgSlNPTi5zdHJpbmdpZnkoaW5kZXgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVEaXJlY3QoZGVmOiBSZXBvcnREZWZpbml0aW9uKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX1BSRUZJWCArIGRlZi5pZCwgSlNPTi5zdHJpbmdpZnkoZGVmKSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEluZGV4KCk7XG4gICAgaWYgKCFpbmRleC5pbmNsdWRlcyhkZWYuaWQpKSB7XG4gICAgICBpbmRleC5wdXNoKGRlZi5pZCk7XG4gICAgICB0aGlzLnNhdmVJbmRleChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgbG9hZChyZXBvcnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uPiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ0xvY2FsU3RvcmFnZSBpcyBub3QgYXZhaWxhYmxlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQuJykpO1xuICAgIH1cblxuICAgIGNvbnN0IHJhdyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX1BSRUZJWCArIHJlcG9ydElkKTtcbiAgICBpZiAocmF3KSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkZWYgPSBKU09OLnBhcnNlKHJhdykgYXMgUmVwb3J0RGVmaW5pdGlvbjtcbiAgICAgICAgcmV0dXJuIG9mKGRlZik7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgcmVwb3J0IFwiJHtyZXBvcnRJZH1cIiBmcm9tIExvY2FsU3RvcmFnZS5gKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2s6IGNoZWNrIHRlbXBsYXRlIHNlcnZpY2UgYmx1ZXByaW50c1xuICAgIGlmICh0aGlzLnRlbXBsYXRlU2VydmljZSkge1xuICAgICAgY29uc3QgYnAgPSB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZUJ5SWQocmVwb3J0SWQpO1xuICAgICAgaWYgKGJwKSB7XG4gICAgICAgIGNvbnN0IGRlZjogUmVwb3J0RGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICAuLi5icC5kZWZpbml0aW9uLFxuICAgICAgICAgIGlkOiBicC5pZCxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiBicC5kZWZpbml0aW9uLnBhcmFtZXRlcnMgfHwgW10sXG4gICAgICAgICAgbGF5b3V0OiBicC5kZWZpbml0aW9uLmxheW91dCxcbiAgICAgICAgICBkYXRhU291cmNlczogYnAuZGVmaW5pdGlvbi5kYXRhU291cmNlcyxcbiAgICAgICAgICBjb21wb25lbnRzOiBicC5kZWZpbml0aW9uLmNvbXBvbmVudHMsXG4gICAgICAgICAgZ3JpZDogYnAuZGVmaW5pdGlvbi5ncmlkLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNhdmVEaXJlY3QoZGVmKTtcbiAgICAgICAgcmV0dXJuIG9mKGRlZik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBSZXBvcnQgZGVmaW5pdGlvbiB3aXRoIElEIFwiJHtyZXBvcnRJZH1cIiBub3QgZm91bmQgaW4gTG9jYWxTdG9yYWdlLmApKTtcbiAgfVxuXG4gIHNhdmUocmVwb3J0OiBSZXBvcnREZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uPiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ0xvY2FsU3RvcmFnZSBpcyBub3QgYXZhaWxhYmxlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQuJykpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnNhdmVEaXJlY3QocmVwb3J0KTtcbiAgICAgIHJldHVybiBvZihyZXBvcnQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIgOiBuZXcgRXJyb3IoU3RyaW5nKGVycikpKTtcbiAgICB9XG4gIH1cblxuICBsaXN0KCk6IE9ic2VydmFibGU8UmVwb3J0U3VtbWFyeVtdPiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleCgpO1xuICAgIGNvbnN0IHN1bW1hcmllczogUmVwb3J0U3VtbWFyeVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGlkIG9mIGluZGV4KSB7XG4gICAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9QUkVGSVggKyBpZCk7XG4gICAgICBpZiAocmF3KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGVmID0gSlNPTi5wYXJzZShyYXcpIGFzIFJlcG9ydERlZmluaXRpb247XG4gICAgICAgICAgc3VtbWFyaWVzLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGRlZi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGRlZi5uYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGRlZi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBkZWYuY2F0ZWdvcnksXG4gICAgICAgICAgICB2ZXJzaW9uOiBkZWYudmVyc2lvbixcbiAgICAgICAgICAgIGlzUHVibGlzaGVkOiAhIWRlZi5pc1B1Ymxpc2hlZCxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZDogZGVmLnVwZGF0ZWRBdCA/PyBkZWYuY3JlYXRlZEF0LFxuICAgICAgICAgICAgbGFzdE1vZGlmaWVkQnk6IGRlZi51cGRhdGVkQnksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2gge31cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb2Yoc3VtbWFyaWVzKTtcbiAgfVxuXG4gIGRlbGV0ZShyZXBvcnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShTVE9SQUdFX1BSRUZJWCArIHJlcG9ydElkKTtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleCgpLmZpbHRlcigoaWQpID0+IGlkICE9PSByZXBvcnRJZCk7XG4gICAgICB0aGlzLnNhdmVJbmRleChpbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGlzaChyZXBvcnRJZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCByYXcgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlXG4gICAgICA/IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShTVE9SQUdFX1BSRUZJWCArIHJlcG9ydElkKVxuICAgICAgOiBudWxsO1xuXG4gICAgaWYgKHJhdykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGVmID0gSlNPTi5wYXJzZShyYXcpIGFzIFJlcG9ydERlZmluaXRpb247XG4gICAgICAgIGRlZi52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgZGVmLmlzUHVibGlzaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zYXZlRGlyZWN0KGRlZik7XG4gICAgICB9IGNhdGNoIHt9XG4gICAgfVxuICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { ReportDataSourceAdapter } from '../contracts/data-source.contract';
4
+ import * as i0 from "@angular/core";
5
+ export class MockReportDataSourceAdapter extends ReportDataSourceAdapter {
6
+ execute(dataSource, parameters) {
7
+ const rowCount = 20;
8
+ const branches = ['Headquarters (HQ)', 'APAC Hub', 'EMEA Office', 'Americas'];
9
+ const statuses = ['Completed', 'Pending', 'In Review', 'Approved'];
10
+ const actions = ['User Login', 'Invoice Created', 'Rate Revision', 'Payment Received', 'Audit Check'];
11
+ const users = ['john.doe', 'sarah.connor', 'admin', 'alex.smith'];
12
+ const branchFilter = parameters['branch'] || parameters['@Branch'] || parameters['branchId'];
13
+ const rows = [];
14
+ const baseDate = new Date();
15
+ for (let i = 1; i <= rowCount; i++) {
16
+ const dt = new Date(baseDate.getTime() - i * 86400000 * 1.5);
17
+ const branch = branches[(i - 1) % branches.length];
18
+ if (branchFilter && String(branchFilter) !== '' && !branch.toLowerCase().includes(String(branchFilter).toLowerCase())) {
19
+ continue;
20
+ }
21
+ rows.push({
22
+ id: i,
23
+ timestamp: dt.toISOString().slice(0, 16).replace('T', ' '),
24
+ transDate: dt.toISOString().slice(0, 10),
25
+ date: dt.toISOString().slice(0, 10),
26
+ invoiceId: `INV-2026-${1000 + i}`,
27
+ documentNo: `DOC-${2000 + i}`,
28
+ orderId: `ORD-${3000 + i}`,
29
+ recordRef: `REF-${4000 + i}`,
30
+ userName: users[(i - 1) % users.length],
31
+ user: users[(i - 1) % users.length],
32
+ branch,
33
+ actionType: actions[(i - 1) % actions.length],
34
+ action: actions[(i - 1) % actions.length],
35
+ status: statuses[(i - 1) % statuses.length],
36
+ department: ['Sales', 'Finance', 'Logistics', 'Operations'][(i - 1) % 4],
37
+ customerName: ['Acme Global', 'Stark Industries', 'Wayne Enterprises', 'Cyberdyne Systems'][(i - 1) % 4],
38
+ description: `Standard transaction record #${i}`,
39
+ debit: (i * 125.5).toFixed(2),
40
+ credit: (i % 3 === 0 ? i * 85.0 : 0).toFixed(2),
41
+ balance: (i * 450.75).toFixed(2),
42
+ amount: (i * 240.5).toFixed(2),
43
+ targetRevenue: 50000 + i * 2500,
44
+ actualRevenue: 48000 + i * 2600,
45
+ variance: 100 * i,
46
+ achievementPct: `${Math.min(100, 92 + (i % 9))}%`,
47
+ });
48
+ }
49
+ return of(rows);
50
+ }
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MockReportDataSourceAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
52
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MockReportDataSourceAdapter, providedIn: 'root' });
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MockReportDataSourceAdapter, decorators: [{
55
+ type: Injectable,
56
+ args: [{
57
+ providedIn: 'root',
58
+ }]
59
+ }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1kYXRhc291cmNlLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9tb2NrLWRhdGFzb3VyY2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBTTVFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFDdEUsT0FBTyxDQUNMLFVBQXNDLEVBQ3RDLFVBQW1DO1FBRW5DLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuRSxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdEcsTUFBTSxLQUFLLEdBQUcsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVsRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3RixNQUFNLElBQUksR0FBOEIsRUFBRSxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFNUIs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QyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsYUFBYSxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSTtnQkFDL0IsYUFBYSxFQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSTtnQkFDL0IsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRzthQUNsRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQzt3R0F0RFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsY0FGMUIsTUFBTTs7NEZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4uL2NvbnRyYWN0cy9kYXRhLXNvdXJjZS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1kYXRhc291cmNlLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vY2tSZXBvcnREYXRhU291cmNlQWRhcHRlciBleHRlbmRzIFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIHtcbiAgZXhlY3V0ZShcbiAgICBkYXRhU291cmNlOiBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbixcbiAgICBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xuICAgIGNvbnN0IHJvd0NvdW50ID0gMjA7XG4gICAgY29uc3QgYnJhbmNoZXMgPSBbJ0hlYWRxdWFydGVycyAoSFEpJywgJ0FQQUMgSHViJywgJ0VNRUEgT2ZmaWNlJywgJ0FtZXJpY2FzJ107XG4gICAgY29uc3Qgc3RhdHVzZXMgPSBbJ0NvbXBsZXRlZCcsICdQZW5kaW5nJywgJ0luIFJldmlldycsICdBcHByb3ZlZCddO1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbJ1VzZXIgTG9naW4nLCAnSW52b2ljZSBDcmVhdGVkJywgJ1JhdGUgUmV2aXNpb24nLCAnUGF5bWVudCBSZWNlaXZlZCcsICdBdWRpdCBDaGVjayddO1xuICAgIGNvbnN0IHVzZXJzID0gWydqb2huLmRvZScsICdzYXJhaC5jb25ub3InLCAnYWRtaW4nLCAnYWxleC5zbWl0aCddO1xuXG4gICAgY29uc3QgYnJhbmNoRmlsdGVyID0gcGFyYW1ldGVyc1snYnJhbmNoJ10gfHwgcGFyYW1ldGVyc1snQEJyYW5jaCddIHx8IHBhcmFtZXRlcnNbJ2JyYW5jaElkJ107XG5cbiAgICBjb25zdCByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdID0gW107XG4gICAgY29uc3QgYmFzZURhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gcm93Q291bnQ7IGkrKykge1xuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShiYXNlRGF0ZS5nZXRUaW1lKCkgLSBpICogODY0MDAwMDAgKiAxLjUpO1xuICAgICAgY29uc3QgYnJhbmNoID0gYnJhbmNoZXNbKGkgLSAxKSAlIGJyYW5jaGVzLmxlbmd0aF07XG5cbiAgICAgIGlmIChicmFuY2hGaWx0ZXIgJiYgU3RyaW5nKGJyYW5jaEZpbHRlcikgIT09ICcnICYmICFicmFuY2gudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhTdHJpbmcoYnJhbmNoRmlsdGVyKS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgcm93cy5wdXNoKHtcbiAgICAgICAgaWQ6IGksXG4gICAgICAgIHRpbWVzdGFtcDogZHQudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxNikucmVwbGFjZSgnVCcsICcgJyksXG4gICAgICAgIHRyYW5zRGF0ZTogZHQudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCksXG4gICAgICAgIGRhdGU6IGR0LnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTApLFxuICAgICAgICBpbnZvaWNlSWQ6IGBJTlYtMjAyNi0kezEwMDAgKyBpfWAsXG4gICAgICAgIGRvY3VtZW50Tm86IGBET0MtJHsyMDAwICsgaX1gLFxuICAgICAgICBvcmRlcklkOiBgT1JELSR7MzAwMCArIGl9YCxcbiAgICAgICAgcmVjb3JkUmVmOiBgUkVGLSR7NDAwMCArIGl9YCxcbiAgICAgICAgdXNlck5hbWU6IHVzZXJzWyhpIC0gMSkgJSB1c2Vycy5sZW5ndGhdLFxuICAgICAgICB1c2VyOiB1c2Vyc1soaSAtIDEpICUgdXNlcnMubGVuZ3RoXSxcbiAgICAgICAgYnJhbmNoLFxuICAgICAgICBhY3Rpb25UeXBlOiBhY3Rpb25zWyhpIC0gMSkgJSBhY3Rpb25zLmxlbmd0aF0sXG4gICAgICAgIGFjdGlvbjogYWN0aW9uc1soaSAtIDEpICUgYWN0aW9ucy5sZW5ndGhdLFxuICAgICAgICBzdGF0dXM6IHN0YXR1c2VzWyhpIC0gMSkgJSBzdGF0dXNlcy5sZW5ndGhdLFxuICAgICAgICBkZXBhcnRtZW50OiBbJ1NhbGVzJywgJ0ZpbmFuY2UnLCAnTG9naXN0aWNzJywgJ09wZXJhdGlvbnMnXVsoaSAtIDEpICUgNF0sXG4gICAgICAgIGN1c3RvbWVyTmFtZTogWydBY21lIEdsb2JhbCcsICdTdGFyayBJbmR1c3RyaWVzJywgJ1dheW5lIEVudGVycHJpc2VzJywgJ0N5YmVyZHluZSBTeXN0ZW1zJ11bKGkgLSAxKSAlIDRdLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFN0YW5kYXJkIHRyYW5zYWN0aW9uIHJlY29yZCAjJHtpfWAsXG4gICAgICAgIGRlYml0OiAoaSAqIDEyNS41KS50b0ZpeGVkKDIpLFxuICAgICAgICBjcmVkaXQ6IChpICUgMyA9PT0gMCA/IGkgKiA4NS4wIDogMCkudG9GaXhlZCgyKSxcbiAgICAgICAgYmFsYW5jZTogKGkgKiA0NTAuNzUpLnRvRml4ZWQoMiksXG4gICAgICAgIGFtb3VudDogKGkgKiAyNDAuNSkudG9GaXhlZCgyKSxcbiAgICAgICAgdGFyZ2V0UmV2ZW51ZTogNTAwMDAgKyBpICogMjUwMCxcbiAgICAgICAgYWN0dWFsUmV2ZW51ZTogNDgwMDAgKyBpICogMjYwMCxcbiAgICAgICAgdmFyaWFuY2U6IDEwMCAqIGksXG4gICAgICAgIGFjaGlldmVtZW50UGN0OiBgJHtNYXRoLm1pbigxMDAsIDkyICsgKGkgJSA5KSl9JWAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2Yocm93cyk7XG4gIH1cbn1cbiJdfQ==