@mediusinc/mng-commons-layout 5.2.0-rc.2 → 5.3.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +2 -1
- package/esm2022/lib/components/main-layout.component.mjs +3 -4
- package/esm2022/lib/components/menu-item.component.mjs +54 -134
- package/esm2022/lib/components/menu.component.mjs +7 -10
- package/esm2022/lib/components/settings.component.mjs +51 -0
- package/esm2022/lib/components/topbar-user.component.mjs +17 -4
- package/esm2022/lib/helpers/menu-items.mjs +26 -0
- package/esm2022/lib/models/menu.model.mjs +1 -1
- package/esm2022/lib/services/layout-feature-config.token.mjs +1 -1
- package/esm2022/lib/services/main-layout.component.service.mjs +31 -11
- package/esm2022/lib/services/menu.service.mjs +37 -37
- package/fesm2022/mediusinc-mng-commons-layout.mjs +204 -195
- package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/components/main-layout.component.d.ts +0 -1
- package/lib/components/menu-item.component.d.ts +14 -26
- package/lib/components/menu.component.d.ts +2 -3
- package/lib/components/settings.component.d.ts +22 -0
- package/lib/components/topbar-user.component.d.ts +3 -0
- package/lib/helpers/menu-items.d.ts +2 -0
- package/lib/models/menu.model.d.ts +2 -2
- package/lib/services/layout-feature-config.token.d.ts +1 -0
- package/lib/services/main-layout.component.service.d.ts +13 -4
- package/lib/services/menu.service.d.ts +7 -8
- package/package.json +2 -2
- package/scss/layout/mng/_mng_layout_styles.scss +1 -0
- package/scss/layout/mng/_mng_sidebar_vertical.scss +8 -0
- package/version-info.json +5 -5
package/esm2022/index.mjs
CHANGED
|
@@ -4,6 +4,7 @@ export * from './lib/components/breadcrumb.component';
|
|
|
4
4
|
export * from './lib/components/main-layout.component';
|
|
5
5
|
export * from './lib/components/menu.component';
|
|
6
6
|
export * from './lib/components/menu-item.component';
|
|
7
|
+
export * from './lib/components/settings.component';
|
|
7
8
|
export * from './lib/components/sidebar.component';
|
|
8
9
|
export * from './lib/components/topbar.component';
|
|
9
10
|
export * from './lib/components/topbar-user.component';
|
|
@@ -20,4 +21,4 @@ export * from './lib/services/menu.service';
|
|
|
20
21
|
export * from './lib/services/version.service';
|
|
21
22
|
// provide
|
|
22
23
|
export * from './lib/provide';
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsVUFBVTtBQUNWLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsU0FBUztBQUNULGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxXQUFXO0FBQ1gsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21haW4tbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NldHRpbmdzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpZGViYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9wYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvcGJhci11c2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZlcnNpb24uY29tcG9uZW50JztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycy9yb3V0ZS1idWlsZGVyJztcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbGF5b3V0LXN0YXRlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9tZW51Lm1vZGVsJztcblxuLy8gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xheW91dC1mZWF0dXJlLWNvbmZpZy50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tYWluLWxheW91dC5jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdmVyc2lvbi5zZXJ2aWNlJztcblxuLy8gcHJvdmlkZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvdmlkZSc7XG4iXX0=
|
|
@@ -20,7 +20,6 @@ export class MainLayoutComponent {
|
|
|
20
20
|
this.renderer = inject(Renderer2);
|
|
21
21
|
this.appTopbar = viewChild('topbarCmp');
|
|
22
22
|
this.colorScheme = computed(() => this.commonsService.colorScheme() ?? 'light');
|
|
23
|
-
this.menuMode = signal(this.config?.menuMode ?? 'static');
|
|
24
23
|
this.ripple = signal(this.config?.ripple ?? true);
|
|
25
24
|
this.topbarComponent = signal(this.config?.components?.topbar === false ? undefined : this.config?.components?.topbar ?? TopbarComponent);
|
|
26
25
|
this.breadcrumbsComponent = signal(this.config?.components?.breadcrumb === false ? undefined : this.config?.components?.breadcrumb ?? BreadcrumbComponent);
|
|
@@ -76,10 +75,10 @@ export class MainLayoutComponent {
|
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: MainLayoutComponent, isStandalone: true, selector: "mng-main-layout", providers: [MainLayoutComponentService], viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (useNotificationWrapper()) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': colorScheme() === 'light',\n 'layout-dark': colorScheme() === 'dark',\n 'layout-overlay': menuMode() === 'overlay',\n 'layout-static': menuMode() === 'static',\n 'layout-reveal': menuMode() === 'reveal',\n 'layout-drawer': menuMode() === 'drawer',\n 'layout-slim': menuMode() === 'slim',\n 'layout-slim-plus': menuMode() === 'slim-plus',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && menuMode() === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: MainLayoutComponent, isStandalone: true, selector: "mng-main-layout", providers: [MainLayoutComponentService], viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (useNotificationWrapper()) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': colorScheme() === 'light',\n 'layout-dark': colorScheme() === 'dark',\n 'layout-overlay': layoutService.menuMode() === 'overlay',\n 'layout-static': layoutService.menuMode() === 'static',\n 'layout-reveal': layoutService.menuMode() === 'reveal',\n 'layout-drawer': layoutService.menuMode() === 'drawer',\n 'layout-slim': layoutService.menuMode() === 'slim',\n 'layout-slim-plus': layoutService.menuMode() === 'slim-plus',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && layoutService.menuMode() === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
79
|
}
|
|
81
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponent, decorators: [{
|
|
82
81
|
type: Component,
|
|
83
|
-
args: [{ standalone: true, selector: 'mng-main-layout', imports: [NgClass, RouterModule, TopbarComponent, BreadcrumbComponent, ComponentDirective, AsyncPipe, NotificationWrapperComponent, NgTemplateOutlet], providers: [MainLayoutComponentService], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (useNotificationWrapper()) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': colorScheme() === 'light',\n 'layout-dark': colorScheme() === 'dark',\n 'layout-overlay': menuMode() === 'overlay',\n 'layout-static': menuMode() === 'static',\n 'layout-reveal': menuMode() === 'reveal',\n 'layout-drawer': menuMode() === 'drawer',\n 'layout-slim': menuMode() === 'slim',\n 'layout-slim-plus': menuMode() === 'slim-plus',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && menuMode() === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n" }]
|
|
82
|
+
args: [{ standalone: true, selector: 'mng-main-layout', imports: [NgClass, RouterModule, TopbarComponent, BreadcrumbComponent, ComponentDirective, AsyncPipe, NotificationWrapperComponent, NgTemplateOutlet], providers: [MainLayoutComponentService], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (useNotificationWrapper()) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': colorScheme() === 'light',\n 'layout-dark': colorScheme() === 'dark',\n 'layout-overlay': layoutService.menuMode() === 'overlay',\n 'layout-static': layoutService.menuMode() === 'static',\n 'layout-reveal': layoutService.menuMode() === 'reveal',\n 'layout-drawer': layoutService.menuMode() === 'drawer',\n 'layout-slim': layoutService.menuMode() === 'slim',\n 'layout-slim-plus': layoutService.menuMode() === 'slim-plus',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && layoutService.menuMode() === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n" }]
|
|
84
83
|
}], ctorParameters: () => [] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21haW4tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBUSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVW5ELE1BQU0sT0FBTyxtQkFBbUI7SUFzQjVCO1FBckJpQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxD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LENBQUM7SUFDTCxDQUFDOzhHQXpFUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4REFIakIsQ0FBQywwQkFBMEIsQ0FBQyxrSkNuQjNDLHFpRUE4Q0EsNENEN0JjLE9BQU8sbUZBQUUsWUFBWSx5TUFBd0Msa0JBQWtCLGlMQUFhLDRCQUE0QixxRUFBRSxnQkFBZ0I7OzJGQUszSSxtQkFBbUI7a0JBUi9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixXQUNsQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxnQkFBZ0IsQ0FBQyxhQUUxSSxDQUFDLDBCQUEwQixDQUFDLG1CQUN0Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBUeXBlLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwsIHZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Q29tbW9uc1NlcnZpY2UsIENvbXBvbmVudERpcmVjdGl2ZSwgTm90aWZpY2F0aW9uV3JhcHBlckNvbXBvbmVudH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtDT01NT05TX0xBWU9VVF9GRUFUVVJFX0NPTkZJR19JVH0gZnJvbSAnLi4vc2VydmljZXMvbGF5b3V0LWZlYXR1cmUtY29uZmlnLnRva2VuJztcbmltcG9ydCB7TWFpbkxheW91dENvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7TWVudVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XG5pbXBvcnQge0JyZWFkY3J1bWJDb21wb25lbnR9IGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHtGb290ZXJDb21wb25lbnR9IGZyb20gJy4vZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1RvcGJhckNvbXBvbmVudH0gZnJvbSAnLi90b3BiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1tYWluLWxheW91dCcsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIFJvdXRlck1vZHVsZSwgVG9wYmFyQ29tcG9uZW50LCBCcmVhZGNydW1iQ29tcG9uZW50LCBDb21wb25lbnREaXJlY3RpdmUsIEFzeW5jUGlwZSwgTm90aWZpY2F0aW9uV3JhcHBlckNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL21haW4tbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWFpbkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zU2VydmljZSA9IGluamVjdChDb21tb25zU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUdfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KE1haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lbnVTZXJ2aWNlID0gaW5qZWN0KE1lbnVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgICBwcml2YXRlIGFwcFRvcGJhciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigndG9wYmFyQ21wJyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sb3JTY2hlbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbW1vbnNTZXJ2aWNlLmNvbG9yU2NoZW1lKCkgPz8gJ2xpZ2h0Jyk7XG4gICAgcHVibGljIHJlYWRvbmx5IG1lbnVNb2RlID0gc2lnbmFsKHRoaXMuY29uZmlnPy5tZW51TW9kZSA/PyAnc3RhdGljJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IHJpcHBsZSA9IHNpZ25hbCh0aGlzLmNvbmZpZz8ucmlwcGxlID8/IHRydWUpO1xuXG4gICAgcHVibGljIHRvcGJhckNvbXBvbmVudCA9IHNpZ25hbDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy50b3BiYXIgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogdGhpcy5jb25maWc/LmNvbXBvbmVudHM/LnRvcGJhciA/PyBUb3BiYXJDb21wb25lbnQpO1xuICAgIHB1YmxpYyBicmVhZGNydW1ic0NvbXBvbmVudCA9IHNpZ25hbDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KFxuICAgICAgICB0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uYnJlYWRjcnVtYiA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiB0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uYnJlYWRjcnVtYiA/PyBCcmVhZGNydW1iQ29tcG9uZW50XG4gICAgKTtcbiAgICBwdWJsaWMgZm9vdGVyQ29tcG9uZW50ID0gc2lnbmFsPFR5cGU8YW55PiB8IHVuZGVmaW5lZD4odGhpcy5jb25maWc/LmNvbXBvbmVudHM/LmZvb3RlciA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiB0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uZm9vdGVyID8/IEZvb3RlckNvbXBvbmVudCk7XG5cbiAgICBwdWJsaWMgdXNlTm90aWZpY2F0aW9uV3JhcHBlciA9IHNpZ25hbCghdGhpcy5jb25maWc/LmRpc2FibGVOb3RpZmljYXRpb25XcmFwcGVyKTtcbiAgICBwcml2YXRlIG1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5vdmVybGF5T3BlbiQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEodGhpcy5hcHBUb3BiYXIoKT8ubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHwgdGhpcy5hcHBUb3BiYXIoKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3V0c2lkZUNsaWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZSgpLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdibG9ja2VkLXNjcm9sbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgKz0gJyBibG9ja2VkLXNjcm9sbCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgnKF58XFxcXGIpJyArICdibG9ja2VkLXNjcm9sbCcuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKFxcXFxifCQpJywgJ2dpJyksICcgJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlTWVudSgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICBvdmVybGF5TWVudUFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBzdGF0aWNNZW51TW9iaWxlQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lbnVIb3ZlckFjdGl2ZTogZmFsc2VcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0KCk7XG4gICAgICAgIGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVuYmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAodXNlTm90aWZpY2F0aW9uV3JhcHBlcigpKSB7XG4gICAgPG1uZy1ub3RpZmljYXRpb24td3JhcHBlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbW5nLW5vdGlmaWNhdGlvbi13cmFwcGVyPlxufSBAZWxzZSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxheW91dC1jb250YWluZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbGF5b3V0LWxpZ2h0JzogY29sb3JTY2hlbWUoKSA9PT0gJ2xpZ2h0JyxcbiAgICAgICAgICAgICdsYXlvdXQtZGFyayc6IGNvbG9yU2NoZW1lKCkgPT09ICdkYXJrJyxcbiAgICAgICAgICAgICdsYXlvdXQtb3ZlcmxheSc6IG1lbnVNb2RlKCkgPT09ICdvdmVybGF5JyxcbiAgICAgICAgICAgICdsYXlvdXQtc3RhdGljJzogbWVudU1vZGUoKSA9PT0gJ3N0YXRpYycsXG4gICAgICAgICAgICAnbGF5b3V0LXJldmVhbCc6IG1lbnVNb2RlKCkgPT09ICdyZXZlYWwnLFxuICAgICAgICAgICAgJ2xheW91dC1kcmF3ZXInOiBtZW51TW9kZSgpID09PSAnZHJhd2VyJyxcbiAgICAgICAgICAgICdsYXlvdXQtc2xpbSc6IG1lbnVNb2RlKCkgPT09ICdzbGltJyxcbiAgICAgICAgICAgICdsYXlvdXQtc2xpbS1wbHVzJzogbWVudU1vZGUoKSA9PT0gJ3NsaW0tcGx1cycsXG4gICAgICAgICAgICAnbGF5b3V0LXN0YXRpYy1pbmFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlICYmIG1lbnVNb2RlKCkgPT09ICdzdGF0aWMnLFxuICAgICAgICAgICAgJ2xheW91dC1vdmVybGF5LWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5vdmVybGF5TWVudUFjdGl2ZSxcbiAgICAgICAgICAgICdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxuICAgICAgICAgICAgJ3AtcmlwcGxlLWRpc2FibGVkJzogIXJpcHBsZSgpLFxuICAgICAgICAgICAgJ2xheW91dC1zaWRlYmFyLWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5zaWRlYmFyQWN0aXZlLFxuICAgICAgICAgICAgJ2xheW91dC1zaWRlYmFyLWFuY2hvcmVkJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLmFuY2hvcmVkXG4gICAgICAgIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIEBpZiAodG9wYmFyQ29tcG9uZW50KCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2ICN0b3BiYXJDbXAgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLXdyYXBwZXJcIiBbbW5nQ29tcG9uZW50XT1cInRvcGJhckNvbXBvbmVudCgpXCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGJyZWFkY3J1bWJzQ29tcG9uZW50KCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1icmVhZGNydW1iXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW21uZ0NvbXBvbmVudF09XCJicmVhZGNydW1ic0NvbXBvbmVudCgpXCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFza1wiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChmb290ZXJDb21wb25lbnQoKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgW21uZ0NvbXBvbmVudF09XCJmb290ZXJDb21wb25lbnQoKVwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21haW4tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBUSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVW5ELE1BQU0sT0FBTyxtQkFBbUI7SUFxQjVCO1FBcEJpQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxD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bkIzQyx1b0VBOENBLDRDRDdCYyxPQUFPLG1GQUFFLFlBQVkseU1BQXdDLGtCQUFrQixpTEFBYSw0QkFBNEIscUVBQUUsZ0JBQWdCOzsyRkFLM0ksbUJBQW1CO2tCQVIvQixTQUFTO2lDQUNNLElBQUksWUFDTixpQkFBaUIsV0FDbEIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLENBQUMsYUFFMUksQ0FBQywwQkFBMEIsQ0FBQyxtQkFDdEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVHlwZSwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsLCB2aWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlLCBDb21wb25lbnREaXJlY3RpdmUsIE5vdGlmaWNhdGlvbldyYXBwZXJDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7Q09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUdfSVR9IGZyb20gJy4uL3NlcnZpY2VzL2xheW91dC1mZWF0dXJlLWNvbmZpZy50b2tlbic7XG5pbXBvcnQge01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWluLWxheW91dC5jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQge01lbnVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHtCcmVhZGNydW1iQ29tcG9uZW50fSBmcm9tICcuL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7Rm9vdGVyQ29tcG9uZW50fSBmcm9tICcuL2Zvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHtUb3BiYXJDb21wb25lbnR9IGZyb20gJy4vdG9wYmFyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctbWFpbi1sYXlvdXQnLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBSb3V0ZXJNb2R1bGUsIFRvcGJhckNvbXBvbmVudCwgQnJlYWRjcnVtYkNvbXBvbmVudCwgQ29tcG9uZW50RGlyZWN0aXZlLCBBc3luY1BpcGUsIE5vdGlmaWNhdGlvbldyYXBwZXJDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1haW5MYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uc1NlcnZpY2UgPSBpbmplY3QoQ29tbW9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0U2VydmljZSA9IGluamVjdChNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgcHJpdmF0ZSBhcHBUb3BiYXIgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3RvcGJhckNtcCcpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbG9yU2NoZW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21tb25zU2VydmljZS5jb2xvclNjaGVtZSgpID8/ICdsaWdodCcpO1xuICAgIHB1YmxpYyByZWFkb25seSByaXBwbGUgPSBzaWduYWwodGhpcy5jb25maWc/LnJpcHBsZSA/PyB0cnVlKTtcblxuICAgIHB1YmxpYyB0b3BiYXJDb21wb25lbnQgPSBzaWduYWw8VHlwZTxhbnk+IHwgdW5kZWZpbmVkPih0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8udG9wYmFyID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy50b3BiYXIgPz8gVG9wYmFyQ29tcG9uZW50KTtcbiAgICBwdWJsaWMgYnJlYWRjcnVtYnNDb21wb25lbnQgPSBzaWduYWw8VHlwZTxhbnk+IHwgdW5kZWZpbmVkPihcbiAgICAgICAgdGhpcy5jb25maWc/LmNvbXBvbmVudHM/LmJyZWFkY3J1bWIgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogdGhpcy5jb25maWc/LmNvbXBvbmVudHM/LmJyZWFkY3J1bWIgPz8gQnJlYWRjcnVtYkNvbXBvbmVudFxuICAgICk7XG4gICAgcHVibGljIGZvb3RlckNvbXBvbmVudCA9IHNpZ25hbDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5jb21wb25lbnRzPy5mb290ZXIgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogdGhpcy5jb25maWc/LmNvbXBvbmVudHM/LmZvb3RlciA/PyBGb290ZXJDb21wb25lbnQpO1xuXG4gICAgcHVibGljIHVzZU5vdGlmaWNhdGlvbldyYXBwZXIgPSBzaWduYWwoIXRoaXMuY29uZmlnPy5kaXNhYmxlTm90aWZpY2F0aW9uV3JhcHBlcik7XG4gICAgcHJpdmF0ZSBtZW51T3V0c2lkZUNsaWNrTGlzdGVuZXI6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub3ZlcmxheU9wZW4kLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCBldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzT3V0c2lkZUNsaWNrZWQgPSAhKHRoaXMuYXBwVG9wYmFyKCk/Lm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShldmVudC50YXJnZXQpIHx8IHRoaXMuYXBwVG9wYmFyKCk/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc091dHNpZGVDbGlja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYmxvY2tlZC1zY3JvbGwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5ibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxiKScgKyAnYmxvY2tlZC1zY3JvbGwnLnNwbGl0KCcgJykuam9pbignfCcpICsgJyhcXFxcYnwkKScsICdnaScpLCAnICcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZU1lbnUoKSB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgb3ZlcmxheU1lbnVBY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgc3RhdGljTWVudU1vYmlsZUFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBtZW51SG92ZXJBY3RpdmU6IGZhbHNlXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5yZXNldCgpO1xuICAgICAgICBpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51bmJsb2NrQm9keVNjcm9sbCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKHVzZU5vdGlmaWNhdGlvbldyYXBwZXIoKSkge1xuICAgIDxtbmctbm90aWZpY2F0aW9uLXdyYXBwZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L21uZy1ub3RpZmljYXRpb24td3JhcHBlcj5cbn0gQGVsc2Uge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbn1cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsYXlvdXQtY29udGFpbmVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2xheW91dC1saWdodCc6IGNvbG9yU2NoZW1lKCkgPT09ICdsaWdodCcsXG4gICAgICAgICAgICAnbGF5b3V0LWRhcmsnOiBjb2xvclNjaGVtZSgpID09PSAnZGFyaycsXG4gICAgICAgICAgICAnbGF5b3V0LW92ZXJsYXknOiBsYXlvdXRTZXJ2aWNlLm1lbnVNb2RlKCkgPT09ICdvdmVybGF5JyxcbiAgICAgICAgICAgICdsYXlvdXQtc3RhdGljJzogbGF5b3V0U2VydmljZS5tZW51TW9kZSgpID09PSAnc3RhdGljJyxcbiAgICAgICAgICAgICdsYXlvdXQtcmV2ZWFsJzogbGF5b3V0U2VydmljZS5tZW51TW9kZSgpID09PSAncmV2ZWFsJyxcbiAgICAgICAgICAgICdsYXlvdXQtZHJhd2VyJzogbGF5b3V0U2VydmljZS5tZW51TW9kZSgpID09PSAnZHJhd2VyJyxcbiAgICAgICAgICAgICdsYXlvdXQtc2xpbSc6IGxheW91dFNlcnZpY2UubWVudU1vZGUoKSA9PT0gJ3NsaW0nLFxuICAgICAgICAgICAgJ2xheW91dC1zbGltLXBsdXMnOiBsYXlvdXRTZXJ2aWNlLm1lbnVNb2RlKCkgPT09ICdzbGltLXBsdXMnLFxuICAgICAgICAgICAgJ2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOiBsYXlvdXRTZXJ2aWNlLnN0YXRlKCkuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSAmJiBsYXlvdXRTZXJ2aWNlLm1lbnVNb2RlKCkgPT09ICdzdGF0aWMnLFxuICAgICAgICAgICAgJ2xheW91dC1vdmVybGF5LWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5vdmVybGF5TWVudUFjdGl2ZSxcbiAgICAgICAgICAgICdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxuICAgICAgICAgICAgJ3AtcmlwcGxlLWRpc2FibGVkJzogIXJpcHBsZSgpLFxuICAgICAgICAgICAgJ2xheW91dC1zaWRlYmFyLWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5zaWRlYmFyQWN0aXZlLFxuICAgICAgICAgICAgJ2xheW91dC1zaWRlYmFyLWFuY2hvcmVkJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLmFuY2hvcmVkXG4gICAgICAgIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIEBpZiAodG9wYmFyQ29tcG9uZW50KCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2ICN0b3BiYXJDbXAgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLXdyYXBwZXJcIiBbbW5nQ29tcG9uZW50XT1cInRvcGJhckNvbXBvbmVudCgpXCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGJyZWFkY3J1bWJzQ29tcG9uZW50KCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1icmVhZGNydW1iXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW21uZ0NvbXBvbmVudF09XCJicmVhZGNydW1ic0NvbXBvbmVudCgpXCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFza1wiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChmb290ZXJDb21wb25lbnQoKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgW21uZ0NvbXBvbmVudF09XCJmb290ZXJDb21wb25lbnQoKVwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
2
|
import { AsyncPipe, NgClass } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, viewChild } from '@angular/core';
|
|
4
|
+
import { toObservable as ngToObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { RouterModule } from '@angular/router';
|
|
6
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
7
7
|
import { RippleModule } from 'primeng/ripple';
|
|
8
8
|
import { TooltipModule } from 'primeng/tooltip';
|
|
9
|
-
import {
|
|
10
|
-
import { PermissionService } from '@mediusinc/mng-commons/core';
|
|
9
|
+
import { distinctUntilChanged, of, switchMap } from 'rxjs';
|
|
10
|
+
import { PermissionService, toObservable } from '@mediusinc/mng-commons/core';
|
|
11
11
|
import { MainLayoutComponentService } from '../services/main-layout.component.service';
|
|
12
12
|
import { MenuService } from '../services/menu.service';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
@@ -16,87 +16,70 @@ import * as i2 from "@angular/router";
|
|
|
16
16
|
import * as i3 from "@ngx-translate/core";
|
|
17
17
|
export class MenuItemComponent {
|
|
18
18
|
constructor() {
|
|
19
|
-
this.router = inject(Router);
|
|
20
|
-
this.injector = inject(Injector);
|
|
21
|
-
this.destroyRef = inject(DestroyRef);
|
|
22
19
|
this.menuService = inject(MenuService);
|
|
23
20
|
this.permissionService = inject(PermissionService);
|
|
24
21
|
this.layoutService = inject(MainLayoutComponentService);
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
this.menuService.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (!this.layoutService.isMobile()) {
|
|
42
|
-
this.active.set(false);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.updateActiveStateFromRoute();
|
|
46
|
-
}
|
|
22
|
+
this.item = input.required();
|
|
23
|
+
this.root = input(false);
|
|
24
|
+
this.visibleChange = output();
|
|
25
|
+
this.submenuElRef = viewChild('submenu');
|
|
26
|
+
this.isPermitted = toSignal(ngToObservable(this.item).pipe(switchMap(i => (i.permissions ? this.permissionService.isMenuItemVisible(i.permissions, i.config) : of(true)))));
|
|
27
|
+
this.isVisibleFromItemSettings = toSignal(ngToObservable(this.item).pipe(switchMap(i => (typeof i.isVisible === 'function' ? toObservable(i.isVisible(i.config)) : of(i.isVisible ?? true)))));
|
|
28
|
+
this.menuChangeEvents = toSignal(this.menuService.menuChange$.pipe(distinctUntilChanged((v1, v2) => v1.key === v2.key)));
|
|
29
|
+
this.active = computed(() => {
|
|
30
|
+
if (!this.isPermitted()) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const menuChangeEvent = this.menuChangeEvents();
|
|
34
|
+
if (menuChangeEvent) {
|
|
35
|
+
return menuChangeEvent.eventType === 'reset' || !menuChangeEvent.key
|
|
36
|
+
? false
|
|
37
|
+
: this.item().key === menuChangeEvent.key || menuChangeEvent.key.startsWith((this.item().key ?? '') + '-');
|
|
47
38
|
}
|
|
39
|
+
return false;
|
|
48
40
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
this.visible = computed(() => {
|
|
42
|
+
const isPermitted = this.isPermitted();
|
|
43
|
+
if (!isPermitted) {
|
|
44
|
+
return false;
|
|
53
45
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
this.visible.set(false);
|
|
46
|
+
if (!this.isVisibleFromItemSettings()) {
|
|
47
|
+
return false;
|
|
57
48
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
49
|
+
const items = this.item().items();
|
|
50
|
+
if (Array.isArray(items) &&
|
|
51
|
+
items.length > 0 &&
|
|
52
|
+
this.item()
|
|
53
|
+
.itemsVisibility()
|
|
54
|
+
.every(v => !v())) {
|
|
55
|
+
return false;
|
|
64
56
|
}
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
return true;
|
|
58
|
+
});
|
|
59
|
+
effect(() => {
|
|
60
|
+
if (this.root() && this.active() && this.layoutService.isDesktop() && (this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {
|
|
61
|
+
this.calculatePosition(this.submenuElRef()?.nativeElement, this.submenuElRef()?.nativeElement.parentElement);
|
|
67
62
|
}
|
|
68
|
-
}
|
|
69
|
-
this.processItemVisibility();
|
|
70
|
-
this.processItemChildrenVisibility();
|
|
71
|
-
}
|
|
72
|
-
ngAfterViewChecked() {
|
|
73
|
-
if (this.root && this.active() && this.layoutService.isDesktop() && (this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {
|
|
74
|
-
this.calculatePosition(this.submenu?.nativeElement, this.submenu?.nativeElement.parentElement);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
ngOnDestroy() {
|
|
78
|
-
this.isVisibleSubscription?.unsubscribe();
|
|
63
|
+
});
|
|
79
64
|
}
|
|
80
65
|
get submenuAnimation() {
|
|
81
66
|
if (this.layoutService.isDesktop() && (this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {
|
|
82
67
|
return this.active() ? 'visible' : 'hidden';
|
|
83
68
|
}
|
|
84
69
|
else {
|
|
85
|
-
return this.root ? 'expanded' : this.active() ? 'expanded' : 'collapsed';
|
|
70
|
+
return this.root() ? 'expanded' : this.active() ? 'expanded' : 'collapsed';
|
|
86
71
|
}
|
|
87
72
|
}
|
|
88
|
-
get activeClass() {
|
|
89
|
-
return this.active() && !this.root;
|
|
90
|
-
}
|
|
91
73
|
itemClick(event) {
|
|
74
|
+
const item = this.item();
|
|
92
75
|
// avoid processing disabled items
|
|
93
|
-
if (
|
|
76
|
+
if (item.disabled) {
|
|
94
77
|
event.preventDefault();
|
|
95
78
|
return;
|
|
96
79
|
}
|
|
97
80
|
// toggle active state
|
|
98
|
-
if (
|
|
99
|
-
if ((this.root || this.active()) && (this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {
|
|
81
|
+
if (item.hasItemsOrLazyChildren()) {
|
|
82
|
+
if ((this.root() || this.active()) && (this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {
|
|
100
83
|
this.layoutService.onOverlaySubmenuOpen();
|
|
101
84
|
}
|
|
102
85
|
}
|
|
@@ -124,7 +107,7 @@ export class MenuItemComponent {
|
|
|
124
107
|
}
|
|
125
108
|
}
|
|
126
109
|
onChildVisibleChange(visible, item, idx) {
|
|
127
|
-
this.
|
|
110
|
+
this.item().itemsVisibility()[idx]?.set(visible);
|
|
128
111
|
}
|
|
129
112
|
calculatePosition(overlay, target) {
|
|
130
113
|
if (overlay) {
|
|
@@ -140,57 +123,8 @@ export class MenuItemComponent {
|
|
|
140
123
|
}
|
|
141
124
|
}
|
|
142
125
|
}
|
|
143
|
-
processItemVisibility() {
|
|
144
|
-
if (this.item.permissions) {
|
|
145
|
-
this.permissionService
|
|
146
|
-
.isMenuItemVisible(this.item.permissions, this.item)
|
|
147
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
148
|
-
.subscribe({
|
|
149
|
-
next: isPermitted => {
|
|
150
|
-
this.isPermitted.set(isPermitted);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
if (this.item.isVisible && typeof this.item.isVisible === 'function') {
|
|
155
|
-
let isVisibleObs;
|
|
156
|
-
runInInjectionContext(this.injector, () => {
|
|
157
|
-
const isVisibleRes = this.item.isVisible(this.item);
|
|
158
|
-
if (isVisibleRes instanceof Observable) {
|
|
159
|
-
isVisibleObs = isVisibleRes;
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
isVisibleObs = of(isVisibleRes);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
this.isVisibleSubscription = isVisibleObs?.subscribe(isVisible => this.isPermitted.set(isVisible));
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
updateActiveStateFromRoute() {
|
|
169
|
-
if (this.itemUrl) {
|
|
170
|
-
this.active.set(this.router.isActive(this.itemUrl, {
|
|
171
|
-
matrixParams: 'ignored',
|
|
172
|
-
queryParams: 'ignored',
|
|
173
|
-
paths: this.item.items ? 'subset' : 'exact',
|
|
174
|
-
fragment: 'ignored'
|
|
175
|
-
}));
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
this.active.set(false);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
processItemChildrenVisibility() {
|
|
182
|
-
if (this.item.items) {
|
|
183
|
-
this.childrenVisibilitySubject = this.item.items.map(() => new BehaviorSubject(true));
|
|
184
|
-
combineLatest(this.childrenVisibilitySubject.map(s => s.asObservable().pipe(distinctUntilChanged())))
|
|
185
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
186
|
-
.subscribe(visible => {
|
|
187
|
-
const anyChildVisible = visible.some(v => v === true);
|
|
188
|
-
this.active.set(!anyChildVisible);
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
126
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: MenuItemComponent, isStandalone: true, selector: "[mng-menuitem]", inputs: { item: "item", root: "root" }, outputs: {
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: MenuItemComponent, isStandalone: true, selector: "[mng-menuitem]", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class.active-menuitem": "!root() && active()", "class.layout-root-menuitem": "root()" } }, providers: [PermissionService], viewQueries: [{ propertyName: "submenuElRef", first: true, predicate: ["submenu"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n @if (root()) {\n <div class=\"layout-menuitem-root-text\">\n {{ item().label! | translate }}\n </div>\n }\n @if (!item().href) {\n @if (!item().routerLink || item().hasItems()) {\n <a\n [attr.href]=\"item().href\"\n (click)=\"itemClick($event)\"\n (keydown.enter)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? ''\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n } @else if (item().routerLink && !item().hasItems()) {\n <a\n (click)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n [preserveFragment]=\"item().preserveFragment\"\n [skipLocationChange]=\"item().skipLocationChange\"\n [replaceUrl]=\"item().replaceUrl\"\n [queryParams]=\"item().queryParams\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n } @else {\n @if (!item().hasItems()) {\n <a (click)=\"itemClick($event)\" [attr.href]=\"item().href\" [attr.target]=\"item().target\" [attr.tabindex]=\"0\" [ngClass]=\"item().className ?? ''\" pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n }\n @if (item().hasItems()) {\n <ul #submenu [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\n @for (child of item().items(); track child; let i = $index) {\n <li mng-menuitem [item]=\"child\" [class]=\"child.badgeClassName\" (visibleChange)=\"onChildVisibleChange($event, child, i)\"></li>\n }\n </ul>\n }\n}\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i1.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [
|
|
194
128
|
trigger('children', [
|
|
195
129
|
state('collapsed', style({
|
|
196
130
|
height: '0'
|
|
@@ -226,23 +160,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImpor
|
|
|
226
160
|
})),
|
|
227
161
|
transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))
|
|
228
162
|
])
|
|
229
|
-
],
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
type: Input
|
|
235
|
-
}, {
|
|
236
|
-
type: HostBinding,
|
|
237
|
-
args: ['class.layout-root-menuitem']
|
|
238
|
-
}], visibleChangeEventEmitter: [{
|
|
239
|
-
type: Output,
|
|
240
|
-
args: ['visibleChange']
|
|
241
|
-
}], submenu: [{
|
|
242
|
-
type: ViewChild,
|
|
243
|
-
args: ['submenu']
|
|
244
|
-
}], activeClass: [{
|
|
245
|
-
type: HostBinding,
|
|
246
|
-
args: ['class.active-menuitem']
|
|
247
|
-
}] } });
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBZ0IsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4RyxPQUFPLEVBQWtCLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0UsT0FB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QTRCO2dCQUN6Qix5QkFBeUI7c0JBQWpELE1BQU07dUJBQUMsZUFBZTtnQkFFRCxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBMkVoQixXQUFXO3NCQURkLFdBQVc7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRpb25FdmVudCwgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0NsYXNzfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0LFxuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtJc0FjdGl2ZU1hdGNoT3B0aW9ucywgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJNb2R1bGUsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgb2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNNZW51SXRlbSwgUGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TWFpbkxheW91dENvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7TWVudVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1ttbmctbWVudWl0ZW1dJyxcbiAgICB0ZW1wbGF0ZVVybDogJ21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIFJpcHBsZU1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgUm91dGVyTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEFzeW5jUGlwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdjaGlsZHJlbicsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdjb2xsYXBzZWQnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMCdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdleHBhbmRlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcqJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnbm9uZSdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaydcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA8PT4gZXhwYW5kZWQnLCBhbmltYXRlKCc0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknKSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1Blcm1pc3Npb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lbnVTZXJ2aWNlID0gaW5qZWN0KE1lbnVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UpO1xuXG4gICAgcHVibGljIGlzUGVybWl0dGVkID0gc2lnbmFsKHRydWUpO1xuICAgIHByaXZhdGUgY2hpbGRyZW5WaXNpYmlsaXR5U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+W10gPSBbXTtcblxuICAgIHByaXZhdGUgaXRlbVVybD86IHN0cmluZyB8IFVybFRyZWU7XG5cbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgaXRlbSE6IENvbW1vbnNNZW51SXRlbTtcbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmxheW91dC1yb290LW1lbnVpdGVtJykgcm9vdCA9IGZhbHNlO1xuICAgIEBPdXRwdXQoJ3Zpc2libGVDaGFuZ2UnKSB2aXNpYmxlQ2hhbmdlRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnc3VibWVudScpIHN1Ym1lbnUhOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIGFjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHVibGljIHZpc2libGUgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5tZW51U291cmNlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUuc2V0KHRoaXMuaXRlbS5rZXkgPT09IHZhbHVlLmtleSB8fCB2YWx1ZS5rZXkuc3RhcnRzV2l0aCgodGhpcy5pdGVtLmtleSA/PyAnJykgKyAnLScpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0U291cmNlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUuc2V0KGZhbHNlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZShuZXh0ID0+IHtcbiAgICAgICAgICAgIGlmIChuZXh0IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5sYXlvdXRTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVN0YXRlRnJvbVJvdXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNQZXJtaXR0ZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZS5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlLnNldCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHthbGxvd1NpZ25hbFdyaXRlczogdHJ1ZX1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5yb3V0ZXJMaW5rKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbVVybCA9IHRoaXMuaXRlbS5yb3V0ZXJMaW5rO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1VcmwgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLml0ZW0ucm91dGVyTGluay5qb2luKCcvJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzSXRlbVZpc2liaWxpdHkoKTtcblxuICAgICAgICB0aGlzLnByb2Nlc3NJdGVtQ2hpbGRyZW5WaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICBpZiAodGhpcy5yb290ICYmIHRoaXMuYWN0aXZlKCkgJiYgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24odGhpcy5zdWJtZW51Py5uYXRpdmVFbGVtZW50LCB0aGlzLnN1Ym1lbnU/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHN1Ym1lbnVBbmltYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkgJiYgKHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb3QgPyAnZXhwYW5kZWQnIDogdGhpcy5hY3RpdmUoKSA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlLW1lbnVpdGVtJylcbiAgICBnZXQgYWN0aXZlQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZSgpICYmICF0aGlzLnJvb3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGl0ZW1DbGljayhldmVudDogRXZlbnQpIHtcbiAgICAgICAgLy8gYXZvaWQgcHJvY2Vzc2luZyBkaXNhYmxlZCBpdGVtc1xuICAgICAgICBpZiAodGhpcy5pdGVtLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG9nZ2xlIGFjdGl2ZSBzdGF0ZVxuICAgICAgICBpZiAodGhpcy5pdGVtLml0ZW1zIHx8IHRoaXMuaXRlbS5sYXp5Q2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmICgodGhpcy5yb290IHx8IHRoaXMuYWN0aXZlKCkpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub25PdmVybGF5U3VibWVudU9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIG1lbnVIb3ZlckFjdGl2ZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1lbnVBbmltYXRlZChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJyAmJiB0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkgJiYgKHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSA8SFRNTFVMaXN0RWxlbWVudD5ldmVudC5lbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZWxQYXJlbnQgPSA8SFRNTFVMaXN0RWxlbWVudD5lbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbihlbCwgZWxQYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hpbGRWaXNpYmxlQ2hhbmdlKHZpc2libGU6IGJvb2xlYW4sIGl0ZW06IENvbW1vbnNNZW51SXRlbSwgaWR4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlblZpc2liaWxpdHlTdWJqZWN0W2lkeF0ubmV4dCh2aXNpYmxlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZVBvc2l0aW9uKG92ZXJsYXk6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGlmIChvdmVybGF5KSB7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgICAgICAgICAgY29uc3QgdkhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IG9IZWlnaHQgPSBvdmVybGF5Lm9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgLy8gcmVzZXRcbiAgICAgICAgICAgIG92ZXJsYXkuc3R5bGUudG9wID0gJyc7XG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLmxlZnQgPSAnJztcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRvcCArIG9IZWlnaHQ7XG4gICAgICAgICAgICAgICAgb3ZlcmxheS5zdHlsZS50b3AgPSB2SGVpZ2h0IDwgaGVpZ2h0ID8gYCR7dG9wIC0gKGhlaWdodCAtIHZIZWlnaHQpfXB4YCA6IGAke3RvcH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NJdGVtVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZVxuICAgICAgICAgICAgICAgIC5pc01lbnVJdGVtVmlzaWJsZSh0aGlzLml0ZW0ucGVybWlzc2lvbnMsIHRoaXMuaXRlbSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogaXNQZXJtaXR0ZWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Blcm1pdHRlZC5zZXQoaXNQZXJtaXR0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtLmlzVmlzaWJsZSAmJiB0eXBlb2YgdGhpcy5pdGVtLmlzVmlzaWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IGlzVmlzaWJsZU9iczogT2JzZXJ2YWJsZTxib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlUmVzID0gdGhpcy5pdGVtLmlzVmlzaWJsZSEodGhpcy5pdGVtKTtcblxuICAgICAgICAgICAgICAgIGlmIChpc1Zpc2libGVSZXMgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzVmlzaWJsZU9icyA9IGlzVmlzaWJsZVJlcztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpc1Zpc2libGVPYnMgPSBvZihpc1Zpc2libGVSZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZVN1YnNjcmlwdGlvbiA9IGlzVmlzaWJsZU9icz8uc3Vic2NyaWJlKGlzVmlzaWJsZSA9PiB0aGlzLmlzUGVybWl0dGVkLnNldChpc1Zpc2libGUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWN0aXZlU3RhdGVGcm9tUm91dGUoKSB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1VcmwpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5pc0FjdGl2ZSh0aGlzLml0ZW1VcmwsIDxJc0FjdGl2ZU1hdGNoT3B0aW9ucz57XG4gICAgICAgICAgICAgICAgICAgIG1hdHJpeFBhcmFtczogJ2lnbm9yZWQnLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogJ2lnbm9yZWQnLFxuICAgICAgICAgICAgICAgICAgICBwYXRoczogdGhpcy5pdGVtLml0ZW1zID8gJ3N1YnNldCcgOiAnZXhhY3QnLFxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudDogJ2lnbm9yZWQnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzSXRlbUNoaWxkcmVuVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5pdGVtcykge1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlblZpc2liaWxpdHlTdWJqZWN0ID0gdGhpcy5pdGVtLml0ZW1zLm1hcCgoKSA9PiBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpKTtcblxuICAgICAgICAgICAgY29tYmluZUxhdGVzdCh0aGlzLmNoaWxkcmVuVmlzaWJpbGl0eVN1YmplY3QubWFwKHMgPT4gcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpKSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHZpc2libGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbnlDaGlsZFZpc2libGUgPSB2aXNpYmxlLnNvbWUodiA9PiB2ID09PSB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUuc2V0KCFhbnlDaGlsZFZpc2libGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICh2aXNpYmxlKCkpIHtcbiAgICBAaWYgKHJvb3QpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1yb290LXRleHRcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwhIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKCFpdGVtLmhyZWYpIHtcbiAgICAgICAgQGlmICghaXRlbS5yb3V0ZXJMaW5rIHx8IGl0ZW0uaXRlbXMpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJpdGVtLmhyZWZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzTmFtZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgcFJpcHBsZT5cbiAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJpdGVtLmljb24gPz8gJydcIiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXRleHRcIj57eyBpdGVtLmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaXRlbXMgfHwgaXRlbS5sYXp5Q2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnVpdGVtLWJhZGdlXCI+e3sgaXRlbS5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0ucm91dGVyTGluayAmJiAhaXRlbS5pdGVtcykge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzTmFtZSA/PyAnJyArICh0aGlzLmFjdGl2ZSgpID8gJyBhY3RpdmUtcm91dGUnIDogJycpXCJcbiAgICAgICAgICAgICAgICBbcHJlc2VydmVGcmFnbWVudF09XCJpdGVtLnByZXNlcnZlRnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgIFtza2lwTG9jYXRpb25DaGFuZ2VdPVwiaXRlbS5za2lwTG9jYXRpb25DaGFuZ2VcIlxuICAgICAgICAgICAgICAgIFtyZXBsYWNlVXJsXT1cIml0ZW0ucmVwbGFjZVVybFwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIml0ZW0ucXVlcnlQYXJhbXNcIlxuICAgICAgICAgICAgICAgIHBSaXBwbGU+XG4gICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uID8/ICcnXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0taWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxheW91dC1tZW51aXRlbS10ZXh0XCI+e3sgaXRlbS5sYWJlbCEgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLml0ZW1zIHx8IGl0ZW0ubGF6eUNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktYW5nbGUtZG93biBsYXlvdXQtc3VibWVudS10b2dnbGVyXCI+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51aXRlbS1iYWRnZVwiPnt7IGl0ZW0uYmFkZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoIWl0ZW0uaXRlbXMpIHtcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJpdGVtQ2xpY2soJGV2ZW50KVwiIFthdHRyLmhyZWZdPVwiaXRlbS5ocmVmXCIgW2F0dHIudGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCIgW2F0dHIudGFiaW5kZXhdPVwiMFwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NOYW1lID8/ICcnXCIgcFJpcHBsZT5cbiAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJpdGVtLmljb24gPz8gJydcIiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXRleHRcIj57eyBpdGVtLmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaXRlbXMgfHwgaXRlbS5sYXp5Q2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnVpdGVtLWJhZGdlXCI+e3sgaXRlbS5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgIDx1bCAjc3VibWVudSBbQGNoaWxkcmVuXT1cInN1Ym1lbnVBbmltYXRpb25cIiAoQGNoaWxkcmVuLmRvbmUpPVwib25TdWJtZW51QW5pbWF0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbS5pdGVtczsgdHJhY2sgY2hpbGQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGxpIG1uZy1tZW51aXRlbSBbaXRlbV09XCJjaGlsZFwiIFtjbGFzc109XCJjaGlsZC5iYWRnZUNsYXNzTmFtZVwiICh2aXNpYmxlQ2hhbmdlKT1cIm9uQ2hpbGRWaXNpYmxlQ2hhbmdlKCRldmVudCwgaXRlbSwgaSlcIj48L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIH1cbn1cbiJdfQ==
|
|
163
|
+
], host: {
|
|
164
|
+
'[class.active-menuitem]': '!root() && active()',
|
|
165
|
+
'[class.layout-root-menuitem]': 'root()'
|
|
166
|
+
}, providers: [PermissionService], template: "@if (visible()) {\n @if (root()) {\n <div class=\"layout-menuitem-root-text\">\n {{ item().label! | translate }}\n </div>\n }\n @if (!item().href) {\n @if (!item().routerLink || item().hasItems()) {\n <a\n [attr.href]=\"item().href\"\n (click)=\"itemClick($event)\"\n (keydown.enter)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? ''\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n } @else if (item().routerLink && !item().hasItems()) {\n <a\n (click)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n [preserveFragment]=\"item().preserveFragment\"\n [skipLocationChange]=\"item().skipLocationChange\"\n [replaceUrl]=\"item().replaceUrl\"\n [queryParams]=\"item().queryParams\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n } @else {\n @if (!item().hasItems()) {\n <a (click)=\"itemClick($event)\" [attr.href]=\"item().href\" [attr.target]=\"item().target\" [attr.tabindex]=\"0\" [ngClass]=\"item().className ?? ''\" pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n }\n @if (item().hasItems()) {\n <ul #submenu [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\n @for (child of item().items(); track child; let i = $index) {\n <li mng-menuitem [item]=\"child\" [class]=\"child.badgeClassName\" (visibleChange)=\"onChildVisibleChange($event, child, i)\"></li>\n }\n </ul>\n }\n}\n" }]
|
|
167
|
+
}], ctorParameters: () => [] });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFDLFlBQVksSUFBSSxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBMEIsaUJBQWlCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDckYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFD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QUM7U0FDTDs7MkZBT1EsaUJBQWlCO2tCQTFDN0IsU0FBUztpQ0FDTSxJQUFJLFlBRU4sZ0JBQWdCLFdBRWpCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsbUJBQ3hFLHVCQUF1QixDQUFDLE1BQU0sY0FDbkM7d0JBQ1IsT0FBTyxDQUFDLFVBQVUsRUFBRTs0QkFDaEIsS0FBSyxDQUNELFdBQVcsRUFDWCxLQUFLLENBQUM7Z0NBQ0YsTUFBTSxFQUFFLEdBQUc7NkJBQ2QsQ0FBQyxDQUNMOzRCQUNELEtBQUssQ0FDRCxVQUFVLEVBQ1YsS0FBSyxDQUFDO2dDQUNGLE1BQU0sRUFBRSxHQUFHOzZCQUNkLENBQUMsQ0FDTDs0QkFDRCxLQUFLLENBQ0QsUUFBUSxFQUNSLEtBQUssQ0FBQztnQ0FDRixPQUFPLEVBQUUsTUFBTTs2QkFDbEIsQ0FBQyxDQUNMOzRCQUNELEtBQUssQ0FDRCxTQUFTLEVBQ1QsS0FBSyxDQUFDO2dDQUNGLE9BQU8sRUFBRSxPQUFPOzZCQUNuQixDQUFDLENBQ0w7NEJBQ0QsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO3lCQUN4RixDQUFDO3FCQUNMLFFBQ0s7d0JBQ0YseUJBQXlCLEVBQUUscUJBQXFCO3dCQUNoRCw4QkFBOEIsRUFBRSxRQUFRO3FCQUMzQyxhQUNVLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbkV2ZW50LCBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgdmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9PYnNlcnZhYmxlIGFzIG5nVG9PYnNlcnZhYmxlLCB0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtJbnRlcm5hbENvbW1vbnNNZW51SXRlbSwgUGVybWlzc2lvblNlcnZpY2UsIHRvT2JzZXJ2YWJsZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbWFpbi1sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtNZW51U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbWVudS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW21uZy1tZW51aXRlbV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgUmlwcGxlTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQXN5bmNQaXBlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2NoaWxkcmVuJywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2NvbGxhcHNlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcwJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2V4cGFuZGVkJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJyonXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdub25lJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignY29sbGFwc2VkIDw9PiBleHBhbmRlZCcsIGFuaW1hdGUoJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKScpKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmFjdGl2ZS1tZW51aXRlbV0nOiAnIXJvb3QoKSAmJiBhY3RpdmUoKScsXG4gICAgICAgICdbY2xhc3MubGF5b3V0LXJvb3QtbWVudWl0ZW1dJzogJ3Jvb3QoKSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1Blcm1pc3Npb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51SXRlbUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZSA9IGluamVjdChQZXJtaXNzaW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KE1haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBpdGVtID0gaW5wdXQucmVxdWlyZWQ8SW50ZXJuYWxDb21tb25zTWVudUl0ZW0+KCk7XG4gICAgcHVibGljIHJvb3QgPSBpbnB1dChmYWxzZSk7XG4gICAgcHVibGljIHZpc2libGVDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgc3VibWVudUVsUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdzdWJtZW51Jyk7XG5cbiAgICBwdWJsaWMgaXNQZXJtaXR0ZWQgPSB0b1NpZ25hbChuZ1RvT2JzZXJ2YWJsZSh0aGlzLml0ZW0pLnBpcGUoc3dpdGNoTWFwKGkgPT4gKGkucGVybWlzc2lvbnMgPyB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmlzTWVudUl0ZW1WaXNpYmxlKGkucGVybWlzc2lvbnMsIGkuY29uZmlnKSA6IG9mKHRydWUpKSkpKTtcbiAgICBwdWJsaWMgaXNWaXNpYmxlRnJvbUl0ZW1TZXR0aW5ncyA9IHRvU2lnbmFsKFxuICAgICAgICBuZ1RvT2JzZXJ2YWJsZSh0aGlzLml0ZW0pLnBpcGUoc3dpdGNoTWFwKGkgPT4gKHR5cGVvZiBpLmlzVmlzaWJsZSA9PT0gJ2Z1bmN0aW9uJyA/IHRvT2JzZXJ2YWJsZShpLmlzVmlzaWJsZShpLmNvbmZpZykpIDogb2YoaS5pc1Zpc2libGUgPz8gdHJ1ZSkpKSlcbiAgICApO1xuICAgIHByaXZhdGUgbWVudUNoYW5nZUV2ZW50cyA9IHRvU2lnbmFsKHRoaXMubWVudVNlcnZpY2UubWVudUNoYW5nZSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgodjEsIHYyKSA9PiB2MS5rZXkgPT09IHYyLmtleSkpKTtcbiAgICBwdWJsaWMgYWN0aXZlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNQZXJtaXR0ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1lbnVDaGFuZ2VFdmVudCA9IHRoaXMubWVudUNoYW5nZUV2ZW50cygpO1xuICAgICAgICBpZiAobWVudUNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUNoYW5nZUV2ZW50LmV2ZW50VHlwZSA9PT0gJ3Jlc2V0JyB8fCAhbWVudUNoYW5nZUV2ZW50LmtleVxuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IHRoaXMuaXRlbSgpLmtleSA9PT0gbWVudUNoYW5nZUV2ZW50LmtleSB8fCBtZW51Q2hhbmdlRXZlbnQua2V5LnN0YXJ0c1dpdGgoKHRoaXMuaXRlbSgpLmtleSA/PyAnJykgKyAnLScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICBwdWJsaWMgdmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXNQZXJtaXR0ZWQgPSB0aGlzLmlzUGVybWl0dGVkKCk7XG4gICAgICAgIGlmICghaXNQZXJtaXR0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlRnJvbUl0ZW1TZXR0aW5ncygpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW0oKS5pdGVtcygpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGl0ZW1zKSAmJlxuICAgICAgICAgICAgaXRlbXMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgdGhpcy5pdGVtKClcbiAgICAgICAgICAgICAgICAuaXRlbXNWaXNpYmlsaXR5KClcbiAgICAgICAgICAgICAgICAuZXZlcnkodiA9PiAhdigpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucm9vdCgpICYmIHRoaXMuYWN0aXZlKCkgJiYgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKHRoaXMuc3VibWVudUVsUmVmKCk/Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3VibWVudUVsUmVmKCk/Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBzdWJtZW51QW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZSgpID8gJ3Zpc2libGUnIDogJ2hpZGRlbic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290KCkgPyAnZXhwYW5kZWQnIDogdGhpcy5hY3RpdmUoKSA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpdGVtQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW0oKTtcbiAgICAgICAgLy8gYXZvaWQgcHJvY2Vzc2luZyBkaXNhYmxlZCBpdGVtc1xuICAgICAgICBpZiAoaXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvZ2dsZSBhY3RpdmUgc3RhdGVcbiAgICAgICAgaWYgKGl0ZW0uaGFzSXRlbXNPckxhenlDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICBpZiAoKHRoaXMucm9vdCgpIHx8IHRoaXMuYWN0aXZlKCkpICYmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uub25PdmVybGF5U3VibWVudU9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIG1lbnVIb3ZlckFjdGl2ZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1lbnVBbmltYXRlZChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJyAmJiB0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkgJiYgKHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSA8SFRNTFVMaXN0RWxlbWVudD5ldmVudC5lbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZWxQYXJlbnQgPSA8SFRNTFVMaXN0RWxlbWVudD5lbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbihlbCwgZWxQYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hpbGRWaXNpYmxlQ2hhbmdlKHZpc2libGU6IGJvb2xlYW4sIGl0ZW06IEludGVybmFsQ29tbW9uc01lbnVJdGVtLCBpZHg6IG51bWJlcikge1xuICAgICAgICB0aGlzLml0ZW0oKS5pdGVtc1Zpc2liaWxpdHkoKVtpZHhdPy5zZXQodmlzaWJsZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbihvdmVybGF5OiBIVE1MRWxlbWVudCwgdGFyZ2V0OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBpZiAob3ZlcmxheSkge1xuICAgICAgICAgICAgY29uc3QgdG9wID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgICAgICAgIGNvbnN0IHZIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBvSGVpZ2h0ID0gb3ZlcmxheS5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgICAgIC8vIHJlc2V0XG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9ICcnO1xuICAgICAgICAgICAgb3ZlcmxheS5zdHlsZS5sZWZ0ID0gJyc7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0b3AgKyBvSGVpZ2h0O1xuICAgICAgICAgICAgICAgIG92ZXJsYXkuc3R5bGUudG9wID0gdkhlaWdodCA8IGhlaWdodCA/IGAke3RvcCAtIChoZWlnaHQgLSB2SGVpZ2h0KX1weGAgOiBgJHt0b3B9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICh2aXNpYmxlKCkpIHtcbiAgICBAaWYgKHJvb3QoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXJvb3QtdGV4dFwiPlxuICAgICAgICAgICAge3sgaXRlbSgpLmxhYmVsISB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmICghaXRlbSgpLmhyZWYpIHtcbiAgICAgICAgQGlmICghaXRlbSgpLnJvdXRlckxpbmsgfHwgaXRlbSgpLmhhc0l0ZW1zKCkpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJpdGVtKCkuaHJlZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJpdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbSgpLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtKCkudGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCIwXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtKCkuY2xhc3NOYW1lID8/ICcnXCJcbiAgICAgICAgICAgICAgICBwUmlwcGxlPlxuICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0oKS5pY29uID8/ICcnXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0taWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxheW91dC1tZW51aXRlbS10ZXh0XCI+e3sgaXRlbSgpLmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0oKS5oYXNJdGVtc09yTGF6eUNoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbSgpLmJhZGdlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudWl0ZW0tYmFkZ2VcIj57eyBpdGVtKCkuYmFkZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIGlmIChpdGVtKCkucm91dGVyTGluayAmJiAhaXRlbSgpLmhhc0l0ZW1zKCkpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtKCkucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0oKS50YXJnZXRcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0oKS5jbGFzc05hbWUgPz8gJycgKyAodGhpcy5hY3RpdmUoKSA/ICcgYWN0aXZlLXJvdXRlJyA6ICcnKVwiXG4gICAgICAgICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiaXRlbSgpLnByZXNlcnZlRnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgIFtza2lwTG9jYXRpb25DaGFuZ2VdPVwiaXRlbSgpLnNraXBMb2NhdGlvbkNoYW5nZVwiXG4gICAgICAgICAgICAgICAgW3JlcGxhY2VVcmxdPVwiaXRlbSgpLnJlcGxhY2VVcmxcIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJpdGVtKCkucXVlcnlQYXJhbXNcIlxuICAgICAgICAgICAgICAgIHBSaXBwbGU+XG4gICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbSgpLmljb24gPz8gJydcIiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXRleHRcIj57eyBpdGVtKCkubGFiZWwhIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbSgpLmhhc0l0ZW1zT3JMYXp5Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWFuZ2xlLWRvd24gbGF5b3V0LXN1Ym1lbnUtdG9nZ2xlclwiPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtKCkuYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51aXRlbS1iYWRnZVwiPnt7IGl0ZW0oKS5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICghaXRlbSgpLmhhc0l0ZW1zKCkpIHtcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJpdGVtQ2xpY2soJGV2ZW50KVwiIFthdHRyLmhyZWZdPVwiaXRlbSgpLmhyZWZcIiBbYXR0ci50YXJnZXRdPVwiaXRlbSgpLnRhcmdldFwiIFthdHRyLnRhYmluZGV4XT1cIjBcIiBbbmdDbGFzc109XCJpdGVtKCkuY2xhc3NOYW1lID8/ICcnXCIgcFJpcHBsZT5cbiAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJpdGVtKCkuaWNvbiA/PyAnJ1wiIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLWljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0tdGV4dFwiPnt7IGl0ZW0oKS5sYWJlbCEgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtKCkuaGFzSXRlbXNPckxhenlDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktYW5nbGUtZG93biBsYXlvdXQtc3VibWVudS10b2dnbGVyXCI+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0oKS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnVpdGVtLWJhZGdlXCI+e3sgaXRlbSgpLmJhZGdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaWYgKGl0ZW0oKS5oYXNJdGVtcygpKSB7XG4gICAgICAgIDx1bCAjc3VibWVudSBbQGNoaWxkcmVuXT1cInN1Ym1lbnVBbmltYXRpb25cIiAoQGNoaWxkcmVuLmRvbmUpPVwib25TdWJtZW51QW5pbWF0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbSgpLml0ZW1zKCk7IHRyYWNrIGNoaWxkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaSBtbmctbWVudWl0ZW0gW2l0ZW1dPVwiY2hpbGRcIiBbY2xhc3NdPVwiY2hpbGQuYmFkZ2VDbGFzc05hbWVcIiAodmlzaWJsZUNoYW5nZSk9XCJvbkNoaWxkVmlzaWJsZUNoYW5nZSgkZXZlbnQsIGNoaWxkLCBpKVwiPjwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdWw+XG4gICAgfVxufVxuIl19
|