@rxap/layout 15.0.0 → 16.0.0-dev.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/{esm2020 → esm2022}/lib/footer/footer.component.mjs +10 -9
- package/esm2022/lib/footer/footer.component.module.mjs +30 -0
- package/esm2022/lib/footer.directive.mjs +54 -0
- package/{esm2020 → esm2022}/lib/header/apps-button/apps-button.component.mjs +15 -14
- package/esm2022/lib/header/apps-button/apps-button.component.module.mjs +46 -0
- package/esm2022/lib/header/header.component.mjs +131 -0
- package/esm2022/lib/header/header.component.module.mjs +70 -0
- package/esm2022/lib/header/language-selector/language-selector.component.mjs +113 -0
- package/{esm2020 → esm2022}/lib/header/language-selector/language-selector.component.module.mjs +8 -7
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +34 -0
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +26 -0
- package/esm2022/lib/header/reset-button/reset-button.component.mjs +28 -0
- package/esm2022/lib/header/reset-button/reset-button.component.module.mjs +26 -0
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +45 -0
- package/{esm2020 → esm2022}/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.mjs +8 -7
- package/esm2022/lib/header/sign-out/sign-out.component.mjs +32 -0
- package/esm2022/lib/header/sign-out/sign-out.component.module.mjs +30 -0
- package/{esm2020 → esm2022}/lib/header/user-profile-icon/user-profile-icon.component.mjs +21 -20
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +38 -0
- package/esm2022/lib/layout/layout.component.mjs +79 -0
- package/esm2022/lib/layout/layout.component.module.mjs +70 -0
- package/esm2022/lib/layout/layout.component.service.mjs +44 -0
- package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +287 -0
- package/esm2022/lib/navigation/navigation.component.mjs +131 -0
- package/{esm2020 → esm2022}/lib/navigation/navigation.component.module.mjs +16 -15
- package/esm2022/lib/navigation/navigation.service.mjs +144 -0
- package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +36 -0
- package/esm2022/lib/navigation/replace-router-paths.service.mjs +16 -0
- package/esm2022/lib/sidenav/sidenav-footer.directive.mjs +20 -0
- package/esm2022/lib/sidenav/sidenav-header.directive.mjs +20 -0
- package/esm2022/lib/sidenav/sidenav.component.mjs +121 -0
- package/esm2022/lib/sidenav/sidenav.component.module.mjs +44 -0
- package/esm2022/lib/sidenav/sidenav.component.service.mjs +23 -0
- package/esm2022/lib/sidenav/version/version.component.mjs +63 -0
- package/{esm2020 → esm2022}/lib/sidenav/version/version.component.module.mjs +7 -6
- package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +46 -0
- package/{esm2020 → esm2022}/lib/sidenav-content/sidenav-content.component.module.mjs +7 -6
- package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +37 -0
- package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +51 -0
- package/{esm2020 → esm2022}/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.mjs +8 -7
- package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +74 -0
- package/{esm2020 → esm2022}/lib/window-container-sidenav/window-container-sidenav.component.module.mjs +8 -7
- package/{fesm2020 → fesm2022}/rxap-layout.mjs +436 -437
- package/fesm2022/rxap-layout.mjs.map +1 -0
- package/lib/header/header.component.d.ts +1 -1
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +1 -1
- package/lib/navigation/navigation-item/navigation-item.component.d.ts +1 -1
- package/lib/navigation/navigation-item.d.ts +2 -2
- package/lib/navigation/navigation.component.d.ts +1 -1
- package/lib/sidenav-content/sidenav-content.component.d.ts +1 -1
- package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +1 -1
- package/package.json +26 -32
- package/esm2020/lib/footer/footer.component.module.mjs +0 -29
- package/esm2020/lib/footer.directive.mjs +0 -52
- package/esm2020/lib/header/apps-button/apps-button.component.module.mjs +0 -45
- package/esm2020/lib/header/header.component.mjs +0 -130
- package/esm2020/lib/header/header.component.module.mjs +0 -69
- package/esm2020/lib/header/language-selector/language-selector.component.mjs +0 -111
- package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -33
- package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +0 -25
- package/esm2020/lib/header/reset-button/reset-button.component.mjs +0 -27
- package/esm2020/lib/header/reset-button/reset-button.component.module.mjs +0 -25
- package/esm2020/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -44
- package/esm2020/lib/header/sign-out/sign-out.component.mjs +0 -31
- package/esm2020/lib/header/sign-out/sign-out.component.module.mjs +0 -29
- package/esm2020/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +0 -37
- package/esm2020/lib/layout/layout.component.mjs +0 -78
- package/esm2020/lib/layout/layout.component.module.mjs +0 -69
- package/esm2020/lib/layout/layout.component.service.mjs +0 -43
- package/esm2020/lib/navigation/navigation-item/navigation-item.component.mjs +0 -286
- package/esm2020/lib/navigation/navigation.component.mjs +0 -130
- package/esm2020/lib/navigation/navigation.service.mjs +0 -143
- package/esm2020/lib/navigation/replace-router-paths.pipe.mjs +0 -34
- package/esm2020/lib/navigation/replace-router-paths.service.mjs +0 -15
- package/esm2020/lib/sidenav/sidenav-footer.directive.mjs +0 -19
- package/esm2020/lib/sidenav/sidenav-header.directive.mjs +0 -19
- package/esm2020/lib/sidenav/sidenav.component.mjs +0 -120
- package/esm2020/lib/sidenav/sidenav.component.module.mjs +0 -43
- package/esm2020/lib/sidenav/sidenav.component.service.mjs +0 -22
- package/esm2020/lib/sidenav/version/version.component.mjs +0 -62
- package/esm2020/lib/sidenav-content/sidenav-content.component.mjs +0 -45
- package/esm2020/lib/sidenav-content/sidenav-content.component.service.mjs +0 -36
- package/esm2020/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +0 -50
- package/esm2020/lib/window-container-sidenav/window-container-sidenav.component.mjs +0 -73
- package/fesm2015/rxap-layout.mjs +0 -2543
- package/fesm2015/rxap-layout.mjs.map +0 -1
- package/fesm2020/rxap-layout.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/navigation/navigation-item.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types.mjs +0 -0
- /package/{esm2020 → esm2022}/rxap-layout.mjs +0 -0
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';
|
|
2
|
-
import { WindowContainerSidenavService } from '@rxap/services';
|
|
3
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
|
4
|
-
import { tap } from 'rxjs/operators';
|
|
5
|
-
import { Subscription } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/flex-layout/flex";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "@angular/cdk/portal";
|
|
10
|
-
import * as i4 from "@rxap/services";
|
|
11
|
-
function WindowContainerSidenavComponent_div_1_ng_template_1_Template(rf, ctx) { }
|
|
12
|
-
function WindowContainerSidenavComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
-
i0.ɵɵelementStart(0, "div", 2);
|
|
14
|
-
i0.ɵɵtemplate(1, WindowContainerSidenavComponent_div_1_ng_template_1_Template, 0, 0, "ng-template", 3);
|
|
15
|
-
i0.ɵɵelementEnd();
|
|
16
|
-
} if (rf & 2) {
|
|
17
|
-
const portalId_r1 = ctx.$implicit;
|
|
18
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
19
|
-
i0.ɵɵadvance(1);
|
|
20
|
-
i0.ɵɵproperty("cdkPortalOutlet", ctx_r0.portals.get(portalId_r1));
|
|
21
|
-
} }
|
|
22
|
-
export class WindowContainerSidenavComponent {
|
|
23
|
-
constructor(service) {
|
|
24
|
-
this.service = service;
|
|
25
|
-
this.portals = new Map();
|
|
26
|
-
this.subscription = new Subscription();
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
const components = this.service.getAll();
|
|
30
|
-
for (const component of components) {
|
|
31
|
-
this.add(component);
|
|
32
|
-
}
|
|
33
|
-
this.subscription.add(this.service.add$.pipe(tap(component => this.add(component))).subscribe());
|
|
34
|
-
this.subscription.add(this.service.remove$.pipe(tap(component => this.remove(component))).subscribe());
|
|
35
|
-
}
|
|
36
|
-
ngOnDestroy() {
|
|
37
|
-
this.subscription.unsubscribe();
|
|
38
|
-
}
|
|
39
|
-
trackBy(index, id) {
|
|
40
|
-
return id;
|
|
41
|
-
}
|
|
42
|
-
add(component) {
|
|
43
|
-
if (this.portals.has(component.id)) {
|
|
44
|
-
throw new Error(`Component portal with id ${component.id} already exists`);
|
|
45
|
-
}
|
|
46
|
-
const portal = new ComponentPortal(component.component, component.viewContainerRef, component.injector, component.componentFactoryResolver);
|
|
47
|
-
this.portals.set(component.id, portal);
|
|
48
|
-
}
|
|
49
|
-
remove(component) {
|
|
50
|
-
if (this.portals.has(component.id)) {
|
|
51
|
-
const portal = this.portals.get(component.id);
|
|
52
|
-
this.portals.delete(component.id);
|
|
53
|
-
portal.detach();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
WindowContainerSidenavComponent.ɵfac = function WindowContainerSidenavComponent_Factory(t) { return new (t || WindowContainerSidenavComponent)(i0.ɵɵdirectiveInject(WindowContainerSidenavService)); };
|
|
58
|
-
WindowContainerSidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WindowContainerSidenavComponent, selectors: [["rxap-window-container-sidenav"]], decls: 2, vars: 2, consts: [["fxLayout", "column", "fxLayoutGap", "16px", 1, "container"], ["fxFlex", "nogrow", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["fxFlex", "nogrow"], [3, "cdkPortalOutlet"]], template: function WindowContainerSidenavComponent_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
60
|
-
i0.ɵɵtemplate(1, WindowContainerSidenavComponent_div_1_Template, 2, 1, "div", 1);
|
|
61
|
-
i0.ɵɵelementEnd();
|
|
62
|
-
} if (rf & 2) {
|
|
63
|
-
i0.ɵɵadvance(1);
|
|
64
|
-
i0.ɵɵproperty("ngForOf", ctx.portals.keys())("ngForTrackBy", ctx.trackBy);
|
|
65
|
-
} }, dependencies: [i1.DefaultLayoutDirective, i1.DefaultLayoutGapDirective, i1.DefaultFlexDirective, i2.NgForOf, i3.CdkPortalOutlet], styles: [".container[_ngcontent-%COMP%]{padding:8px}"], changeDetection: 0 });
|
|
66
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavComponent, [{
|
|
67
|
-
type: Component,
|
|
68
|
-
args: [{ selector: 'rxap-window-container-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n", styles: [".container{padding:8px}\n"] }]
|
|
69
|
-
}], function () { return [{ type: i4.WindowContainerSidenavService, decorators: [{
|
|
70
|
-
type: Inject,
|
|
71
|
-
args: [WindowContainerSidenavService]
|
|
72
|
-
}] }]; }, null); })();
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvd2luZG93LWNvbnRhaW5lci1zaWRlbmF2L3dpbmRvdy1jb250YWluZXItc2lkZW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL3dpbmRvdy1jb250YWluZXItc2lkZW5hdi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCw2QkFBNkIsRUFFOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0lDWGxDLDhCQUErRTtJQUM3RSxzR0FBcUU7SUFDdkUsaUJBQU07Ozs7SUFEUyxlQUF5QztJQUF6QyxpRUFBeUM7O0FEa0IxRCxNQUFNLE9BQU8sK0JBQStCO0lBTTFDLFlBRWtCLE9BQXNDO1FBQXRDLFlBQU8sR0FBUCxPQUFPLENBQStCO1FBTmpELFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztRQUVqRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFLdEMsQ0FBQztJQUVFLFFBQVE7UUFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDdEMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ3pDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBYSxFQUFFLEVBQVU7UUFDdEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU8sR0FBRyxDQUFDLFNBQTZCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFNBQVMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDNUU7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUE2QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7OzhHQTlDVSwrQkFBK0IsdUJBT2hDLDZCQUE2QjtrRkFQNUIsK0JBQStCO1FDckI1Qyw4QkFBNEQ7UUFFMUQsZ0ZBRU07UUFFUixpQkFBTTs7UUFKc0MsZUFBbUI7UUFBbkIsNENBQW1CLDZCQUFBOzt1RkRtQmxELCtCQUErQjtjQU4zQyxTQUFTOzJCQUNTLCtCQUErQixtQkFHL0IsdUJBQXVCLENBQUMsTUFBTTs7c0JBUzVDLE1BQU07dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbmplY3QsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFdpbmRvd0NvbnRhaW5lclNpZGVuYXZTZXJ2aWNlLFxuICBDb250YWluZXJDb21wb25lbnRcbn0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAgICAgICAgJ3J4YXAtd2luZG93LWNvbnRhaW5lci1zaWRlbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICAgICAnLi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6ICAgICAgIFsgJy4vd2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBXaW5kb3dDb250YWluZXJTaWRlbmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBwb3J0YWxzID0gbmV3IE1hcDxzdHJpbmcsIENvbXBvbmVudFBvcnRhbDxhbnk+PigpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoV2luZG93Q29udGFpbmVyU2lkZW5hdlNlcnZpY2UpXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFdpbmRvd0NvbnRhaW5lclNpZGVuYXZTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvbmVudHMgPSB0aGlzLnNlcnZpY2UuZ2V0QWxsKCk7XG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgY29tcG9uZW50cykge1xuICAgICAgdGhpcy5hZGQoY29tcG9uZW50KTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuc2VydmljZS5hZGQkLnBpcGUoXG4gICAgICB0YXAoY29tcG9uZW50ID0+IHRoaXMuYWRkKGNvbXBvbmVudCkpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuc2VydmljZS5yZW1vdmUkLnBpcGUoXG4gICAgICB0YXAoY29tcG9uZW50ID0+IHRoaXMucmVtb3ZlKGNvbXBvbmVudCkpXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5KGluZGV4OiBudW1iZXIsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBwcml2YXRlIGFkZChjb21wb25lbnQ6IENvbnRhaW5lckNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLnBvcnRhbHMuaGFzKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHBvcnRhbCB3aXRoIGlkICR7Y29tcG9uZW50LmlkfSBhbHJlYWR5IGV4aXN0c2ApO1xuICAgIH1cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudC5jb21wb25lbnQsIGNvbXBvbmVudC52aWV3Q29udGFpbmVyUmVmLCBjb21wb25lbnQuaW5qZWN0b3IsIGNvbXBvbmVudC5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuICAgIHRoaXMucG9ydGFscy5zZXQoY29tcG9uZW50LmlkLCBwb3J0YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmUoY29tcG9uZW50OiBDb250YWluZXJDb21wb25lbnQpIHtcbiAgICBpZiAodGhpcy5wb3J0YWxzLmhhcyhjb21wb25lbnQuaWQpKSB7XG4gICAgICBjb25zdCBwb3J0YWwgPSB0aGlzLnBvcnRhbHMuZ2V0KGNvbXBvbmVudC5pZCkhO1xuICAgICAgdGhpcy5wb3J0YWxzLmRlbGV0ZShjb21wb25lbnQuaWQpO1xuICAgICAgcG9ydGFsLmRldGFjaCgpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxNnB4XCIgY2xhc3M9XCJjb250YWluZXJcIj5cblxuICA8ZGl2IGZ4RmxleD1cIm5vZ3Jvd1wiICpuZ0Zvcj1cImxldCBwb3J0YWxJZCBvZiBwb3J0YWxzLmtleXMoKTsgdHJhY2tCeTogdHJhY2tCeVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInBvcnRhbHMuZ2V0KHBvcnRhbElkKVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|