bways-report 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +463 -316
- package/esm2022/lib/core/config/bways-report-config.mjs +29 -32
- package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
- package/esm2022/lib/core/services/report-api-execution.service.mjs +33 -11
- package/esm2022/lib/core/services/report-session-context.service.mjs +72 -3
- package/esm2022/lib/core/tokens/designer-config.token.mjs +4 -0
- package/esm2022/lib/core/tokens/reporting-config.token.mjs +1 -1
- package/esm2022/lib/core/utils/report-endpoint.util.mjs +22 -0
- package/esm2022/lib/core/utils/report-request-scope.mjs +48 -0
- package/esm2022/lib/data-access/adapters/endpoint-datasource.adapter.mjs +8 -1
- package/esm2022/lib/data-access/adapters/endpoint-lookup.adapter.mjs +5 -2
- package/esm2022/lib/data-access/adapters/endpoint-masterdata.adapter.mjs +5 -2
- package/esm2022/lib/data-access/adapters/endpoint-persistence.adapter.mjs +30 -14
- package/esm2022/lib/data-access/adapters/endpoint-schema-discovery.adapter.mjs +32 -28
- package/esm2022/lib/data-access/adapters/endpoint-tokens.mjs +1 -1
- package/esm2022/lib/data-access/adapters/http-datasource.adapter.mjs +4 -37
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +4 -50
- package/esm2022/lib/data-access/adapters/http-persistence.adapter.mjs +43 -194
- package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +17 -65
- package/esm2022/lib/data-access/adapters/index.mjs +1 -1
- package/esm2022/lib/data-access/adapters/local-storage-persistence.adapter.mjs +13 -4
- package/esm2022/lib/data-access/adapters/report-id-availability.mjs +20 -0
- package/esm2022/lib/data-access/adapters/session-headers.mjs +11 -0
- package/esm2022/lib/data-access/contracts/index.mjs +1 -1
- package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +13 -1
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +50 -40
- package/esm2022/lib/features/designer/components/dialogs/report-saved-dialog.component.mjs +546 -119
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +12 -6
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +9 -8
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +9 -4
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +54 -32
- package/esm2022/lib/features/designer/designer.component.mjs +100 -67
- package/esm2022/lib/features/designer/rpt-report-designer.component.mjs +10 -4
- package/esm2022/lib/features/designer/services/designer-config.service.mjs +56 -0
- package/esm2022/lib/features/designer/services/designer-endpoints.service.mjs +155 -0
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +3 -2
- package/esm2022/lib/features/embed/bways-report-builder.component.mjs +3 -3
- package/esm2022/lib/features/export/services/report-export.service.mjs +11 -6
- package/esm2022/lib/features/persistence/services/report-store.service.mjs +78 -23
- package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +59 -3
- package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +12 -17
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +5 -3
- package/esm2022/lib/features/routing/report-routes.mjs +6 -6
- package/esm2022/lib/features/routing/resolvers/report-route-identifier.mjs +5 -0
- package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +3 -2
- package/esm2022/lib/features/runtime/report-execution.service.mjs +18 -5
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +4 -2
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +94 -71
- package/esm2022/lib/features/runtime/rpt-report.component.mjs +49 -41
- package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +7 -2
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +13 -1
- package/esm2022/lib/provide-reporting.mjs +9 -29
- package/fesm2022/bways-report.mjs +1789 -1041
- package/fesm2022/bways-report.mjs.map +1 -1
- package/lib/core/config/bways-report-config.d.ts +14 -5
- package/lib/core/models/report-datasource.model.d.ts +5 -0
- package/lib/core/services/report-session-context.service.d.ts +9 -0
- package/lib/core/tokens/designer-config.token.d.ts +4 -0
- package/lib/core/tokens/reporting-config.token.d.ts +4 -0
- package/lib/core/utils/report-endpoint.util.d.ts +12 -0
- package/lib/core/utils/report-request-scope.d.ts +14 -0
- package/lib/data-access/adapters/endpoint-persistence.adapter.d.ts +6 -2
- package/lib/data-access/adapters/endpoint-schema-discovery.adapter.d.ts +4 -2
- package/lib/data-access/adapters/endpoint-tokens.d.ts +4 -0
- package/lib/data-access/adapters/http-datasource.adapter.d.ts +1 -3
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +1 -3
- package/lib/data-access/adapters/http-persistence.adapter.d.ts +11 -16
- package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +3 -5
- package/lib/data-access/adapters/index.d.ts +1 -1
- package/lib/data-access/adapters/local-storage-persistence.adapter.d.ts +2 -2
- package/lib/data-access/adapters/report-id-availability.d.ts +6 -0
- package/lib/data-access/adapters/session-headers.d.ts +3 -0
- package/lib/data-access/contracts/index.d.ts +1 -0
- package/lib/data-access/contracts/report-persistence.contract.d.ts +16 -1
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +2 -0
- package/lib/features/designer/components/dialogs/report-saved-dialog.component.d.ts +37 -5
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +4 -3
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +1 -0
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +1 -0
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +7 -1
- package/lib/features/designer/designer.component.d.ts +15 -2
- package/lib/features/designer/rpt-report-designer.component.d.ts +5 -1
- package/lib/features/designer/services/designer-config.service.d.ts +13 -0
- package/lib/features/designer/services/designer-endpoints.service.d.ts +25 -0
- package/lib/features/persistence/services/report-store.service.d.ts +15 -1
- package/lib/features/persistence/services/schema-validator.service.d.ts +2 -0
- package/lib/features/routing/resolvers/report-route-identifier.d.ts +2 -0
- package/lib/features/runtime/report-execution.service.d.ts +3 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +1 -0
- package/lib/features/runtime/report-runtime.component.d.ts +1 -0
- package/lib/features/runtime/rpt-report.component.d.ts +5 -0
- package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +3 -1
- package/package.json +2 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';
|
|
2
|
+
import { reportRouteIdentifier } from '../resolvers/report-route-identifier';
|
|
2
3
|
import { CommonModule } from '@angular/common';
|
|
3
4
|
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
4
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -13,19 +14,20 @@ export class RoutedReportRuntimeComponent {
|
|
|
13
14
|
destroyRef = inject(DestroyRef);
|
|
14
15
|
report = signal(null);
|
|
15
16
|
loading = signal(true);
|
|
16
|
-
canEdit = signal(
|
|
17
|
+
canEdit = signal(false);
|
|
17
18
|
ngOnInit() {
|
|
18
19
|
// Check if route resolved the report
|
|
19
20
|
this.route.data
|
|
20
21
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
21
22
|
.subscribe((data) => {
|
|
23
|
+
this.canEdit.set(data['canEdit'] === true);
|
|
22
24
|
if (data && data['report']) {
|
|
23
25
|
this.report.set(data['report']);
|
|
24
26
|
this.loading.set(false);
|
|
25
27
|
return;
|
|
26
28
|
}
|
|
27
29
|
// Otherwise fallback to resolving via paramMap
|
|
28
|
-
const identifier =
|
|
30
|
+
const identifier = reportRouteIdentifier(this.route.snapshot);
|
|
29
31
|
if (identifier) {
|
|
30
32
|
this.store.loadReportBySlug(identifier)
|
|
31
33
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
@@ -160,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
160
162
|
</div>
|
|
161
163
|
`, styles: [".rpt-routed-container{display:flex;flex-direction:column;gap:var(--rpt-space-md, 16px);width:100%;min-height:100%;box-sizing:border-box;padding:var(--rpt-space-md, 16px)}.rpt-routed-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--rpt-space-sm, 8px);border-bottom:1px solid var(--rpt-border-color, #e2e8f0)}.rpt-routed-title-row{display:flex;align-items:center;gap:12px}.rpt-routed-title{font-size:1.25rem;font-weight:700;color:var(--rpt-text-color, #0f172a);margin:0}.rpt-routed-version{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:9999px;background:var(--rpt-bg-subtle, #f1f5f9);color:var(--rpt-text-muted, #64748b)}.rpt-routed-loading,.rpt-routed-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--rpt-text-muted, #64748b)}.rpt-error-card{background:var(--rpt-surface-bg, #ffffff);border:1px solid var(--rpt-border-color, #e2e8f0);border-radius:var(--rpt-radius-md, 8px);padding:32px 40px;box-shadow:var(--rpt-shadow-sm, 0 1px 3px rgba(0,0,0,.05))}.rpt-error-card h3{color:var(--rpt-error-color, #ef4444);margin-top:0}.rpt-spinner{width:36px;height:36px;border:3px solid var(--rpt-border-color, #e2e8f0);border-top-color:var(--rpt-primary, #2563eb);border-radius:50%;animation:rpt-spin .8s linear infinite;margin-bottom:12px}@keyframes rpt-spin{to{transform:rotate(360deg)}}.rpt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;font-size:.875rem;font-weight:500;border-radius:var(--rpt-radius-md, 6px);cursor:pointer;border:1px solid transparent;transition:all .15s ease}.rpt-btn-sm{padding:5px 10px;font-size:.8125rem}.rpt-btn-primary{background:var(--rpt-primary, #2563eb);color:#fff}.rpt-btn-primary:hover{background:var(--rpt-primary-hover, #1d4ed8)}.rpt-btn-secondary{background:var(--rpt-surface-bg, #ffffff);color:var(--rpt-text-color, #1e293b);border-color:var(--rpt-border-color, #cbd5e1)}.rpt-btn-secondary:hover{background:var(--rpt-bg-subtle, #f8fafc)}.rpt-btn-ghost{background:transparent;color:var(--rpt-text-muted, #64748b)}.rpt-btn-ghost:hover{color:var(--rpt-text-color, #1e293b);background:var(--rpt-bg-subtle, #f1f5f9)}\n"] }]
|
|
162
164
|
}] });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVkLXJlcG9ydC1ydW50aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2ZlYXR1cmVzL3JvdXRpbmcvY29tcG9uZW50cy9yb3V0ZWQtcmVwb3J0LXJ1bnRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFHVixNQUFNLEVBQ04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUFxTDFGLE1BQU0sT0FBTyw0QkFBNEI7SUFDdEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sR0FBRyxNQUFNLENBQTBCLElBQUksQ0FBQyxDQUFDO0lBQy9DLE9BQU8sR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDaEMsT0FBTyxHQUFHLE1BQU0sQ0FBVSxJQUFJLENB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ICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBPbkluaXQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUmVwb3J0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzJztcbmltcG9ydCB7IFJlcG9ydFN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL3BlcnNpc3RlbmNlL3NlcnZpY2VzL3JlcG9ydC1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9ydFJ1bnRpbWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ydW50aW1lL3JlcG9ydC1ydW50aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBScHRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vcHJpbWl0aXZlcy9jb21wb25lbnRzL2ljb24vcnB0LWljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnB0LXJvdXRlZC1ydW50aW1lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBSZXBvcnRSdW50aW1lQ29tcG9uZW50LCBScHRJY29uQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInJwdC1yb3V0ZWQtY29udGFpbmVyXCI+XG4gICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicnB0LXJvdXRlZC1sb2FkaW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJwdC1zcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgPHA+TG9hZGluZyByZXBvcnQgZGVmaW5pdGlvbi4uLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIGlmIChyZXBvcnQoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicnB0LXJvdXRlZC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicnB0LXJvdXRlZC10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicnB0LWJ0biBycHQtYnRuLWdob3N0IHJwdC1idG4tc21cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgICB0aXRsZT1cIkdvIGJhY2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cnB0LWljb24gbmFtZT1cImFycm93LWxlZnRcIiBbc2l6ZV09XCIxNFwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPkJhY2s8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxoMSBjbGFzcz1cInJwdC1yb3V0ZWQtdGl0bGVcIj57eyByZXBvcnQoKT8ubmFtZSB9fTwvaDE+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJwdC1yb3V0ZWQtdmVyc2lvblwiPnZ7eyByZXBvcnQoKT8udmVyc2lvbiA/PyAxIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmIChjYW5FZGl0KCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicnB0LWJ0biBycHQtYnRuLXNlY29uZGFyeSBycHQtYnRuLXNtXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRSZXBvcnQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxycHQtaWNvbiBuYW1lPVwic2V0dGluZ3NcIiBbc2l6ZV09XCIxNFwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPkVkaXQgUmVwb3J0PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8cnB0LXJ1bnRpbWUgW3JlcG9ydF09XCJyZXBvcnQoKSFcIiAoZXhlY3V0ZSk9XCJvblJlcG9ydEV4ZWN1dGVkKCRldmVudClcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJycHQtcm91dGVkLWVycm9yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJwdC1lcnJvci1jYXJkXCI+XG4gICAgICAgICAgICA8aDM+UmVwb3J0IE5vdCBGb3VuZDwvaDM+XG4gICAgICAgICAgICA8cD5UaGUgcmVxdWVzdGVkIHJlcG9ydCBjb3VsZCBub3QgYmUgZm91bmQgb3IgaGFzIG5vdCBiZWVuIHB1Ymxpc2hlZCB5ZXQuPC9wPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJycHQtYnRuIHJwdC1idG4tcHJpbWFyeVwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAgICBSZXR1cm4gdG8gUHJldmlvdXMgUGFnZVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLnJwdC1yb3V0ZWQtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiB2YXIoLS1ycHQtc3BhY2UtbWQsIDE2cHgpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXJwdC1zcGFjZS1tZCwgMTZweCk7XG4gICAgfVxuXG4gICAgLnJwdC1yb3V0ZWQtaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXJwdC1zcGFjZS1zbSwgOHB4KTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ycHQtYm9yZGVyLWNvbG9yLCAjZTJlOGYwKTtcbiAgICB9XG5cbiAgICAucnB0LXJvdXRlZC10aXRsZS1yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgLnJwdC1yb3V0ZWQtdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1ycHQtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnJwdC1yb3V0ZWQtdmVyc2lvbiB7XG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJwdC1iZy1zdWJ0bGUsICNmMWY1ZjkpO1xuICAgICAgY29sb3I6IHZhcigtLXJwdC10ZXh0LW11dGVkLCAjNjQ3NDhiKTtcbiAgICB9XG5cbiAgICAucnB0LXJvdXRlZC1sb2FkaW5nLFxuICAgIC5ycHQtcm91dGVkLWVycm9yIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZzogNjBweCAyMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6IHZhcigtLXJwdC10ZXh0LW11dGVkLCAjNjQ3NDhiKTtcbiAgICB9XG5cbiAgICAucnB0LWVycm9yLWNhcmQge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcnB0LXN1cmZhY2UtYmcsICNmZmZmZmYpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcnB0LWJvcmRlci1jb2xvciwgI2UyZThmMCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ycHQtcmFkaXVzLW1kLCA4cHgpO1xuICAgICAgcGFkZGluZzogMzJweCA0MHB4O1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tcnB0LXNoYWRvdy1zbSwgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNSkpO1xuICAgIH1cblxuICAgIC5ycHQtZXJyb3ItY2FyZCBoMyB7XG4gICAgICBjb2xvcjogdmFyKC0tcnB0LWVycm9yLWNvbG9yLCAjZWY0NDQ0KTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLnJwdC1zcGlubmVyIHtcbiAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tcnB0LWJvcmRlci1jb2xvciwgI2UyZThmMCk7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ycHQtcHJpbWFyeSwgIzI1NjNlYik7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBhbmltYXRpb246IHJwdC1zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHJwdC1zcGluIHtcbiAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxuICAgIH1cblxuICAgIC5ycHQtYnRuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcnB0LXJhZGl1cy1tZCwgNnB4KTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgfVxuXG4gICAgLnJwdC1idG4tc20ge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICB9XG5cbiAgICAucnB0LWJ0bi1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJwdC1wcmltYXJ5LCAjMjU2M2ViKTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cbiAgICAucnB0LWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJwdC1wcmltYXJ5LWhvdmVyLCAjMWQ0ZWQ4KTtcbiAgICB9XG5cbiAgICAucnB0LWJ0bi1zZWNvbmRhcnkge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcnB0LXN1cmZhY2UtYmcsICNmZmZmZmYpO1xuICAgICAgY29sb3I6IHZhcigtLXJwdC10ZXh0LWNvbG9yLCAjMWUyOTNiKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcnB0LWJvcmRlci1jb2xvciwgI2NiZDVlMSk7XG4gICAgfVxuICAgIC5ycHQtYnRuLXNlY29uZGFyeTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ycHQtYmctc3VidGxlLCAjZjhmYWZjKTtcbiAgICB9XG5cbiAgICAucnB0LWJ0bi1naG9zdCB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiB2YXIoLS1ycHQtdGV4dC1tdXRlZCwgIzY0NzQ4Yik7XG4gICAgfVxuICAgIC5ycHQtYnRuLWdob3N0OmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1ycHQtdGV4dC1jb2xvciwgIzFlMjkzYik7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ycHQtYmctc3VidGxlLCAjZjFmNWY5KTtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlZFJlcG9ydFJ1bnRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChSZXBvcnRTdG9yZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcmVhZG9ubHkgcmVwb3J0ID0gc2lnbmFsPFJlcG9ydERlZmluaXRpb24gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgY2FuRWRpdCA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiByb3V0ZSByZXNvbHZlZCB0aGUgcmVwb3J0XG4gICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVsncmVwb3J0J10pIHtcbiAgICAgICAgICB0aGlzLnJlcG9ydC5zZXQoZGF0YVsncmVwb3J0J10pO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE90aGVyd2lzZSBmYWxsYmFjayB0byByZXNvbHZpbmcgdmlhIHBhcmFtTWFwXG4gICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnc2x1ZycpID8/IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdyZXBvcnRJZCcpO1xuICAgICAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgICAgIHRoaXMuc3RvcmUubG9hZFJlcG9ydEJ5U2x1ZyhpZGVudGlmaWVyKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgbmV4dDogKHJlcCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVwb3J0LnNldChyZXApO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVwb3J0LnNldChudWxsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgb25SZXBvcnRFeGVjdXRlZChmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgLy8gSG9zdCBjYW4gb2JzZXJ2ZSBvciBoYW5kbGUgZXhlY3V0aW9ucyBpZiBuZWVkZWRcbiAgfVxuXG4gIGVkaXRSZXBvcnQoKTogdm9pZCB7XG4gICAgY29uc3QgcmVwID0gdGhpcy5yZXBvcnQoKTtcbiAgICBpZiAocmVwKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2VkaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdvQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVkLXJlcG9ydC1ydW50aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2ZlYXR1cmVzL3JvdXRpbmcvY29tcG9uZW50cy9yb3V0ZWQtcmVwb3J0LXJ1bnRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFHVixNQUFNLEVBQ04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUFxTDFGLE1BQU0sT0FBTyw0QkFBNEI7SUFDdEIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sR0FBRyxNQUFNLENBQTBCLElBQUksQ0FBQyxDQUFDO0lBQy9DLE9BQU8sR0FBRyxNQUFNLENBQVUsSUFB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OztHQWdEVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIE9uSW5pdCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVwb3J0Um91dGVJZGVudGlmaWVyIH0gZnJvbSAnLi4vcmVzb2x2ZXJzL3JlcG9ydC1yb3V0ZS1pZGVudGlmaWVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUmVwb3J0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzJztcbmltcG9ydCB7IFJlcG9ydFN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL3BlcnNpc3RlbmNlL3NlcnZpY2VzL3JlcG9ydC1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9ydFJ1bnRpbWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ydW50aW1lL3JlcG9ydC1ydW50aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBScHRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vcHJpbWl0aXZlcy9jb21wb25lbnRzL2ljb24vcnB0LWljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnB0LXJvdXRlZC1ydW50aW1lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBSZXBvcnRSdW50aW1lQ29tcG9uZW50LCBScHRJY29uQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInJwdC1yb3V0ZWQtY29udGFpbmVyXCI+XG4gICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicnB0LXJvdXRlZC1sb2FkaW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJwdC1zcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgPHA+TG9hZGluZyByZXBvcnQgZGVmaW5pdGlvbi4uLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIGlmIChyZXBvcnQoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicnB0LXJvdXRlZC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicnB0LXJvdXRlZC10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicnB0LWJ0biBycHQtYnRuLWdob3N0IHJwdC1idG4tc21cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICAgICAgICB0aXRsZT1cIkdvIGJhY2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cnB0LWljb24gbmFtZT1cImFycm93LWxlZnRcIiBbc2l6ZV09XCIxNFwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPkJhY2s8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxoMSBjbGFzcz1cInJwdC1yb3V0ZWQtdGl0bGVcIj57eyByZXBvcnQoKT8ubmFtZSB9fTwvaDE+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJwdC1yb3V0ZWQtdmVyc2lvblwiPnZ7eyByZXBvcnQoKT8udmVyc2lvbiA/PyAxIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmIChjYW5FZGl0KCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicnB0LWJ0biBycHQtYnRuLXNlY29uZGFyeSBycHQtYnRuLXNtXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRSZXBvcnQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxycHQtaWNvbiBuYW1lPVwic2V0dGluZ3NcIiBbc2l6ZV09XCIxNFwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPkVkaXQgUmVwb3J0PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8cnB0LXJ1bnRpbWUgW3JlcG9ydF09XCJyZXBvcnQoKSFcIiAoZXhlY3V0ZSk9XCJvblJlcG9ydEV4ZWN1dGVkKCRldmVudClcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJycHQtcm91dGVkLWVycm9yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJwdC1lcnJvci1jYXJkXCI+XG4gICAgICAgICAgICA8aDM+UmVwb3J0IE5vdCBGb3VuZDwvaDM+XG4gICAgICAgICAgICA8cD5UaGUgcmVxdWVzdGVkIHJlcG9ydCBjb3VsZCBub3QgYmUgZm91bmQgb3IgaGFzIG5vdCBiZWVuIHB1Ymxpc2hlZCB5ZXQuPC9wPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJycHQtYnRuIHJwdC1idG4tcHJpbWFyeVwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAgICBSZXR1cm4gdG8gUHJldmlvdXMgUGFnZVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLnJwdC1yb3V0ZWQtY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiB2YXIoLS1ycHQtc3BhY2UtbWQsIDE2cHgpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXJwdC1zcGFjZS1tZCwgMTZweCk7XG4gICAgfVxuXG4gICAgLnJwdC1yb3V0ZWQtaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXJwdC1zcGFjZS1zbSwgOHB4KTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ycHQtYm9yZGVyLWNvbG9yLCAjZTJlOGYwKTtcbiAgICB9XG5cbiAgICAucnB0LXJvdXRlZC10aXRsZS1yb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgLnJwdC1yb3V0ZWQtdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1ycHQtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnJwdC1yb3V0ZWQtdmVyc2lvbiB7XG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJwdC1iZy1zdWJ0bGUsICNmMWY1ZjkpO1xuICAgICAgY29sb3I6IHZhcigtLXJwdC10ZXh0LW11dGVkLCAjNjQ3NDhiKTtcbiAgICB9XG5cbiAgICAucnB0LXJvdXRlZC1sb2FkaW5nLFxuICAgIC5ycHQtcm91dGVkLWVycm9yIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZzogNjBweCAyMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6IHZhcigtLXJwdC10ZXh0LW11dGVkLCAjNjQ3NDhiKTtcbiAgICB9XG5cbiAgICAucnB0LWVycm9yLWNhcmQge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcnB0LXN1cmZhY2UtYmcsICNmZmZmZmYpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcnB0LWJvcmRlci1jb2xvciwgI2UyZThmMCk7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ycHQtcmFkaXVzLW1kLCA4cHgpO1xuICAgICAgcGFkZGluZzogMzJweCA0MHB4O1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tcnB0LXNoYWRvdy1zbSwgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNSkpO1xuICAgIH1cblxuICAgIC5ycHQtZXJyb3ItY2FyZCBoMyB7XG4gICAgICBjb2xvcjogdmFyKC0tcnB0LWVycm9yLWNvbG9yLCAjZWY0NDQ0KTtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgLnJwdC1zcGlubmVyIHtcbiAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tcnB0LWJvcmRlci1jb2xvciwgI2UyZThmMCk7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ycHQtcHJpbWFyeSwgIzI1NjNlYik7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBhbmltYXRpb246IHJwdC1zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHJwdC1zcGluIHtcbiAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxuICAgIH1cblxuICAgIC5ycHQtYnRuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcnB0LXJhZGl1cy1tZCwgNnB4KTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgfVxuXG4gICAgLnJwdC1idG4tc20ge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICB9XG5cbiAgICAucnB0LWJ0bi1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJwdC1wcmltYXJ5LCAjMjU2M2ViKTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cbiAgICAucnB0LWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXJwdC1wcmltYXJ5LWhvdmVyLCAjMWQ0ZWQ4KTtcbiAgICB9XG5cbiAgICAucnB0LWJ0bi1zZWNvbmRhcnkge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcnB0LXN1cmZhY2UtYmcsICNmZmZmZmYpO1xuICAgICAgY29sb3I6IHZhcigtLXJwdC10ZXh0LWNvbG9yLCAjMWUyOTNiKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcnB0LWJvcmRlci1jb2xvciwgI2NiZDVlMSk7XG4gICAgfVxuICAgIC5ycHQtYnRuLXNlY29uZGFyeTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ycHQtYmctc3VidGxlLCAjZjhmYWZjKTtcbiAgICB9XG5cbiAgICAucnB0LWJ0bi1naG9zdCB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiB2YXIoLS1ycHQtdGV4dC1tdXRlZCwgIzY0NzQ4Yik7XG4gICAgfVxuICAgIC5ycHQtYnRuLWdob3N0OmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1ycHQtdGV4dC1jb2xvciwgIzFlMjkzYik7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ycHQtYmctc3VidGxlLCAjZjFmNWY5KTtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlZFJlcG9ydFJ1bnRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChSZXBvcnRTdG9yZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcmVhZG9ubHkgcmVwb3J0ID0gc2lnbmFsPFJlcG9ydERlZmluaXRpb24gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgY2FuRWRpdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgcm91dGUgcmVzb2x2ZWQgdGhlIHJlcG9ydFxuICAgIHRoaXMucm91dGUuZGF0YVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuY2FuRWRpdC5zZXQoZGF0YVsnY2FuRWRpdCddID09PSB0cnVlKTtcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVsncmVwb3J0J10pIHtcbiAgICAgICAgICB0aGlzLnJlcG9ydC5zZXQoZGF0YVsncmVwb3J0J10pO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE90aGVyd2lzZSBmYWxsYmFjayB0byByZXNvbHZpbmcgdmlhIHBhcmFtTWFwXG4gICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSByZXBvcnRSb3V0ZUlkZW50aWZpZXIodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XG4gICAgICAgIGlmIChpZGVudGlmaWVyKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5sb2FkUmVwb3J0QnlTbHVnKGlkZW50aWZpZXIpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBuZXh0OiAocmVwKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXBvcnQuc2V0KHJlcCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXBvcnQuc2V0KG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBvblJlcG9ydEV4ZWN1dGVkKGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICAvLyBIb3N0IGNhbiBvYnNlcnZlIG9yIGhhbmRsZSBleGVjdXRpb25zIGlmIG5lZWRlZFxuICB9XG5cbiAgZWRpdFJlcG9ydCgpOiB2b2lkIHtcbiAgICBjb25zdCByZXAgPSB0aGlzLnJlcG9ydCgpO1xuICAgIGlmIChyZXApIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZWRpdCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cbiAgZ29CYWNrKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxufVxuIl19
|
|
@@ -19,7 +19,7 @@ export function createReportRoutes(config) {
|
|
|
19
19
|
const enableDesigner = config?.enableDesignerRoutes !== false;
|
|
20
20
|
const runtimeGuards = config?.runtimeGuards ?? [];
|
|
21
21
|
const designerGuards = config?.designerGuards ?? [];
|
|
22
|
-
const extraData = config?.extraRouteData
|
|
22
|
+
const extraData = { ...config?.extraRouteData, reportIdParam: reportParam };
|
|
23
23
|
const routes = [];
|
|
24
24
|
if (enableDesigner) {
|
|
25
25
|
routes.push({
|
|
@@ -42,7 +42,7 @@ export function createReportRoutes(config) {
|
|
|
42
42
|
report: reportResolver
|
|
43
43
|
},
|
|
44
44
|
canActivate: runtimeGuards,
|
|
45
|
-
data: { ...extraData }
|
|
45
|
+
data: { ...extraData, canEdit: enableDesigner }
|
|
46
46
|
});
|
|
47
47
|
return routes;
|
|
48
48
|
}
|
|
@@ -67,13 +67,13 @@ export function bwaysReportRoutes(options) {
|
|
|
67
67
|
path: 'new',
|
|
68
68
|
component: RoutedReportDesignerComponent,
|
|
69
69
|
canActivate: options.builderGuards ?? [],
|
|
70
|
-
data: { isNew: true, ...(options.extraData ?? {}) }
|
|
70
|
+
data: { isNew: true, ...(options.extraData ?? {}), reportIdParam: param }
|
|
71
71
|
});
|
|
72
72
|
routes.push({
|
|
73
73
|
path: `:${param}/edit`,
|
|
74
74
|
component: RoutedReportDesignerComponent,
|
|
75
75
|
canActivate: options.builderGuards ?? [],
|
|
76
|
-
data: { isEdit: true, ...(options.extraData ?? {}) }
|
|
76
|
+
data: { isEdit: true, ...(options.extraData ?? {}), reportIdParam: param }
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
routes.push({
|
|
@@ -83,8 +83,8 @@ export function bwaysReportRoutes(options) {
|
|
|
83
83
|
report: reportResolver
|
|
84
84
|
},
|
|
85
85
|
canActivate: options?.runtimeGuards ?? [],
|
|
86
|
-
data: { ...(options?.extraData ?? {}) }
|
|
86
|
+
data: { ...(options?.extraData ?? {}), reportIdParam: param, canEdit: !!options?.includeBuilder }
|
|
87
87
|
});
|
|
88
88
|
return routes;
|
|
89
89
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2ZlYXR1cmVzL3JvdXRpbmcvcmVwb3J0LXJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDNUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFOUY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQTRCO0lBQzdELE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxhQUFhLElBQUksVUFBVSxDQUFDO0lBQ3hELE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxvQkFBb0IsS0FBSyxLQUFLLENBQUM7SUFDOUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUM7SUFDbEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLGNBQWMsSUFBSSxFQUFFLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBRTVFLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUUxQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDVixJQUFJLEVBQUUsS0FBSztZQUNYLFNBQVMsRUFBRSw2QkFBNkI7WUFDeEMsV0FBVyxFQUFFLGNBQWM7WUFDM0IsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFNBQVMsRUFBRTtTQUNwQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsSUFBSSxFQUFFLElBQUksV0FBVyxPQUFPO1lBQzVCLFNBQVMsRUFBRSw2QkFBNkI7WUFDeEMsV0FBVyxFQUFFLGNBQWM7WUFDM0IsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFNBQVMsRUFBRTtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNWLElBQUksRUFBRSxJQUFJLFdBQVcsRUFBRTtRQUN2QixTQUFTLEVBQUUsNEJBQTRCO1FBQ3ZDLE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxjQUFjO1NBQ3ZCO1FBQ0QsV0FBVyxFQUFFLGFBQWE7UUFDMUIsSUFBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRTtLQUNoRCxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBaUNEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUFrQztJQUNsRSxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFFMUIsSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNWLElBQUksRUFBRSxLQUFLO1lBQ1gsU0FBUyxFQUFFLDZCQUE2QjtZQUN4QyxXQUFXLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ3hDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRTtTQUMxRSxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsSUFBSSxFQUFFLElBQUksS0FBSyxPQUFPO1lBQ3RCLFNBQVMsRUFBRSw2QkFBNkI7WUFDeEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRTtZQUN4QyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUU7U0FDM0UsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDVixJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUU7UUFDakIsU0FBUyxFQUFFLDRCQUE0QjtRQUN2QyxPQUFPLEVBQUU7WUFDUCxNQUFNLEVBQUUsY0FBYztTQUN2QjtRQUNELFdBQVcsRUFBRSxPQUFPLEVBQUUsYUFBYSxJQUFJLEVBQUU7UUFDekMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUU7S0FDbEcsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSZXBvcnRSb3V0aW5nQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvcmVwb3J0LXJvdXRlLm1vZGVscyc7XG5pbXBvcnQgeyByZXBvcnRSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL3JlcG9ydC5yZXNvbHZlcic7XG5pbXBvcnQgeyBSb3V0ZWRSZXBvcnRSdW50aW1lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlZC1yZXBvcnQtcnVudGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm91dGVkUmVwb3J0RGVzaWduZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVkLXJlcG9ydC1kZXNpZ25lci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBBbmd1bGFyIFJvdXRlIGRlZmluaXRpb25zIGZvciBkeW5hbWljIHJlcG9ydGluZyBwYWdlcyBpbiBhIGhvc3QgYXBwbGljYXRpb24uXG4gKlxuICogRXhhbXBsZSB1c2FnZSBpbiBob3N0IGFwcCdzIGFwcC5yb3V0ZXMudHM6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBleHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHtcbiAqICAgICBwYXRoOiAncmVwb3J0cycsXG4gKiAgICAgY2hpbGRyZW46IGNyZWF0ZVJlcG9ydFJvdXRlcygpXG4gKiAgIH1cbiAqIF07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcG9ydFJvdXRlcyhjb25maWc/OiBSZXBvcnRSb3V0aW5nQ29uZmlnKTogUm91dGVzIHtcbiAgY29uc3QgcmVwb3J0UGFyYW0gPSBjb25maWc/LnJlcG9ydElkUGFyYW0gPz8gJ3JlcG9ydElkJztcbiAgY29uc3QgZW5hYmxlRGVzaWduZXIgPSBjb25maWc/LmVuYWJsZURlc2lnbmVyUm91dGVzICE9PSBmYWxzZTtcbiAgY29uc3QgcnVudGltZUd1YXJkcyA9IGNvbmZpZz8ucnVudGltZUd1YXJkcyA/PyBbXTtcbiAgY29uc3QgZGVzaWduZXJHdWFyZHMgPSBjb25maWc/LmRlc2lnbmVyR3VhcmRzID8/IFtdO1xuICBjb25zdCBleHRyYURhdGEgPSB7IC4uLmNvbmZpZz8uZXh0cmFSb3V0ZURhdGEsIHJlcG9ydElkUGFyYW06IHJlcG9ydFBhcmFtIH07XG5cbiAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXTtcblxuICBpZiAoZW5hYmxlRGVzaWduZXIpIHtcbiAgICByb3V0ZXMucHVzaCh7XG4gICAgICBwYXRoOiAnbmV3JyxcbiAgICAgIGNvbXBvbmVudDogUm91dGVkUmVwb3J0RGVzaWduZXJDb21wb25lbnQsXG4gICAgICBjYW5BY3RpdmF0ZTogZGVzaWduZXJHdWFyZHMsXG4gICAgICBkYXRhOiB7IGlzTmV3OiB0cnVlLCAuLi5leHRyYURhdGEgfVxuICAgIH0pO1xuXG4gICAgcm91dGVzLnB1c2goe1xuICAgICAgcGF0aDogYDoke3JlcG9ydFBhcmFtfS9lZGl0YCxcbiAgICAgIGNvbXBvbmVudDogUm91dGVkUmVwb3J0RGVzaWduZXJDb21wb25lbnQsXG4gICAgICBjYW5BY3RpdmF0ZTogZGVzaWduZXJHdWFyZHMsXG4gICAgICBkYXRhOiB7IGlzRWRpdDogdHJ1ZSwgLi4uZXh0cmFEYXRhIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJvdXRlcy5wdXNoKHtcbiAgICBwYXRoOiBgOiR7cmVwb3J0UGFyYW19YCxcbiAgICBjb21wb25lbnQ6IFJvdXRlZFJlcG9ydFJ1bnRpbWVDb21wb25lbnQsXG4gICAgcmVzb2x2ZToge1xuICAgICAgcmVwb3J0OiByZXBvcnRSZXNvbHZlclxuICAgIH0sXG4gICAgY2FuQWN0aXZhdGU6IHJ1bnRpbWVHdWFyZHMsXG4gICAgZGF0YTogeyAuLi5leHRyYURhdGEsIGNhbkVkaXQ6IGVuYWJsZURlc2lnbmVyIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGBid2F5c1JlcG9ydFJvdXRlc2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQndheXNSZXBvcnRSb3V0ZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBkZXNpZ25lci9idWlsZGVyIHJvdXRlcyAoJ25ldycgYW5kICc6c2x1Zy9lZGl0JykuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlIChzaW5jZSBkZXZlbG9wZXJzIGNhbiBlbWJlZCA8YndheXMtcmVwb3J0LWJ1aWxkZXI+IGRpcmVjdGx5KS5cbiAgICovXG4gIGluY2x1ZGVCdWlsZGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3VzdG9tIHJvdXRlIGd1YXJkcyBmb3IgbGl2ZSByZXBvcnQgcGFnZXMuXG4gICAqL1xuICBydW50aW1lR3VhcmRzPzogYW55W107XG5cbiAgLyoqXG4gICAqIEN1c3RvbSByb3V0ZSBndWFyZHMgZm9yIGJ1aWxkZXIvZGVzaWduZXIgcGFnZXMgaWYgZW5hYmxlZC5cbiAgICovXG4gIGJ1aWxkZXJHdWFyZHM/OiBhbnlbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIHJvdXRlIHBhcmFtZXRlciBuYW1lLiBEZWZhdWx0cyB0byAnc2x1ZycuXG4gICAqL1xuICBzbHVnUGFyYW0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4dHJhIHN0YXRpYyBkYXRhIHBhc3NlZCBpbnRvIHRoZSByb3V0ZSBkZWZpbml0aW9ucy5cbiAgICovXG4gIGV4dHJhRGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIERyb3AtaW4gcm91dGUgZGVmaW5pdGlvbnMgZm9yIGJ3YXlzLXJlcG9ydC5cbiAqXG4gKiBFeGFtcGxlIHVzYWdlIGluIGhvc3QgYXBwbGljYXRpb24gYGFwcC5yb3V0ZXMudHNgOlxuICogYGBgdHlwZXNjcmlwdFxuICogZXhwb3J0IGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICogICB7XG4gKiAgICAgcGF0aDogJ3JlcG9ydHMnLFxuICogICAgIGNoaWxkcmVuOiBid2F5c1JlcG9ydFJvdXRlcygpICAvLyAvcmVwb3J0cy86c2x1ZyAtPiBsaXZlIHJlcG9ydCBwYWdlXG4gKiAgIH1cbiAqIF07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ3YXlzUmVwb3J0Um91dGVzKG9wdGlvbnM/OiBCd2F5c1JlcG9ydFJvdXRlc09wdGlvbnMpOiBSb3V0ZXMge1xuICBjb25zdCBwYXJhbSA9IG9wdGlvbnM/LnNsdWdQYXJhbSA/PyAnc2x1Zyc7XG4gIGNvbnN0IHJvdXRlczogUm91dGVzID0gW107XG5cbiAgaWYgKG9wdGlvbnM/LmluY2x1ZGVCdWlsZGVyKSB7XG4gICAgcm91dGVzLnB1c2goe1xuICAgICAgcGF0aDogJ25ldycsXG4gICAgICBjb21wb25lbnQ6IFJvdXRlZFJlcG9ydERlc2lnbmVyQ29tcG9uZW50LFxuICAgICAgY2FuQWN0aXZhdGU6IG9wdGlvbnMuYnVpbGRlckd1YXJkcyA/PyBbXSxcbiAgICAgIGRhdGE6IHsgaXNOZXc6IHRydWUsIC4uLihvcHRpb25zLmV4dHJhRGF0YSA/PyB7fSksIHJlcG9ydElkUGFyYW06IHBhcmFtIH1cbiAgICB9KTtcblxuICAgIHJvdXRlcy5wdXNoKHtcbiAgICAgIHBhdGg6IGA6JHtwYXJhbX0vZWRpdGAsXG4gICAgICBjb21wb25lbnQ6IFJvdXRlZFJlcG9ydERlc2lnbmVyQ29tcG9uZW50LFxuICAgICAgY2FuQWN0aXZhdGU6IG9wdGlvbnMuYnVpbGRlckd1YXJkcyA/PyBbXSxcbiAgICAgIGRhdGE6IHsgaXNFZGl0OiB0cnVlLCAuLi4ob3B0aW9ucy5leHRyYURhdGEgPz8ge30pLCByZXBvcnRJZFBhcmFtOiBwYXJhbSB9XG4gICAgfSk7XG4gIH1cblxuICByb3V0ZXMucHVzaCh7XG4gICAgcGF0aDogYDoke3BhcmFtfWAsXG4gICAgY29tcG9uZW50OiBSb3V0ZWRSZXBvcnRSdW50aW1lQ29tcG9uZW50LFxuICAgIHJlc29sdmU6IHtcbiAgICAgIHJlcG9ydDogcmVwb3J0UmVzb2x2ZXJcbiAgICB9LFxuICAgIGNhbkFjdGl2YXRlOiBvcHRpb25zPy5ydW50aW1lR3VhcmRzID8/IFtdLFxuICAgIGRhdGE6IHsgLi4uKG9wdGlvbnM/LmV4dHJhRGF0YSA/PyB7fSksIHJlcG9ydElkUGFyYW06IHBhcmFtLCBjYW5FZGl0OiAhIW9wdGlvbnM/LmluY2x1ZGVCdWlsZGVyIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJvdXRlcztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export function reportRouteIdentifier(route) {
|
|
2
|
+
const key = route.data?.['reportIdParam'];
|
|
3
|
+
return (key ? route.paramMap.get(key) : null) ?? route.paramMap.get('slug') ?? route.paramMap.get('reportId');
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJvdXRlLWlkZW50aWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9mZWF0dXJlcy9yb3V0aW5nL3Jlc29sdmVycy9yZXBvcnQtcm91dGUtaWRlbnRpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBNkI7SUFDakUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBdUIsQ0FBQztJQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0Um91dGVJZGVudGlmaWVyKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGtleSA9IHJvdXRlLmRhdGE/LlsncmVwb3J0SWRQYXJhbSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmV0dXJuIChrZXkgPyByb3V0ZS5wYXJhbU1hcC5nZXQoa2V5KSA6IG51bGwpID8/IHJvdXRlLnBhcmFtTWFwLmdldCgnc2x1ZycpID8/IHJvdXRlLnBhcmFtTWFwLmdldCgncmVwb3J0SWQnKTtcbn1cbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { reportRouteIdentifier } from './report-route-identifier';
|
|
1
2
|
import { inject } from '@angular/core';
|
|
2
3
|
import { of } from 'rxjs';
|
|
3
4
|
import { catchError } from 'rxjs/operators';
|
|
@@ -8,7 +9,7 @@ import { ReportStoreService } from '../../persistence/services/report-store.serv
|
|
|
8
9
|
*/
|
|
9
10
|
export const reportResolver = (route, _state) => {
|
|
10
11
|
const store = inject(ReportStoreService);
|
|
11
|
-
const identifier =
|
|
12
|
+
const identifier = reportRouteIdentifier(route);
|
|
12
13
|
if (!identifier) {
|
|
13
14
|
return of(null);
|
|
14
15
|
}
|
|
@@ -17,4 +18,4 @@ export const reportResolver = (route, _state) => {
|
|
|
17
18
|
return of(null);
|
|
18
19
|
}));
|
|
19
20
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZmVhdHVyZXMvcm91dGluZy9yZXNvbHZlcnMvcmVwb3J0LnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFckY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUF1QyxDQUNoRSxLQUE2QixFQUM3QixNQUEyQixFQUNVLEVBQUU7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzVDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLFVBQVUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXBvcnRSb3V0ZUlkZW50aWZpZXIgfSBmcm9tICcuL3JlcG9ydC1yb3V0ZS1pZGVudGlmaWVyJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZUZuLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XG5pbXBvcnQgeyBSZXBvcnRTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wZXJzaXN0ZW5jZS9zZXJ2aWNlcy9yZXBvcnQtc3RvcmUuc2VydmljZSc7XG5cbi8qKlxuICogRnVuY3Rpb25hbCByZXNvbHZlciB0aGF0IGZldGNoZXMgYSBSZXBvcnREZWZpbml0aW9uIHVzaW5nIFJlcG9ydFN0b3JlU2VydmljZVxuICogYmFzZWQgb24gdGhlIDpzbHVnIG9yIDpyZXBvcnRJZCByb3V0ZSBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvcnRSZXNvbHZlcjogUmVzb2x2ZUZuPFJlcG9ydERlZmluaXRpb24gfCBudWxsPiA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIF9zdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uIHwgbnVsbD4gPT4ge1xuICBjb25zdCBzdG9yZSA9IGluamVjdChSZXBvcnRTdG9yZVNlcnZpY2UpO1xuICBjb25zdCBpZGVudGlmaWVyID0gcmVwb3J0Um91dGVJZGVudGlmaWVyKHJvdXRlKTtcblxuICBpZiAoIWlkZW50aWZpZXIpIHtcbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cblxuICByZXR1cm4gc3RvcmUubG9hZFJlcG9ydEJ5U2x1ZyhpZGVudGlmaWVyKS5waXBlKFxuICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihgW2J3YXlzLXJlcG9ydF0gRmFpbGVkIHRvIHJlc29sdmUgcmVwb3J0ICcke2lkZW50aWZpZXJ9JzpgLCBlcnIpO1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH0pXG4gICk7XG59O1xuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { BWAYS_REPORT_ENDPOINTS } from '../../data-access/adapters/endpoint-tokens';
|
|
2
|
+
import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
|
|
1
3
|
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import { throwError } from 'rxjs';
|
|
4
|
+
import { throwError, map, timeout, take } from 'rxjs';
|
|
3
5
|
import { ReportDataSourceAdapter } from '../../data-access/contracts/data-source.contract';
|
|
4
6
|
import { ReportSessionContextService } from '../../core/services/report-session-context.service';
|
|
5
7
|
import { ReportApiExecutionService } from '../../core/services/report-api-execution.service';
|
|
@@ -10,6 +12,17 @@ import * as i0 from "@angular/core";
|
|
|
10
12
|
* Live Preview and the designer canvas so all three behave identically.
|
|
11
13
|
*/
|
|
12
14
|
export class ReportExecutionService {
|
|
15
|
+
config = inject(REPORTING_CONFIG, { optional: true });
|
|
16
|
+
endpoints = inject(BWAYS_REPORT_ENDPOINTS, { optional: true });
|
|
17
|
+
guard(source) {
|
|
18
|
+
const context = () => JSON.stringify([this.session?.getCurrentSessionContext() ?? {}, this.endpoints ? { ...this.endpoints } : null]);
|
|
19
|
+
const captured = context();
|
|
20
|
+
return source.pipe(take(1), timeout({ first: this.config?.executionTimeoutMs ?? this.config?.lookupTimeoutMs ?? 300000 }), map(value => {
|
|
21
|
+
if (captured !== context())
|
|
22
|
+
throw new Error('Reporting context changed. Please run the report again.');
|
|
23
|
+
return value;
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
13
26
|
adapter = inject(ReportDataSourceAdapter, { optional: true });
|
|
14
27
|
session = inject(ReportSessionContextService, { optional: true });
|
|
15
28
|
apiExecutionService = inject(ReportApiExecutionService, { optional: true });
|
|
@@ -49,19 +62,19 @@ export class ReportExecutionService {
|
|
|
49
62
|
ds.endpoint.startsWith('https://') ||
|
|
50
63
|
(ds.type !== 'table' && ds.type !== 'view' && ds.type !== 'stored_procedure' && ds.endpoint.startsWith('/'));
|
|
51
64
|
if (isApiSource && this.apiExecutionService) {
|
|
52
|
-
return this.apiExecutionService.executeApi({
|
|
65
|
+
return this.guard(this.apiExecutionService.executeApi({
|
|
53
66
|
endpoint: ds.endpoint,
|
|
54
67
|
method: ds.method,
|
|
55
68
|
dataPath: ds.dataPath,
|
|
56
69
|
headers: ds.headers,
|
|
57
70
|
useProxy: ds.useProxy,
|
|
58
71
|
bodyTemplate: ds.bodyTemplate,
|
|
59
|
-
}, flattenedFormValues, resolved);
|
|
72
|
+
}, flattenedFormValues, resolved));
|
|
60
73
|
}
|
|
61
74
|
if (!this.adapter) {
|
|
62
75
|
return throwError(() => new Error('No ReportDataSourceAdapter provided to execute the data source.'));
|
|
63
76
|
}
|
|
64
|
-
return this.adapter.execute({ ...ds, name: ds.name || ds.endpoint, type: ds.type ?? 'stored_procedure' }, params);
|
|
77
|
+
return this.guard(this.adapter.execute({ ...ds, name: ds.name || ds.endpoint, type: ds.type ?? 'stored_procedure' }, params));
|
|
65
78
|
}
|
|
66
79
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportExecutionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
80
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportExecutionService, providedIn: 'root' });
|
|
@@ -70,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
70
83
|
type: Injectable,
|
|
71
84
|
args: [{ providedIn: 'root' }]
|
|
72
85
|
}] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWV4ZWN1dGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZmVhdHVyZXMvcnVudGltZS9yZXBvcnQtZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQix3QkFBd0IsR0FDekIsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFFaEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTdGLDhFQUE4RTtJQUM5RSxnQkFBZ0IsQ0FBQyxHQUFxQixFQUFFLFVBQW1DO1FBQ3pFLE1BQU0sRUFBRSxHQUFHLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sdUJBQXVCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FB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QyxRQUFRO2dCQUNyQixZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVk7YUFDOUIsRUFDRCxtQkFBbUIsRUFDbkIsUUFBUSxDQUNULENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ3pCLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxrQkFBa0IsRUFBRSxFQUM1RSxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7d0dBekVVLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4uLy4uL2RhdGEtYWNjZXNzL2NvbnRyYWN0cy9kYXRhLXNvdXJjZS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9yZXBvcnQtYXBpLWV4ZWN1dGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGZpbmRNaXNzaW5nQ2FudmFzRmllbGRzLFxuICByZXNvbHZlRXhlY3V0aW9uRGF0YVNvdXJjZSxcbiAgcmVzb2x2ZVBhcmFtZXRlck1hcHBpbmdzLFxufSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL3JlcG9ydC1wYXJhbWV0ZXIudXRpbCc7XG5cbi8qKlxuICogUnVucyBhIHJlcG9ydCdzIHJlc3VsdCBxdWVyeS4gU2hhcmVkIGJ5IHRoZSBMaXZlIFJ1bnRpbWUsIHRoZSBkZXNpZ25lcidzXG4gKiBMaXZlIFByZXZpZXcgYW5kIHRoZSBkZXNpZ25lciBjYW52YXMgc28gYWxsIHRocmVlIGJlaGF2ZSBpZGVudGljYWxseS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRFeGVjdXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhZGFwdGVyID0gaW5qZWN0KFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwaUV4ZWN1dGlvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKiogQ2FudmFzIGZpZWxkIGtleXMgdGhlIHVzZXIgc3RpbGwgaGFzIHRvIGZpbGwgYmVmb3JlIHRoZSByZXBvcnQgY2FuIHJ1bi4gKi9cbiAgZ2V0TWlzc2luZ0ZpZWxkcyhkZWY6IFJlcG9ydERlZmluaXRpb24sIGZvcm1WYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGRzID0gcmVzb2x2ZUV4ZWN1dGlvbkRhdGFTb3VyY2UoZGVmKTtcbiAgICByZXR1cm4gZmluZE1pc3NpbmdDYW52YXNGaWVsZHMoZHM/LnBhcmFtZXRlck1hcHBpbmdzLCBmb3JtVmFsdWVzKTtcbiAgfVxuXG4gIGV4ZWN1dGUoZGVmOiBSZXBvcnREZWZpbml0aW9uLCBmb3JtVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgY29uc3QgZHMgPSByZXNvbHZlRXhlY3V0aW9uRGF0YVNvdXJjZShkZWYpO1xuICAgIGlmICghZHMpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICdObyBkYXRhIHNvdXJjZSBjb25maWd1cmVkLiBTZWxlY3QgdGhlIFJ1biBSZXBvcnQgYnV0dG9uIGFuZCBjaG9vc2UgYSBzdG9yZWQgcHJvY2VkdXJlIGluIGl0cyBSZXBvcnQgRGF0YSBzZWN0aW9uLidcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb24/LmdldEN1cnJlbnRTZXNzaW9uQ29udGV4dCgpID8/IHt9O1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVBhcmFtZXRlck1hcHBpbmdzKGRzLnBhcmFtZXRlck1hcHBpbmdzLCBzZXNzaW9uLCBmb3JtVmFsdWVzKTtcblxuICAgIC8vIEV4cGFuZCBjb21wb3VuZCBvYmplY3RzIChlLmcuIGRhdGVSYW5nZTogeyBmcm9tLCB0byB9KSBpbnRvIHRvcC1sZXZlbCBwYXJhbWV0ZXJzXG4gICAgY29uc3QgZmxhdHRlbmVkRm9ybVZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmZvcm1WYWx1ZXMgfTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhmb3JtVmFsdWVzKSkge1xuICAgICAgaWYgKHYgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIGlmICgnZnJvbScgaW4gb2JqICYmICd0bycgaW4gb2JqKSB7XG4gICAgICAgICAgZmxhdHRlbmVkRm9ybVZhbHVlc1tgJHtrfV9mcm9tYF0gPSBvYmpbJ2Zyb20nXTtcbiAgICAgICAgICBmbGF0dGVuZWRGb3JtVmFsdWVzW2Ake2t9X3RvYF0gPSBvYmpbJ3RvJ107XG4gICAgICAgICAgZmxhdHRlbmVkRm9ybVZhbHVlc1tgJHtrfUZyb21gXSA9IG9ialsnZnJvbSddO1xuICAgICAgICAgIGZsYXR0ZW5lZEZvcm1WYWx1ZXNbYCR7a31Ub2BdID0gb2JqWyd0byddO1xuICAgICAgICAgIGlmICghZmxhdHRlbmVkRm9ybVZhbHVlc1snZnJvbURhdGUnXSkgZmxhdHRlbmVkRm9ybVZhbHVlc1snZnJvbURhdGUnXSA9IG9ialsnZnJvbSddO1xuICAgICAgICAgIGlmICghZmxhdHRlbmVkRm9ybVZhbHVlc1sndG9EYXRlJ10pIGZsYXR0ZW5lZEZvcm1WYWx1ZXNbJ3RvRGF0ZSddID0gb2JqWyd0byddO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5mbGF0dGVuZWRGb3JtVmFsdWVzLCAuLi5yZXNvbHZlZCB9O1xuXG4gICAgLy8gRGVsZWdhdGUgdG8gUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSBpZiBkYXRhIHNvdXJjZSBpcyBhbiBBUEkgZW5kcG9pbnRcbiAgICBjb25zdCBpc0FwaVNvdXJjZSA9XG4gICAgICBkcy50eXBlID09PSAnYXBpJyB8fFxuICAgICAgZHMuZW5kcG9pbnQuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8XG4gICAgICBkcy5lbmRwb2ludC5zdGFydHNXaXRoKCdodHRwczovLycpIHx8XG4gICAgICAoZHMudHlwZSAhPT0gJ3RhYmxlJyAmJiBkcy50eXBlICE9PSAndmlldycgJiYgZHMudHlwZSAhPT0gJ3N0b3JlZF9wcm9jZWR1cmUnICYmIGRzLmVuZHBvaW50LnN0YXJ0c1dpdGgoJy8nKSk7XG5cbiAgICBpZiAoaXNBcGlTb3VyY2UgJiYgdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlLmV4ZWN1dGVBcGkoXG4gICAgICAgIHtcbiAgICAgICAgICBlbmRwb2ludDogZHMuZW5kcG9pbnQsXG4gICAgICAgICAgbWV0aG9kOiBkcy5tZXRob2QgYXMgYW55LFxuICAgICAgICAgIGRhdGFQYXRoOiBkcy5kYXRhUGF0aCxcbiAgICAgICAgICBoZWFkZXJzOiBkcy5oZWFkZXJzLFxuICAgICAgICAgIHVzZVByb3h5OiBkcy51c2VQcm94eSxcbiAgICAgICAgICBib2R5VGVtcGxhdGU6IGRzLmJvZHlUZW1wbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZmxhdHRlbmVkRm9ybVZhbHVlcyxcbiAgICAgICAgcmVzb2x2ZWRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXIgcHJvdmlkZWQgdG8gZXhlY3V0ZSB0aGUgZGF0YSBzb3VyY2UuJykpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZXhlY3V0ZShcbiAgICAgIHsgLi4uZHMsIG5hbWU6IGRzLm5hbWUgfHwgZHMuZW5kcG9pbnQsIHR5cGU6IGRzLnR5cGUgPz8gJ3N0b3JlZF9wcm9jZWR1cmUnIH0sXG4gICAgICBwYXJhbXNcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWV4ZWN1dGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZmVhdHVyZXMvcnVudGltZS9yZXBvcnQtZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQix3QkFBd0IsR0FDekIsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFFaEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLEtBQUssQ0FBSSxNQUFxQjtRQUNwQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RJLE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLElBQUksTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckksSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztZQUN2RyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBQ2dCLE9BQU8sR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxPQUFPLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEUsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFN0YsOEVBQThFO0lBQzlFLGdCQUFnQixDQUFDLEdBQXFCLEVBQUUsVUFBbUM7UUFDekUsTUFBTSxFQUFFLEdBQUcsMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFxQixFQUFFLFVBQW1DO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sVUFBVSxDQUNmLEdBQUcsRUFBRSxDQUNILElBQUksS0FBSyxDQUNQLG1IQUFtSCxDQUNwSCxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJGLG1GQUFtRjtRQUNuRixNQUFNLG1CQUFtQixHQUE0QixFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDdkUsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sR0FBRyxHQUFHLENBQTRCLENBQUM7Z0JBQ3pDLElBQUksTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ2pDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQy9DLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzlDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7d0JBQUUsbUJBQW1CLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwRixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO3dCQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLG1CQUFtQixFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFFdkQsMEVBQTBFO1FBQzFFLE1BQU0sV0FBVyxHQUNmLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSztZQUNqQixFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDakMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQ2xDLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxrQkFBa0IsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9HLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUNuRDtnQkFDRSxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVE7Z0JBQ3JCLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBYTtnQkFDeEIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRO2dCQUNyQixPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU87Z0JBQ25CLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUTtnQkFDckIsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZO2FBQzlCLEVBQ0QsbUJBQW1CLEVBQ25CLFFBQVEsQ0FDVCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDcEMsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLGtCQUFrQixFQUFFLEVBQzVFLE1BQU0sQ0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQW5GVSxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQURULE1BQU07OzRGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQldBWVNfUkVQT1JUX0VORFBPSU5UUyB9IGZyb20gJy4uLy4uL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2VuZHBvaW50LXRva2Vucyc7XG5pbXBvcnQgeyBSRVBPUlRJTkdfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29yZS90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIG1hcCwgdGltZW91dCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVwb3J0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1kZWZpbml0aW9uLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIH0gZnJvbSAnLi4vLi4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL2RhdGEtc291cmNlLmNvbnRyYWN0JztcbmltcG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9ydEFwaUV4ZWN1dGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1hcGktZXhlY3V0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgZmluZE1pc3NpbmdDYW52YXNGaWVsZHMsXG4gIHJlc29sdmVFeGVjdXRpb25EYXRhU291cmNlLFxuICByZXNvbHZlUGFyYW1ldGVyTWFwcGluZ3MsXG59IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvcmVwb3J0LXBhcmFtZXRlci51dGlsJztcblxuLyoqXG4gKiBSdW5zIGEgcmVwb3J0J3MgcmVzdWx0IHF1ZXJ5LiBTaGFyZWQgYnkgdGhlIExpdmUgUnVudGltZSwgdGhlIGRlc2lnbmVyJ3NcbiAqIExpdmUgUHJldmlldyBhbmQgdGhlIGRlc2lnbmVyIGNhbnZhcyBzbyBhbGwgdGhyZWUgYmVoYXZlIGlkZW50aWNhbGx5LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlcG9ydEV4ZWN1dGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChSRVBPUlRJTkdfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50cyA9IGluamVjdChCV0FZU19SRVBPUlRfRU5EUE9JTlRTLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGd1YXJkPFQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSAoKSA9PiBKU09OLnN0cmluZ2lmeShbdGhpcy5zZXNzaW9uPy5nZXRDdXJyZW50U2Vzc2lvbkNvbnRleHQoKSA/PyB7fSwgdGhpcy5lbmRwb2ludHMgPyB7IC4uLnRoaXMuZW5kcG9pbnRzIH0gOiBudWxsXSk7XG4gICAgY29uc3QgY2FwdHVyZWQgPSBjb250ZXh0KCk7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHRha2UoMSksIHRpbWVvdXQoeyBmaXJzdDogdGhpcy5jb25maWc/LmV4ZWN1dGlvblRpbWVvdXRNcyA/PyB0aGlzLmNvbmZpZz8ubG9va3VwVGltZW91dE1zID8/IDMwMDAwMCB9KSwgbWFwKHZhbHVlID0+IHtcbiAgICAgIGlmIChjYXB0dXJlZCAhPT0gY29udGV4dCgpKSB0aHJvdyBuZXcgRXJyb3IoJ1JlcG9ydGluZyBjb250ZXh0IGNoYW5nZWQuIFBsZWFzZSBydW4gdGhlIHJlcG9ydCBhZ2Fpbi4nKTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KSk7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBhZGFwdGVyID0gaW5qZWN0KFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwaUV4ZWN1dGlvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKiogQ2FudmFzIGZpZWxkIGtleXMgdGhlIHVzZXIgc3RpbGwgaGFzIHRvIGZpbGwgYmVmb3JlIHRoZSByZXBvcnQgY2FuIHJ1bi4gKi9cbiAgZ2V0TWlzc2luZ0ZpZWxkcyhkZWY6IFJlcG9ydERlZmluaXRpb24sIGZvcm1WYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGRzID0gcmVzb2x2ZUV4ZWN1dGlvbkRhdGFTb3VyY2UoZGVmKTtcbiAgICByZXR1cm4gZmluZE1pc3NpbmdDYW52YXNGaWVsZHMoZHM/LnBhcmFtZXRlck1hcHBpbmdzLCBmb3JtVmFsdWVzKTtcbiAgfVxuXG4gIGV4ZWN1dGUoZGVmOiBSZXBvcnREZWZpbml0aW9uLCBmb3JtVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgY29uc3QgZHMgPSByZXNvbHZlRXhlY3V0aW9uRGF0YVNvdXJjZShkZWYpO1xuICAgIGlmICghZHMpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICdObyBkYXRhIHNvdXJjZSBjb25maWd1cmVkLiBTZWxlY3QgdGhlIFJ1biBSZXBvcnQgYnV0dG9uIGFuZCBjaG9vc2UgYSBzdG9yZWQgcHJvY2VkdXJlIGluIGl0cyBSZXBvcnQgRGF0YSBzZWN0aW9uLidcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb24/LmdldEN1cnJlbnRTZXNzaW9uQ29udGV4dCgpID8/IHt9O1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVBhcmFtZXRlck1hcHBpbmdzKGRzLnBhcmFtZXRlck1hcHBpbmdzLCBzZXNzaW9uLCBmb3JtVmFsdWVzKTtcblxuICAgIC8vIEV4cGFuZCBjb21wb3VuZCBvYmplY3RzIChlLmcuIGRhdGVSYW5nZTogeyBmcm9tLCB0byB9KSBpbnRvIHRvcC1sZXZlbCBwYXJhbWV0ZXJzXG4gICAgY29uc3QgZmxhdHRlbmVkRm9ybVZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmZvcm1WYWx1ZXMgfTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhmb3JtVmFsdWVzKSkge1xuICAgICAgaWYgKHYgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIGlmICgnZnJvbScgaW4gb2JqICYmICd0bycgaW4gb2JqKSB7XG4gICAgICAgICAgZmxhdHRlbmVkRm9ybVZhbHVlc1tgJHtrfV9mcm9tYF0gPSBvYmpbJ2Zyb20nXTtcbiAgICAgICAgICBmbGF0dGVuZWRGb3JtVmFsdWVzW2Ake2t9X3RvYF0gPSBvYmpbJ3RvJ107XG4gICAgICAgICAgZmxhdHRlbmVkRm9ybVZhbHVlc1tgJHtrfUZyb21gXSA9IG9ialsnZnJvbSddO1xuICAgICAgICAgIGZsYXR0ZW5lZEZvcm1WYWx1ZXNbYCR7a31Ub2BdID0gb2JqWyd0byddO1xuICAgICAgICAgIGlmICghZmxhdHRlbmVkRm9ybVZhbHVlc1snZnJvbURhdGUnXSkgZmxhdHRlbmVkRm9ybVZhbHVlc1snZnJvbURhdGUnXSA9IG9ialsnZnJvbSddO1xuICAgICAgICAgIGlmICghZmxhdHRlbmVkRm9ybVZhbHVlc1sndG9EYXRlJ10pIGZsYXR0ZW5lZEZvcm1WYWx1ZXNbJ3RvRGF0ZSddID0gb2JqWyd0byddO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5mbGF0dGVuZWRGb3JtVmFsdWVzLCAuLi5yZXNvbHZlZCB9O1xuXG4gICAgLy8gRGVsZWdhdGUgdG8gUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSBpZiBkYXRhIHNvdXJjZSBpcyBhbiBBUEkgZW5kcG9pbnRcbiAgICBjb25zdCBpc0FwaVNvdXJjZSA9XG4gICAgICBkcy50eXBlID09PSAnYXBpJyB8fFxuICAgICAgZHMuZW5kcG9pbnQuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8XG4gICAgICBkcy5lbmRwb2ludC5zdGFydHNXaXRoKCdodHRwczovLycpIHx8XG4gICAgICAoZHMudHlwZSAhPT0gJ3RhYmxlJyAmJiBkcy50eXBlICE9PSAndmlldycgJiYgZHMudHlwZSAhPT0gJ3N0b3JlZF9wcm9jZWR1cmUnICYmIGRzLmVuZHBvaW50LnN0YXJ0c1dpdGgoJy8nKSk7XG5cbiAgICBpZiAoaXNBcGlTb3VyY2UgJiYgdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5ndWFyZCh0aGlzLmFwaUV4ZWN1dGlvblNlcnZpY2UuZXhlY3V0ZUFwaShcbiAgICAgICAge1xuICAgICAgICAgIGVuZHBvaW50OiBkcy5lbmRwb2ludCxcbiAgICAgICAgICBtZXRob2Q6IGRzLm1ldGhvZCBhcyBhbnksXG4gICAgICAgICAgZGF0YVBhdGg6IGRzLmRhdGFQYXRoLFxuICAgICAgICAgIGhlYWRlcnM6IGRzLmhlYWRlcnMsXG4gICAgICAgICAgdXNlUHJveHk6IGRzLnVzZVByb3h5LFxuICAgICAgICAgIGJvZHlUZW1wbGF0ZTogZHMuYm9keVRlbXBsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBmbGF0dGVuZWRGb3JtVmFsdWVzLFxuICAgICAgICByZXNvbHZlZFxuICAgICAgKSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXIgcHJvdmlkZWQgdG8gZXhlY3V0ZSB0aGUgZGF0YSBzb3VyY2UuJykpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmd1YXJkKHRoaXMuYWRhcHRlci5leGVjdXRlKFxuICAgICAgeyAuLi5kcywgbmFtZTogZHMubmFtZSB8fCBkcy5lbmRwb2ludCwgdHlwZTogZHMudHlwZSA/PyAnc3RvcmVkX3Byb2NlZHVyZScgfSxcbiAgICAgIHBhcmFtc1xuICAgICkpO1xuICB9XG59XG4iXX0=
|