@gnggln/ng-ui-system 1.0.0-alpha.7 → 1.0.0-alpha.8
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/esm2022/lib/components/base-layout/base-layout.component.mjs +25 -26
- package/esm2022/lib/components/page-header/breadcrumb.service.mjs +5 -4
- package/fesm2022/gnggln-ng-ui-system.mjs +24 -23
- package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
- package/lib/components/base-layout/base-layout.component.d.ts +7 -10
- package/lib/components/page-header/breadcrumb.service.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Component, DestroyRef,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { Location } from '@angular/common';
|
|
4
3
|
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
5
|
-
import {
|
|
6
|
-
import { UiPageHeaderComponent } from '../page-header/page-header.component';
|
|
7
|
-
import { UiBreadcrumbService } from '../page-header/breadcrumb.service';
|
|
4
|
+
import { debounceTime, filter } from 'rxjs/operators';
|
|
8
5
|
import { UiButtonAreaComponent } from '../button/button-area.component';
|
|
6
|
+
import { UiBreadcrumbService } from '../page-header/breadcrumb.service';
|
|
7
|
+
import { UiPageHeaderComponent } from '../page-header/page-header.component';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
/**
|
|
11
10
|
* Full-page layout component that combines a page header (breadcrumbs + title),
|
|
@@ -63,12 +62,9 @@ export class UiBaseLayoutComponent {
|
|
|
63
62
|
/** Gap size between footer buttons. */
|
|
64
63
|
this.footerGap = 'sm';
|
|
65
64
|
this.router = inject(Router);
|
|
66
|
-
this.location = inject(Location);
|
|
67
65
|
this.activatedRoute = inject(ActivatedRoute);
|
|
68
66
|
this.breadcrumbService = inject(UiBreadcrumbService);
|
|
69
67
|
this.destroyRef = inject(DestroyRef);
|
|
70
|
-
/** @internal Current breadcrumbs, updated on each navigation. */
|
|
71
|
-
this.breadcrumbs = [];
|
|
72
68
|
}
|
|
73
69
|
/**
|
|
74
70
|
* Merged action list (back button + consumer actions).
|
|
@@ -78,14 +74,13 @@ export class UiBaseLayoutComponent {
|
|
|
78
74
|
get mergedActions() {
|
|
79
75
|
const result = [];
|
|
80
76
|
if (this.showBackButton) {
|
|
81
|
-
const backTarget = this.getBackTarget();
|
|
82
77
|
result.push({
|
|
83
78
|
id: '__ui-back',
|
|
84
79
|
label: this.backButtonConfig.label ?? 'Indietro',
|
|
85
80
|
icon: this.backButtonConfig.icon ?? 'arrow-left',
|
|
86
81
|
iconPosition: 'leading',
|
|
87
82
|
variant: this.backButtonConfig.variant ?? 'outline',
|
|
88
|
-
hidden:
|
|
83
|
+
hidden: this.shouldHideBackButton(),
|
|
89
84
|
action: () => this.navigateBack(),
|
|
90
85
|
});
|
|
91
86
|
}
|
|
@@ -102,25 +97,29 @@ export class UiBaseLayoutComponent {
|
|
|
102
97
|
.pipe(filter((event) => event instanceof NavigationEnd), debounceTime(50), takeUntilDestroyed(this.destroyRef))
|
|
103
98
|
.subscribe(() => this.refreshBreadcrumbs());
|
|
104
99
|
}
|
|
105
|
-
/** @internal
|
|
100
|
+
/** @internal Aggiorna lo stato dei breadcrumb nel service dalla rotta corrente. */
|
|
106
101
|
refreshBreadcrumbs() {
|
|
107
|
-
this.
|
|
108
|
-
}
|
|
109
|
-
/** @internal Determines the back navigation target from breadcrumbs. */
|
|
110
|
-
getBackTarget() {
|
|
111
|
-
if (this.breadcrumbs.length < 2)
|
|
112
|
-
return null;
|
|
113
|
-
return this.breadcrumbs[this.breadcrumbs.length - 2];
|
|
102
|
+
this.breadcrumbService.getBreadcrumbsForRoute(this.activatedRoute);
|
|
114
103
|
}
|
|
115
|
-
/** @internal
|
|
116
|
-
|
|
117
|
-
const
|
|
118
|
-
if (
|
|
119
|
-
|
|
104
|
+
/** @internal Determina se il back button deve essere nascosto per la rotta corrente. */
|
|
105
|
+
shouldHideBackButton() {
|
|
106
|
+
const currentPath = this.router.url.split('?')[0].split('#')[0];
|
|
107
|
+
if (currentPath === this.homeRoute) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
let deepestRoute = this.activatedRoute;
|
|
111
|
+
while (deepestRoute.firstChild) {
|
|
112
|
+
deepestRoute = deepestRoute.firstChild;
|
|
120
113
|
}
|
|
121
|
-
|
|
122
|
-
|
|
114
|
+
// biome-ignore lint/complexity/useLiteralKeys: <explanation>
|
|
115
|
+
if (deepestRoute.snapshot.data?.['hideBackButton'] === true) {
|
|
116
|
+
return true;
|
|
123
117
|
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
/** @internal Naviga al breadcrumb genitore o esegue il fallback alla home route. */
|
|
121
|
+
navigateBack() {
|
|
122
|
+
this.breadcrumbService.navigateBack(this.homeRoute);
|
|
124
123
|
}
|
|
125
124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBaseLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
126
125
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiBaseLayoutComponent, isStandalone: true, selector: "ui-base-layout", inputs: { showHeader: "showHeader", title: "title", homeRoute: "homeRoute", showHome: "showHome", updateDocumentTitle: "updateDocumentTitle", titleSuffix: "titleSuffix", showBackButton: "showBackButton", backButtonConfig: "backButtonConfig", actions: "actions", footerAlign: "footerAlign", footerGap: "footerGap" }, host: { classAttribute: "ui-base-layout-host" }, ngImport: i0, template: `
|
|
@@ -215,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
215
214
|
}], footerGap: [{
|
|
216
215
|
type: Input
|
|
217
216
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUl4RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBNENILE1BQU0sT0FBTyxxQkFBcUI7SUEzQ2xDO1FBNENFLGdFQUFnRTtRQUN2RCxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTNCLGlGQUFpRjtRQUN4RSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCLCtDQUErQztRQUN0QyxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBRXpCLGdFQUFnRTtRQUN2RCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCLDJEQUEyRDtRQUNsRCx3QkFBbUIsR0FBRyxLQUFLLENBQUM7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N0UsWUFBWTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsSUFBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0F4R1UscUJBQXFCO21HQUFyQixxQkFBcUIsdWJBbEN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVCxxbEJBckNTLHFCQUFxQiw2SUFBRSxxQkFBcUI7OzRGQXdDM0MscUJBQXFCO2tCQTNDakMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxtQkFDdEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzhCQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRGVzdHJveVJlZixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVaVBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaUJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi4vcGFnZS1oZWFkZXIvYnJlYWRjcnVtYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWlCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLnR5cGVzJztcclxuaW1wb3J0IHsgVWlCdXR0b25BcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi1hcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpQnV0dG9uRGVzY3JpcHRvciwgVWlCdXR0b25BcmVhQWxpZ24gfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLnR5cGVzJztcclxuaW1wb3J0IHsgVWlCYWNrQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi9iYXNlLWxheW91dC50eXBlcyc7XHJcblxyXG4vKipcclxuICogRnVsbC1wYWdlIGxheW91dCBjb21wb25lbnQgdGhhdCBjb21iaW5lcyBhIHBhZ2UgaGVhZGVyIChicmVhZGNydW1icyArIHRpdGxlKSxcclxuICogYSBtYWluIGNvbnRlbnQgYXJlYSB2aWEgYDxuZy1jb250ZW50PmAsIGFuZCBhIHN0aWNreSBmb290ZXIgYWN0aW9uIGJhclxyXG4gKiBwb3dlcmVkIGJ5IGBVaUJ1dHRvbkFyZWFDb21wb25lbnRgLlxyXG4gKlxyXG4gKiBPcHRpb25hbGx5IHJlbmRlcnMgYW4gYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiBpbiB0aGUgZm9vdGVyLCBkZXJpdmVkIGZyb21cclxuICogdGhlIGJyZWFkY3J1bWIgdHJhaWwgKG5hdmlnYXRlcyB0byB0aGUgcGFyZW50IGJyZWFkY3J1bWIpLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktYmFzZS1sYXlvdXRcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8dWktYmFzZS1sYXlvdXQgW2FjdGlvbnNdPVwicGFnZUFjdGlvbnNcIiBmb290ZXJBbGlnbj1cImVuZFwiPlxyXG4gKiAgIDxwPllvdXIgcGFnZSBjb250ZW50IGhlcmU8L3A+XHJcbiAqIDwvdWktYmFzZS1sYXlvdXQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDwhLS0gV2l0aCBiYWNrIGJ1dHRvbiBhbmQgY3VzdG9tIHRpdGxlIC0tPlxyXG4gKiA8dWktYmFzZS1sYXlvdXRcclxuICogICB0aXRsZT1cIkRldHRhZ2xpbyB1dGVudGVcIlxyXG4gKiAgIFtzaG93QmFja0J1dHRvbl09XCJ0cnVlXCJcclxuICogICBbYWN0aW9uc109XCJbXHJcbiAqICAgICB7IGlkOiAnc2F2ZScsIGxhYmVsOiAnU2FsdmEnLCB2YXJpYW50OiAncHJpbWFyeScsIGljb246ICdzYXZlJywgYWN0aW9uOiBzYXZlIH0sXHJcbiAqICAgXVwiXHJcbiAqID5cclxuICogICA8YXBwLXVzZXItZGV0YWlsIC8+XHJcbiAqIDwvdWktYmFzZS1sYXlvdXQ+XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1iYXNlLWxheW91dCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbVWlQYWdlSGVhZGVyQ29tcG9uZW50LCBVaUJ1dHRvbkFyZWFDb21wb25lbnRdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICd1aS1iYXNlLWxheW91dC1ob3N0JyxcclxuICB9LFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidWktYmFzZS1sYXlvdXRcIj5cclxuICAgICAgQGlmIChzaG93SGVhZGVyKSB7XHJcbiAgICAgICAgPHVpLXBhZ2UtaGVhZGVyXHJcbiAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgICAgW2hvbWVSb3V0ZV09XCJob21lUm91dGVcIlxyXG4gICAgICAgICAgW3Nob3dIb21lXT1cInNob3dIb21lXCJcclxuICAgICAgICAgIFt1cGRhdGVEb2N1bWVudFRpdGxlXT1cInVwZGF0ZURvY3VtZW50VGl0bGVcIlxyXG4gICAgICAgICAgW3RpdGxlU3VmZml4XT1cInRpdGxlU3VmZml4XCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8bWFpbiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0X19jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9tYWluPlxyXG5cclxuICAgICAgQGlmIChoYXNWaXNpYmxlQWN0aW9ucykge1xyXG4gICAgICAgIDxhc2lkZVxyXG4gICAgICAgICAgY2xhc3M9XCJ1aS1iYXNlLWxheW91dF9fZm9vdGVyXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYWdlIGFjdGlvbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx1aS1idXR0b24tYXJlYVxyXG4gICAgICAgICAgICBbYnV0dG9uc109XCJtZXJnZWRBY3Rpb25zXCJcclxuICAgICAgICAgICAgW2FsaWduXT1cImZvb3RlckFsaWduXCJcclxuICAgICAgICAgICAgW2dhcF09XCJmb290ZXJHYXBcIlxyXG4gICAgICAgICAgICBbc3RhY2tPbk1vYmlsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiUGFnZSBhY3Rpb25zXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9hc2lkZT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vYmFzZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlCYXNlTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBwYWdlIGhlYWRlciAoYnJlYWRjcnVtYnMgKyB0aXRsZSkuICovXHJcbiAgQElucHV0KCkgc2hvd0hlYWRlciA9IHRydWU7XHJcblxyXG4gIC8qKiBPdmVycmlkZSB0aGUgYXV0by1kZXRlY3RlZCBwYWdlIHRpdGxlLiBQYXNzZWQgdGhyb3VnaCB0byBgdWktcGFnZS1oZWFkZXJgLiAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XHJcblxyXG4gIC8qKiBSb3V0ZSBwYXRoIGZvciB0aGUgSG9tZSBicmVhZGNydW1iIGxpbmsuICovXHJcbiAgQElucHV0KCkgaG9tZVJvdXRlID0gJy8nO1xyXG5cclxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBIb21lIGxpbmsgaW4gdGhlIGJyZWFkY3J1bWIgdHJhaWwuICovXHJcbiAgQElucHV0KCkgc2hvd0hvbWUgPSB0cnVlO1xyXG5cclxuICAvKiogV2hlbiBgdHJ1ZWAsIHVwZGF0ZXMgYGRvY3VtZW50LnRpdGxlYCBvbiBuYXZpZ2F0aW9uLiAqL1xyXG4gIEBJbnB1dCgpIHVwZGF0ZURvY3VtZW50VGl0bGUgPSBmYWxzZTtcclxuXHJcbiAgLyoqIFN1ZmZpeCBhcHBlbmRlZCB0byBgZG9jdW1lbnQudGl0bGVgLiAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlU3VmZml4ID0gJyc7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgYW4gYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiBiYXNlZCBvbiBicmVhZGNydW1icy4gKi9cclxuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbiA9IHRydWU7XHJcblxyXG4gIC8qKiBDb25maWd1cmF0aW9uIG92ZXJyaWRlcyBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrIGJ1dHRvbi4gKi9cclxuICBASW5wdXQoKSBiYWNrQnV0dG9uQ29uZmlnOiBVaUJhY2tCdXR0b25Db25maWcgPSB7fTtcclxuXHJcbiAgLyoqIEFycmF5IG9mIGJ1dHRvbiBkZXNjcmlwdG9ycyBmb3IgdGhlIGZvb3RlciBhY3Rpb24gYXJlYS4gKi9cclxuICBASW5wdXQoKSBhY3Rpb25zOiBVaUJ1dHRvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAvKiogSG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIGZvb3RlciBidXR0b24gYXJlYS4gKi9cclxuICBASW5wdXQoKSBmb290ZXJBbGlnbjogVWlCdXR0b25BcmVhQWxpZ24gPSAnc3RhcnQnO1xyXG5cclxuICAvKiogR2FwIHNpemUgYmV0d2VlbiBmb290ZXIgYnV0dG9ucy4gKi9cclxuICBASW5wdXQoKSBmb290ZXJHYXA6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ3NtJztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGJyZWFkY3J1bWJTZXJ2aWNlID0gaW5qZWN0KFVpQnJlYWRjcnVtYlNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDdXJyZW50IGJyZWFkY3J1bWJzLCB1cGRhdGVkIG9uIGVhY2ggbmF2aWdhdGlvbi4gKi9cclxuICBwcml2YXRlIGJyZWFkY3J1bWJzOiBVaUJyZWFkY3J1bWJJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWVyZ2VkIGFjdGlvbiBsaXN0IChiYWNrIGJ1dHRvbiArIGNvbnN1bWVyIGFjdGlvbnMpLlxyXG4gICAqIENvbXB1dGVkIG9uIGV2ZXJ5IGNoYW5nZS1kZXRlY3Rpb24gY2hlY2sgc28gaXQgc3RheXMgaW4gc3luY1xyXG4gICAqIHdpdGggYm90aCBuYXZpZ2F0aW9uIHN0YXRlIChicmVhZGNydW1icykgYW5kIGlucHV0IGNoYW5nZXMuXHJcbiAgICovXHJcbiAgZ2V0IG1lcmdlZEFjdGlvbnMoKTogVWlCdXR0b25EZXNjcmlwdG9yW10ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBVaUJ1dHRvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAgIGlmICh0aGlzLnNob3dCYWNrQnV0dG9uKSB7XHJcbiAgICAgIGNvbnN0IGJhY2tUYXJnZXQgPSB0aGlzLmdldEJhY2tUYXJnZXQoKTtcclxuICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgIGlkOiAnX191aS1iYWNrJyxcclxuICAgICAgICBsYWJlbDogdGhpcy5iYWNrQnV0dG9uQ29uZmlnLmxhYmVsID8/ICdJbmRpZXRybycsXHJcbiAgICAgICAgaWNvbjogKHRoaXMuYmFja0J1dHRvbkNvbmZpZy5pY29uIGFzIGFueSkgPz8gJ2Fycm93LWxlZnQnLFxyXG4gICAgICAgIGljb25Qb3NpdGlvbjogJ2xlYWRpbmcnLFxyXG4gICAgICAgIHZhcmlhbnQ6ICh0aGlzLmJhY2tCdXR0b25Db25maWcudmFyaWFudCBhcyBhbnkpID8/ICdvdXRsaW5lJyxcclxuICAgICAgICBoaWRkZW46ICFiYWNrVGFyZ2V0LFxyXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5uYXZpZ2F0ZUJhY2soKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzdWx0LnB1c2goLi4udGhpcy5hY3Rpb25zKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciB0aGUgZm9vdGVyIHNob3VsZCByZW5kZXIgKGF0IGxlYXN0IG9uZSBub24taGlkZGVuIGFjdGlvbiBleGlzdHMpLiAqL1xyXG4gIGdldCBoYXNWaXNpYmxlQWN0aW9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1lcmdlZEFjdGlvbnMuc29tZSgoYSkgPT4gIWEuaGlkZGVuKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWZyZXNoQnJlYWRjcnVtYnMoKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxyXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoQnJlYWRjcnVtYnMoKSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlZnJlc2hlcyBicmVhZGNydW1iIHN0YXRlIGZyb20gdGhlIGN1cnJlbnQgcm91dGUuICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoQnJlYWRjcnVtYnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJzID0gdGhpcy5icmVhZGNydW1iU2VydmljZS5nZXRCcmVhZGNydW1ic0ZvclJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBEZXRlcm1pbmVzIHRoZSBiYWNrIG5hdmlnYXRpb24gdGFyZ2V0IGZyb20gYnJlYWRjcnVtYnMuICovXHJcbiAgcHJpdmF0ZSBnZXRCYWNrVGFyZ2V0KCk6IFVpQnJlYWRjcnVtYkl0ZW0gfCBudWxsIHtcclxuICAgIGlmICh0aGlzLmJyZWFkY3J1bWJzLmxlbmd0aCA8IDIpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRoaXMuYnJlYWRjcnVtYnNbdGhpcy5icmVhZGNydW1icy5sZW5ndGggLSAyXTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTmF2aWdhdGVzIHRvIHRoZSBwYXJlbnQgYnJlYWRjcnVtYiBvciBmYWxscyBiYWNrIHRvIGJyb3dzZXIgaGlzdG9yeS4gKi9cclxuICBwcml2YXRlIG5hdmlnYXRlQmFjaygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZ2V0QmFja1RhcmdldCgpO1xyXG4gICAgaWYgKHRhcmdldD8udXJsKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFyZ2V0LnVybCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUE0Q0gsTUFBTSxPQUFPLHFCQUFxQjtJQTNDbEM7UUE0Q0UsZ0VBQWdFO1FBQ3ZELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFM0IsaUZBQWlGO1FBQ3hFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsK0NBQStDO1FBQ3RDLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFekIsZ0VBQWdFO1FBQ3ZELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFekIsMkRBQTJEO1FBQ2xELHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUVyQywyQ0FBMkM7UUFDbEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFF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QzdELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELG9GQUFvRjtJQUM1RSxZQUFZO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBL0dVLHFCQUFxQjttR0FBckIscUJBQXFCLHViQWxDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQscWxCQXJDUyxxQkFBcUIsNklBQUUscUJBQXFCOzs0RkF3QzNDLHFCQUFxQjtrQkEzQ2pDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsbUJBQ3RDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtxQkFDN0IsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs4QkFLUSxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgSW5wdXQsXHJcbiAgaW5qZWN0LFxyXG4gIHR5cGUgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHsgVWlCdXR0b25BcmVhQWxpZ24sIFVpQnV0dG9uRGVzY3JpcHRvciB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24udHlwZXMnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkFyZWFDb21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlCcmVhZGNydW1iU2VydmljZSB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL2JyZWFkY3J1bWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB0eXBlIHsgVWlCYWNrQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi9iYXNlLWxheW91dC50eXBlcyc7XHJcblxyXG4vKipcclxuICogRnVsbC1wYWdlIGxheW91dCBjb21wb25lbnQgdGhhdCBjb21iaW5lcyBhIHBhZ2UgaGVhZGVyIChicmVhZGNydW1icyArIHRpdGxlKSxcclxuICogYSBtYWluIGNvbnRlbnQgYXJlYSB2aWEgYDxuZy1jb250ZW50PmAsIGFuZCBhIHN0aWNreSBmb290ZXIgYWN0aW9uIGJhclxyXG4gKiBwb3dlcmVkIGJ5IGBVaUJ1dHRvbkFyZWFDb21wb25lbnRgLlxyXG4gKlxyXG4gKiBPcHRpb25hbGx5IHJlbmRlcnMgYW4gYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiBpbiB0aGUgZm9vdGVyLCBkZXJpdmVkIGZyb21cclxuICogdGhlIGJyZWFkY3J1bWIgdHJhaWwgKG5hdmlnYXRlcyB0byB0aGUgcGFyZW50IGJyZWFkY3J1bWIpLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktYmFzZS1sYXlvdXRcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8dWktYmFzZS1sYXlvdXQgW2FjdGlvbnNdPVwicGFnZUFjdGlvbnNcIiBmb290ZXJBbGlnbj1cImVuZFwiPlxyXG4gKiAgIDxwPllvdXIgcGFnZSBjb250ZW50IGhlcmU8L3A+XHJcbiAqIDwvdWktYmFzZS1sYXlvdXQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDwhLS0gV2l0aCBiYWNrIGJ1dHRvbiBhbmQgY3VzdG9tIHRpdGxlIC0tPlxyXG4gKiA8dWktYmFzZS1sYXlvdXRcclxuICogICB0aXRsZT1cIkRldHRhZ2xpbyB1dGVudGVcIlxyXG4gKiAgIFtzaG93QmFja0J1dHRvbl09XCJ0cnVlXCJcclxuICogICBbYWN0aW9uc109XCJbXHJcbiAqICAgICB7IGlkOiAnc2F2ZScsIGxhYmVsOiAnU2FsdmEnLCB2YXJpYW50OiAncHJpbWFyeScsIGljb246ICdzYXZlJywgYWN0aW9uOiBzYXZlIH0sXHJcbiAqICAgXVwiXHJcbiAqID5cclxuICogICA8YXBwLXVzZXItZGV0YWlsIC8+XHJcbiAqIDwvdWktYmFzZS1sYXlvdXQ+XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1iYXNlLWxheW91dCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbVWlQYWdlSGVhZGVyQ29tcG9uZW50LCBVaUJ1dHRvbkFyZWFDb21wb25lbnRdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICd1aS1iYXNlLWxheW91dC1ob3N0JyxcclxuICB9LFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidWktYmFzZS1sYXlvdXRcIj5cclxuICAgICAgQGlmIChzaG93SGVhZGVyKSB7XHJcbiAgICAgICAgPHVpLXBhZ2UtaGVhZGVyXHJcbiAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgICAgW2hvbWVSb3V0ZV09XCJob21lUm91dGVcIlxyXG4gICAgICAgICAgW3Nob3dIb21lXT1cInNob3dIb21lXCJcclxuICAgICAgICAgIFt1cGRhdGVEb2N1bWVudFRpdGxlXT1cInVwZGF0ZURvY3VtZW50VGl0bGVcIlxyXG4gICAgICAgICAgW3RpdGxlU3VmZml4XT1cInRpdGxlU3VmZml4XCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8bWFpbiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0X19jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9tYWluPlxyXG5cclxuICAgICAgQGlmIChoYXNWaXNpYmxlQWN0aW9ucykge1xyXG4gICAgICAgIDxhc2lkZVxyXG4gICAgICAgICAgY2xhc3M9XCJ1aS1iYXNlLWxheW91dF9fZm9vdGVyXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYWdlIGFjdGlvbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx1aS1idXR0b24tYXJlYVxyXG4gICAgICAgICAgICBbYnV0dG9uc109XCJtZXJnZWRBY3Rpb25zXCJcclxuICAgICAgICAgICAgW2FsaWduXT1cImZvb3RlckFsaWduXCJcclxuICAgICAgICAgICAgW2dhcF09XCJmb290ZXJHYXBcIlxyXG4gICAgICAgICAgICBbc3RhY2tPbk1vYmlsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiUGFnZSBhY3Rpb25zXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9hc2lkZT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vYmFzZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlCYXNlTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBwYWdlIGhlYWRlciAoYnJlYWRjcnVtYnMgKyB0aXRsZSkuICovXHJcbiAgQElucHV0KCkgc2hvd0hlYWRlciA9IHRydWU7XHJcblxyXG4gIC8qKiBPdmVycmlkZSB0aGUgYXV0by1kZXRlY3RlZCBwYWdlIHRpdGxlLiBQYXNzZWQgdGhyb3VnaCB0byBgdWktcGFnZS1oZWFkZXJgLiAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XHJcblxyXG4gIC8qKiBSb3V0ZSBwYXRoIGZvciB0aGUgSG9tZSBicmVhZGNydW1iIGxpbmsuICovXHJcbiAgQElucHV0KCkgaG9tZVJvdXRlID0gJy8nO1xyXG5cclxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBIb21lIGxpbmsgaW4gdGhlIGJyZWFkY3J1bWIgdHJhaWwuICovXHJcbiAgQElucHV0KCkgc2hvd0hvbWUgPSB0cnVlO1xyXG5cclxuICAvKiogV2hlbiBgdHJ1ZWAsIHVwZGF0ZXMgYGRvY3VtZW50LnRpdGxlYCBvbiBuYXZpZ2F0aW9uLiAqL1xyXG4gIEBJbnB1dCgpIHVwZGF0ZURvY3VtZW50VGl0bGUgPSBmYWxzZTtcclxuXHJcbiAgLyoqIFN1ZmZpeCBhcHBlbmRlZCB0byBgZG9jdW1lbnQudGl0bGVgLiAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlU3VmZml4ID0gJyc7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgYW4gYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiBiYXNlZCBvbiBicmVhZGNydW1icy4gKi9cclxuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbiA9IHRydWU7XHJcblxyXG4gIC8qKiBDb25maWd1cmF0aW9uIG92ZXJyaWRlcyBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrIGJ1dHRvbi4gKi9cclxuICBASW5wdXQoKSBiYWNrQnV0dG9uQ29uZmlnOiBVaUJhY2tCdXR0b25Db25maWcgPSB7fTtcclxuXHJcbiAgLyoqIEFycmF5IG9mIGJ1dHRvbiBkZXNjcmlwdG9ycyBmb3IgdGhlIGZvb3RlciBhY3Rpb24gYXJlYS4gKi9cclxuICBASW5wdXQoKSBhY3Rpb25zOiBVaUJ1dHRvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAvKiogSG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIGZvb3RlciBidXR0b24gYXJlYS4gKi9cclxuICBASW5wdXQoKSBmb290ZXJBbGlnbjogVWlCdXR0b25BcmVhQWxpZ24gPSAnc3RhcnQnO1xyXG5cclxuICAvKiogR2FwIHNpemUgYmV0d2VlbiBmb290ZXIgYnV0dG9ucy4gKi9cclxuICBASW5wdXQoKSBmb290ZXJHYXA6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ3NtJztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBicmVhZGNydW1iU2VydmljZSA9IGluamVjdChVaUJyZWFkY3J1bWJTZXJ2aWNlKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogTWVyZ2VkIGFjdGlvbiBsaXN0IChiYWNrIGJ1dHRvbiArIGNvbnN1bWVyIGFjdGlvbnMpLlxyXG4gICAqIENvbXB1dGVkIG9uIGV2ZXJ5IGNoYW5nZS1kZXRlY3Rpb24gY2hlY2sgc28gaXQgc3RheXMgaW4gc3luY1xyXG4gICAqIHdpdGggYm90aCBuYXZpZ2F0aW9uIHN0YXRlIChicmVhZGNydW1icykgYW5kIGlucHV0IGNoYW5nZXMuXHJcbiAgICovXHJcbiAgZ2V0IG1lcmdlZEFjdGlvbnMoKTogVWlCdXR0b25EZXNjcmlwdG9yW10ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBVaUJ1dHRvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAgIGlmICh0aGlzLnNob3dCYWNrQnV0dG9uKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBpZDogJ19fdWktYmFjaycsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuYmFja0J1dHRvbkNvbmZpZy5sYWJlbCA/PyAnSW5kaWV0cm8nLFxyXG4gICAgICAgIGljb246ICh0aGlzLmJhY2tCdXR0b25Db25maWcuaWNvbiBhcyBhbnkpID8/ICdhcnJvdy1sZWZ0JyxcclxuICAgICAgICBpY29uUG9zaXRpb246ICdsZWFkaW5nJyxcclxuICAgICAgICB2YXJpYW50OiAodGhpcy5iYWNrQnV0dG9uQ29uZmlnLnZhcmlhbnQgYXMgYW55KSA/PyAnb3V0bGluZScsXHJcbiAgICAgICAgaGlkZGVuOiB0aGlzLnNob3VsZEhpZGVCYWNrQnV0dG9uKCksXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm5hdmlnYXRlQmFjaygpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQucHVzaCguLi50aGlzLmFjdGlvbnMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBmb290ZXIgc2hvdWxkIHJlbmRlciAoYXQgbGVhc3Qgb25lIG5vbi1oaWRkZW4gYWN0aW9uIGV4aXN0cykuICovXHJcbiAgZ2V0IGhhc1Zpc2libGVBY3Rpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWVyZ2VkQWN0aW9ucy5zb21lKChhKSA9PiAhYS5oaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2hCcmVhZGNydW1icygpO1xyXG5cclxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXHJcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2hCcmVhZGNydW1icygpKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQWdnaW9ybmEgbG8gc3RhdG8gZGVpIGJyZWFkY3J1bWIgbmVsIHNlcnZpY2UgZGFsbGEgcm90dGEgY29ycmVudGUuICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoQnJlYWRjcnVtYnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmdldEJyZWFkY3J1bWJzRm9yUm91dGUodGhpcy5hY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIERldGVybWluYSBzZSBpbCBiYWNrIGJ1dHRvbiBkZXZlIGVzc2VyZSBuYXNjb3N0byBwZXIgbGEgcm90dGEgY29ycmVudGUuICovXHJcbiAgcHJpdmF0ZSBzaG91bGRIaWRlQmFja0J1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCc/JylbMF0uc3BsaXQoJyMnKVswXTtcclxuICAgIGlmIChjdXJyZW50UGF0aCA9PT0gdGhpcy5ob21lUm91dGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRlZXBlc3RSb3V0ZSA9IHRoaXMuYWN0aXZhdGVkUm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgZGVlcGVzdFJvdXRlID0gZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS91c2VMaXRlcmFsS2V5czogPGV4cGxhbmF0aW9uPlxyXG4gICAgaWYgKGRlZXBlc3RSb3V0ZS5zbmFwc2hvdC5kYXRhPy5bJ2hpZGVCYWNrQnV0dG9uJ10gPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBOYXZpZ2EgYWwgYnJlYWRjcnVtYiBnZW5pdG9yZSBvIGVzZWd1ZSBpbCBmYWxsYmFjayBhbGxhIGhvbWUgcm91dGUuICovXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZUJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLm5hdmlnYXRlQmFjayh0aGlzLmhvbWVSb3V0ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/** biome-ignore-all lint/complexity/useLiteralKeys: <explanation> */
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
3
|
import { NavigationEnd, Router } from '@angular/router';
|
|
3
4
|
import { filter } from 'rxjs/operators';
|
|
4
5
|
import { UI_BREADCRUMB_LABEL_RESOLVER, } from './page-header.types';
|
|
@@ -79,7 +80,7 @@ export class UiBreadcrumbService {
|
|
|
79
80
|
this.lastBreadcrumbs = [];
|
|
80
81
|
return [];
|
|
81
82
|
}
|
|
82
|
-
const params = this.collectParamsFromPath(
|
|
83
|
+
const params = this.collectParamsFromPath(deepestRoute);
|
|
83
84
|
const breadcrumbs = this.buildBreadcrumbChain(routeId, params);
|
|
84
85
|
this.lastBreadcrumbs = breadcrumbs;
|
|
85
86
|
return breadcrumbs;
|
|
@@ -131,7 +132,7 @@ export class UiBreadcrumbService {
|
|
|
131
132
|
/** @internal Recursively walks route tree to build the breadcrumb map. */
|
|
132
133
|
buildRouteMap(routes, parentPath = '') {
|
|
133
134
|
for (const route of routes) {
|
|
134
|
-
const currentPath = parentPath
|
|
135
|
+
const currentPath = `${parentPath}/${route.path || ''}`;
|
|
135
136
|
if (route.data?.['id']) {
|
|
136
137
|
const fullPath = this.normalizePath(currentPath);
|
|
137
138
|
this.breadcrumbMap.set(route.data['id'], {
|
|
@@ -239,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
239
240
|
type: Injectable,
|
|
240
241
|
args: [{ providedIn: 'root' }]
|
|
241
242
|
}], ctorParameters: () => [] });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFJTCw0QkFBNEIsR0FDN0IsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCO1FBVmlCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUV0RSw0REFBNEQ7UUFDcEQsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQUM5RCwwRUFBMEU7UUFDbEUsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLDREQUE0RDtRQUNwRCxvQkFBZSxHQUF1QixFQUFFLENBQUM7UUFHL0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQzthQUN2RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7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Q0FBQztZQUNYLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDOytHQXJOVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBVaUJyZWFkY3J1bWJDb25maWcsXHJcbiAgVWlCcmVhZGNydW1iSXRlbSxcclxuICBVaUxhYmVsUmVzb2x2ZXJGbixcclxuICBVSV9CUkVBRENSVU1CX0xBQkVMX1JFU09MVkVSLFxyXG59IGZyb20gJy4vcGFnZS1oZWFkZXIudHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdGhhdCBidWlsZHMgYSBuZXN0ZWQgYnJlYWRjcnVtYiB0cmFpbCBmcm9tIEFuZ3VsYXIgcm91dGUgY29uZmlndXJhdGlvbi5cclxuICpcclxuICogUm91dGVzIG11c3QgZGVmaW5lIGBkYXRhLmlkYCwgYGRhdGEudGl0bGVgLCBhbmQgb3B0aW9uYWxseSBgZGF0YS5icmVhZGNydW1ic2BcclxuICogKGFuIGFycmF5IG9mIHBhcmVudCByb3V0ZSBJRHMpIGZvciB0aGUgY2hhaW4gdG8gcmVzb2x2ZSBjb3JyZWN0bHkuXHJcbiAqXHJcbiAqIFN1cHBvcnRzIGxhenktbG9hZGVkIHJvdXRlczogdGhlIGludGVybmFsIHJvdXRlIG1hcCBpcyByZWJ1aWx0IGF1dG9tYXRpY2FsbHlcclxuICogd2hlbmV2ZXIgbmV3IHJvdXRlcyBhcmUgbG9hZGVkIHZpYSBgTmF2aWdhdGlvbkVuZGAuXHJcbiAqXHJcbiAqIExhYmVsIHJlc29sdXRpb24gZm9yIHJvdXRlIHBhcmFtZXRlcnMgKGA6cGFyYW1gKSBpcyBkZWxlZ2F0ZWQgdG8gYW4gaW5qZWN0YWJsZVxyXG4gKiBgVWlMYWJlbFJlc29sdmVyRm5gIHZpYSB0aGUgYFVJX0JSRUFEQ1JVTUJfTEFCRUxfUkVTT0xWRVJgIHRva2VuLlxyXG4gKlxyXG4gKiBAdXNhZ2VOb3Rlc1xyXG4gKiAjIyMgUm91dGUgY29uZmlndXJhdGlvblxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gKiAgIHtcclxuICogICAgIHBhdGg6ICd1c2VycycsXHJcbiAqICAgICBkYXRhOiB7IGlkOiAndXNlcnMnLCB0aXRsZTogJ1V0ZW50aScgfSxcclxuICogICAgIGNoaWxkcmVuOiBbXHJcbiAqICAgICAgIHtcclxuICogICAgICAgICBwYXRoOiAnOnVzZXJJZCcsXHJcbiAqICAgICAgICAgZGF0YTogeyBpZDogJ3VzZXItZGV0YWlsJywgdGl0bGU6ICc6dXNlcklkJywgYnJlYWRjcnVtYnM6IFsndXNlcnMnXSB9LFxyXG4gKiAgICAgICAgIGNvbXBvbmVudDogVXNlckRldGFpbENvbXBvbmVudCxcclxuICogICAgICAgfSxcclxuICogICAgIF0sXHJcbiAqICAgfSxcclxuICogXTtcclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBDdXN0b20gbGFiZWwgcmVzb2x2ZXJcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBwcm92aWRlcnM6IFtcclxuICogICB7XHJcbiAqICAgICBwcm92aWRlOiBVSV9CUkVBRENSVU1CX0xBQkVMX1JFU09MVkVSLFxyXG4gKiAgICAgdXNlVmFsdWU6IChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+XHJcbiAqICAgICAgIG5hbWUgPT09ICd1c2VySWQnID8gYFVzZXIgIyR7dmFsdWV9YCA6IHZhbHVlLFxyXG4gKiAgIH0sXHJcbiAqIF1cclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVWlCcmVhZGNydW1iU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsUmVzb2x2ZXIgPSBpbmplY3QoVUlfQlJFQURDUlVNQl9MQUJFTF9SRVNPTFZFUik7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTWFwIG9mIHJvdXRlIElEIOKGkiBicmVhZGNydW1iIGNvbmZpZ3VyYXRpb24uICovXHJcbiAgcHJpdmF0ZSBicmVhZGNydW1iTWFwID0gbmV3IE1hcDxzdHJpbmcsIFVpQnJlYWRjcnVtYkNvbmZpZz4oKTtcclxuICAvKiogQGludGVybmFsIFRyYWNrcyByb3V0ZSBjb3VudCB0byBkZXRlY3QgbGF6eS1sb2FkZWQgcm91dGUgYWRkaXRpb25zLiAqL1xyXG4gIHByaXZhdGUgbGFzdFJvdXRlQ29uZmlnTGVuZ3RoID0gMDtcclxuICAvKiogQGludGVybmFsIExhc3QgY29tcHV0ZWQgYnJlYWRjcnVtYnMgZm9yIG5hdmlnYXRlQmFjay4gKi9cclxuICBwcml2YXRlIGxhc3RCcmVhZGNydW1iczogVWlCcmVhZGNydW1iSXRlbVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5yZWJ1aWxkUm91dGVNYXAoKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlYnVpbGRSb3V0ZU1hcElmTmVlZGVkKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZXMgdGhlIGJyZWFkY3J1bWIgdHJhaWwgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJvdXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvb3QgYEFjdGl2YXRlZFJvdXRlYCAodHlwaWNhbGx5IGluamVjdGVkIGluIHRoZSBjb21wb25lbnQpLlxyXG4gICAqIEByZXR1cm5zIE9yZGVyZWQgYXJyYXkgb2YgYnJlYWRjcnVtYiBpdGVtcyBmcm9tIHJvb3QgdG8gY3VycmVudCByb3V0ZS5cclxuICAgKi9cclxuICBnZXRCcmVhZGNydW1ic0ZvclJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFVpQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICBsZXQgZGVlcGVzdFJvdXRlID0gcm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgZGVlcGVzdFJvdXRlID0gZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJvdXRlV2l0aElkOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwgPSBkZWVwZXN0Um91dGU7XHJcbiAgICB3aGlsZSAocm91dGVXaXRoSWQgJiYgIXJvdXRlV2l0aElkLnNuYXBzaG90LmRhdGFbJ2lkJ10pIHtcclxuICAgICAgcm91dGVXaXRoSWQgPSByb3V0ZVdpdGhJZC5wYXJlbnQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCByb3V0ZUlkID0gcm91dGVXaXRoSWQ/LnNuYXBzaG90LmRhdGFbJ2lkJ107XHJcbiAgICBpZiAoIXJvdXRlSWQpIHtcclxuICAgICAgdGhpcy5sYXN0QnJlYWRjcnVtYnMgPSBbXTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29sbGVjdFBhcmFtc0Zyb21QYXRoKHJvdXRlKTtcclxuICAgIGNvbnN0IGJyZWFkY3J1bWJzID0gdGhpcy5idWlsZEJyZWFkY3J1bWJDaGFpbihyb3V0ZUlkLCBwYXJhbXMpO1xyXG4gICAgdGhpcy5sYXN0QnJlYWRjcnVtYnMgPSBicmVhZGNydW1icztcclxuICAgIHJldHVybiBicmVhZGNydW1icztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hdmlnYXRlcyB0byB0aGUgcHJldmlvdXMgYnJlYWRjcnVtYiAocGFyZW50IHJvdXRlKS5cclxuICAgKiBGYWxscyBiYWNrIHRvIGBmYWxsYmFja1VybGAgKGRlZmF1bHQ6IGAvYCkgd2hlbiBubyBwYXJlbnQgZXhpc3RzLlxyXG4gICAqL1xyXG4gIG5hdmlnYXRlQmFjayhmYWxsYmFja1VybCA9ICcvJyk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJldiA9IHRoaXMubGFzdEJyZWFkY3J1bWJzLmxlbmd0aCA+IDEgPyB0aGlzLmxhc3RCcmVhZGNydW1ic1t0aGlzLmxhc3RCcmVhZGNydW1icy5sZW5ndGggLSAyXSA6IG51bGw7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBwcmV2Py51cmwgPz8gZmFsbGJhY2tVcmw7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhcmdldCk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENvbGxlY3RzIGFsbCByb3V0ZSBwYXJhbXMgZnJvbSB0aGUgZnVsbCBwYXRoIChpbmNsdWRpbmcgcGFyZW50cykuICovXHJcbiAgcHJpdmF0ZSBjb2xsZWN0UGFyYW1zRnJvbVBhdGgocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcclxuICAgIGZvciAoY29uc3QgciBvZiByb3V0ZS5wYXRoRnJvbVJvb3QpIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIHIuc25hcHNob3QucGFyYW1zKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgUHJpdmF0ZSBoZWxwZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIFJlYnVpbGRzIHRoZSBtYXAgb25seSB3aGVuIG5ldyBsYXp5IHJvdXRlcyBhcHBlYXIuICovXHJcbiAgcHJpdmF0ZSByZWJ1aWxkUm91dGVNYXBJZk5lZWRlZCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRMZW5ndGggPSB0aGlzLmNvdW50Um91dGVzKHRoaXMucm91dGVyLmNvbmZpZyk7XHJcbiAgICBpZiAoY3VycmVudExlbmd0aCAhPT0gdGhpcy5sYXN0Um91dGVDb25maWdMZW5ndGgpIHtcclxuICAgICAgdGhpcy5yZWJ1aWxkUm91dGVNYXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVjdXJzaXZlbHkgY291bnRzIHJvdXRlcyBpbmNsdWRpbmcgbGF6eS1sb2FkZWQgY2hpbGRyZW4uICovXHJcbiAgcHJpdmF0ZSBjb3VudFJvdXRlcyhyb3V0ZXM6IFJvdXRlcyk6IG51bWJlciB7XHJcbiAgICBsZXQgY291bnQgPSByb3V0ZXMubGVuZ3RoO1xyXG4gICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcclxuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgY291bnQgKz0gdGhpcy5jb3VudFJvdXRlcyhyb3V0ZS5jaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChyb3V0ZSBhcyBhbnkpLl9sb2FkZWRSb3V0ZXMpIHtcclxuICAgICAgICBjb3VudCArPSB0aGlzLmNvdW50Um91dGVzKChyb3V0ZSBhcyBhbnkpLl9sb2FkZWRSb3V0ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENsZWFycyBhbmQgcmVidWlsZHMgdGhlIGZ1bGwgcm91dGUg4oaSIGJyZWFkY3J1bWIgbWFwLiAqL1xyXG4gIHByaXZhdGUgcmVidWlsZFJvdXRlTWFwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVhZGNydW1iTWFwLmNsZWFyKCk7XHJcbiAgICB0aGlzLmJ1aWxkUm91dGVNYXAodGhpcy5yb3V0ZXIuY29uZmlnKTtcclxuICAgIHRoaXMubGFzdFJvdXRlQ29uZmlnTGVuZ3RoID0gdGhpcy5jb3VudFJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSZWN1cnNpdmVseSB3YWxrcyByb3V0ZSB0cmVlIHRvIGJ1aWxkIHRoZSBicmVhZGNydW1iIG1hcC4gKi9cclxuICBwcml2YXRlIGJ1aWxkUm91dGVNYXAocm91dGVzOiBSb3V0ZXMsIHBhcmVudFBhdGggPSAnJyk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcclxuICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXJlbnRQYXRoICsgJy8nICsgKHJvdXRlLnBhdGggfHwgJycpO1xyXG5cclxuICAgICAgaWYgKHJvdXRlLmRhdGE/LlsnaWQnXSkge1xyXG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGN1cnJlbnRQYXRoKTtcclxuICAgICAgICB0aGlzLmJyZWFkY3J1bWJNYXAuc2V0KHJvdXRlLmRhdGFbJ2lkJ10sIHtcclxuICAgICAgICAgIGlkOiByb3V0ZS5kYXRhWydpZCddLFxyXG4gICAgICAgICAgcGF0aDogZnVsbFBhdGgsXHJcbiAgICAgICAgICBsYWJlbDogcm91dGUuZGF0YVsndGl0bGUnXSB8fCByb3V0ZS5wYXRoIHx8IHJvdXRlLmRhdGFbJ2lkJ10sXHJcbiAgICAgICAgICBwYXJlbnRJZHM6IHJvdXRlLmRhdGFbJ2JyZWFkY3J1bWJzJ10gfHwgW10sXHJcbiAgICAgICAgICBtZXRhZGF0YTogcm91dGUuZGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5idWlsZFJvdXRlTWFwKHJvdXRlLmNoaWxkcmVuLCBjdXJyZW50UGF0aCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChyb3V0ZSBhcyBhbnkpLl9sb2FkZWRSb3V0ZXMpIHtcclxuICAgICAgICB0aGlzLmJ1aWxkUm91dGVNYXAoKHJvdXRlIGFzIGFueSkuX2xvYWRlZFJvdXRlcywgY3VycmVudFBhdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIEJ1aWxkcyB0aGUgZnVsbCBicmVhZGNydW1iIGNoYWluIGZvciBhIHJvdXRlIGJ5IGl0cyBJRC4gKi9cclxuICBwcml2YXRlIGJ1aWxkQnJlYWRjcnVtYkNoYWluKHJvdXRlSWQ6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogVWlCcmVhZGNydW1iSXRlbVtdIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYnJlYWRjcnVtYk1hcC5nZXQocm91dGVJZCk7XHJcbiAgICBpZiAoIWNvbmZpZykgcmV0dXJuIFtdO1xyXG5cclxuICAgIHRoaXMuc2F2ZUZ1bGxQYXRoKHJvdXRlSWQsIHRoaXMucm91dGVyLnVybCk7XHJcblxyXG4gICAgY29uc3QgcGFyZW50Q2hhaW4gPSB0aGlzLmdldFBhcmVudENoYWluKGNvbmZpZy5wYXJlbnRJZHMsIHBhcmFtcyk7XHJcbiAgICBjb25zdCBicmVhZGNydW1iczogVWlCcmVhZGNydW1iSXRlbVtdID0gWy4uLnBhcmVudENoYWluXTtcclxuXHJcbiAgICBicmVhZGNydW1icy5wdXNoKHtcclxuICAgICAgbGFiZWw6IHRoaXMucmVzb2x2ZUxhYmVsKGNvbmZpZy5sYWJlbCwgcGFyYW1zKSxcclxuICAgICAgdXJsOiB0aGlzLnN0cmlwUXVlcnlQYXJhbXModGhpcy5yb3V0ZXIudXJsKSxcclxuICAgICAgaXNMYXN0OiB0cnVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSZXNvbHZlcyBwYXJlbnQgYnJlYWRjcnVtYnMgZnJvbSBvcmRlcmVkIHBhcmVudCBJRHMuICovXHJcbiAgcHJpdmF0ZSBnZXRQYXJlbnRDaGFpbihwYXJlbnRJZHM6IHN0cmluZ1tdLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBVaUJyZWFkY3J1bWJJdGVtW10ge1xyXG4gICAgaWYgKCFwYXJlbnRJZHM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xyXG5cclxuICAgIHJldHVybiBwYXJlbnRJZHNcclxuICAgICAgLm1hcCgoaWQpID0+IHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmJyZWFkY3J1bWJNYXAuZ2V0KGlkKTtcclxuICAgICAgICBpZiAoIWNvbmZpZykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5yZXNvbHZlTGFiZWwoY29uZmlnLmxhYmVsLCBwYXJhbXMpLFxyXG4gICAgICAgICAgdXJsOiB0aGlzLnJlc29sdmVVcmwoY29uZmlnLnBhdGgsIHBhcmFtcyksXHJcbiAgICAgICAgICBpc0xhc3Q6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgVWlCcmVhZGNydW1iSXRlbVtdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsIFJlc29sdmVzIGA6cGFyYW1gIHBsYWNlaG9sZGVycyBpbiBhIGxhYmVsIHVzaW5nXHJcbiAgICogdGhlIGluamVjdGVkIGxhYmVsIHJlc29sdmVyIGZ1bmN0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzb2x2ZUxhYmVsKGxhYmVsOiBzdHJpbmcsIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICBpZiAoIWxhYmVsLmluY2x1ZGVzKCc6JykpIHJldHVybiBsYWJlbDtcclxuXHJcbiAgICBsZXQgcmVzb2x2ZWQgPSBsYWJlbDtcclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcclxuICAgICAgY29uc3QgcmVhZGFibGVWYWx1ZSA9IHRoaXMubGFiZWxSZXNvbHZlcihrZXksIHZhbHVlKTtcclxuICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlZC5yZXBsYWNlKGA6JHtrZXl9YCwgcmVhZGFibGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlc29sdmVzIGA6cGFyYW1gIHBsYWNlaG9sZGVycyBpbiBhIHBhdGggYW5kIGNyZWF0ZXMgYSBVUkwuICovXHJcbiAgcHJpdmF0ZSByZXNvbHZlVXJsKHBhdGg6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcclxuICAgIGxldCBwcm9jZXNzZWRQYXRoID0gcGF0aDtcclxuXHJcbiAgICBpZiAocGF0aC5pbmNsdWRlcygnOicpKSB7XHJcbiAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICBjb25zdCBwcm9jZXNzZWRTZWdtZW50cyA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJzonKSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gc2VnbWVudC5zdWJzdHJpbmcoMSk7XHJcbiAgICAgICAgICByZXR1cm4gcGFyYW1zW3BhcmFtTmFtZV0gfHwgc2VnbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHNlZ21lbnQ7XHJcbiAgICAgIH0pO1xyXG4gICAgICBwcm9jZXNzZWRQYXRoID0gcHJvY2Vzc2VkU2VnbWVudHMuam9pbignLycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtwcm9jZXNzZWRQYXRoXSkudG9TdHJpbmcoKTtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTm9ybWFsaXplcyBwYXRoIGJ5IGNvbGxhcHNpbmcgZG91YmxlIHNsYXNoZXMgYW5kIHRyaW1taW5nIHRyYWlsaW5nIHNsYXNoLiAqL1xyXG4gIHByaXZhdGUgbm9ybWFsaXplUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFwvKy9nLCAnLycpLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlbW92ZXMgcXVlcnkgcGFyYW1ldGVycyBmcm9tIGEgVVJMLiAqL1xyXG4gIHByaXZhdGUgc3RyaXBRdWVyeVBhcmFtcyh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdXJsLnNwbGl0KCc/JylbMF07XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENhY2hlcyB0aGUgZnVsbHkgcmVzb2x2ZWQgVVJMIGZvciBhIHJvdXRlIElELiAqL1xyXG4gIHByaXZhdGUgc2F2ZUZ1bGxQYXRoKHJvdXRlSWQ6IHN0cmluZywgZnVsbFBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5icmVhZGNydW1iTWFwLmdldChyb3V0ZUlkKTtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgY29uZmlnLmZ1bGxQYXRoID0gdGhpcy5zdHJpcFF1ZXJ5UGFyYW1zKGZ1bGxQYXRoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUVBQXFFO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0sRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsNEJBQTRCLEdBRzdCLE1BQU0scUJBQXFCLENBQUM7O0FBRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QjtRQVZpQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFdEUsNERBQTREO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDOUQsMEVBQTBFO1FBQ2xFLDBCQUFxQixHQUFHLENBQUMsQ0FBQztRQUNsQyw0REFBNEQ7UUFDcEQsb0JBQWUsR0FBdUIsRUFBRSxDQUFDO1FBRy9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7SUFDckQs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QUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDOytHQXJOVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIGJpb21lLWlnbm9yZS1hbGwgbGludC9jb21wbGV4aXR5L3VzZUxpdGVyYWxLZXlzOiA8ZXhwbGFuYXRpb24+ICovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0eXBlIEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIHR5cGUgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIFVJX0JSRUFEQ1JVTUJfTEFCRUxfUkVTT0xWRVIsXHJcbiAgdHlwZSBVaUJyZWFkY3J1bWJDb25maWcsXHJcbiAgdHlwZSBVaUJyZWFkY3J1bWJJdGVtLFxyXG59IGZyb20gJy4vcGFnZS1oZWFkZXIudHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdGhhdCBidWlsZHMgYSBuZXN0ZWQgYnJlYWRjcnVtYiB0cmFpbCBmcm9tIEFuZ3VsYXIgcm91dGUgY29uZmlndXJhdGlvbi5cclxuICpcclxuICogUm91dGVzIG11c3QgZGVmaW5lIGBkYXRhLmlkYCwgYGRhdGEudGl0bGVgLCBhbmQgb3B0aW9uYWxseSBgZGF0YS5icmVhZGNydW1ic2BcclxuICogKGFuIGFycmF5IG9mIHBhcmVudCByb3V0ZSBJRHMpIGZvciB0aGUgY2hhaW4gdG8gcmVzb2x2ZSBjb3JyZWN0bHkuXHJcbiAqXHJcbiAqIFN1cHBvcnRzIGxhenktbG9hZGVkIHJvdXRlczogdGhlIGludGVybmFsIHJvdXRlIG1hcCBpcyByZWJ1aWx0IGF1dG9tYXRpY2FsbHlcclxuICogd2hlbmV2ZXIgbmV3IHJvdXRlcyBhcmUgbG9hZGVkIHZpYSBgTmF2aWdhdGlvbkVuZGAuXHJcbiAqXHJcbiAqIExhYmVsIHJlc29sdXRpb24gZm9yIHJvdXRlIHBhcmFtZXRlcnMgKGA6cGFyYW1gKSBpcyBkZWxlZ2F0ZWQgdG8gYW4gaW5qZWN0YWJsZVxyXG4gKiBgVWlMYWJlbFJlc29sdmVyRm5gIHZpYSB0aGUgYFVJX0JSRUFEQ1JVTUJfTEFCRUxfUkVTT0xWRVJgIHRva2VuLlxyXG4gKlxyXG4gKiBAdXNhZ2VOb3Rlc1xyXG4gKiAjIyMgUm91dGUgY29uZmlndXJhdGlvblxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gKiAgIHtcclxuICogICAgIHBhdGg6ICd1c2VycycsXHJcbiAqICAgICBkYXRhOiB7IGlkOiAndXNlcnMnLCB0aXRsZTogJ1V0ZW50aScgfSxcclxuICogICAgIGNoaWxkcmVuOiBbXHJcbiAqICAgICAgIHtcclxuICogICAgICAgICBwYXRoOiAnOnVzZXJJZCcsXHJcbiAqICAgICAgICAgZGF0YTogeyBpZDogJ3VzZXItZGV0YWlsJywgdGl0bGU6ICc6dXNlcklkJywgYnJlYWRjcnVtYnM6IFsndXNlcnMnXSB9LFxyXG4gKiAgICAgICAgIGNvbXBvbmVudDogVXNlckRldGFpbENvbXBvbmVudCxcclxuICogICAgICAgfSxcclxuICogICAgIF0sXHJcbiAqICAgfSxcclxuICogXTtcclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBDdXN0b20gbGFiZWwgcmVzb2x2ZXJcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBwcm92aWRlcnM6IFtcclxuICogICB7XHJcbiAqICAgICBwcm92aWRlOiBVSV9CUkVBRENSVU1CX0xBQkVMX1JFU09MVkVSLFxyXG4gKiAgICAgdXNlVmFsdWU6IChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+XHJcbiAqICAgICAgIG5hbWUgPT09ICd1c2VySWQnID8gYFVzZXIgIyR7dmFsdWV9YCA6IHZhbHVlLFxyXG4gKiAgIH0sXHJcbiAqIF1cclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVWlCcmVhZGNydW1iU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsUmVzb2x2ZXIgPSBpbmplY3QoVUlfQlJFQURDUlVNQl9MQUJFTF9SRVNPTFZFUik7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTWFwIG9mIHJvdXRlIElEIOKGkiBicmVhZGNydW1iIGNvbmZpZ3VyYXRpb24uICovXHJcbiAgcHJpdmF0ZSBicmVhZGNydW1iTWFwID0gbmV3IE1hcDxzdHJpbmcsIFVpQnJlYWRjcnVtYkNvbmZpZz4oKTtcclxuICAvKiogQGludGVybmFsIFRyYWNrcyByb3V0ZSBjb3VudCB0byBkZXRlY3QgbGF6eS1sb2FkZWQgcm91dGUgYWRkaXRpb25zLiAqL1xyXG4gIHByaXZhdGUgbGFzdFJvdXRlQ29uZmlnTGVuZ3RoID0gMDtcclxuICAvKiogQGludGVybmFsIExhc3QgY29tcHV0ZWQgYnJlYWRjcnVtYnMgZm9yIG5hdmlnYXRlQmFjay4gKi9cclxuICBwcml2YXRlIGxhc3RCcmVhZGNydW1iczogVWlCcmVhZGNydW1iSXRlbVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5yZWJ1aWxkUm91dGVNYXAoKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlYnVpbGRSb3V0ZU1hcElmTmVlZGVkKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZXMgdGhlIGJyZWFkY3J1bWIgdHJhaWwgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJvdXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvb3QgYEFjdGl2YXRlZFJvdXRlYCAodHlwaWNhbGx5IGluamVjdGVkIGluIHRoZSBjb21wb25lbnQpLlxyXG4gICAqIEByZXR1cm5zIE9yZGVyZWQgYXJyYXkgb2YgYnJlYWRjcnVtYiBpdGVtcyBmcm9tIHJvb3QgdG8gY3VycmVudCByb3V0ZS5cclxuICAgKi9cclxuICBnZXRCcmVhZGNydW1ic0ZvclJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFVpQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICBsZXQgZGVlcGVzdFJvdXRlID0gcm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgZGVlcGVzdFJvdXRlID0gZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJvdXRlV2l0aElkOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwgPSBkZWVwZXN0Um91dGU7XHJcbiAgICB3aGlsZSAocm91dGVXaXRoSWQgJiYgIXJvdXRlV2l0aElkLnNuYXBzaG90LmRhdGFbJ2lkJ10pIHtcclxuICAgICAgcm91dGVXaXRoSWQgPSByb3V0ZVdpdGhJZC5wYXJlbnQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCByb3V0ZUlkID0gcm91dGVXaXRoSWQ/LnNuYXBzaG90LmRhdGFbJ2lkJ107XHJcbiAgICBpZiAoIXJvdXRlSWQpIHtcclxuICAgICAgdGhpcy5sYXN0QnJlYWRjcnVtYnMgPSBbXTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29sbGVjdFBhcmFtc0Zyb21QYXRoKGRlZXBlc3RSb3V0ZSk7XHJcbiAgICBjb25zdCBicmVhZGNydW1icyA9IHRoaXMuYnVpbGRCcmVhZGNydW1iQ2hhaW4ocm91dGVJZCwgcGFyYW1zKTtcclxuICAgIHRoaXMubGFzdEJyZWFkY3J1bWJzID0gYnJlYWRjcnVtYnM7XHJcbiAgICByZXR1cm4gYnJlYWRjcnVtYnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIGJyZWFkY3J1bWIgKHBhcmVudCByb3V0ZSkuXHJcbiAgICogRmFsbHMgYmFjayB0byBgZmFsbGJhY2tVcmxgIChkZWZhdWx0OiBgL2ApIHdoZW4gbm8gcGFyZW50IGV4aXN0cy5cclxuICAgKi9cclxuICBuYXZpZ2F0ZUJhY2soZmFsbGJhY2tVcmwgPSAnLycpOiB2b2lkIHtcclxuICAgIGNvbnN0IHByZXYgPSB0aGlzLmxhc3RCcmVhZGNydW1icy5sZW5ndGggPiAxID8gdGhpcy5sYXN0QnJlYWRjcnVtYnNbdGhpcy5sYXN0QnJlYWRjcnVtYnMubGVuZ3RoIC0gMl0gOiBudWxsO1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gcHJldj8udXJsID8/IGZhbGxiYWNrVXJsO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YXJnZXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDb2xsZWN0cyBhbGwgcm91dGUgcGFyYW1zIGZyb20gdGhlIGZ1bGwgcGF0aCAoaW5jbHVkaW5nIHBhcmVudHMpLiAqL1xyXG4gIHByaXZhdGUgY29sbGVjdFBhcmFtc0Zyb21QYXRoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XHJcbiAgICBmb3IgKGNvbnN0IHIgb2Ygcm91dGUucGF0aEZyb21Sb290KSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCByLnNuYXBzaG90LnBhcmFtcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIFByaXZhdGUgaGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSZWJ1aWxkcyB0aGUgbWFwIG9ubHkgd2hlbiBuZXcgbGF6eSByb3V0ZXMgYXBwZWFyLiAqL1xyXG4gIHByaXZhdGUgcmVidWlsZFJvdXRlTWFwSWZOZWVkZWQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50TGVuZ3RoID0gdGhpcy5jb3VudFJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcpO1xyXG4gICAgaWYgKGN1cnJlbnRMZW5ndGggIT09IHRoaXMubGFzdFJvdXRlQ29uZmlnTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMucmVidWlsZFJvdXRlTWFwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlY3Vyc2l2ZWx5IGNvdW50cyByb3V0ZXMgaW5jbHVkaW5nIGxhenktbG9hZGVkIGNoaWxkcmVuLiAqL1xyXG4gIHByaXZhdGUgY291bnRSb3V0ZXMocm91dGVzOiBSb3V0ZXMpOiBudW1iZXIge1xyXG4gICAgbGV0IGNvdW50ID0gcm91dGVzLmxlbmd0aDtcclxuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XHJcbiAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvdW50ICs9IHRoaXMuY291bnRSb3V0ZXMocm91dGUuY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICgocm91dGUgYXMgYW55KS5fbG9hZGVkUm91dGVzKSB7XHJcbiAgICAgICAgY291bnQgKz0gdGhpcy5jb3VudFJvdXRlcygocm91dGUgYXMgYW55KS5fbG9hZGVkUm91dGVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDbGVhcnMgYW5kIHJlYnVpbGRzIHRoZSBmdWxsIHJvdXRlIOKGkiBicmVhZGNydW1iIG1hcC4gKi9cclxuICBwcml2YXRlIHJlYnVpbGRSb3V0ZU1hcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJlYWRjcnVtYk1hcC5jbGVhcigpO1xyXG4gICAgdGhpcy5idWlsZFJvdXRlTWFwKHRoaXMucm91dGVyLmNvbmZpZyk7XHJcbiAgICB0aGlzLmxhc3RSb3V0ZUNvbmZpZ0xlbmd0aCA9IHRoaXMuY291bnRSb3V0ZXModGhpcy5yb3V0ZXIuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVjdXJzaXZlbHkgd2Fsa3Mgcm91dGUgdHJlZSB0byBidWlsZCB0aGUgYnJlYWRjcnVtYiBtYXAuICovXHJcbiAgcHJpdmF0ZSBidWlsZFJvdXRlTWFwKHJvdXRlczogUm91dGVzLCBwYXJlbnRQYXRoID0gJycpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gYCR7cGFyZW50UGF0aH0vJHtyb3V0ZS5wYXRoIHx8ICcnfWA7XHJcblxyXG4gICAgICBpZiAocm91dGUuZGF0YT8uWydpZCddKSB7XHJcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoY3VycmVudFBhdGgpO1xyXG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYk1hcC5zZXQocm91dGUuZGF0YVsnaWQnXSwge1xyXG4gICAgICAgICAgaWQ6IHJvdXRlLmRhdGFbJ2lkJ10sXHJcbiAgICAgICAgICBwYXRoOiBmdWxsUGF0aCxcclxuICAgICAgICAgIGxhYmVsOiByb3V0ZS5kYXRhWyd0aXRsZSddIHx8IHJvdXRlLnBhdGggfHwgcm91dGUuZGF0YVsnaWQnXSxcclxuICAgICAgICAgIHBhcmVudElkczogcm91dGUuZGF0YVsnYnJlYWRjcnVtYnMnXSB8fCBbXSxcclxuICAgICAgICAgIG1ldGFkYXRhOiByb3V0ZS5kYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocm91dGUuY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmJ1aWxkUm91dGVNYXAocm91dGUuY2hpbGRyZW4sIGN1cnJlbnRQYXRoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoKHJvdXRlIGFzIGFueSkuX2xvYWRlZFJvdXRlcykge1xyXG4gICAgICAgIHRoaXMuYnVpbGRSb3V0ZU1hcCgocm91dGUgYXMgYW55KS5fbG9hZGVkUm91dGVzLCBjdXJyZW50UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQnVpbGRzIHRoZSBmdWxsIGJyZWFkY3J1bWIgY2hhaW4gZm9yIGEgcm91dGUgYnkgaXRzIElELiAqL1xyXG4gIHByaXZhdGUgYnVpbGRCcmVhZGNydW1iQ2hhaW4ocm91dGVJZDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBVaUJyZWFkY3J1bWJJdGVtW10ge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5icmVhZGNydW1iTWFwLmdldChyb3V0ZUlkKTtcclxuICAgIGlmICghY29uZmlnKSByZXR1cm4gW107XHJcblxyXG4gICAgdGhpcy5zYXZlRnVsbFBhdGgocm91dGVJZCwgdGhpcy5yb3V0ZXIudXJsKTtcclxuXHJcbiAgICBjb25zdCBwYXJlbnRDaGFpbiA9IHRoaXMuZ2V0UGFyZW50Q2hhaW4oY29uZmlnLnBhcmVudElkcywgcGFyYW1zKTtcclxuICAgIGNvbnN0IGJyZWFkY3J1bWJzOiBVaUJyZWFkY3J1bWJJdGVtW10gPSBbLi4ucGFyZW50Q2hhaW5dO1xyXG5cclxuICAgIGJyZWFkY3J1bWJzLnB1c2goe1xyXG4gICAgICBsYWJlbDogdGhpcy5yZXNvbHZlTGFiZWwoY29uZmlnLmxhYmVsLCBwYXJhbXMpLFxyXG4gICAgICB1cmw6IHRoaXMuc3RyaXBRdWVyeVBhcmFtcyh0aGlzLnJvdXRlci51cmwpLFxyXG4gICAgICBpc0xhc3Q6IHRydWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gYnJlYWRjcnVtYnM7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlc29sdmVzIHBhcmVudCBicmVhZGNydW1icyBmcm9tIG9yZGVyZWQgcGFyZW50IElEcy4gKi9cclxuICBwcml2YXRlIGdldFBhcmVudENoYWluKHBhcmVudElkczogc3RyaW5nW10sIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFVpQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICBpZiAoIXBhcmVudElkcz8ubGVuZ3RoKSByZXR1cm4gW107XHJcblxyXG4gICAgcmV0dXJuIHBhcmVudElkc1xyXG4gICAgICAubWFwKChpZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYnJlYWRjcnVtYk1hcC5nZXQoaWQpO1xyXG4gICAgICAgIGlmICghY29uZmlnKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc29sdmVMYWJlbChjb25maWcubGFiZWwsIHBhcmFtcyksXHJcbiAgICAgICAgICB1cmw6IHRoaXMucmVzb2x2ZVVybChjb25maWcucGF0aCwgcGFyYW1zKSxcclxuICAgICAgICAgIGlzTGFzdDogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcihCb29sZWFuKSBhcyBVaUJyZWFkY3J1bWJJdGVtW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWwgUmVzb2x2ZXMgYDpwYXJhbWAgcGxhY2Vob2xkZXJzIGluIGEgbGFiZWwgdXNpbmdcclxuICAgKiB0aGUgaW5qZWN0ZWQgbGFiZWwgcmVzb2x2ZXIgZnVuY3Rpb24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNvbHZlTGFiZWwobGFiZWw6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcclxuICAgIGlmICghbGFiZWwuaW5jbHVkZXMoJzonKSkgcmV0dXJuIGxhYmVsO1xyXG5cclxuICAgIGxldCByZXNvbHZlZCA9IGxhYmVsO1xyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zKSkge1xyXG4gICAgICBjb25zdCByZWFkYWJsZVZhbHVlID0gdGhpcy5sYWJlbFJlc29sdmVyKGtleSwgdmFsdWUpO1xyXG4gICAgICByZXNvbHZlZCA9IHJlc29sdmVkLnJlcGxhY2UoYDoke2tleX1gLCByZWFkYWJsZVZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNvbHZlZDtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVzb2x2ZXMgYDpwYXJhbWAgcGxhY2Vob2xkZXJzIGluIGEgcGF0aCBhbmQgY3JlYXRlcyBhIFVSTC4gKi9cclxuICBwcml2YXRlIHJlc29sdmVVcmwocGF0aDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xyXG4gICAgbGV0IHByb2Nlc3NlZFBhdGggPSBwYXRoO1xyXG5cclxuICAgIGlmIChwYXRoLmluY2x1ZGVzKCc6JykpIHtcclxuICAgICAgY29uc3Qgc2VnbWVudHMgPSBwYXRoLnNwbGl0KCcvJyk7XHJcbiAgICAgIGNvbnN0IHByb2Nlc3NlZFNlZ21lbnRzID0gc2VnbWVudHMubWFwKChzZWdtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aCgnOicpKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSBzZWdtZW50LnN1YnN0cmluZygxKTtcclxuICAgICAgICAgIHJldHVybiBwYXJhbXNbcGFyYW1OYW1lXSB8fCBzZWdtZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2VnbWVudDtcclxuICAgICAgfSk7XHJcbiAgICAgIHByb2Nlc3NlZFBhdGggPSBwcm9jZXNzZWRTZWdtZW50cy5qb2luKCcvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3Byb2Nlc3NlZFBhdGhdKS50b1N0cmluZygpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHJldHVybiBwcm9jZXNzZWRQYXRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBOb3JtYWxpemVzIHBhdGggYnkgY29sbGFwc2luZyBkb3VibGUgc2xhc2hlcyBhbmQgdHJpbW1pbmcgdHJhaWxpbmcgc2xhc2guICovXHJcbiAgcHJpdmF0ZSBub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC8rL2csICcvJykucmVwbGFjZSgvXFwvJC8sICcnKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVtb3ZlcyBxdWVyeSBwYXJhbWV0ZXJzIGZyb20gYSBVUkwuICovXHJcbiAgcHJpdmF0ZSBzdHJpcFF1ZXJ5UGFyYW1zKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmwuc3BsaXQoJz8nKVswXTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQ2FjaGVzIHRoZSBmdWxseSByZXNvbHZlZCBVUkwgZm9yIGEgcm91dGUgSUQuICovXHJcbiAgcHJpdmF0ZSBzYXZlRnVsbFBhdGgocm91dGVJZDogc3RyaW5nLCBmdWxsUGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmJyZWFkY3J1bWJNYXAuZ2V0KHJvdXRlSWQpO1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25maWcuZnVsbFBhdGggPSB0aGlzLnN0cmlwUXVlcnlQYXJhbXMoZnVsbFBhdGgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -6,7 +6,7 @@ import * as i1$1 from 'lucide-angular';
|
|
|
6
6
|
import { LucideAngularModule } from 'lucide-angular';
|
|
7
7
|
import { Router, NavigationEnd, ActivatedRoute, RouterLink, RouterOutlet, RouterLinkActive } from '@angular/router';
|
|
8
8
|
import * as i2$3 from '@angular/common';
|
|
9
|
-
import { isPlatformBrowser, NgTemplateOutlet,
|
|
9
|
+
import { isPlatformBrowser, NgTemplateOutlet, CommonModule, DOCUMENT } from '@angular/common';
|
|
10
10
|
import { Subject, Observable, map, combineLatest, startWith, distinctUntilChanged, takeUntil as takeUntil$1, BehaviorSubject, interval, filter as filter$1, throwError } from 'rxjs';
|
|
11
11
|
import { filter, takeUntil, debounceTime, distinctUntilChanged as distinctUntilChanged$1, tap, catchError, map as map$1, finalize } from 'rxjs/operators';
|
|
12
12
|
import * as i1$6 from '@angular/material/dialog';
|
|
@@ -49094,6 +49094,7 @@ const UI_BREADCRUMB_LABEL_RESOLVER = new InjectionToken('UI_BREADCRUMB_LABEL_RES
|
|
|
49094
49094
|
factory: () => (_name, value) => value,
|
|
49095
49095
|
});
|
|
49096
49096
|
|
|
49097
|
+
/** biome-ignore-all lint/complexity/useLiteralKeys: <explanation> */
|
|
49097
49098
|
/**
|
|
49098
49099
|
* Service that builds a nested breadcrumb trail from Angular route configuration.
|
|
49099
49100
|
*
|
|
@@ -49170,7 +49171,7 @@ class UiBreadcrumbService {
|
|
|
49170
49171
|
this.lastBreadcrumbs = [];
|
|
49171
49172
|
return [];
|
|
49172
49173
|
}
|
|
49173
|
-
const params = this.collectParamsFromPath(
|
|
49174
|
+
const params = this.collectParamsFromPath(deepestRoute);
|
|
49174
49175
|
const breadcrumbs = this.buildBreadcrumbChain(routeId, params);
|
|
49175
49176
|
this.lastBreadcrumbs = breadcrumbs;
|
|
49176
49177
|
return breadcrumbs;
|
|
@@ -49222,7 +49223,7 @@ class UiBreadcrumbService {
|
|
|
49222
49223
|
/** @internal Recursively walks route tree to build the breadcrumb map. */
|
|
49223
49224
|
buildRouteMap(routes, parentPath = '') {
|
|
49224
49225
|
for (const route of routes) {
|
|
49225
|
-
const currentPath = parentPath
|
|
49226
|
+
const currentPath = `${parentPath}/${route.path || ''}`;
|
|
49226
49227
|
if (route.data?.['id']) {
|
|
49227
49228
|
const fullPath = this.normalizePath(currentPath);
|
|
49228
49229
|
this.breadcrumbMap.set(route.data['id'], {
|
|
@@ -49636,12 +49637,9 @@ class UiBaseLayoutComponent {
|
|
|
49636
49637
|
/** Gap size between footer buttons. */
|
|
49637
49638
|
this.footerGap = 'sm';
|
|
49638
49639
|
this.router = inject(Router);
|
|
49639
|
-
this.location = inject(Location);
|
|
49640
49640
|
this.activatedRoute = inject(ActivatedRoute);
|
|
49641
49641
|
this.breadcrumbService = inject(UiBreadcrumbService);
|
|
49642
49642
|
this.destroyRef = inject(DestroyRef);
|
|
49643
|
-
/** @internal Current breadcrumbs, updated on each navigation. */
|
|
49644
|
-
this.breadcrumbs = [];
|
|
49645
49643
|
}
|
|
49646
49644
|
/**
|
|
49647
49645
|
* Merged action list (back button + consumer actions).
|
|
@@ -49651,14 +49649,13 @@ class UiBaseLayoutComponent {
|
|
|
49651
49649
|
get mergedActions() {
|
|
49652
49650
|
const result = [];
|
|
49653
49651
|
if (this.showBackButton) {
|
|
49654
|
-
const backTarget = this.getBackTarget();
|
|
49655
49652
|
result.push({
|
|
49656
49653
|
id: '__ui-back',
|
|
49657
49654
|
label: this.backButtonConfig.label ?? 'Indietro',
|
|
49658
49655
|
icon: this.backButtonConfig.icon ?? 'arrow-left',
|
|
49659
49656
|
iconPosition: 'leading',
|
|
49660
49657
|
variant: this.backButtonConfig.variant ?? 'outline',
|
|
49661
|
-
hidden:
|
|
49658
|
+
hidden: this.shouldHideBackButton(),
|
|
49662
49659
|
action: () => this.navigateBack(),
|
|
49663
49660
|
});
|
|
49664
49661
|
}
|
|
@@ -49675,25 +49672,29 @@ class UiBaseLayoutComponent {
|
|
|
49675
49672
|
.pipe(filter((event) => event instanceof NavigationEnd), debounceTime(50), takeUntilDestroyed(this.destroyRef))
|
|
49676
49673
|
.subscribe(() => this.refreshBreadcrumbs());
|
|
49677
49674
|
}
|
|
49678
|
-
/** @internal
|
|
49675
|
+
/** @internal Aggiorna lo stato dei breadcrumb nel service dalla rotta corrente. */
|
|
49679
49676
|
refreshBreadcrumbs() {
|
|
49680
|
-
this.
|
|
49681
|
-
}
|
|
49682
|
-
/** @internal Determines the back navigation target from breadcrumbs. */
|
|
49683
|
-
getBackTarget() {
|
|
49684
|
-
if (this.breadcrumbs.length < 2)
|
|
49685
|
-
return null;
|
|
49686
|
-
return this.breadcrumbs[this.breadcrumbs.length - 2];
|
|
49677
|
+
this.breadcrumbService.getBreadcrumbsForRoute(this.activatedRoute);
|
|
49687
49678
|
}
|
|
49688
|
-
/** @internal
|
|
49689
|
-
|
|
49690
|
-
const
|
|
49691
|
-
if (
|
|
49692
|
-
|
|
49679
|
+
/** @internal Determina se il back button deve essere nascosto per la rotta corrente. */
|
|
49680
|
+
shouldHideBackButton() {
|
|
49681
|
+
const currentPath = this.router.url.split('?')[0].split('#')[0];
|
|
49682
|
+
if (currentPath === this.homeRoute) {
|
|
49683
|
+
return true;
|
|
49693
49684
|
}
|
|
49694
|
-
|
|
49695
|
-
|
|
49685
|
+
let deepestRoute = this.activatedRoute;
|
|
49686
|
+
while (deepestRoute.firstChild) {
|
|
49687
|
+
deepestRoute = deepestRoute.firstChild;
|
|
49688
|
+
}
|
|
49689
|
+
// biome-ignore lint/complexity/useLiteralKeys: <explanation>
|
|
49690
|
+
if (deepestRoute.snapshot.data?.['hideBackButton'] === true) {
|
|
49691
|
+
return true;
|
|
49696
49692
|
}
|
|
49693
|
+
return false;
|
|
49694
|
+
}
|
|
49695
|
+
/** @internal Naviga al breadcrumb genitore o esegue il fallback alla home route. */
|
|
49696
|
+
navigateBack() {
|
|
49697
|
+
this.breadcrumbService.navigateBack(this.homeRoute);
|
|
49697
49698
|
}
|
|
49698
49699
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBaseLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49699
49700
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiBaseLayoutComponent, isStandalone: true, selector: "ui-base-layout", inputs: { showHeader: "showHeader", title: "title", homeRoute: "homeRoute", showHome: "showHome", updateDocumentTitle: "updateDocumentTitle", titleSuffix: "titleSuffix", showBackButton: "showBackButton", backButtonConfig: "backButtonConfig", actions: "actions", footerAlign: "footerAlign", footerGap: "footerGap" }, host: { classAttribute: "ui-base-layout-host" }, ngImport: i0, template: `
|