@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.
Files changed (92) hide show
  1. package/{esm2020 → esm2022}/lib/footer/footer.component.mjs +10 -9
  2. package/esm2022/lib/footer/footer.component.module.mjs +30 -0
  3. package/esm2022/lib/footer.directive.mjs +54 -0
  4. package/{esm2020 → esm2022}/lib/header/apps-button/apps-button.component.mjs +15 -14
  5. package/esm2022/lib/header/apps-button/apps-button.component.module.mjs +46 -0
  6. package/esm2022/lib/header/header.component.mjs +131 -0
  7. package/esm2022/lib/header/header.component.module.mjs +70 -0
  8. package/esm2022/lib/header/language-selector/language-selector.component.mjs +113 -0
  9. package/{esm2020 → esm2022}/lib/header/language-selector/language-selector.component.module.mjs +8 -7
  10. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +34 -0
  11. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +26 -0
  12. package/esm2022/lib/header/reset-button/reset-button.component.mjs +28 -0
  13. package/esm2022/lib/header/reset-button/reset-button.component.module.mjs +26 -0
  14. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +45 -0
  15. package/{esm2020 → esm2022}/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.mjs +8 -7
  16. package/esm2022/lib/header/sign-out/sign-out.component.mjs +32 -0
  17. package/esm2022/lib/header/sign-out/sign-out.component.module.mjs +30 -0
  18. package/{esm2020 → esm2022}/lib/header/user-profile-icon/user-profile-icon.component.mjs +21 -20
  19. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +38 -0
  20. package/esm2022/lib/layout/layout.component.mjs +79 -0
  21. package/esm2022/lib/layout/layout.component.module.mjs +70 -0
  22. package/esm2022/lib/layout/layout.component.service.mjs +44 -0
  23. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +287 -0
  24. package/esm2022/lib/navigation/navigation.component.mjs +131 -0
  25. package/{esm2020 → esm2022}/lib/navigation/navigation.component.module.mjs +16 -15
  26. package/esm2022/lib/navigation/navigation.service.mjs +144 -0
  27. package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +36 -0
  28. package/esm2022/lib/navigation/replace-router-paths.service.mjs +16 -0
  29. package/esm2022/lib/sidenav/sidenav-footer.directive.mjs +20 -0
  30. package/esm2022/lib/sidenav/sidenav-header.directive.mjs +20 -0
  31. package/esm2022/lib/sidenav/sidenav.component.mjs +121 -0
  32. package/esm2022/lib/sidenav/sidenav.component.module.mjs +44 -0
  33. package/esm2022/lib/sidenav/sidenav.component.service.mjs +23 -0
  34. package/esm2022/lib/sidenav/version/version.component.mjs +63 -0
  35. package/{esm2020 → esm2022}/lib/sidenav/version/version.component.module.mjs +7 -6
  36. package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +46 -0
  37. package/{esm2020 → esm2022}/lib/sidenav-content/sidenav-content.component.module.mjs +7 -6
  38. package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +37 -0
  39. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +51 -0
  40. package/{esm2020 → esm2022}/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.mjs +8 -7
  41. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +74 -0
  42. package/{esm2020 → esm2022}/lib/window-container-sidenav/window-container-sidenav.component.module.mjs +8 -7
  43. package/{fesm2020 → fesm2022}/rxap-layout.mjs +436 -437
  44. package/fesm2022/rxap-layout.mjs.map +1 -0
  45. package/lib/header/header.component.d.ts +1 -1
  46. package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +1 -1
  47. package/lib/navigation/navigation-item/navigation-item.component.d.ts +1 -1
  48. package/lib/navigation/navigation-item.d.ts +2 -2
  49. package/lib/navigation/navigation.component.d.ts +1 -1
  50. package/lib/sidenav-content/sidenav-content.component.d.ts +1 -1
  51. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +1 -1
  52. package/package.json +26 -32
  53. package/esm2020/lib/footer/footer.component.module.mjs +0 -29
  54. package/esm2020/lib/footer.directive.mjs +0 -52
  55. package/esm2020/lib/header/apps-button/apps-button.component.module.mjs +0 -45
  56. package/esm2020/lib/header/header.component.mjs +0 -130
  57. package/esm2020/lib/header/header.component.module.mjs +0 -69
  58. package/esm2020/lib/header/language-selector/language-selector.component.mjs +0 -111
  59. package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -33
  60. package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +0 -25
  61. package/esm2020/lib/header/reset-button/reset-button.component.mjs +0 -27
  62. package/esm2020/lib/header/reset-button/reset-button.component.module.mjs +0 -25
  63. package/esm2020/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -44
  64. package/esm2020/lib/header/sign-out/sign-out.component.mjs +0 -31
  65. package/esm2020/lib/header/sign-out/sign-out.component.module.mjs +0 -29
  66. package/esm2020/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +0 -37
  67. package/esm2020/lib/layout/layout.component.mjs +0 -78
  68. package/esm2020/lib/layout/layout.component.module.mjs +0 -69
  69. package/esm2020/lib/layout/layout.component.service.mjs +0 -43
  70. package/esm2020/lib/navigation/navigation-item/navigation-item.component.mjs +0 -286
  71. package/esm2020/lib/navigation/navigation.component.mjs +0 -130
  72. package/esm2020/lib/navigation/navigation.service.mjs +0 -143
  73. package/esm2020/lib/navigation/replace-router-paths.pipe.mjs +0 -34
  74. package/esm2020/lib/navigation/replace-router-paths.service.mjs +0 -15
  75. package/esm2020/lib/sidenav/sidenav-footer.directive.mjs +0 -19
  76. package/esm2020/lib/sidenav/sidenav-header.directive.mjs +0 -19
  77. package/esm2020/lib/sidenav/sidenav.component.mjs +0 -120
  78. package/esm2020/lib/sidenav/sidenav.component.module.mjs +0 -43
  79. package/esm2020/lib/sidenav/sidenav.component.service.mjs +0 -22
  80. package/esm2020/lib/sidenav/version/version.component.mjs +0 -62
  81. package/esm2020/lib/sidenav-content/sidenav-content.component.mjs +0 -45
  82. package/esm2020/lib/sidenav-content/sidenav-content.component.service.mjs +0 -36
  83. package/esm2020/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +0 -50
  84. package/esm2020/lib/window-container-sidenav/window-container-sidenav.component.mjs +0 -73
  85. package/fesm2015/rxap-layout.mjs +0 -2543
  86. package/fesm2015/rxap-layout.mjs.map +0 -1
  87. package/fesm2020/rxap-layout.mjs.map +0 -1
  88. /package/{esm2020 → esm2022}/index.mjs +0 -0
  89. /package/{esm2020 → esm2022}/lib/navigation/navigation-item.mjs +0 -0
  90. /package/{esm2020 → esm2022}/lib/tokens.mjs +0 -0
  91. /package/{esm2020 → esm2022}/lib/types.mjs +0 -0
  92. /package/{esm2020 → esm2022}/rxap-layout.mjs +0 -0
@@ -0,0 +1,79 @@
1
+ import { Component, ChangeDetectionStrategy, ViewChild } from '@angular/core';
2
+ import { LayoutComponentService } from './layout.component.service';
3
+ import { MatSidenav } from '@angular/material/sidenav';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./layout.component.service";
6
+ import * as i2 from "@angular/material/sidenav";
7
+ import * as i3 from "../footer/footer.component";
8
+ import * as i4 from "../header/header.component";
9
+ import * as i5 from "../sidenav/sidenav.component";
10
+ import * as i6 from "../sidenav/sidenav-header.directive";
11
+ import * as i7 from "../sidenav-content/sidenav-content.component";
12
+ import * as i8 from "../window-container-sidenav/window-container-sidenav.component";
13
+ import * as i9 from "../toggle-window-sidenav-button/toggle-window-sidenav-button.component";
14
+ import * as i10 from "@angular/router";
15
+ import * as i11 from "@angular/common";
16
+ const _c0 = function () { return ["/"]; };
17
+ function LayoutComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelement(0, "img", 9);
19
+ } if (rf & 2) {
20
+ const ctx_r0 = i0.ɵɵnextContext();
21
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction0(3, _c0))("width", ctx_r0.layoutComponentService.logo.width)("src", ctx_r0.layoutComponentService.logo.src, i0.ɵɵsanitizeUrl);
22
+ } }
23
+ const _c1 = ["*"];
24
+ class LayoutComponent {
25
+ constructor(layoutComponentService) {
26
+ this.layoutComponentService = layoutComponentService;
27
+ this.openWindowSidenav = false;
28
+ }
29
+ static { this.ɵfac = function LayoutComponent_Factory(t) { return new (t || LayoutComponent)(i0.ɵɵdirectiveInject(i1.LayoutComponentService)); }; }
30
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayoutComponent, selectors: [["rxap-layout"]], viewQuery: function LayoutComponent_Query(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵviewQuery(MatSidenav, 7);
32
+ } if (rf & 2) {
33
+ let _t;
34
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sidenav = _t.first);
35
+ } }, ngContentSelectors: _c1, decls: 18, vars: 24, consts: [[1, "header", 3, "sidenav"], ["autosize", "", 1, "container"], [1, "sidenav", 3, "fixedBottomGap", "fixedInViewport", "fixedTopGap", "mode", "opened"], ["rxapSidenavHeader", ""], [1, "content"], [3, "sidenav"], [3, "openWindowSidenav", "openWindowSidenavChange"], ["mode", "side", "position", "end", 1, "window-container-sidenav", 3, "fixedBottomGap", "fixedInViewport", "fixedTopGap", "opened"], [1, "footer"], ["alt", "logo", 1, "logo", 3, "routerLink", "width", "src"]], template: function LayoutComponent_Template(rf, ctx) { if (rf & 1) {
36
+ i0.ɵɵprojectionDef();
37
+ i0.ɵɵelement(0, "rxap-header", 0);
38
+ i0.ɵɵelementStart(1, "mat-sidenav-container", 1)(2, "mat-sidenav", 2);
39
+ i0.ɵɵpipe(3, "async");
40
+ i0.ɵɵpipe(4, "async");
41
+ i0.ɵɵpipe(5, "async");
42
+ i0.ɵɵpipe(6, "async");
43
+ i0.ɵɵelementStart(7, "rxap-sidenav");
44
+ i0.ɵɵtemplate(8, LayoutComponent_ng_template_8_Template, 1, 4, "ng-template", 3);
45
+ i0.ɵɵelementEnd()();
46
+ i0.ɵɵelementStart(9, "mat-sidenav-content", 4)(10, "rxap-sidenav-content", 5);
47
+ i0.ɵɵprojection(11);
48
+ i0.ɵɵelementStart(12, "rxap-toggle-window-sidenav-button", 6);
49
+ i0.ɵɵlistener("openWindowSidenavChange", function LayoutComponent_Template_rxap_toggle_window_sidenav_button_openWindowSidenavChange_12_listener($event) { return ctx.openWindowSidenav = $event; });
50
+ i0.ɵɵelementEnd()()();
51
+ i0.ɵɵelementStart(13, "mat-sidenav", 7);
52
+ i0.ɵɵpipe(14, "async");
53
+ i0.ɵɵpipe(15, "async");
54
+ i0.ɵɵelement(16, "rxap-window-container-sidenav");
55
+ i0.ɵɵelementEnd()();
56
+ i0.ɵɵelement(17, "rxap-footer", 8);
57
+ } if (rf & 2) {
58
+ let tmp_4_0;
59
+ let tmp_5_0;
60
+ i0.ɵɵproperty("sidenav", ctx.sidenav);
61
+ i0.ɵɵadvance(2);
62
+ i0.ɵɵproperty("fixedBottomGap", i0.ɵɵpipeBind1(3, 12, ctx.layoutComponentService.fixedBottomGap$))("fixedInViewport", true)("fixedTopGap", i0.ɵɵpipeBind1(4, 14, ctx.layoutComponentService.fixedTopGap$))("mode", (tmp_4_0 = i0.ɵɵpipeBind1(5, 16, ctx.layoutComponentService.mode$)) !== null && tmp_4_0 !== undefined ? tmp_4_0 : "side")("opened", (tmp_5_0 = i0.ɵɵpipeBind1(6, 18, ctx.layoutComponentService.opened$)) !== null && tmp_5_0 !== undefined ? tmp_5_0 : true);
63
+ i0.ɵɵadvance(8);
64
+ i0.ɵɵproperty("sidenav", ctx.sidenav);
65
+ i0.ɵɵadvance(2);
66
+ i0.ɵɵproperty("openWindowSidenav", ctx.openWindowSidenav);
67
+ i0.ɵɵadvance(1);
68
+ i0.ɵɵproperty("fixedBottomGap", i0.ɵɵpipeBind1(14, 20, ctx.layoutComponentService.fixedBottomGap$))("fixedInViewport", true)("fixedTopGap", i0.ɵɵpipeBind1(15, 22, ctx.layoutComponentService.fixedTopGap$))("opened", ctx.openWindowSidenav);
69
+ } }, dependencies: [i2.MatSidenav, i2.MatSidenavContainer, i2.MatSidenavContent, i3.FooterComponent, i4.HeaderComponent, i5.SidenavComponent, i6.SidenavHeaderDirective, i7.SidenavContentComponent, i8.WindowContainerSidenavComponent, i9.ToggleWindowSidenavButtonComponent, i10.RouterLink, i11.AsyncPipe], styles: [".container[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]{height:100%}.sidenav[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto}.sidenav[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{padding:16px}.footer[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;z-index:100}.header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;z-index:100}"], changeDetection: 0 }); }
70
+ }
71
+ export { LayoutComponent };
72
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponent, [{
73
+ type: Component,
74
+ args: [{ selector: 'rxap-layout', changeDetection: ChangeDetectionStrategy.OnPush, template: "<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n", styles: [".container,.content{height:100%}.sidenav{display:flex;align-items:center;justify-content:center;width:auto}.sidenav .logo{padding:16px}.footer{position:fixed;bottom:0;left:0;right:0;z-index:100}.header{position:fixed;top:0;left:0;right:0;z-index:100}\n"] }]
75
+ }], function () { return [{ type: i1.LayoutComponentService }]; }, { sidenav: [{
76
+ type: ViewChild,
77
+ args: [MatSidenav, { static: true }]
78
+ }] }); })();
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0lDTS9DLHlCQU1FOzs7SUFMQSx1REFBb0IsbURBQUEsaUVBQUE7OztBREw5QixNQU1hLGVBQWU7SUFNMUIsWUFDa0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFMekQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBTTdCLENBQUM7Z0ZBUk0sZUFBZTtvRUFBZixlQUFlOzJCQUlmLFVBQVU7Ozs7OztZQ2xCdkIsaUNBQThEO1lBQzlELGdEQUFrRCxxQkFBQTs7Ozs7WUFTOUMsb0NBQWM7WUFDWixnRkFRYztZQUNoQixpQkFBZSxFQUFBO1lBRWpCLDhDQUFxQywrQkFBQTtZQUVqQyxtQkFBeUI7WUFDekIsNkRBQTZFO1lBQTFDLG9NQUF5QztZQUFDLGlCQUFvQyxFQUFBLEVBQUE7WUFHckgsdUNBUUM7OztZQUNDLGlEQUErRDtZQUNqRSxpQkFBYyxFQUFBO1lBRWhCLGtDQUEwQzs7OztZQXhDN0IscUNBQW1CO1lBRzVCLGVBQWlFO1lBQWpFLGtHQUFpRSx5QkFBQSwrRUFBQSxrSUFBQSxvSUFBQTtZQW9CM0MsZUFBbUI7WUFBbkIscUNBQW1CO1lBRUosZUFBeUM7WUFBekMseURBQXlDO1lBSTlFLGVBQWlFO1lBQWpFLG1HQUFpRSx5QkFBQSxnRkFBQSxpQ0FBQTs7O1NEZnhELGVBQWU7dUZBQWYsZUFBZTtjQU4zQixTQUFTOzJCQUNTLGFBQWEsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTt5RUFNQyxPQUFPO2tCQUF0RCxTQUFTO21CQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICAgICAgICAncnhhcC1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogICAgICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogICAgICAgWyAnLi9sYXlvdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQge1xuXG4gIHB1YmxpYyBvcGVuV2luZG93U2lkZW5hdiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHNpZGVuYXYhOiBNYXRTaWRlbmF2O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXRDb21wb25lbnRTZXJ2aWNlOiBMYXlvdXRDb21wb25lbnRTZXJ2aWNlLFxuICApIHsgfVxuXG59XG4iLCI8cnhhcC1oZWFkZXIgW3NpZGVuYXZdPVwic2lkZW5hdlwiIGNsYXNzPVwiaGVhZGVyXCI+PC9yeGFwLWhlYWRlcj5cbjxtYXQtc2lkZW5hdi1jb250YWluZXIgYXV0b3NpemUgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPG1hdC1zaWRlbmF2XG4gICAgW2ZpeGVkQm90dG9tR2FwXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkIHwgYXN5bmNcIlxuICAgIFtmaXhlZEluVmlld3BvcnRdPVwidHJ1ZVwiXG4gICAgW2ZpeGVkVG9wR2FwXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRUb3BHYXAkIHwgYXN5bmNcIlxuICAgIFttb2RlXT1cIihsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm1vZGUkIHwgYXN5bmMpID8/ICdzaWRlJ1wiXG4gICAgW29wZW5lZF09XCIobGF5b3V0Q29tcG9uZW50U2VydmljZS5vcGVuZWQkIHwgYXN5bmMpID8/IHRydWVcIlxuICAgIGNsYXNzPVwic2lkZW5hdlwiXG4gID5cbiAgICA8cnhhcC1zaWRlbmF2PlxuICAgICAgPG5nLXRlbXBsYXRlIHJ4YXBTaWRlbmF2SGVhZGVyPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvJ11cIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwibG9nb1wiXG4gICAgICAgICAgW3dpZHRoXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UubG9nby53aWR0aFwiXG4gICAgICAgICAgW3NyY109XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28uc3JjXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9yeGFwLXNpZGVuYXY+XG4gIDwvbWF0LXNpZGVuYXY+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxyeGFwLXNpZGVuYXYtY29udGVudCBbc2lkZW5hdl09XCJzaWRlbmF2XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8cnhhcC10b2dnbGUtd2luZG93LXNpZGVuYXYtYnV0dG9uIFsob3BlbldpbmRvd1NpZGVuYXYpXT1cIm9wZW5XaW5kb3dTaWRlbmF2XCI+PC9yeGFwLXRvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24+XG4gICAgPC9yeGFwLXNpZGVuYXYtY29udGVudD5cbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuICA8bWF0LXNpZGVuYXZcbiAgICBbZml4ZWRCb3R0b21HYXBdPVwibGF5b3V0Q29tcG9uZW50U2VydmljZS5maXhlZEJvdHRvbUdhcCQgfCBhc3luY1wiXG4gICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICBbZml4ZWRUb3BHYXBdPVwibGF5b3V0Q29tcG9uZW50U2VydmljZS5maXhlZFRvcEdhcCQgfCBhc3luY1wiXG4gICAgW29wZW5lZF09XCJvcGVuV2luZG93U2lkZW5hdlwiXG4gICAgbW9kZT1cInNpZGVcIlxuICAgIGNsYXNzPVwid2luZG93LWNvbnRhaW5lci1zaWRlbmF2XCJcbiAgICBwb3NpdGlvbj1cImVuZFwiXG4gID5cbiAgICA8cnhhcC13aW5kb3ctY29udGFpbmVyLXNpZGVuYXY+PC9yeGFwLXdpbmRvdy1jb250YWluZXItc2lkZW5hdj5cbiAgPC9tYXQtc2lkZW5hdj5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuPHJ4YXAtZm9vdGVyIGNsYXNzPVwiZm9vdGVyXCI+PC9yeGFwLWZvb3Rlcj5cbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LayoutComponent } from './layout.component';
3
+ import { MatSidenavModule } from '@angular/material/sidenav';
4
+ import { FooterModule } from '../footer/footer.component.module';
5
+ import { HeaderModule } from '../header/header.component.module';
6
+ import { CommonModule } from '@angular/common';
7
+ import { SidenavModule } from '../sidenav/sidenav.component.module';
8
+ import { SidenavContentModule } from '../sidenav-content/sidenav-content.component.module';
9
+ import { RXAP_NAVIGATION_CONFIG } from '../tokens';
10
+ import { WindowContainerSidenavModule } from '../window-container-sidenav/window-container-sidenav.component.module';
11
+ import { ToggleWindowSidenavButtonModule } from '../toggle-window-sidenav-button/toggle-window-sidenav-button.component.module';
12
+ import { FlexLayoutModule } from '@angular/flex-layout';
13
+ import { RouterModule } from '@angular/router';
14
+ import * as i0 from "@angular/core";
15
+ class LayoutModule {
16
+ static withNavigation(navigation) {
17
+ return {
18
+ ngModule: LayoutModule,
19
+ providers: [
20
+ {
21
+ provide: RXAP_NAVIGATION_CONFIG,
22
+ useValue: navigation
23
+ }
24
+ ]
25
+ };
26
+ }
27
+ static { this.ɵfac = function LayoutModule_Factory(t) { return new (t || LayoutModule)(); }; }
28
+ static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LayoutModule }); }
29
+ static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatSidenavModule,
30
+ FooterModule,
31
+ HeaderModule,
32
+ CommonModule,
33
+ SidenavModule,
34
+ SidenavContentModule,
35
+ WindowContainerSidenavModule,
36
+ ToggleWindowSidenavButtonModule,
37
+ FlexLayoutModule,
38
+ RouterModule] }); }
39
+ }
40
+ export { LayoutModule };
41
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutModule, [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [LayoutComponent],
45
+ imports: [
46
+ MatSidenavModule,
47
+ FooterModule,
48
+ HeaderModule,
49
+ CommonModule,
50
+ SidenavModule,
51
+ SidenavContentModule,
52
+ WindowContainerSidenavModule,
53
+ ToggleWindowSidenavButtonModule,
54
+ FlexLayoutModule,
55
+ RouterModule
56
+ ],
57
+ exports: [LayoutComponent]
58
+ }]
59
+ }], null, null); })();
60
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LayoutModule, { declarations: [LayoutComponent], imports: [MatSidenavModule,
61
+ FooterModule,
62
+ HeaderModule,
63
+ CommonModule,
64
+ SidenavModule,
65
+ SidenavContentModule,
66
+ WindowContainerSidenavModule,
67
+ ToggleWindowSidenavButtonModule,
68
+ FlexLayoutModule,
69
+ RouterModule], exports: [LayoutComponent] }); })();
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3JILE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFL0MsTUFnQmEsWUFBWTtJQUVoQixNQUFNLENBQUMsY0FBYyxDQUFDLFVBQWlFO1FBRTVGLE9BQU87WUFDTCxRQUFRLEVBQUcsWUFBWTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFHLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs2RUFiVSxZQUFZO21FQUFaLFlBQVk7dUVBYnJCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLDRCQUE0QjtZQUM1QiwrQkFBK0I7WUFDL0IsZ0JBQWdCO1lBQ2hCLFlBQVk7O1NBSUgsWUFBWTt1RkFBWixZQUFZO2NBaEJ4QixRQUFRO2VBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUUsZUFBZSxDQUFFO2dCQUNqQyxPQUFPLEVBQU87b0JBQ1osZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixhQUFhO29CQUNiLG9CQUFvQjtvQkFDcEIsNEJBQTRCO29CQUM1QiwrQkFBK0I7b0JBQy9CLGdCQUFnQjtvQkFDaEIsWUFBWTtpQkFDYjtnQkFDRCxPQUFPLEVBQU8sQ0FBRSxlQUFlLENBQUU7YUFDbEM7O3dGQUNZLFlBQVksbUJBZlAsZUFBZSxhQUU3QixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtRQUNiLG9CQUFvQjtRQUNwQiw0QkFBNEI7UUFDNUIsK0JBQStCO1FBQy9CLGdCQUFnQjtRQUNoQixZQUFZLGFBRUUsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IEZvb3Rlck1vZHVsZSB9IGZyb20gJy4uL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBIZWFkZXJNb2R1bGUgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpZGVuYXZNb2R1bGUgfSBmcm9tICcuLi9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBTaWRlbmF2Q29udGVudE1vZHVsZSB9IGZyb20gJy4uL3NpZGVuYXYtY29udGVudC9zaWRlbmF2LWNvbnRlbnQuY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uV2l0aEluc2VydHMgfSBmcm9tICcuLi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbSc7XG5pbXBvcnQgeyBSWEFQX05BVklHQVRJT05fQ09ORklHIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB7IFdpbmRvd0NvbnRhaW5lclNpZGVuYXZNb2R1bGUgfSBmcm9tICcuLi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYvd2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgVG9nZ2xlV2luZG93U2lkZW5hdkJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL3RvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24vdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsgTGF5b3V0Q29tcG9uZW50IF0sXG4gIGltcG9ydHM6ICAgICAgW1xuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgRm9vdGVyTW9kdWxlLFxuICAgIEhlYWRlck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2lkZW5hdk1vZHVsZSxcbiAgICBTaWRlbmF2Q29udGVudE1vZHVsZSxcbiAgICBXaW5kb3dDb250YWluZXJTaWRlbmF2TW9kdWxlLFxuICAgIFRvZ2dsZVdpbmRvd1NpZGVuYXZCdXR0b25Nb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogICAgICBbIExheW91dENvbXBvbmVudCBdXG59KVxuZXhwb3J0IGNsYXNzIExheW91dE1vZHVsZSB7XG5cbiAgcHVibGljIHN0YXRpYyB3aXRoTmF2aWdhdGlvbihuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uV2l0aEluc2VydHMgfCAoKCkgPT4gTmF2aWdhdGlvbldpdGhJbnNlcnRzKSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TGF5b3V0TW9kdWxlPiB7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6ICBMYXlvdXRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICBSWEFQX05BVklHQVRJT05fQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiBuYXZpZ2F0aW9uXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Injectable, Optional, Inject } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { tap, map } from 'rxjs/operators';
4
+ import { FooterService, HeaderService } from '@rxap/services';
5
+ import { RXAP_LOGO_CONFIG } from '../tokens';
6
+ import { ConfigService } from '@rxap/config';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@rxap/services";
9
+ import * as i2 from "@rxap/config";
10
+ class LayoutComponentService {
11
+ constructor(footerComponentService, headerComponentService, logoConfig = null, config) {
12
+ this.footerComponentService = footerComponentService;
13
+ this.headerComponentService = headerComponentService;
14
+ this.config = config;
15
+ this.opened$ = new BehaviorSubject(true);
16
+ this.mode$ = new BehaviorSubject('side');
17
+ this.fixedTopGap$ = new BehaviorSubject(64);
18
+ this.mode$.next(this.config.get('navigation.mode', this.mode$.value));
19
+ this.opened$.next(this.config.get('navigation.open', this.opened$.value));
20
+ this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));
21
+ this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);
22
+ this.headerComponentService.update$.pipe(tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))).subscribe();
23
+ this.logo = logoConfig ?? {
24
+ src: '/assets/logo.png',
25
+ width: '192'
26
+ };
27
+ }
28
+ static { this.ɵfac = function LayoutComponentService_Factory(t) { return new (t || LayoutComponentService)(i0.ɵɵinject(i1.FooterService), i0.ɵɵinject(i1.HeaderService), i0.ɵɵinject(RXAP_LOGO_CONFIG, 8), i0.ɵɵinject(ConfigService)); }; }
29
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LayoutComponentService, factory: LayoutComponentService.ɵfac, providedIn: 'root' }); }
30
+ }
31
+ export { LayoutComponentService };
32
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponentService, [{
33
+ type: Injectable,
34
+ args: [{ providedIn: 'root' }]
35
+ }], function () { return [{ type: i1.FooterService }, { type: i1.HeaderService }, { type: undefined, decorators: [{
36
+ type: Optional
37
+ }, {
38
+ type: Inject,
39
+ args: [RXAP_LOGO_CONFIG]
40
+ }] }, { type: i2.ConfigService, decorators: [{
41
+ type: Inject,
42
+ args: [ConfigService]
43
+ }] }]; }, null); })();
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUVoQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxHQUFHLEVBQ0gsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUc3QyxNQUNhLHNCQUFzQjtJQVFqQyxZQUNrQixzQkFBcUMsRUFDckMsc0JBQXFDLEVBQ2YsYUFBZ0MsSUFBSSxFQUV6RCxNQUFxQjtRQUp0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWU7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFlO1FBR3BDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFYakMsWUFBTyxHQUFRLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2xELFVBQUssR0FBVSxJQUFJLGVBQWUsQ0FBZ0IsTUFBTSxDQUFDLENBQUM7UUFFMUQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQVVwRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FDbkYsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxJQUFJO1lBQ3hCLEdBQUcsRUFBSSxrQkFBa0I7WUFDekIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO0lBQ0osQ0FBQzt1RkExQlUsc0JBQXNCLDRFQVdYLGdCQUFnQixrQkFDNUIsYUFBYTt1RUFaWixzQkFBc0IsV0FBdEIsc0JBQXNCLG1CQURULE1BQU07O1NBQ25CLHNCQUFzQjt1RkFBdEIsc0JBQXNCO2NBRGxDLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O3NCQVk3QixRQUFROztzQkFBSSxNQUFNO3VCQUFDLGdCQUFnQjs7c0JBQ25DLE1BQU07dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE9wdGlvbmFsLFxuICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGVcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICB0YXAsXG4gIG1hcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBGb290ZXJTZXJ2aWNlLFxuICBIZWFkZXJTZXJ2aWNlXG59IGZyb20gJ0ByeGFwL3NlcnZpY2VzJztcbmltcG9ydCB7IFJYQVBfTE9HT19DT05GSUcgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHsgTG9nb0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAcnhhcC9jb25maWcnO1xuaW1wb3J0IHsgTWF0RHJhd2VyTW9kZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBvcGVuZWQkICAgICAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgbW9kZSQgICAgICAgID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXREcmF3ZXJNb2RlPignc2lkZScpO1xuICBwdWJsaWMgZml4ZWRCb3R0b21HYXAkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIHB1YmxpYyBmaXhlZFRvcEdhcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNjQpO1xuICBwdWJsaWMgbG9nbzogTG9nb0NvbmZpZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGZvb3RlckNvbXBvbmVudFNlcnZpY2U6IEZvb3RlclNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGhlYWRlckNvbXBvbmVudFNlcnZpY2U6IEhlYWRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSWEFQX0xPR09fQ09ORklHKSBsb2dvQ29uZmlnOiBMb2dvQ29uZmlnIHwgbnVsbCA9IG51bGwsXG4gICAgQEluamVjdChDb25maWdTZXJ2aWNlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubW9kZSQubmV4dCh0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24ubW9kZScsIHRoaXMubW9kZSQudmFsdWUpKTtcbiAgICB0aGlzLm9wZW5lZCQubmV4dCh0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24ub3BlbicsIHRoaXMub3BlbmVkJC52YWx1ZSkpO1xuICAgIHRoaXMuZml4ZWRCb3R0b21HYXAkID0gdGhpcy5mb290ZXJDb21wb25lbnRTZXJ2aWNlLnBvcnRhbENvdW50JC5waXBlKG1hcChjb3VudCA9PiBjb3VudCAqIDY0KSk7XG4gICAgdGhpcy5maXhlZFRvcEdhcCQubmV4dCh0aGlzLmhlYWRlckNvbXBvbmVudFNlcnZpY2UuY291bnRDb21wb25lbnQgKiA2NCk7XG4gICAgdGhpcy5oZWFkZXJDb21wb25lbnRTZXJ2aWNlLnVwZGF0ZSQucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmZpeGVkVG9wR2FwJC5uZXh0KHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS5jb3VudENvbXBvbmVudCAqIDY0KSlcbiAgICApLnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9nbyA9IGxvZ29Db25maWcgPz8ge1xuICAgICAgc3JjOiAgICcvYXNzZXRzL2xvZ28ucG5nJyxcbiAgICAgIHdpZHRoOiAnMTkyJ1xuICAgIH07XG4gIH1cblxufVxuIl19
@@ -0,0 +1,287 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, Input, ChangeDetectionStrategy, ViewChild, HostBinding, ViewEncapsulation, ElementRef, Renderer2, HostListener, TemplateRef, ViewContainerRef, Inject, } from '@angular/core';
3
+ import { Required, DebounceCall } from '@rxap/utilities';
4
+ import { trigger, style, transition, animate } from '@angular/animations';
5
+ import { RouterLinkActive, Router, NavigationEnd } from '@angular/router';
6
+ import { Subscription } from 'rxjs';
7
+ import { filter, tap, delay, startWith, distinctUntilChanged, skip, } from 'rxjs/operators';
8
+ import { SidenavComponentService } from '../../sidenav/sidenav.component.service';
9
+ import { Overlay } from '@angular/cdk/overlay';
10
+ import { TemplatePortal } from '@angular/cdk/portal';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/router";
13
+ import * as i2 from "../../sidenav/sidenav.component.service";
14
+ import * as i3 from "@angular/cdk/overlay";
15
+ const _c0 = ["navigationOverlay"];
16
+ const _c1 = ["rxap-navigation-item", ""];
17
+ function NavigationItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelement(0, "mat-icon", 5);
19
+ } if (rf & 2) {
20
+ const ctx_r0 = i0.ɵɵnextContext();
21
+ i0.ɵɵproperty("rxapIcon", ctx_r0.item.icon);
22
+ } }
23
+ function NavigationItemComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementStart(0, "span", 6);
25
+ i0.ɵɵtext(1);
26
+ i0.ɵɵelementEnd();
27
+ } if (rf & 2) {
28
+ const ctx_r1 = i0.ɵɵnextContext();
29
+ i0.ɵɵadvance(1);
30
+ i0.ɵɵtextInterpolate(ctx_r1.item.label);
31
+ } }
32
+ function NavigationItemComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelement(0, "ul", 7);
34
+ } if (rf & 2) {
35
+ const ctx_r2 = i0.ɵɵnextContext();
36
+ i0.ɵɵproperty("@sub-nav", undefined)("items", ctx_r2.children)("level", ctx_r2.level + 1);
37
+ } }
38
+ function NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelement(0, "mat-icon", 5);
40
+ } if (rf & 2) {
41
+ const child_r6 = i0.ɵɵnextContext(2).$implicit;
42
+ const ctx_r8 = i0.ɵɵnextContext(2);
43
+ i0.ɵɵproperty("rxapIcon", ctx_r8.asNavigationItem(child_r6).icon);
44
+ } }
45
+ function NavigationItemComponent_ng_template_7_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelementStart(0, "a", 11);
47
+ i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
48
+ i0.ɵɵelementStart(2, "span", 6);
49
+ i0.ɵɵtext(3);
50
+ i0.ɵɵelementEnd()();
51
+ } if (rf & 2) {
52
+ const child_r6 = i0.ɵɵnextContext().$implicit;
53
+ const ctx_r7 = i0.ɵɵnextContext(2);
54
+ i0.ɵɵproperty("routerLink", ctx_r7.asNavigationItem(child_r6).routerLink);
55
+ i0.ɵɵadvance(1);
56
+ i0.ɵɵproperty("ngIf", ctx_r7.asNavigationItem(child_r6).icon);
57
+ i0.ɵɵadvance(2);
58
+ i0.ɵɵtextInterpolate(ctx_r7.asNavigationItem(child_r6).label);
59
+ } }
60
+ function NavigationItemComponent_ng_template_7_li_2_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelementStart(0, "li");
62
+ i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_Template, 4, 3, "a", 10);
63
+ i0.ɵɵelementEnd();
64
+ } if (rf & 2) {
65
+ const child_r6 = ctx.$implicit;
66
+ const ctx_r5 = i0.ɵɵnextContext(2);
67
+ i0.ɵɵadvance(1);
68
+ i0.ɵɵproperty("ngIf", ctx_r5.isNavigationItem(child_r6));
69
+ } }
70
+ function NavigationItemComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
71
+ const _r12 = i0.ɵɵgetCurrentView();
72
+ i0.ɵɵelementStart(0, "div", 8);
73
+ i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_7_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.lockeOverlay = true); })("mouseleave", function NavigationItemComponent_ng_template_7_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); ctx_r13.lockeOverlay = false; return i0.ɵɵresetView(ctx_r13.onMouseleave()); });
74
+ i0.ɵɵelementStart(1, "ul");
75
+ i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
76
+ i0.ɵɵelementEnd()();
77
+ } if (rf & 2) {
78
+ const ctx_r4 = i0.ɵɵnextContext();
79
+ i0.ɵɵadvance(2);
80
+ i0.ɵɵproperty("ngForOf", ctx_r4.children);
81
+ } }
82
+ class NavigationItemComponent {
83
+ constructor(router, sidenav, elementRef, renderer, overlay, viewContainerRef) {
84
+ this.router = router;
85
+ this.sidenav = sidenav;
86
+ this.elementRef = elementRef;
87
+ this.renderer = renderer;
88
+ this.overlay = overlay;
89
+ this.viewContainerRef = viewContainerRef;
90
+ this.children = null;
91
+ this.level = 0;
92
+ this.isActive = false;
93
+ this._subscription = new Subscription();
94
+ /**
95
+ * indicates the mouse is over the
96
+ */
97
+ this.lockeOverlay = false;
98
+ }
99
+ ngOnChanges(changes) {
100
+ if (changes.item) {
101
+ const item = changes.item.currentValue;
102
+ this.children =
103
+ item.children && item.children.length ? item.children : null;
104
+ }
105
+ }
106
+ ngAfterViewInit() {
107
+ this._subscription.add(this.router.events
108
+ .pipe(filter((event) => event instanceof NavigationEnd), startWith(true), delay(100), tap(() => {
109
+ if (this.routerLinkActive.isActive) {
110
+ if (!this.sidenav.collapsed$.value) {
111
+ // only close the overlay if sidenav collapsed
112
+ this._overlayRef?.detach();
113
+ }
114
+ this.renderer.addClass(this.elementRef.nativeElement, 'active');
115
+ }
116
+ else {
117
+ this.renderer.removeClass(this.elementRef.nativeElement, 'active');
118
+ }
119
+ }))
120
+ .subscribe());
121
+ }
122
+ ngOnInit() {
123
+ // detach the navigation overlay if the sidenav collapsed
124
+ // state is changed
125
+ this._subscription.add(this.sidenav.collapsed$
126
+ .pipe(skip(1), distinctUntilChanged(), tap(() => this._overlayRef?.detach()))
127
+ .subscribe());
128
+ }
129
+ ngOnDestroy() {
130
+ this._subscription?.unsubscribe();
131
+ this._overlayRef?.dispose();
132
+ }
133
+ onMouseenter() {
134
+ if (this.children) {
135
+ if (!this.routerLinkActive.isActive || this.sidenav.collapsed$.value) {
136
+ if (!this._overlayRef) {
137
+ this._overlayRef = this.overlay.create({
138
+ positionStrategy: this.overlay
139
+ .position()
140
+ .flexibleConnectedTo(this.elementRef)
141
+ .withPositions([
142
+ {
143
+ originY: 'top',
144
+ originX: 'end',
145
+ overlayY: 'top',
146
+ overlayX: 'start',
147
+ },
148
+ ]),
149
+ });
150
+ }
151
+ if (!this._overlayRef.hasAttached()) {
152
+ this._embeddedViewRef = this._overlayRef.attach(new TemplatePortal(this._navigationOverlay, this.viewContainerRef));
153
+ }
154
+ }
155
+ }
156
+ }
157
+ onMouseleave() {
158
+ if (!this.lockeOverlay) {
159
+ this._overlayRef?.detach();
160
+ }
161
+ }
162
+ // region type save item property
163
+ // required to check the type of the item property in the ngFor loop
164
+ isNavigationDividerItem(item) {
165
+ return item['divider'];
166
+ }
167
+ isNavigationItem(item) {
168
+ return !this.isNavigationDividerItem(item);
169
+ }
170
+ asNavigationItem(item) {
171
+ if (!this.isNavigationItem(item)) {
172
+ throw new Error('The item is not a NavigationItem');
173
+ }
174
+ return item;
175
+ }
176
+ static { this.ɵfac = function NavigationItemComponent_Factory(t) { return new (t || NavigationItemComponent)(i0.ɵɵdirectiveInject(Router), i0.ɵɵdirectiveInject(SidenavComponentService), i0.ɵɵdirectiveInject(ElementRef), i0.ɵɵdirectiveInject(Renderer2), i0.ɵɵdirectiveInject(Overlay), i0.ɵɵdirectiveInject(ViewContainerRef)); }; }
177
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationItemComponent, selectors: [["li", "rxap-navigation-item", ""]], viewQuery: function NavigationItemComponent_Query(rf, ctx) { if (rf & 1) {
178
+ i0.ɵɵviewQuery(RouterLinkActive, 7);
179
+ i0.ɵɵviewQuery(_c0, 5);
180
+ } if (rf & 2) {
181
+ let _t;
182
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.routerLinkActive = _t.first);
183
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._navigationOverlay = _t.first);
184
+ } }, hostAttrs: [1, "rxap-navigation-item"], hostVars: 2, hostBindings: function NavigationItemComponent_HostBindings(rf, ctx) { if (rf & 1) {
185
+ i0.ɵɵlistener("mouseenter", function NavigationItemComponent_mouseenter_HostBindingHandler() { return ctx.onMouseenter(); })("mouseleave", function NavigationItemComponent_mouseleave_HostBindingHandler() { return ctx.onMouseleave(); });
186
+ } if (rf & 2) {
187
+ i0.ɵɵclassProp("active", ctx.isActive);
188
+ } }, inputs: { item: "item", level: "level" }, features: [i0.ɵɵNgOnChangesFeature], attrs: _c1, decls: 9, vars: 15, consts: [["routerLinkActive", "link-active", "matRipple", "", 3, "routerLink", "matTooltipDisabled", "matTooltip"], ["class", "icon", 3, "rxapIcon", 4, "ngIf"], [3, "ngIf"], ["rxap-navigation", "", "class", "sub-items", "fxFlex", "nogrow", 3, "items", "level", 4, "ngIf"], ["navigationOverlay", ""], [1, "icon", 3, "rxapIcon"], [1, "label"], ["rxap-navigation", "", "fxFlex", "nogrow", 1, "sub-items", 3, "items", "level"], [1, "navigation-overlay-container", "mat-elevation-z1", 3, "mouseenter", "mouseleave"], [4, "ngFor", "ngForOf"], ["class", "navigation-link mat-body-2 mat-body-strong", "matRipple", "", 3, "routerLink", 4, "ngIf"], ["matRipple", "", 1, "navigation-link", "mat-body-2", "mat-body-strong", 3, "routerLink"]], template: function NavigationItemComponent_Template(rf, ctx) { if (rf & 1) {
189
+ i0.ɵɵelementStart(0, "a", 0);
190
+ i0.ɵɵpipe(1, "async");
191
+ i0.ɵɵtemplate(2, NavigationItemComponent_mat_icon_2_Template, 1, 1, "mat-icon", 1);
192
+ i0.ɵɵtemplate(3, NavigationItemComponent_ng_template_3_Template, 2, 1, "ng-template", 2);
193
+ i0.ɵɵpipe(4, "async");
194
+ i0.ɵɵelementEnd();
195
+ i0.ɵɵtemplate(5, NavigationItemComponent_ul_5_Template, 1, 3, "ul", 3);
196
+ i0.ɵɵpipe(6, "async");
197
+ i0.ɵɵtemplate(7, NavigationItemComponent_ng_template_7_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
198
+ } if (rf & 2) {
199
+ i0.ɵɵclassMapInterpolate1("navigation-link mat-body-2 mat-body-strong navigation-level-", ctx.level, "");
200
+ i0.ɵɵproperty("routerLink", ctx.item.routerLink)("matTooltipDisabled", !i0.ɵɵpipeBind1(1, 9, ctx.sidenav.collapsed$))("matTooltip", ctx.item.label);
201
+ i0.ɵɵadvance(2);
202
+ i0.ɵɵproperty("ngIf", ctx.item.icon);
203
+ i0.ɵɵadvance(1);
204
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 11, ctx.sidenav.collapsed$));
205
+ i0.ɵɵadvance(2);
206
+ i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(6, 13, ctx.sidenav.collapsed$) && ctx.children);
207
+ } }, styles: [".rxap-navigation-item,.navigation-overlay-container{display:flex;flex-direction:column;min-height:48px}.rxap-navigation-item .navigation-link,.navigation-overlay-container .navigation-link{display:flex;flex-direction:row;align-items:center;text-decoration:none;height:48px}.rxap-navigation-item .navigation-link .icon,.navigation-overlay-container .navigation-link .icon{margin:0 16px}.rxap-navigation-item .navigation-link .label,.navigation-overlay-container .navigation-link .label{padding-right:12px}.rxap-navigation-item .navigation-link.navigation-level-1,.navigation-overlay-container .navigation-link.navigation-level-1{padding-left:52px}.rxap-navigation-item .navigation-link.navigation-level-1 .icon,.navigation-overlay-container .navigation-link.navigation-level-1 .icon{padding-left:0}.rxap-navigation-item .navigation-link.navigation-level-2,.navigation-overlay-container .navigation-link.navigation-level-2{padding-left:88px}.rxap-navigation-item .navigation-link.navigation-level-2 .icon,.navigation-overlay-container .navigation-link.navigation-level-2 .icon{padding-left:0}.navigation-overlay-container{padding:0 16px}.navigation-overlay-container ul{list-style-type:none;margin:0;padding:0}.navigation-overlay-container ul .navigation-link .label{padding-right:0}.navigation-overlay-container ul .navigation-link .icon{margin-left:0}\n"], encapsulation: 2, data: { animation: [
208
+ trigger('sub-nav', [
209
+ transition(':enter', [
210
+ style({ display: 'block', height: '0', overflow: 'hidden' }),
211
+ animate(150, style({ height: '*' })),
212
+ ]),
213
+ transition(':leave', [
214
+ style({ overflow: 'hidden' }),
215
+ animate(300, style({ height: '0' })),
216
+ style({ display: 'none' }),
217
+ ]),
218
+ ]),
219
+ ] }, changeDetection: 0 }); }
220
+ }
221
+ __decorate([
222
+ Required,
223
+ __metadata("design:type", Object)
224
+ ], NavigationItemComponent.prototype, "item", void 0);
225
+ __decorate([
226
+ DebounceCall(100),
227
+ __metadata("design:type", Function),
228
+ __metadata("design:paramtypes", []),
229
+ __metadata("design:returntype", void 0)
230
+ ], NavigationItemComponent.prototype, "onMouseleave", null);
231
+ export { NavigationItemComponent };
232
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationItemComponent, [{
233
+ type: Component,
234
+ args: [{ selector: 'li[rxap-navigation-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
235
+ class: 'rxap-navigation-item',
236
+ }, animations: [
237
+ trigger('sub-nav', [
238
+ transition(':enter', [
239
+ style({ display: 'block', height: '0', overflow: 'hidden' }),
240
+ animate(150, style({ height: '*' })),
241
+ ]),
242
+ transition(':leave', [
243
+ style({ overflow: 'hidden' }),
244
+ animate(300, style({ height: '0' })),
245
+ style({ display: 'none' }),
246
+ ]),
247
+ ]),
248
+ ], template: "<a [routerLink]=\"item.routerLink\"\n routerLinkActive=\"link-active\"\n [matTooltipDisabled]=\"!(sidenav.collapsed$ | async)\"\n [matTooltip]=\"item.label\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\" matRipple>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"!(sidenav.collapsed$ | async)\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul rxap-navigation\n *ngIf=\"routerLinkActive.isActive && !(sidenav.collapsed$ | async) && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div class=\"navigation-overlay-container mat-elevation-z1\"\n (mouseenter)=\"lockeOverlay = true\" (mouseleave)=\"lockeOverlay = false; onMouseleave()\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\" class=\"icon\"></mat-icon>\n <span class=\"label\">{{ asNavigationItem(child).label }}</span>\n </a>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [".rxap-navigation-item,.navigation-overlay-container{display:flex;flex-direction:column;min-height:48px}.rxap-navigation-item .navigation-link,.navigation-overlay-container .navigation-link{display:flex;flex-direction:row;align-items:center;text-decoration:none;height:48px}.rxap-navigation-item .navigation-link .icon,.navigation-overlay-container .navigation-link .icon{margin:0 16px}.rxap-navigation-item .navigation-link .label,.navigation-overlay-container .navigation-link .label{padding-right:12px}.rxap-navigation-item .navigation-link.navigation-level-1,.navigation-overlay-container .navigation-link.navigation-level-1{padding-left:52px}.rxap-navigation-item .navigation-link.navigation-level-1 .icon,.navigation-overlay-container .navigation-link.navigation-level-1 .icon{padding-left:0}.rxap-navigation-item .navigation-link.navigation-level-2,.navigation-overlay-container .navigation-link.navigation-level-2{padding-left:88px}.rxap-navigation-item .navigation-link.navigation-level-2 .icon,.navigation-overlay-container .navigation-link.navigation-level-2 .icon{padding-left:0}.navigation-overlay-container{padding:0 16px}.navigation-overlay-container ul{list-style-type:none;margin:0;padding:0}.navigation-overlay-container ul .navigation-link .label{padding-right:0}.navigation-overlay-container ul .navigation-link .icon{margin-left:0}\n"] }]
249
+ }], function () { return [{ type: i1.Router, decorators: [{
250
+ type: Inject,
251
+ args: [Router]
252
+ }] }, { type: i2.SidenavComponentService, decorators: [{
253
+ type: Inject,
254
+ args: [SidenavComponentService]
255
+ }] }, { type: i0.ElementRef, decorators: [{
256
+ type: Inject,
257
+ args: [ElementRef]
258
+ }] }, { type: i0.Renderer2, decorators: [{
259
+ type: Inject,
260
+ args: [Renderer2]
261
+ }] }, { type: i3.Overlay, decorators: [{
262
+ type: Inject,
263
+ args: [Overlay]
264
+ }] }, { type: i0.ViewContainerRef, decorators: [{
265
+ type: Inject,
266
+ args: [ViewContainerRef]
267
+ }] }]; }, { routerLinkActive: [{
268
+ type: ViewChild,
269
+ args: [RouterLinkActive, { static: true }]
270
+ }], item: [{
271
+ type: Input
272
+ }], level: [{
273
+ type: Input
274
+ }], isActive: [{
275
+ type: HostBinding,
276
+ args: ['class.active']
277
+ }], _navigationOverlay: [{
278
+ type: ViewChild,
279
+ args: ['navigationOverlay']
280
+ }], onMouseenter: [{
281
+ type: HostListener,
282
+ args: ['mouseenter']
283
+ }], onMouseleave: [{
284
+ type: HostListener,
285
+ args: ['mouseleave']
286
+ }] }); })();
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsRUFHdkIsU0FBUyxFQUdULFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBRVosV0FBVyxFQUNYLGdCQUFnQixFQUVoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFNMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3BCLElBQUksR0FDTCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxF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Q3JDLENBQUM7d0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDOzRCQUM3QixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDOzRCQUNwQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7eUJBQzNCLENBQUM7cUJBQ0gsQ0FBQztpQkFDSDs7c0JBa0NFLE1BQU07dUJBQUMsTUFBTTs7c0JBRWIsTUFBTTt1QkFBQyx1QkFBdUI7O3NCQUU5QixNQUFNO3VCQUFDLFVBQVU7O3NCQUVqQixNQUFNO3VCQUFDLFNBQVM7O3NCQUVoQixNQUFNO3VCQUFDLE9BQU87O3NCQUVkLE1BQU07dUJBQUMsZ0JBQWdCO3dCQXBDbkIsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUt0QyxJQUFJO2tCQUZWLEtBQUs7WUFLQyxLQUFLO2tCQURYLEtBQUs7WUFJQyxRQUFRO2tCQURkLFdBQVc7bUJBQUMsY0FBYztZQUluQixrQkFBa0I7a0JBRHpCLFNBQVM7bUJBQUMsbUJBQW1CO1lBa0Z2QixZQUFZO2tCQURsQixZQUFZO21CQUFDLFlBQVk7WUE4Qm5CLFlBQVk7a0JBRmxCLFlBQVk7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgT25EZXN0cm95LFxuICBBZnRlclZpZXdJbml0LFxuICBIb3N0QmluZGluZyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgSG9zdExpc3RlbmVyLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXF1aXJlZCwgRGVib3VuY2VDYWxsIH0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0eWxlLCB0cmFuc2l0aW9uLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBOYXZpZ2F0aW9uSXRlbSxcbiAgTmF2aWdhdGlvbixcbiAgTmF2aWdhdGlvbkRpdmlkZXJJdGVtLFxufSBmcm9tICcuLi9uYXZpZ2F0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgUm91dGVyTGlua0FjdGl2ZSwgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZmlsdGVyLFxuICB0YXAsXG4gIGRlbGF5LFxuICBzdGFydFdpdGgsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBza2lwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaWRlbmF2Q29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGlbcnhhcC1uYXZpZ2F0aW9uLWl0ZW1dJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAncnhhcC1uYXZpZ2F0aW9uLWl0ZW0nLFxuICB9LFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc3ViLW5hdicsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiAnYmxvY2snLCBoZWlnaHQ6ICcwJywgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgICBhbmltYXRlKDE1MCwgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvdmVyZmxvdzogJ2hpZGRlbicgfSksXG4gICAgICAgIGFuaW1hdGUoMzAwLCBzdHlsZSh7IGhlaWdodDogJzAnIH0pKSxcbiAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiAnbm9uZScgfSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkl0ZW1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIHB1YmxpYyBjaGlsZHJlbjogTmF2aWdhdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoUm91dGVyTGlua0FjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJvdXRlckxpbmtBY3RpdmUhOiBSb3V0ZXJMaW5rQWN0aXZlO1xuXG4gIEBJbnB1dCgpXG4gIEBSZXF1aXJlZFxuICBwdWJsaWMgaXRlbSE6IE5hdmlnYXRpb25JdGVtO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsZXZlbDogbnVtYmVyID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gIHB1YmxpYyBpc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25PdmVybGF5JylcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbk92ZXJsYXkhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIF9vdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBfZW1iZWRkZWRWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XG5cbiAgLyoqXG4gICAqIGluZGljYXRlcyB0aGUgbW91c2UgaXMgb3ZlciB0aGVcbiAgICovXG4gIHB1YmxpYyBsb2NrZU92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFJvdXRlcilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoU2lkZW5hdkNvbXBvbmVudFNlcnZpY2UpXG4gICAgcHVibGljIHJlYWRvbmx5IHNpZGVuYXY6IFNpZGVuYXZDb21wb25lbnRTZXJ2aWNlLFxuICAgIEBJbmplY3QoRWxlbWVudFJlZilcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChSZW5kZXJlcjIpXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBJbmplY3QoT3ZlcmxheSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXk6IE92ZXJsYXksXG4gICAgQEluamVjdChWaWV3Q29udGFpbmVyUmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5pdGVtKSB7XG4gICAgICBjb25zdCBpdGVtOiBOYXZpZ2F0aW9uSXRlbSA9IGNoYW5nZXMuaXRlbS5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmNoaWxkcmVuID1cbiAgICAgICAgaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA/IGl0ZW0uY2hpbGRyZW4gOiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICBkZWxheSgxMDApLFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5zaWRlbmF2LmNvbGxhcHNlZCQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAvLyBvbmx5IGNsb3NlIHRoZSBvdmVybGF5IGlmIHNpZGVuYXYgY29sbGFwc2VkXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnYWN0aXZlJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAvLyBkZXRhY2ggdGhlIG5hdmlnYXRpb24gb3ZlcmxheSBpZiB0aGUgc2lkZW5hdiBjb2xsYXBzZWRcbiAgICAvLyBzdGF0ZSBpcyBjaGFuZ2VkXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc2lkZW5hdi5jb2xsYXBzZWQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHB1YmxpYyBvbk1vdXNlZW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGlmICghdGhpcy5yb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlIHx8IHRoaXMuc2lkZW5hdi5jb2xsYXBzZWQkLnZhbHVlKSB7XG4gICAgICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXG4gICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgICB0aGlzLl9lbWJlZGRlZFZpZXdSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChcbiAgICAgICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9uYXZpZ2F0aW9uT3ZlcmxheSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgQERlYm91bmNlQ2FsbCgxMDApXG4gIHB1YmxpYyBvbk1vdXNlbGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmxvY2tlT3ZlcmxheSkge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVnaW9uIHR5cGUgc2F2ZSBpdGVtIHByb3BlcnR5XG5cbiAgLy8gcmVxdWlyZWQgdG8gY2hlY2sgdGhlIHR5cGUgb2YgdGhlIGl0ZW0gcHJvcGVydHkgaW4gdGhlIG5nRm9yIGxvb3BcblxuICBwdWJsaWMgaXNOYXZpZ2F0aW9uRGl2aWRlckl0ZW0oXG4gICAgaXRlbTogTmF2aWdhdGlvbkl0ZW0gfCBOYXZpZ2F0aW9uRGl2aWRlckl0ZW1cbiAgKTogaXRlbSBpcyBOYXZpZ2F0aW9uRGl2aWRlckl0ZW0ge1xuICAgIHJldHVybiAoaXRlbSBhcyBhbnkpWydkaXZpZGVyJ107XG4gIH1cblxuICBwdWJsaWMgaXNOYXZpZ2F0aW9uSXRlbShcbiAgICBpdGVtOiBOYXZpZ2F0aW9uSXRlbSB8IE5hdmlnYXRpb25EaXZpZGVySXRlbVxuICApOiBpdGVtIGlzIE5hdmlnYXRpb25JdGVtIHtcbiAgICByZXR1cm4gIXRoaXMuaXNOYXZpZ2F0aW9uRGl2aWRlckl0ZW0oaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgYXNOYXZpZ2F0aW9uSXRlbShcbiAgICBpdGVtOiBOYXZpZ2F0aW9uSXRlbSB8IE5hdmlnYXRpb25EaXZpZGVySXRlbVxuICApOiBOYXZpZ2F0aW9uSXRlbSB7XG4gICAgaWYgKCF0aGlzLmlzTmF2aWdhdGlvbkl0ZW0oaXRlbSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGl0ZW0gaXMgbm90IGEgTmF2aWdhdGlvbkl0ZW0nKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvLyBlbmRyZWdpb25cbn1cbiIsIjxhIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICByb3V0ZXJMaW5rQWN0aXZlPVwibGluay1hY3RpdmVcIlxuICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIhKHNpZGVuYXYuY29sbGFwc2VkJCB8IGFzeW5jKVwiXG4gICBbbWF0VG9vbHRpcF09XCJpdGVtLmxhYmVsXCJcbiAgIGNsYXNzPVwibmF2aWdhdGlvbi1saW5rIG1hdC1ib2R5LTIgbWF0LWJvZHktc3Ryb25nIG5hdmlnYXRpb24tbGV2ZWwte3tsZXZlbH19XCIgbWF0UmlwcGxlPlxuICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIiBbcnhhcEljb25dPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpY29uXCI+PC9tYXQtaWNvbj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiEoc2lkZW5hdi5jb2xsYXBzZWQkIHwgYXN5bmMpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG48L2E+XG5cbjx1bCByeGFwLW5hdmlnYXRpb25cbiAgICAqbmdJZj1cInJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmUgJiYgIShzaWRlbmF2LmNvbGxhcHNlZCQgfCBhc3luYykgJiYgY2hpbGRyZW5cIlxuICAgIFtAc3ViLW5hdl1cbiAgICBbaXRlbXNdPVwiY2hpbGRyZW5cIlxuICAgIFtsZXZlbF09XCJsZXZlbCArIDFcIlxuICAgIGNsYXNzPVwic3ViLWl0ZW1zXCJcbiAgICBmeEZsZXg9XCJub2dyb3dcIlxuPlxuPC91bD5cblxuPG5nLXRlbXBsYXRlICNuYXZpZ2F0aW9uT3ZlcmxheT5cbiAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb24tb3ZlcmxheS1jb250YWluZXIgbWF0LWVsZXZhdGlvbi16MVwiXG4gICAgICAgKG1vdXNlZW50ZXIpPVwibG9ja2VPdmVybGF5ID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImxvY2tlT3ZlcmxheSA9IGZhbHNlOyBvbk1vdXNlbGVhdmUoKVwiPlxuICAgIDx1bD5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgY2hpbGRyZW5cIj5cbiAgICAgICAgPGEgKm5nSWY9XCJpc05hdmlnYXRpb25JdGVtKGNoaWxkKVwiIFtyb3V0ZXJMaW5rXT1cImFzTmF2aWdhdGlvbkl0ZW0oY2hpbGQpLnJvdXRlckxpbmtcIlxuICAgICAgICAgICBjbGFzcz1cIm5hdmlnYXRpb24tbGluayBtYXQtYm9keS0yIG1hdC1ib2R5LXN0cm9uZ1wiIG1hdFJpcHBsZT5cbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJhc05hdmlnYXRpb25JdGVtKGNoaWxkKS5pY29uXCIgW3J4YXBJY29uXT1cImFzTmF2aWdhdGlvbkl0ZW0oY2hpbGQpLmljb25cIiBjbGFzcz1cImljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBhc05hdmlnYXRpb25JdGVtKGNoaWxkKS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=