ngx-material-navigation 15.1.0 → 15.1.2

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.
@@ -105,10 +105,10 @@ export class NgxMatNavigationNavbarComponent {
105
105
  }
106
106
  }
107
107
  NgxMatNavigationNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: NgxMatNavigationNavbarComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.NgxMatNavigationService }], target: i0.ɵɵFactoryTarget.Component });
108
- NgxMatNavigationNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: NgxMatNavigationNavbarComponent, selector: "ngx-mat-navigation-navbar", inputs: { navbarRows: "navbarRows", minHeight: "minHeight", minHeightOtherElements: "minHeightOtherElements", minSidenavWidth: "minSidenavWidth" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i4.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: i5.NavElementComponent, selector: "ngx-mat-navigation-element", inputs: ["element", "sidenav", "isSidenavElement", "isMenuItem"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }] });
108
+ NgxMatNavigationNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: NgxMatNavigationNavbarComponent, selector: "ngx-mat-navigation-navbar", inputs: { navbarRows: "navbarRows", minHeight: "minHeight", minHeightOtherElements: "minHeightOtherElements", minSidenavWidth: "minSidenavWidth" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i4.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: i5.NavElementComponent, selector: "ngx-mat-navigation-element", inputs: ["element", "sidenav", "isSidenavElement", "isMenuItem"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }] });
109
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: NgxMatNavigationNavbarComponent, decorators: [{
110
110
  type: Component,
111
- args: [{ selector: 'ngx-mat-navigation-navbar', template: "<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"] }]
111
+ args: [{ selector: 'ngx-mat-navigation-navbar', template: "<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"] }]
112
112
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.NgxMatNavigationService }]; }, propDecorators: { navbarRows: [{
113
113
  type: Input
114
114
  }], minHeight: [{
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
127
127
  type: HostListener,
128
128
  args: ['window:resize', ['$event']]
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLW5hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFJckU7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTywrQkFBK0I7SUFpRHhDLFlBQTZCLFNBQXVCLEVBQVMsVUFBbUM7UUFBbkUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFTLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBaEQvRSxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFnQzFELGVBQVUsR0FBZTtZQUNyQixJQUFJLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDakMsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsYUFBYTtZQUNuQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDcEMsUUFBUSxFQUFFLE9BQU87U0FDcEIsQ0FBQztRQUlGLG9CQUFlLEdBQXVCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRXZFLHVCQUFrQixHQUFnQixFQUFFLENBQUM7UUFFckMsNEJBQXVCLEdBQWlCLEVBQUUsQ0FBQztJQUV3RCxDQUFDO0lBRXBHLFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUM7WUFDckMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUM3RSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDN0I7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksT0FBTyxJQUFJLENBQUMsc0JBQXNCLEtBQUssUUFBUSxFQUFFO1lBQ2hGLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUM1RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0I7Z0JBQzdELG1DQUFtQztnQkFDbkMsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNoSSxDQUFDO2FBQ0w7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCO2dCQUM3RCxtQ0FBbUM7Z0JBQ25DLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQy9ILENBQUM7YUFDTDtTQUNKO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8seUJBQXlCO1FBQzdCLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDZjthQUNJLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDZjthQUNJO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsT0FBbUI7UUFDbkMsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztZQUMzQixLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzFCLEtBQUssZUFBZSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU87WUFDWDtnQkFDSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDbEM7SUFDTCxDQUFDOzs0SEFySVEsK0JBQStCO2dIQUEvQiwrQkFBK0IscWJBOEJYLFVBQVUsNkJDaEQzQyxvZ0dBMkN3QjsyRkR6QlgsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNJLDJCQUEyQjt5SUFXckMsVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTO2dCQUlwQixNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFzRXpDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdkVsZW1lbnQsIE5hdkVsZW1lbnRUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9uYXYubW9kZWwnO1xuaW1wb3J0IHsgTmF2YmFyUm93IH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmJhci5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdi5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGUgbmF2YmFyIGNvbXBvbmVudC5cbiAqIFRha2VzIGluIHlvdXIgY29uZmlndXJhdGlvbiBhbmQgYnVpbGRzIGEgdG9vbGJhciBhcyB3ZWxsIGFzIGEgc2lkZW5hdiBhY2NvcmRpbmdseS5cbiAqIEFsc28gaGFuZGxlcyByZXNwb25zaXZlbmVzcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LW5hdmlnYXRpb24tbmF2YmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXROYXZpZ2F0aW9uTmF2YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYXZiYXIgcm93cyB0byBidWlsZCB0aGUgbmF2YmFyIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZiYXJSb3dzITogTmF2YmFyUm93W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIG5hdmJhci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1pbkhlaWdodD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIGhlaWdodCBvZiBhbGwgb3RoZXIgZWxlbWVudHMgdGhhdCBhcmUgb24gdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG5hdmJhciBjb21wb25lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtaW5IZWlnaHRPdGhlckVsZW1lbnRzPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gd2lkdGggb2YgdGhlIHNpZGVuYXYuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtaW5TaWRlbmF2V2lkdGg/OiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdzaWRlbmF2JylcbiAgICBzaWRlbmF2PzogTWF0U2lkZW5hdjtcblxuICAgIEBWaWV3Q2hpbGQoJ25hdmJhcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIG5hdmJhcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgYnVyZ2VyTWVudTogTmF2RWxlbWVudCA9IHtcbiAgICAgICAgdHlwZTogTmF2RWxlbWVudFR5cGVzLkJVVFRPTl9GTEFULFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgaWNvbjogJ2ZhcyBmYS1iYXJzJyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnNpZGVuYXY/LnRvZ2dsZSgpLFxuICAgICAgICBjb2xsYXBzZTogJ25ldmVyJ1xuICAgIH07XG5cbiAgICBzYW5pdGl6ZWRNaW5IZWlnaHQhOiBTYWZlU3R5bGU7XG5cbiAgICBzY3JlZW5XaWR0aE5hbWU6ICdsZycgfCAnbWQnIHwgJ3NtJyA9IHRoaXMuZ2V0Q3VycmVudFNjcmVlbldpZHRoTmFtZSgpO1xuXG4gICAgaW50ZXJuYWxOYXZiYXJSb3dzOiBOYXZiYXJSb3dbXSA9IFtdO1xuXG4gICAgaW50ZXJuYWxTaWRlbmF2RWxlbWVudHM6IE5hdkVsZW1lbnRbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHVibGljIG5hdlNlcnZpY2U6IE5neE1hdE5hdmlnYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2U2VydmljZS5uYXZiYXJSb3dzU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZShuYXZiYXJSb3dzID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxOYXZiYXJSb3dzID0gbmF2YmFyUm93cztcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxTaWRlbmF2RWxlbWVudHMgPSB0aGlzLm5hdlNlcnZpY2UuZ2V0U2lkZW5hdkVsZW1lbnRzKG5hdmJhclJvd3MsIHRoaXMuc2NyZWVuV2lkdGhOYW1lKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnRlcm5hbFNpZGVuYXZFbGVtZW50cy5sZW5ndGggJiYgdGhpcy5zaWRlbmF2ICYmIHRoaXMuc2lkZW5hdi5vcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB2b2lkIHRoaXMuc2lkZW5hdi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5uYXZTZXJ2aWNlLm5hdmJhclJvd3NTdWJqZWN0Lm5leHQodGhpcy5uYXZiYXJSb3dzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIZWlnaHRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVIZWlnaHRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5taW5IZWlnaHQgJiYgdHlwZW9mIHRoaXMubWluSGVpZ2h0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgaW5wdXQgZGF0YScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pbkhlaWdodE90aGVyRWxlbWVudHMgJiYgdHlwZW9mIHRoaXMubWluSGVpZ2h0T3RoZXJFbGVtZW50cyAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGlucHV0IGRhdGEnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5uYXZiYXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5taW5IZWlnaHQgfHwgdGhpcy5uYXZiYXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgPiB0aGlzLm1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2FuaXRpemVkTWluSGVpZ2h0ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICAgICAgICAgICAgICBgY2FsYygxMDB2aCAtICR7dGhpcy5uYXZiYXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAodGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzID8gdGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzIDogMCl9cHgpYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhbml0aXplZE1pbkhlaWdodCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgICAgICAgICAgICAgYGNhbGMoMTAwdmggLSAkeyh0aGlzLm1pbkhlaWdodCA/IHRoaXMubWluSGVpZ2h0IDogMCkgKyAodGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzID8gdGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzIDogMCl9cHgpYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHNjcmVlbiB3aWR0aCBhbmQgZmlsdGVycyB0aGUgc2lkZW5hdiBlbGVtZW50cyBhY2NvcmRpbmdseS5cbiAgICAgKlxuICAgICAqIEB0aHJvd3MgV2hlbiBubyBoZWlnaHQgZGF0YSBpcyBwcm92aWRlZCBvciB0aGUgZGF0YSBpcyBpbnZhbGlkLlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodHMoKTtcbiAgICAgICAgdGhpcy5zY3JlZW5XaWR0aE5hbWUgPSB0aGlzLmdldEN1cnJlbnRTY3JlZW5XaWR0aE5hbWUoKTtcbiAgICAgICAgdGhpcy5uYXZTZXJ2aWNlLm5hdmJhclJvd3NTdWJqZWN0Lm5leHQodGhpcy5uYXZTZXJ2aWNlLm5hdmJhclJvd3NTdWJqZWN0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbnRTY3JlZW5XaWR0aE5hbWUoKTogJ2xnJyB8ICdtZCcgfCAnc20nIHtcbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NtJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDk5Mikge1xuICAgICAgICAgICAgcmV0dXJuICdtZCc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2xnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaWYgdGhlIHNpZGVuYXYgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIHRoZSBnaXZlbiBlbGVtZW50IGlzIGNsaWNrZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRoYXQgaGFzIGJlZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBjbGlja1NpZGVuYXZFbGVtZW50KGVsZW1lbnQ6IE5hdkVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTmF2RWxlbWVudFR5cGVzLlRJVExFOlxuICAgICAgICAgICAgY2FzZSBOYXZFbGVtZW50VHlwZXMuSU1BR0U6XG4gICAgICAgICAgICBjYXNlIE5hdkVsZW1lbnRUeXBlcy5NRU5VOlxuICAgICAgICAgICAgY2FzZSBOYXZFbGVtZW50VHlwZXMuSFRNTDpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5zaWRlbmF2Py5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxufSIsIjxtYXQtdG9vbGJhciBpZD1cInRvb2xiYXJcIiAjbmF2YmFyICpuZ0lmPVwibmF2U2VydmljZS5nZXROYXZiYXJSb3dzKG5hdmJhclJvd3MsIHNjcmVlbldpZHRoTmFtZSkubGVuZ3RoPjFcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIj5cbiAgICA8bWF0LXRvb2xiYXItcm93IGNsYXNzPVwidG9vbGJhci1yb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIG5hdlNlcnZpY2UuZ2V0TmF2YmFyUm93cyhuYXZiYXJSb3dzLCBzY3JlZW5XaWR0aE5hbWUpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWNvbFwiPlxuICAgICAgICAgICAgPG5neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50ICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIG5hdlNlcnZpY2UuZ2V0TmF2YmFyRWxlbWVudHNGb3JSb3coJ2xlZnQnLCBzY3JlZW5XaWR0aE5hbWUsIHJvdylcIiBbZWxlbWVudF09XCJlbGVtZW50XCI+PC9uZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWNvbFwiPlxuICAgICAgICAgICAgPG5neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50ICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIG5hdlNlcnZpY2UuZ2V0TmF2YmFyRWxlbWVudHNGb3JSb3coJ2NlbnRlcicsIHNjcmVlbldpZHRoTmFtZSwgcm93KVwiIFtlbGVtZW50XT1cImVsZW1lbnRcIj48L25neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29sXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhckVsZW1lbnRzRm9yUm93KCdyaWdodCcsIHNjcmVlbldpZHRoTmFtZSwgcm93KVwiPlxuICAgICAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCBbZWxlbWVudF09XCJlbGVtZW50XCI+PC9uZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaW50ZXJuYWxTaWRlbmF2RWxlbWVudHMubGVuZ3RoICYmIChuYXZiYXJSb3dzLmluZGV4T2Yocm93KSA9PT0gMClcIj5cbiAgICAgICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQgW2VsZW1lbnRdPVwiYnVyZ2VyTWVudVwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXRvb2xiYXItcm93PlxuPC9tYXQtdG9vbGJhcj5cblxuPG1hdC10b29sYmFyIGlkPVwidG9vbGJhclwiICNuYXZiYXIgKm5nSWY9XCIhKG5hdlNlcnZpY2UuZ2V0TmF2YmFyUm93cyhuYXZiYXJSb3dzLCBzY3JlZW5XaWR0aE5hbWUpLmxlbmd0aD4xKVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1jb2xcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhckVsZW1lbnRzRm9yUm93KCdsZWZ0Jywgc2NyZWVuV2lkdGhOYW1lLCBuYXZiYXJSb3dzWzBdKVwiIFtlbGVtZW50XT1cImVsZW1lbnRcIj48L25neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29sXCI+XG4gICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgbmF2U2VydmljZS5nZXROYXZiYXJFbGVtZW50c0ZvclJvdygnY2VudGVyJywgc2NyZWVuV2lkdGhOYW1lLCBuYXZiYXJSb3dzWzBdKVwiIFtlbGVtZW50XT1cImVsZW1lbnRcIj48L25neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29sXCI+XG4gICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgbmF2U2VydmljZS5nZXROYXZiYXJFbGVtZW50c0ZvclJvdygncmlnaHQnLCBzY3JlZW5XaWR0aE5hbWUsIG5hdmJhclJvd3NbMF0pXCIgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQgKm5nSWY9XCJpbnRlcm5hbFNpZGVuYXZFbGVtZW50cy5sZW5ndGhcIiBbZWxlbWVudF09XCJidXJnZXJNZW51XCI+PC9uZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L21hdC10b29sYmFyPlxuXG48bWF0LXNpZGVuYXYtY29udGFpbmVyIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwic2FuaXRpemVkTWluSGVpZ2h0XCI+XG4gICAgPG1hdC1zaWRlbmF2IHN0eWxlPVwicGFkZGluZy10b3A6IDEycHg7IHBhZGRpbmctYm90dG9tOiAxMnB4O1wiICNzaWRlbmF2IHBvc2l0aW9uPVwiZW5kXCIgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5TaWRlbmF2V2lkdGhcIiBbYXV0b0ZvY3VzXT1cImZhbHNlXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTJweDsgbWFyZ2luLXJpZ2h0OiAxMnB4O1wiICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGludGVybmFsU2lkZW5hdkVsZW1lbnRzXCI+XG4gICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQgKGNsaWNrKT1cImNsaWNrU2lkZW5hdkVsZW1lbnQoZWxlbWVudClcIiBbc2lkZW5hdl09XCJzaWRlbmF2XCIgW2lzU2lkZW5hdkVsZW1lbnRdPVwidHJ1ZVwiIFtlbGVtZW50XT1cImVsZW1lbnRcIj48L25neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1zaWRlbmF2PlxuICAgIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+Il19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLW5hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvbmF2YmFyL25hdmJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFJckU7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTywrQkFBK0I7SUFpRHhDLFlBQTZCLFNBQXVCLEVBQVMsVUFBbUM7UUFBbkUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFTLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBaEQvRSxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFnQzFELGVBQVUsR0FBZTtZQUNyQixJQUFJLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDakMsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsYUFBYTtZQUNuQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDcEMsUUFBUSxFQUFFLE9BQU87U0FDcEIsQ0FBQztRQUlGLG9CQUFlLEdBQXVCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRXZFLHVCQUFrQixHQUFnQixFQUFFLENBQUM7UUFFckMsNEJBQXVCLEdBQWlCLEVBQUUsQ0FB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TUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDZjthQUNJLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDZjthQUNJO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsT0FBbUI7UUFDbkMsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztZQUMzQixLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzFCLEtBQUssZUFBZSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU87WUFDWDtnQkFDSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDbEM7SUFDTCxDQUFDOzs0SEFySVEsK0JBQStCO2dIQUEvQiwrQkFBK0IscWJBOEJYLFVBQVUsNkJDaEQzQyw0bUdBMkN3QjsyRkR6QlgsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNJLDJCQUEyQjt5SUFXckMsVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTO2dCQUlwQixNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFzRXpDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdkVsZW1lbnQsIE5hdkVsZW1lbnRUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9uYXYubW9kZWwnO1xuaW1wb3J0IHsgTmF2YmFyUm93IH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmJhci5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdi5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGUgbmF2YmFyIGNvbXBvbmVudC5cbiAqIFRha2VzIGluIHlvdXIgY29uZmlndXJhdGlvbiBhbmQgYnVpbGRzIGEgdG9vbGJhciBhcyB3ZWxsIGFzIGEgc2lkZW5hdiBhY2NvcmRpbmdseS5cbiAqIEFsc28gaGFuZGxlcyByZXNwb25zaXZlbmVzcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LW5hdmlnYXRpb24tbmF2YmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXROYXZpZ2F0aW9uTmF2YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYXZiYXIgcm93cyB0byBidWlsZCB0aGUgbmF2YmFyIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZiYXJSb3dzITogTmF2YmFyUm93W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIG5hdmJhci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1pbkhlaWdodD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIGhlaWdodCBvZiBhbGwgb3RoZXIgZWxlbWVudHMgdGhhdCBhcmUgb24gdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG5hdmJhciBjb21wb25lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtaW5IZWlnaHRPdGhlckVsZW1lbnRzPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gd2lkdGggb2YgdGhlIHNpZGVuYXYuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtaW5TaWRlbmF2V2lkdGg/OiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdzaWRlbmF2JylcbiAgICBzaWRlbmF2PzogTWF0U2lkZW5hdjtcblxuICAgIEBWaWV3Q2hpbGQoJ25hdmJhcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIG5hdmJhcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgYnVyZ2VyTWVudTogTmF2RWxlbWVudCA9IHtcbiAgICAgICAgdHlwZTogTmF2RWxlbWVudFR5cGVzLkJVVFRPTl9GTEFULFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgaWNvbjogJ2ZhcyBmYS1iYXJzJyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnNpZGVuYXY/LnRvZ2dsZSgpLFxuICAgICAgICBjb2xsYXBzZTogJ25ldmVyJ1xuICAgIH07XG5cbiAgICBzYW5pdGl6ZWRNaW5IZWlnaHQhOiBTYWZlU3R5bGU7XG5cbiAgICBzY3JlZW5XaWR0aE5hbWU6ICdsZycgfCAnbWQnIHwgJ3NtJyA9IHRoaXMuZ2V0Q3VycmVudFNjcmVlbldpZHRoTmFtZSgpO1xuXG4gICAgaW50ZXJuYWxOYXZiYXJSb3dzOiBOYXZiYXJSb3dbXSA9IFtdO1xuXG4gICAgaW50ZXJuYWxTaWRlbmF2RWxlbWVudHM6IE5hdkVsZW1lbnRbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHVibGljIG5hdlNlcnZpY2U6IE5neE1hdE5hdmlnYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2U2VydmljZS5uYXZiYXJSb3dzU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZShuYXZiYXJSb3dzID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxOYXZiYXJSb3dzID0gbmF2YmFyUm93cztcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxTaWRlbmF2RWxlbWVudHMgPSB0aGlzLm5hdlNlcnZpY2UuZ2V0U2lkZW5hdkVsZW1lbnRzKG5hdmJhclJvd3MsIHRoaXMuc2NyZWVuV2lkdGhOYW1lKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnRlcm5hbFNpZGVuYXZFbGVtZW50cy5sZW5ndGggJiYgdGhpcy5zaWRlbmF2ICYmIHRoaXMuc2lkZW5hdi5vcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB2b2lkIHRoaXMuc2lkZW5hdi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5uYXZTZXJ2aWNlLm5hdmJhclJvd3NTdWJqZWN0Lm5leHQodGhpcy5uYXZiYXJSb3dzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVIZWlnaHRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVIZWlnaHRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5taW5IZWlnaHQgJiYgdHlwZW9mIHRoaXMubWluSGVpZ2h0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgaW5wdXQgZGF0YScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pbkhlaWdodE90aGVyRWxlbWVudHMgJiYgdHlwZW9mIHRoaXMubWluSGVpZ2h0T3RoZXJFbGVtZW50cyAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGlucHV0IGRhdGEnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5uYXZiYXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5taW5IZWlnaHQgfHwgdGhpcy5uYXZiYXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgPiB0aGlzLm1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2FuaXRpemVkTWluSGVpZ2h0ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICAgICAgICAgICAgICBgY2FsYygxMDB2aCAtICR7dGhpcy5uYXZiYXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAodGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzID8gdGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzIDogMCl9cHgpYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhbml0aXplZE1pbkhlaWdodCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgICAgICAgICAgICAgYGNhbGMoMTAwdmggLSAkeyh0aGlzLm1pbkhlaWdodCA/IHRoaXMubWluSGVpZ2h0IDogMCkgKyAodGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzID8gdGhpcy5taW5IZWlnaHRPdGhlckVsZW1lbnRzIDogMCl9cHgpYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHNjcmVlbiB3aWR0aCBhbmQgZmlsdGVycyB0aGUgc2lkZW5hdiBlbGVtZW50cyBhY2NvcmRpbmdseS5cbiAgICAgKlxuICAgICAqIEB0aHJvd3MgV2hlbiBubyBoZWlnaHQgZGF0YSBpcyBwcm92aWRlZCBvciB0aGUgZGF0YSBpcyBpbnZhbGlkLlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodHMoKTtcbiAgICAgICAgdGhpcy5zY3JlZW5XaWR0aE5hbWUgPSB0aGlzLmdldEN1cnJlbnRTY3JlZW5XaWR0aE5hbWUoKTtcbiAgICAgICAgdGhpcy5uYXZTZXJ2aWNlLm5hdmJhclJvd3NTdWJqZWN0Lm5leHQodGhpcy5uYXZTZXJ2aWNlLm5hdmJhclJvd3NTdWJqZWN0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbnRTY3JlZW5XaWR0aE5hbWUoKTogJ2xnJyB8ICdtZCcgfCAnc20nIHtcbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NtJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDk5Mikge1xuICAgICAgICAgICAgcmV0dXJuICdtZCc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2xnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaWYgdGhlIHNpZGVuYXYgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIHRoZSBnaXZlbiBlbGVtZW50IGlzIGNsaWNrZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRoYXQgaGFzIGJlZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBjbGlja1NpZGVuYXZFbGVtZW50KGVsZW1lbnQ6IE5hdkVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTmF2RWxlbWVudFR5cGVzLlRJVExFOlxuICAgICAgICAgICAgY2FzZSBOYXZFbGVtZW50VHlwZXMuSU1BR0U6XG4gICAgICAgICAgICBjYXNlIE5hdkVsZW1lbnRUeXBlcy5NRU5VOlxuICAgICAgICAgICAgY2FzZSBOYXZFbGVtZW50VHlwZXMuSFRNTDpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5zaWRlbmF2Py5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxufSIsIjxtYXQtdG9vbGJhciBbc3R5bGUubWluLWhlaWdodC5weF09XCJtaW5IZWlnaHQgPyBtaW5IZWlnaHQgOiAwXCIgaWQ9XCJ0b29sYmFyXCIgI25hdmJhciAqbmdJZj1cIm5hdlNlcnZpY2UuZ2V0TmF2YmFyUm93cyhuYXZiYXJSb3dzLCBzY3JlZW5XaWR0aE5hbWUpLmxlbmd0aD4xXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCI+XG4gICAgPG1hdC10b29sYmFyLXJvdyBjbGFzcz1cInRvb2xiYXItcm93XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhclJvd3MobmF2YmFyUm93cywgc2NyZWVuV2lkdGhOYW1lKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1jb2xcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhckVsZW1lbnRzRm9yUm93KCdsZWZ0Jywgc2NyZWVuV2lkdGhOYW1lLCByb3cpXCIgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1jb2xcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhckVsZW1lbnRzRm9yUm93KCdjZW50ZXInLCBzY3JlZW5XaWR0aE5hbWUsIHJvdylcIiBbZWxlbWVudF09XCJlbGVtZW50XCI+PC9uZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWNvbFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgbmF2U2VydmljZS5nZXROYXZiYXJFbGVtZW50c0ZvclJvdygncmlnaHQnLCBzY3JlZW5XaWR0aE5hbWUsIHJvdylcIj5cbiAgICAgICAgICAgICAgICA8bmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImludGVybmFsU2lkZW5hdkVsZW1lbnRzLmxlbmd0aCAmJiAobmF2YmFyUm93cy5pbmRleE9mKHJvdykgPT09IDApXCI+XG4gICAgICAgICAgICAgICAgPG5neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50IFtlbGVtZW50XT1cImJ1cmdlck1lbnVcIj48L25neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC10b29sYmFyLXJvdz5cbjwvbWF0LXRvb2xiYXI+XG5cbjxtYXQtdG9vbGJhciBbc3R5bGUubWluLWhlaWdodC5weF09XCJtaW5IZWlnaHQgPyBtaW5IZWlnaHQgOiAwXCIgaWQ9XCJ0b29sYmFyXCIgI25hdmJhciAqbmdJZj1cIiEobmF2U2VydmljZS5nZXROYXZiYXJSb3dzKG5hdmJhclJvd3MsIHNjcmVlbldpZHRoTmFtZSkubGVuZ3RoPjEpXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCI+XG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWNvbFwiPlxuICAgICAgICAgICAgPG5neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50ICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIG5hdlNlcnZpY2UuZ2V0TmF2YmFyRWxlbWVudHNGb3JSb3coJ2xlZnQnLCBzY3JlZW5XaWR0aE5hbWUsIG5hdmJhclJvd3NbMF0pXCIgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1jb2xcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhckVsZW1lbnRzRm9yUm93KCdjZW50ZXInLCBzY3JlZW5XaWR0aE5hbWUsIG5hdmJhclJvd3NbMF0pXCIgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1jb2xcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBuYXZTZXJ2aWNlLmdldE5hdmJhckVsZW1lbnRzRm9yUm93KCdyaWdodCcsIHNjcmVlbldpZHRoTmFtZSwgbmF2YmFyUm93c1swXSlcIiBbZWxlbWVudF09XCJlbGVtZW50XCI+PC9uZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudD5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAqbmdJZj1cImludGVybmFsU2lkZW5hdkVsZW1lbnRzLmxlbmd0aFwiIFtlbGVtZW50XT1cImJ1cmdlck1lbnVcIj48L25neC1tYXQtbmF2aWdhdGlvbi1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbWF0LXRvb2xiYXI+XG5cbjxtYXQtc2lkZW5hdi1jb250YWluZXIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcIiBbc3R5bGUubWluLWhlaWdodF09XCJzYW5pdGl6ZWRNaW5IZWlnaHRcIj5cbiAgICA8bWF0LXNpZGVuYXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTJweDsgcGFkZGluZy1ib3R0b206IDEycHg7XCIgI3NpZGVuYXYgcG9zaXRpb249XCJlbmRcIiBbc3R5bGUubWluLXdpZHRoXT1cIm1pblNpZGVuYXZXaWR0aFwiIFthdXRvRm9jdXNdPVwiZmFsc2VcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMnB4OyBtYXJnaW4tcmlnaHQ6IDEycHg7XCIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgaW50ZXJuYWxTaWRlbmF2RWxlbWVudHNcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LW5hdmlnYXRpb24tZWxlbWVudCAoY2xpY2spPVwiY2xpY2tTaWRlbmF2RWxlbWVudChlbGVtZW50KVwiIFtzaWRlbmF2XT1cInNpZGVuYXZcIiBbaXNTaWRlbmF2RWxlbWVudF09XCJ0cnVlXCIgW2VsZW1lbnRdPVwiZWxlbWVudFwiPjwvbmd4LW1hdC1uYXZpZ2F0aW9uLWVsZW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj4iXX0=
@@ -1,3 +1,4 @@
1
+ import { NavElementTypes } from '../models/nav.model';
1
2
  /**
2
3
  * Contains HelperMethods around handling Navigation.
3
4
  */
@@ -7,16 +8,12 @@ export class NavUtilities {
7
8
  return element;
8
9
  }
9
10
  // eslint-disable-next-line jsdoc/require-jsdoc
10
- static isInternalLink(element) {
11
- return Object.keys(element).includes('route');
12
- }
13
- // eslint-disable-next-line jsdoc/require-jsdoc
14
11
  static isMenu(element) {
15
12
  return Object.keys(element).includes('elements');
16
13
  }
17
14
  // eslint-disable-next-line jsdoc/require-jsdoc
18
15
  static isAngularRoute(route) {
19
- return Object.keys(route).includes('path');
16
+ return typeof route !== 'string';
20
17
  }
21
18
  /**
22
19
  * Gets the angular routes.
@@ -58,14 +55,26 @@ export class NavUtilities {
58
55
  }
59
56
  static getRoutesFromElements(elements) {
60
57
  let res = [];
61
- const internalLinks = elements.filter(e => NavUtilities.isInternalLink(e));
62
- const angularRoutes = internalLinks.filter(l => NavUtilities.isAngularRoute(l.route)).map(l => l.route);
63
- res = res.concat(angularRoutes);
64
- const menus = elements.filter(e => NavUtilities.isMenu(e));
58
+ const linksRoutes = NavUtilities.findInternalLinksFromElements(elements).map(l => l.route);
59
+ res = res.concat(linksRoutes.filter(r => NavUtilities.isAngularRoute(r)));
60
+ const titleLinksRoutes = NavUtilities.findTitleLinksFromElements(elements).map(l => l.link.route);
61
+ res = res.concat(titleLinksRoutes.filter(r => NavUtilities.isAngularRoute(r)));
62
+ const imageLinksRoutes = NavUtilities.findImageLinksFromElements(elements).map(l => l.link.route);
63
+ res = res.concat(imageLinksRoutes.filter(r => NavUtilities.isAngularRoute(r)));
64
+ const menus = elements.filter(e => e.type === NavElementTypes.MENU);
65
65
  for (const menu of menus) {
66
66
  res = res.concat(NavUtilities.getRoutesFromElements(menu.elements));
67
67
  }
68
68
  return res;
69
69
  }
70
+ static findImageLinksFromElements(elements) {
71
+ return elements.filter(e => e.type === NavElementTypes.IMAGE_WITH_INTERNAL_LINK);
72
+ }
73
+ static findTitleLinksFromElements(elements) {
74
+ return elements.filter(e => e.type === NavElementTypes.TITLE_WITH_INTERNAL_LINK);
75
+ }
76
+ static findInternalLinksFromElements(elements) {
77
+ return elements.filter(e => e.type === NavElementTypes.INTERNAL_LINK);
78
+ }
70
79
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LnV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy91dGlsaXRpZXMvbmF2LnV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsWUFBWTtJQUM5QiwrQ0FBK0M7SUFDL0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUF1RDtRQUNqRSxPQUFPLE9BQWtCLENBQUM7SUFDOUIsQ0FBQztJQUVELCtDQUErQztJQUMvQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXNDO1FBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELCtDQUErQztJQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQXNDO1FBQ2hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELCtDQUErQztJQUMvQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXFCO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUNuQixhQUEwQixFQUFFLEVBQzVCLGFBQTBCLEVBQUUsRUFDNUIsbUJBQWdDLEVBQUU7UUFFbEMsSUFBSSxTQUFTLEdBQWdCLEVBQUUsQ0FBQztRQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQVksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQVksVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RixTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9DLHVDQUF1QztRQUN2QyxNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQWdCLEVBQUUsQ0FBQztRQUM1QixLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsRUFBRTtZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkI7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBMEIsVUFBdUI7UUFDL0UsSUFBSSxHQUFHLEdBQWdCLEVBQUUsQ0FBQztRQUMxQixLQUFLLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTtZQUMxQixHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQVksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTyxNQUFNLENBQUMsbUJBQW1CLENBQTBCLFVBQXVCO1FBQy9FLElBQUksR0FBRyxHQUFnQixFQUFFLENBQUM7UUFDMUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDMUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFZLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2pGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU8sTUFBTSxDQUFDLHFCQUFxQixDQUEwQixRQUEyQztRQUNyRyxJQUFJLEdBQUcsR0FBZ0IsRUFBRSxDQUFDO1FBQzFCLE1BQU0sYUFBYSxHQUFzQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUNuSCxNQUFNLGFBQWEsR0FBZ0IsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBZ0IsQ0FBQztRQUNwSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBYyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDO1FBQ25GLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3RCLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBWSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNsRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9vdGVyUm93LCBOYXZGb290ZXJFbGVtZW50IH0gZnJvbSAnLi4vbW9kZWxzL2Zvb3Rlci5tb2RlbCc7XG5pbXBvcnQgeyBOYXZJbnRlcm5hbExpbmsgfSBmcm9tICcuLi9tb2RlbHMvbmF2LWxpbmsubW9kZWwnO1xuaW1wb3J0IHsgTmF2TWVudSwgTmF2TWVudUVsZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvbmF2LW1lbnUubW9kZWwnO1xuaW1wb3J0IHsgTmF2Um91dGUgfSBmcm9tICcuLi9tb2RlbHMvbmF2LXJvdXRlLm1vZGVsJztcbmltcG9ydCB7IE5hdkVsZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvbmF2Lm1vZGVsJztcbmltcG9ydCB7IE5hdmJhclJvdyB9IGZyb20gJy4uL21vZGVscy9uYXZiYXIubW9kZWwnO1xuXG4vKipcbiAqIENvbnRhaW5zIEhlbHBlck1ldGhvZHMgYXJvdW5kIGhhbmRsaW5nIE5hdmlnYXRpb24uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXZVdGlsaXRpZXMge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgc3RhdGljIGFzTWVudShlbGVtZW50OiBOYXZFbGVtZW50IHwgTmF2TWVudUVsZW1lbnQgfCBOYXZGb290ZXJFbGVtZW50KTogTmF2TWVudSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50IGFzIE5hdk1lbnU7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBzdGF0aWMgaXNJbnRlcm5hbExpbmsoZWxlbWVudDogTmF2RWxlbWVudCB8IE5hdkZvb3RlckVsZW1lbnQpOiBlbGVtZW50IGlzIE5hdkludGVybmFsTGluayB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbGVtZW50KS5pbmNsdWRlcygncm91dGUnKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHN0YXRpYyBpc01lbnUoZWxlbWVudDogTmF2RWxlbWVudCB8IE5hdkZvb3RlckVsZW1lbnQpOiBlbGVtZW50IGlzIE5hdk1lbnUge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZWxlbWVudCkuaW5jbHVkZXMoJ2VsZW1lbnRzJyk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBzdGF0aWMgaXNBbmd1bGFyUm91dGUocm91dGU6IFJvdXRlIHwgc3RyaW5nKTogcm91dGUgaXMgUm91dGUge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocm91dGUpLmluY2x1ZGVzKCdwYXRoJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYW5ndWxhciByb3V0ZXMuXG4gICAgICogRXh0cmFjdHMgdGhlbSBmcm9tIHRoZSBuYXZiYXIgYW5kIGZvb3RlciByb3dzIGFuZCBhZGRzIGFueSBhZGRpdGlvbmFsIHJvdXRlcyBwcm92aWRlZCBpbiBhZGRpdGlvbmFsUm91dGVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hdmJhclJvd3MgLSBUaGUgTmF2YmFyUm93cyB1c2VkIGFzIGEgY29uZmlndXJhdGlvbiBmb3IgdGhlIG5hdmJhciBlbGVtZW50LlxuICAgICAqIEBwYXJhbSBmb290ZXJSb3dzIC0gVGhlIEZvb3RlclJvd3MgdXNlZCBhcyBhIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBmb290ZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gYWRkaXRpb25hbFJvdXRlcyAtIEFueSBhZGRpdGlvbmFsIHJvdXRlcyB0aGF0IGFyZW4ndCBpbmNsdWRlZCBpbiB0aGUgbmF2YmFyIG9yIGZvb3RlciByb3dzLlxuICAgICAqIEByZXR1cm5zIEFsbCBmb3VuZCBhbmd1bGFyIHJvdXRlcy5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0QW5ndWxhclJvdXRlczxSb3V0ZVR5cGUgZXh0ZW5kcyBSb3V0ZSA9IE5hdlJvdXRlPihcbiAgICAgICAgbmF2YmFyUm93czogTmF2YmFyUm93W10gPSBbXSxcbiAgICAgICAgZm9vdGVyUm93czogRm9vdGVyUm93W10gPSBbXSxcbiAgICAgICAgYWRkaXRpb25hbFJvdXRlczogUm91dGVUeXBlW10gPSBbXVxuICAgICk6IFJvdXRlVHlwZVtdIHtcbiAgICAgICAgbGV0IGFsbFJvdXRlczogUm91dGVUeXBlW10gPSBbXTtcbiAgICAgICAgYWxsUm91dGVzID0gYWxsUm91dGVzLmNvbmNhdChOYXZVdGlsaXRpZXMuZ2V0Um91dGVzRnJvbU5hdmJhcjxSb3V0ZVR5cGU+KG5hdmJhclJvd3MpKTtcbiAgICAgICAgYWxsUm91dGVzID0gYWxsUm91dGVzLmNvbmNhdChOYXZVdGlsaXRpZXMuZ2V0Um91dGVzRnJvbUZvb3RlcjxSb3V0ZVR5cGU+KGZvb3RlclJvd3MpKTtcbiAgICAgICAgYWxsUm91dGVzID0gYWxsUm91dGVzLmNvbmNhdChhZGRpdGlvbmFsUm91dGVzKTtcbiAgICAgICAgLy8gRmlsdGVycyB0byBvbmx5IGNvbnRhaW4gdW5pcXVlIHBhdGhzXG4gICAgICAgIGNvbnN0IHVuaXF1ZVBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCByZXM6IFJvdXRlVHlwZVtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgcm91dGUgb2YgYWxsUm91dGVzKSB7XG4gICAgICAgICAgICBpZiAoIXVuaXF1ZVBhdGhzLmZpbmQociA9PiByID09PSByb3V0ZS5wYXRoKSkge1xuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHJvdXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFJvdXRlc0Zyb21OYXZiYXI8Um91dGVUeXBlIGV4dGVuZHMgUm91dGU+KG5hdmJhclJvd3M6IE5hdmJhclJvd1tdKTogUm91dGVUeXBlW10ge1xuICAgICAgICBsZXQgcmVzOiBSb3V0ZVR5cGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBuYXZiYXJSb3dzKSB7XG4gICAgICAgICAgICByZXMgPSByZXMuY29uY2F0KE5hdlV0aWxpdGllcy5nZXRSb3V0ZXNGcm9tRWxlbWVudHM8Um91dGVUeXBlPihyb3cuZWxlbWVudHMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFJvdXRlc0Zyb21Gb290ZXI8Um91dGVUeXBlIGV4dGVuZHMgUm91dGU+KGZvb3RlclJvd3M6IEZvb3RlclJvd1tdKTogUm91dGVUeXBlW10ge1xuICAgICAgICBsZXQgcmVzOiBSb3V0ZVR5cGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBmb290ZXJSb3dzKSB7XG4gICAgICAgICAgICByZXMgPSByZXMuY29uY2F0KE5hdlV0aWxpdGllcy5nZXRSb3V0ZXNGcm9tRWxlbWVudHM8Um91dGVUeXBlPihyb3cuZWxlbWVudHMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFJvdXRlc0Zyb21FbGVtZW50czxSb3V0ZVR5cGUgZXh0ZW5kcyBSb3V0ZT4oZWxlbWVudHM6IE5hdkVsZW1lbnRbXSB8IE5hdkZvb3RlckVsZW1lbnRbXSk6IFJvdXRlVHlwZVtdIHtcbiAgICAgICAgbGV0IHJlczogUm91dGVUeXBlW10gPSBbXTtcbiAgICAgICAgY29uc3QgaW50ZXJuYWxMaW5rczogTmF2SW50ZXJuYWxMaW5rW10gPSBlbGVtZW50cy5maWx0ZXIoZSA9PiBOYXZVdGlsaXRpZXMuaXNJbnRlcm5hbExpbmsoZSkpIGFzIE5hdkludGVybmFsTGlua1tdO1xuICAgICAgICBjb25zdCBhbmd1bGFyUm91dGVzOiBSb3V0ZVR5cGVbXSA9IGludGVybmFsTGlua3MuZmlsdGVyKGwgPT4gTmF2VXRpbGl0aWVzLmlzQW5ndWxhclJvdXRlKGwucm91dGUpKS5tYXAobCA9PiBsLnJvdXRlKSBhcyBSb3V0ZVR5cGVbXTtcbiAgICAgICAgcmVzID0gcmVzLmNvbmNhdChhbmd1bGFyUm91dGVzKTtcbiAgICAgICAgY29uc3QgbWVudXM6IE5hdk1lbnVbXSA9IGVsZW1lbnRzLmZpbHRlcihlID0+IE5hdlV0aWxpdGllcy5pc01lbnUoZSkpIGFzIE5hdk1lbnVbXTtcbiAgICAgICAgZm9yIChjb25zdCBtZW51IG9mIG1lbnVzKSB7XG4gICAgICAgICAgICByZXMgPSByZXMuY29uY2F0KE5hdlV0aWxpdGllcy5nZXRSb3V0ZXNGcm9tRWxlbWVudHM8Um91dGVUeXBlPihtZW51LmVsZW1lbnRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59Il19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LnV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1uYXZpZ2F0aW9uL3NyYy91dGlsaXRpZXMvbmF2LnV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbEU7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLFlBQVk7SUFDOUIsK0NBQStDO0lBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBdUQ7UUFDakUsT0FBTyxPQUFrQixDQUFDO0lBQzlCLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFzQztRQUNoRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCwrQ0FBK0M7SUFDdkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFxQjtRQUMvQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQ25CLGFBQTBCLEVBQUUsRUFDNUIsYUFBMEIsRUFBRSxFQUM1QixtQkFBZ0MsRUFBRTtRQUVsQyxJQUFJLFNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBWSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBWSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0MsdUNBQXVDO1FBQ3ZDLE1BQU0sV0FBVyxH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QUMsUUFBeUM7UUFDL0UsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsd0JBQXdCLENBQStCLENBQUM7SUFDbkgsQ0FBQztJQUVPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxRQUF5QztRQUMvRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBK0IsQ0FBQztJQUNuSCxDQUFDO0lBRU8sTUFBTSxDQUFDLDZCQUE2QixDQUFDLFFBQXNCO1FBQy9ELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBc0IsQ0FBQztJQUMvRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb290ZXJSb3csIE5hdkZvb3RlckVsZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZm9vdGVyLm1vZGVsJztcbmltcG9ydCB7IE5hdkltYWdlV2l0aEludGVybmFsTGluayB9IGZyb20gJy4uL21vZGVscy9uYXYtaW1hZ2UubW9kZWwnO1xuaW1wb3J0IHsgTmF2SW50ZXJuYWxMaW5rIH0gZnJvbSAnLi4vbW9kZWxzL25hdi1saW5rLm1vZGVsJztcbmltcG9ydCB7IE5hdk1lbnUsIE5hdk1lbnVFbGVtZW50IH0gZnJvbSAnLi4vbW9kZWxzL25hdi1tZW51Lm1vZGVsJztcbmltcG9ydCB7IE5hdlJvdXRlIH0gZnJvbSAnLi4vbW9kZWxzL25hdi1yb3V0ZS5tb2RlbCc7XG5pbXBvcnQgeyBOYXZUaXRsZVdpdGhJbnRlcm5hbExpbmsgfSBmcm9tICcuLi9tb2RlbHMvbmF2LXRpdGxlLm1vZGVsJztcbmltcG9ydCB7IE5hdkVsZW1lbnQsIE5hdkVsZW1lbnRUeXBlcyB9IGZyb20gJy4uL21vZGVscy9uYXYubW9kZWwnO1xuaW1wb3J0IHsgTmF2YmFyUm93IH0gZnJvbSAnLi4vbW9kZWxzL25hdmJhci5tb2RlbCc7XG5cbi8qKlxuICogQ29udGFpbnMgSGVscGVyTWV0aG9kcyBhcm91bmQgaGFuZGxpbmcgTmF2aWdhdGlvbi5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdlV0aWxpdGllcyB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBzdGF0aWMgYXNNZW51KGVsZW1lbnQ6IE5hdkVsZW1lbnQgfCBOYXZNZW51RWxlbWVudCB8IE5hdkZvb3RlckVsZW1lbnQpOiBOYXZNZW51IHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQgYXMgTmF2TWVudTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHN0YXRpYyBpc01lbnUoZWxlbWVudDogTmF2RWxlbWVudCB8IE5hdkZvb3RlckVsZW1lbnQpOiBlbGVtZW50IGlzIE5hdk1lbnUge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZWxlbWVudCkuaW5jbHVkZXMoJ2VsZW1lbnRzJyk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcml2YXRlIHN0YXRpYyBpc0FuZ3VsYXJSb3V0ZShyb3V0ZTogUm91dGUgfCBzdHJpbmcpOiByb3V0ZSBpcyBSb3V0ZSB7XG4gICAgICAgIHJldHVybiB0eXBlb2Ygcm91dGUgIT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFuZ3VsYXIgcm91dGVzLlxuICAgICAqIEV4dHJhY3RzIHRoZW0gZnJvbSB0aGUgbmF2YmFyIGFuZCBmb290ZXIgcm93cyBhbmQgYWRkcyBhbnkgYWRkaXRpb25hbCByb3V0ZXMgcHJvdmlkZWQgaW4gYWRkaXRpb25hbFJvdXRlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYXZiYXJSb3dzIC0gVGhlIE5hdmJhclJvd3MgdXNlZCBhcyBhIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBuYXZiYXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gZm9vdGVyUm93cyAtIFRoZSBGb290ZXJSb3dzIHVzZWQgYXMgYSBjb25maWd1cmF0aW9uIGZvciB0aGUgZm9vdGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIGFkZGl0aW9uYWxSb3V0ZXMgLSBBbnkgYWRkaXRpb25hbCByb3V0ZXMgdGhhdCBhcmVuJ3QgaW5jbHVkZWQgaW4gdGhlIG5hdmJhciBvciBmb290ZXIgcm93cy5cbiAgICAgKiBAcmV0dXJucyBBbGwgZm91bmQgYW5ndWxhciByb3V0ZXMuXG4gICAgICovXG4gICAgc3RhdGljIGdldEFuZ3VsYXJSb3V0ZXM8Um91dGVUeXBlIGV4dGVuZHMgUm91dGUgPSBOYXZSb3V0ZT4oXG4gICAgICAgIG5hdmJhclJvd3M6IE5hdmJhclJvd1tdID0gW10sXG4gICAgICAgIGZvb3RlclJvd3M6IEZvb3RlclJvd1tdID0gW10sXG4gICAgICAgIGFkZGl0aW9uYWxSb3V0ZXM6IFJvdXRlVHlwZVtdID0gW11cbiAgICApOiBSb3V0ZVR5cGVbXSB7XG4gICAgICAgIGxldCBhbGxSb3V0ZXM6IFJvdXRlVHlwZVtdID0gW107XG4gICAgICAgIGFsbFJvdXRlcyA9IGFsbFJvdXRlcy5jb25jYXQoTmF2VXRpbGl0aWVzLmdldFJvdXRlc0Zyb21OYXZiYXI8Um91dGVUeXBlPihuYXZiYXJSb3dzKSk7XG4gICAgICAgIGFsbFJvdXRlcyA9IGFsbFJvdXRlcy5jb25jYXQoTmF2VXRpbGl0aWVzLmdldFJvdXRlc0Zyb21Gb290ZXI8Um91dGVUeXBlPihmb290ZXJSb3dzKSk7XG4gICAgICAgIGFsbFJvdXRlcyA9IGFsbFJvdXRlcy5jb25jYXQoYWRkaXRpb25hbFJvdXRlcyk7XG4gICAgICAgIC8vIEZpbHRlcnMgdG8gb25seSBjb250YWluIHVuaXF1ZSBwYXRoc1xuICAgICAgICBjb25zdCB1bmlxdWVQYXRoczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY29uc3QgcmVzOiBSb3V0ZVR5cGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIGFsbFJvdXRlcykge1xuICAgICAgICAgICAgaWYgKCF1bmlxdWVQYXRocy5maW5kKHIgPT4gciA9PT0gcm91dGUucGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChyb3V0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRSb3V0ZXNGcm9tTmF2YmFyPFJvdXRlVHlwZSBleHRlbmRzIFJvdXRlPihuYXZiYXJSb3dzOiBOYXZiYXJSb3dbXSk6IFJvdXRlVHlwZVtdIHtcbiAgICAgICAgbGV0IHJlczogUm91dGVUeXBlW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgbmF2YmFyUm93cykge1xuICAgICAgICAgICAgcmVzID0gcmVzLmNvbmNhdChOYXZVdGlsaXRpZXMuZ2V0Um91dGVzRnJvbUVsZW1lbnRzPFJvdXRlVHlwZT4ocm93LmVsZW1lbnRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRSb3V0ZXNGcm9tRm9vdGVyPFJvdXRlVHlwZSBleHRlbmRzIFJvdXRlPihmb290ZXJSb3dzOiBGb290ZXJSb3dbXSk6IFJvdXRlVHlwZVtdIHtcbiAgICAgICAgbGV0IHJlczogUm91dGVUeXBlW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgZm9vdGVyUm93cykge1xuICAgICAgICAgICAgcmVzID0gcmVzLmNvbmNhdChOYXZVdGlsaXRpZXMuZ2V0Um91dGVzRnJvbUVsZW1lbnRzPFJvdXRlVHlwZT4ocm93LmVsZW1lbnRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRSb3V0ZXNGcm9tRWxlbWVudHM8Um91dGVUeXBlIGV4dGVuZHMgUm91dGU+KGVsZW1lbnRzOiBOYXZFbGVtZW50W10gfCBOYXZGb290ZXJFbGVtZW50W10pOiBSb3V0ZVR5cGVbXSB7XG4gICAgICAgIGxldCByZXM6IFJvdXRlVHlwZVtdID0gW107XG5cbiAgICAgICAgY29uc3QgbGlua3NSb3V0ZXM6IChzdHJpbmcgfCBOYXZSb3V0ZSlbXSA9IE5hdlV0aWxpdGllcy5maW5kSW50ZXJuYWxMaW5rc0Zyb21FbGVtZW50cyhlbGVtZW50cykubWFwKGwgPT4gbC5yb3V0ZSk7XG4gICAgICAgIHJlcyA9IHJlcy5jb25jYXQobGlua3NSb3V0ZXMuZmlsdGVyKHIgPT4gTmF2VXRpbGl0aWVzLmlzQW5ndWxhclJvdXRlKHIpKSBhcyBSb3V0ZVR5cGVbXSk7XG5cbiAgICAgICAgY29uc3QgdGl0bGVMaW5rc1JvdXRlczogKHN0cmluZyB8IE5hdlJvdXRlKVtdID0gTmF2VXRpbGl0aWVzLmZpbmRUaXRsZUxpbmtzRnJvbUVsZW1lbnRzKGVsZW1lbnRzKS5tYXAobCA9PiBsLmxpbmsucm91dGUpO1xuICAgICAgICByZXMgPSByZXMuY29uY2F0KHRpdGxlTGlua3NSb3V0ZXMuZmlsdGVyKHIgPT4gTmF2VXRpbGl0aWVzLmlzQW5ndWxhclJvdXRlKHIpKSBhcyBSb3V0ZVR5cGVbXSk7XG5cbiAgICAgICAgY29uc3QgaW1hZ2VMaW5rc1JvdXRlczogKHN0cmluZyB8IE5hdlJvdXRlKVtdID0gTmF2VXRpbGl0aWVzLmZpbmRJbWFnZUxpbmtzRnJvbUVsZW1lbnRzKGVsZW1lbnRzKS5tYXAobCA9PiBsLmxpbmsucm91dGUpO1xuICAgICAgICByZXMgPSByZXMuY29uY2F0KGltYWdlTGlua3NSb3V0ZXMuZmlsdGVyKHIgPT4gTmF2VXRpbGl0aWVzLmlzQW5ndWxhclJvdXRlKHIpKSBhcyBSb3V0ZVR5cGVbXSk7XG5cbiAgICAgICAgY29uc3QgbWVudXM6IE5hdk1lbnVbXSA9IGVsZW1lbnRzLmZpbHRlcihlID0+IGUudHlwZSA9PT0gTmF2RWxlbWVudFR5cGVzLk1FTlUpIGFzIE5hdk1lbnVbXTtcbiAgICAgICAgZm9yIChjb25zdCBtZW51IG9mIG1lbnVzKSB7XG4gICAgICAgICAgICByZXMgPSByZXMuY29uY2F0KE5hdlV0aWxpdGllcy5nZXRSb3V0ZXNGcm9tRWxlbWVudHM8Um91dGVUeXBlPihtZW51LmVsZW1lbnRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmaW5kSW1hZ2VMaW5rc0Zyb21FbGVtZW50cyhlbGVtZW50czogTmF2RWxlbWVudFtdIHwgTmF2TWVudUVsZW1lbnRbXSk6IE5hdkltYWdlV2l0aEludGVybmFsTGlua1tdIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmZpbHRlcihlID0+IGUudHlwZSA9PT0gTmF2RWxlbWVudFR5cGVzLklNQUdFX1dJVEhfSU5URVJOQUxfTElOSykgYXMgTmF2SW1hZ2VXaXRoSW50ZXJuYWxMaW5rW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZmluZFRpdGxlTGlua3NGcm9tRWxlbWVudHMoZWxlbWVudHM6IE5hdkVsZW1lbnRbXSB8IE5hdk1lbnVFbGVtZW50W10pOiBOYXZUaXRsZVdpdGhJbnRlcm5hbExpbmtbXSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoZSA9PiBlLnR5cGUgPT09IE5hdkVsZW1lbnRUeXBlcy5USVRMRV9XSVRIX0lOVEVSTkFMX0xJTkspIGFzIE5hdlRpdGxlV2l0aEludGVybmFsTGlua1tdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGZpbmRJbnRlcm5hbExpbmtzRnJvbUVsZW1lbnRzKGVsZW1lbnRzOiBOYXZFbGVtZW50W10pOiBOYXZJbnRlcm5hbExpbmtbXSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoZSA9PiBlLnR5cGUgPT09IE5hdkVsZW1lbnRUeXBlcy5JTlRFUk5BTF9MSU5LKSBhcyBOYXZJbnRlcm5hbExpbmtbXTtcbiAgICB9XG59Il19
@@ -165,16 +165,12 @@ class NavUtilities {
165
165
  return element;
166
166
  }
167
167
  // eslint-disable-next-line jsdoc/require-jsdoc
168
- static isInternalLink(element) {
169
- return Object.keys(element).includes('route');
170
- }
171
- // eslint-disable-next-line jsdoc/require-jsdoc
172
168
  static isMenu(element) {
173
169
  return Object.keys(element).includes('elements');
174
170
  }
175
171
  // eslint-disable-next-line jsdoc/require-jsdoc
176
172
  static isAngularRoute(route) {
177
- return Object.keys(route).includes('path');
173
+ return typeof route !== 'string';
178
174
  }
179
175
  /**
180
176
  * Gets the angular routes.
@@ -216,15 +212,27 @@ class NavUtilities {
216
212
  }
217
213
  static getRoutesFromElements(elements) {
218
214
  let res = [];
219
- const internalLinks = elements.filter(e => NavUtilities.isInternalLink(e));
220
- const angularRoutes = internalLinks.filter(l => NavUtilities.isAngularRoute(l.route)).map(l => l.route);
221
- res = res.concat(angularRoutes);
222
- const menus = elements.filter(e => NavUtilities.isMenu(e));
215
+ const linksRoutes = NavUtilities.findInternalLinksFromElements(elements).map(l => l.route);
216
+ res = res.concat(linksRoutes.filter(r => NavUtilities.isAngularRoute(r)));
217
+ const titleLinksRoutes = NavUtilities.findTitleLinksFromElements(elements).map(l => l.link.route);
218
+ res = res.concat(titleLinksRoutes.filter(r => NavUtilities.isAngularRoute(r)));
219
+ const imageLinksRoutes = NavUtilities.findImageLinksFromElements(elements).map(l => l.link.route);
220
+ res = res.concat(imageLinksRoutes.filter(r => NavUtilities.isAngularRoute(r)));
221
+ const menus = elements.filter(e => e.type === NavElementTypes.MENU);
223
222
  for (const menu of menus) {
224
223
  res = res.concat(NavUtilities.getRoutesFromElements(menu.elements));
225
224
  }
226
225
  return res;
227
226
  }
227
+ static findImageLinksFromElements(elements) {
228
+ return elements.filter(e => e.type === NavElementTypes.IMAGE_WITH_INTERNAL_LINK);
229
+ }
230
+ static findTitleLinksFromElements(elements) {
231
+ return elements.filter(e => e.type === NavElementTypes.TITLE_WITH_INTERNAL_LINK);
232
+ }
233
+ static findInternalLinksFromElements(elements) {
234
+ return elements.filter(e => e.type === NavElementTypes.INTERNAL_LINK);
235
+ }
228
236
  }
229
237
 
230
238
  /**
@@ -627,10 +635,10 @@ class NgxMatNavigationNavbarComponent {
627
635
  }
628
636
  }
629
637
  NgxMatNavigationNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: NgxMatNavigationNavbarComponent, deps: [{ token: i1$2.DomSanitizer }, { token: NgxMatNavigationService }], target: i0.ɵɵFactoryTarget.Component });
630
- NgxMatNavigationNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: NgxMatNavigationNavbarComponent, selector: "ngx-mat-navigation-navbar", inputs: { navbarRows: "navbarRows", minHeight: "minHeight", minHeightOtherElements: "minHeightOtherElements", minSidenavWidth: "minSidenavWidth" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i4.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: NavElementComponent, selector: "ngx-mat-navigation-element", inputs: ["element", "sidenav", "isSidenavElement", "isMenuItem"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }] });
638
+ NgxMatNavigationNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: NgxMatNavigationNavbarComponent, selector: "ngx-mat-navigation-navbar", inputs: { navbarRows: "navbarRows", minHeight: "minHeight", minHeightOtherElements: "minHeightOtherElements", minSidenavWidth: "minSidenavWidth" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i4.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: NavElementComponent, selector: "ngx-mat-navigation-element", inputs: ["element", "sidenav", "isSidenavElement", "isMenuItem"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }] });
631
639
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: NgxMatNavigationNavbarComponent, decorators: [{
632
640
  type: Component,
633
- args: [{ selector: 'ngx-mat-navigation-navbar', template: "<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"] }]
641
+ args: [{ selector: 'ngx-mat-navigation-navbar', template: "<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"navService.getNavbarRows(navbarRows, screenWidthName).length>1\" class=\"mat-elevation-z8\">\n <mat-toolbar-row class=\"toolbar-row\" *ngFor=\"let row of navService.getNavbarRows(navbarRows, screenWidthName)\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, row)\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <span *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, row)\">\n <ngx-mat-navigation-element [element]=\"element\"></ngx-mat-navigation-element>\n </span>\n <span *ngIf=\"internalSidenavElements.length && (navbarRows.indexOf(row) === 0)\">\n <ngx-mat-navigation-element [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </span>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n\n<mat-toolbar [style.min-height.px]=\"minHeight ? minHeight : 0\" id=\"toolbar\" #navbar *ngIf=\"!(navService.getNavbarRows(navbarRows, screenWidthName).length>1)\" class=\"mat-elevation-z8\">\n <div class=\"toolbar-row\">\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('left', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('center', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n <div class=\"toolbar-col\">\n <ngx-mat-navigation-element *ngFor=\"let element of navService.getNavbarElementsForRow('right', screenWidthName, navbarRows[0])\" [element]=\"element\"></ngx-mat-navigation-element>\n <ngx-mat-navigation-element *ngIf=\"internalSidenavElements.length\" [element]=\"burgerMenu\"></ngx-mat-navigation-element>\n </div>\n </div>\n</mat-toolbar>\n\n<mat-sidenav-container style=\"background-color: transparent;\" [style.min-height]=\"sanitizedMinHeight\">\n <mat-sidenav style=\"padding-top: 12px; padding-bottom: 12px;\" #sidenav position=\"end\" [style.min-width]=\"minSidenavWidth\" [autoFocus]=\"false\">\n <div style=\"margin-left: 12px; margin-right: 12px;\" *ngFor=\"let element of internalSidenavElements\">\n <ngx-mat-navigation-element (click)=\"clickSidenavElement(element)\" [sidenav]=\"sidenav\" [isSidenavElement]=\"true\" [element]=\"element\"></ngx-mat-navigation-element>\n </div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>", styles: ["#toolbar{height:auto}.toolbar-row{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-top:5px;margin-bottom:5px}.toolbar-row .toolbar-col{height:100%;display:flex;gap:10px;flex-direction:row;align-items:center;justify-content:center}\n"] }]
634
642
  }], ctorParameters: function () { return [{ type: i1$2.DomSanitizer }, { type: NgxMatNavigationService }]; }, propDecorators: { navbarRows: [{
635
643
  type: Input
636
644
  }], minHeight: [{