@rxap/layout 16.0.0-dev.2 → 16.0.0-dev.4

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 (59) hide show
  1. package/CHANGELOG.md +340 -0
  2. package/README.md +7 -22
  3. package/esm2022/index.mjs +1 -1
  4. package/esm2022/lib/footer/footer.component.mjs +10 -41
  5. package/esm2022/lib/footer.directive.mjs +21 -22
  6. package/esm2022/lib/header/apps-button/apps-button.component.mjs +30 -93
  7. package/esm2022/lib/header/header.component.mjs +48 -119
  8. package/esm2022/lib/header/language-selector/language-selector.component.mjs +29 -63
  9. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +15 -24
  10. package/esm2022/lib/header/reset-button/reset-button.component.mjs +12 -19
  11. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +11 -33
  12. package/esm2022/lib/header/sign-out/sign-out.component.mjs +12 -19
  13. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +21 -103
  14. package/esm2022/lib/layout/layout.component.mjs +24 -80
  15. package/esm2022/lib/layout/layout.component.module.mjs +18 -20
  16. package/esm2022/lib/layout/layout.component.service.mjs +21 -22
  17. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +99 -195
  18. package/esm2022/lib/navigation/navigation-item.mjs +4 -4
  19. package/esm2022/lib/navigation/navigation.component.mjs +36 -91
  20. package/esm2022/lib/navigation/navigation.service.mjs +28 -27
  21. package/esm2022/lib/navigation/replace-router-paths.service.mjs +9 -10
  22. package/esm2022/lib/sidenav/sidenav-footer.directive.mjs +15 -16
  23. package/esm2022/lib/sidenav/sidenav-header.directive.mjs +15 -16
  24. package/esm2022/lib/sidenav/sidenav.component.mjs +29 -121
  25. package/esm2022/lib/sidenav/sidenav.component.service.mjs +8 -9
  26. package/esm2022/lib/sidenav/version/version.component.mjs +15 -43
  27. package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +12 -31
  28. package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +19 -20
  29. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +15 -38
  30. package/esm2022/lib/tokens.mjs +1 -1
  31. package/esm2022/lib/types.mjs +1 -1
  32. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +14 -33
  33. package/esm2022/rxap-layout.mjs +1 -1
  34. package/fesm2022/rxap-layout.mjs +473 -1168
  35. package/fesm2022/rxap-layout.mjs.map +1 -1
  36. package/lib/footer.directive.d.ts +1 -1
  37. package/lib/header/header.component.d.ts +2 -2
  38. package/lib/navigation/navigation-item/navigation-item.component.d.ts +3 -3
  39. package/lib/navigation/navigation-item.d.ts +1 -1
  40. package/lib/navigation/navigation.component.d.ts +2 -2
  41. package/lib/navigation/navigation.service.d.ts +1 -1
  42. package/lib/sidenav/version/version.component.d.ts +2 -2
  43. package/lib/sidenav-content/sidenav-content.component.d.ts +1 -3
  44. package/lib/sidenav-content/sidenav-content.component.service.d.ts +1 -1
  45. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +2 -4
  46. package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +1 -1
  47. package/package.json +74 -66
  48. package/src/lib/header/apps-button/_apps-button.component.theme.scss +45 -0
  49. package/src/lib/navigation/_navigation.component.theme.scss +33 -0
  50. package/src/lib/navigation/navigation-item/_navigation-item.component.theme.scss +45 -0
  51. package/src/lib/sidenav/_sidenav.component.theme.scss +65 -0
  52. package/src/lib/toggle-window-sidenav-button/_toggle-window-sidenav-button.component.theme.scss +15 -0
  53. package/LICENSE +0 -21
  54. package/collection.json +0 -10
  55. package/migration.json +0 -4
  56. package/src/schematics/ng-add/index.d.ts +0 -2
  57. package/src/schematics/ng-add/index.js +0 -8
  58. package/src/schematics/ng-add/index.js.map +0 -1
  59. package/src/schematics/ng-add/schema.json +0 -7
@@ -1,18 +1,18 @@
1
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, RouterLink } from '@angular/router';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';
3
+ import { DebounceCall, Required, } from '@rxap/utilities';
4
+ import { animate, style, transition, trigger, } from '@angular/animations';
5
+ import { NavigationEnd, Router, RouterLink, RouterLinkActive, } from '@angular/router';
6
6
  import { Subscription } from 'rxjs';
7
- import { filter, tap, delay, startWith, distinctUntilChanged, skip } from 'rxjs/operators';
7
+ import { delay, distinctUntilChanged, filter, skip, startWith, tap, } from 'rxjs/operators';
8
8
  import { SidenavComponentService } from '../../sidenav/sidenav.component.service';
9
- import { Overlay } from '@angular/cdk/overlay';
9
+ import { Overlay, } from '@angular/cdk/overlay';
10
10
  import { TemplatePortal } from '@angular/cdk/portal';
11
11
  import { FlexModule } from '@angular/flex-layout/flex';
12
12
  import { NavigationComponent } from '../navigation.component';
13
13
  import { IconDirective } from '@rxap/material-directives/icon';
14
14
  import { MatIconModule } from '@angular/material/icon';
15
- import { NgIf, NgFor, AsyncPipe } from '@angular/common';
15
+ import { AsyncPipe, NgFor, NgIf, } from '@angular/common';
16
16
  import { MatTooltipModule } from '@angular/material/tooltip';
17
17
  import { MatRippleModule } from '@angular/material/core';
18
18
  import * as i0 from "@angular/core";
@@ -23,74 +23,7 @@ import * as i4 from "@angular/flex-layout/flex";
23
23
  import * as i5 from "@angular/router";
24
24
  import * as i6 from "../../sidenav/sidenav.component.service";
25
25
  import * as i7 from "@angular/cdk/overlay";
26
- const _c0 = ["navigationOverlay"];
27
- const _c1 = ["rxap-navigation-item", ""];
28
- function NavigationItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelement(0, "mat-icon", 5);
30
- } if (rf & 2) {
31
- const ctx_r0 = i0.ɵɵnextContext();
32
- i0.ɵɵproperty("rxapIcon", ctx_r0.item.icon);
33
- } }
34
- function NavigationItemComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "span", 6);
36
- i0.ɵɵtext(1);
37
- i0.ɵɵelementEnd();
38
- } if (rf & 2) {
39
- const ctx_r1 = i0.ɵɵnextContext();
40
- i0.ɵɵadvance(1);
41
- i0.ɵɵtextInterpolate(ctx_r1.item.label);
42
- } }
43
- function NavigationItemComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelement(0, "ul", 7);
45
- } if (rf & 2) {
46
- const ctx_r2 = i0.ɵɵnextContext();
47
- i0.ɵɵproperty("@sub-nav", undefined)("items", ctx_r2.children)("level", ctx_r2.level + 1);
48
- } }
49
- function NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
50
- i0.ɵɵelement(0, "mat-icon", 5);
51
- } if (rf & 2) {
52
- const child_r6 = i0.ɵɵnextContext(2).$implicit;
53
- const ctx_r8 = i0.ɵɵnextContext(2);
54
- i0.ɵɵproperty("rxapIcon", ctx_r8.asNavigationItem(child_r6).icon);
55
- } }
56
- function NavigationItemComponent_ng_template_7_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
57
- i0.ɵɵelementStart(0, "a", 11);
58
- i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
59
- i0.ɵɵelementStart(2, "span", 6);
60
- i0.ɵɵtext(3);
61
- i0.ɵɵelementEnd()();
62
- } if (rf & 2) {
63
- const child_r6 = i0.ɵɵnextContext().$implicit;
64
- const ctx_r7 = i0.ɵɵnextContext(2);
65
- i0.ɵɵproperty("routerLink", ctx_r7.asNavigationItem(child_r6).routerLink);
66
- i0.ɵɵadvance(1);
67
- i0.ɵɵproperty("ngIf", ctx_r7.asNavigationItem(child_r6).icon);
68
- i0.ɵɵadvance(2);
69
- i0.ɵɵtextInterpolate(ctx_r7.asNavigationItem(child_r6).label);
70
- } }
71
- function NavigationItemComponent_ng_template_7_li_2_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "li");
73
- i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_Template, 4, 3, "a", 10);
74
- i0.ɵɵelementEnd();
75
- } if (rf & 2) {
76
- const child_r6 = ctx.$implicit;
77
- const ctx_r5 = i0.ɵɵnextContext(2);
78
- i0.ɵɵadvance(1);
79
- i0.ɵɵproperty("ngIf", ctx_r5.isNavigationItem(child_r6));
80
- } }
81
- function NavigationItemComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
82
- const _r12 = i0.ɵɵgetCurrentView();
83
- i0.ɵɵelementStart(0, "div", 8);
84
- 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()); });
85
- i0.ɵɵelementStart(1, "ul");
86
- i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
87
- i0.ɵɵelementEnd()();
88
- } if (rf & 2) {
89
- const ctx_r4 = i0.ɵɵnextContext();
90
- i0.ɵɵadvance(2);
91
- i0.ɵɵproperty("ngForOf", ctx_r4.children);
92
- } }
93
- class NavigationItemComponent {
26
+ export class NavigationItemComponent {
94
27
  constructor(router, sidenav, elementRef, renderer, overlay, viewContainerRef) {
95
28
  this.router = router;
96
29
  this.sidenav = sidenav;
@@ -108,8 +41,8 @@ class NavigationItemComponent {
108
41
  this.lockeOverlay = false;
109
42
  }
110
43
  ngOnChanges(changes) {
111
- if (changes.item) {
112
- const item = changes.item.currentValue;
44
+ if (changes['item']) {
45
+ const item = changes['item'].currentValue;
113
46
  this.children =
114
47
  item.children && item.children.length ? item.children : null;
115
48
  }
@@ -184,56 +117,24 @@ class NavigationItemComponent {
184
117
  }
185
118
  return item;
186
119
  }
187
- 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)); }; }
188
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationItemComponent, selectors: [["li", "rxap-navigation-item", ""]], viewQuery: function NavigationItemComponent_Query(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵviewQuery(RouterLinkActive, 7);
190
- i0.ɵɵviewQuery(_c0, 5);
191
- } if (rf & 2) {
192
- let _t;
193
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.routerLinkActive = _t.first);
194
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._navigationOverlay = _t.first);
195
- } }, hostAttrs: [1, "rxap-navigation-item"], hostVars: 2, hostBindings: function NavigationItemComponent_HostBindings(rf, ctx) { if (rf & 1) {
196
- i0.ɵɵlistener("mouseenter", function NavigationItemComponent_mouseenter_HostBindingHandler() { return ctx.onMouseenter(); })("mouseleave", function NavigationItemComponent_mouseleave_HostBindingHandler() { return ctx.onMouseleave(); });
197
- } if (rf & 2) {
198
- i0.ɵɵclassProp("active", ctx.isActive);
199
- } }, inputs: { item: "item", level: "level" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], 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-subtitle-2 mat-body-strong", "matRipple", "", 3, "routerLink", 4, "ngIf"], ["matRipple", "", 1, "navigation-link", "mat-subtitle-2", "mat-body-strong", 3, "routerLink"]], template: function NavigationItemComponent_Template(rf, ctx) { if (rf & 1) {
200
- i0.ɵɵelementStart(0, "a", 0);
201
- i0.ɵɵpipe(1, "async");
202
- i0.ɵɵtemplate(2, NavigationItemComponent_mat_icon_2_Template, 1, 1, "mat-icon", 1);
203
- i0.ɵɵtemplate(3, NavigationItemComponent_ng_template_3_Template, 2, 1, "ng-template", 2);
204
- i0.ɵɵpipe(4, "async");
205
- i0.ɵɵelementEnd();
206
- i0.ɵɵtemplate(5, NavigationItemComponent_ul_5_Template, 1, 3, "ul", 3);
207
- i0.ɵɵpipe(6, "async");
208
- i0.ɵɵtemplate(7, NavigationItemComponent_ng_template_7_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
209
- } if (rf & 2) {
210
- i0.ɵɵclassMapInterpolate1("navigation-link mat-body-2 mat-body-strong navigation-level-", ctx.level, "");
211
- i0.ɵɵproperty("routerLink", ctx.item.routerLink)("matTooltipDisabled", !i0.ɵɵpipeBind1(1, 9, ctx.sidenav.collapsed$))("matTooltip", ctx.item.label);
212
- i0.ɵɵadvance(2);
213
- i0.ɵɵproperty("ngIf", ctx.item.icon);
214
- i0.ɵɵadvance(1);
215
- i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 11, ctx.sidenav.collapsed$));
216
- i0.ɵɵadvance(2);
217
- i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(6, 13, ctx.sidenav.collapsed$) && ctx.children);
218
- } }, dependencies: [RouterLinkActive,
219
- MatRippleModule, i1.MatRipple, RouterLink,
220
- MatTooltipModule, i2.MatTooltip, NgIf,
221
- MatIconModule, i3.MatIcon, IconDirective,
222
- NavigationComponent,
223
- FlexModule, i4.DefaultFlexDirective, NgFor,
224
- AsyncPipe], 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: [
225
- trigger('sub-nav', [
226
- transition(':enter', [
227
- style({ display: 'block', height: '0', overflow: 'hidden' }),
228
- animate(150, style({ height: '*' }))
229
- ]),
230
- transition(':leave', [
231
- style({ overflow: 'hidden' }),
232
- animate(300, style({ height: '0' })),
233
- style({ display: 'none' })
234
- ])
235
- ])
236
- ] }, changeDetection: 0 }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationItemComponent, deps: [{ token: Router }, { token: SidenavComponentService }, { token: ElementRef }, { token: Renderer2 }, { token: Overlay }, { token: ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: NavigationItemComponent, isStandalone: true, selector: "li[rxap-navigation-item]", inputs: { item: "item", level: "level" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class.active": "this.isActive" }, classAttribute: "rxap-navigation-item" }, viewQueries: [{ propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true, static: true }, { propertyName: "_navigationOverlay", first: true, predicate: ["navigationOverlay"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<a [matTooltipDisabled]=\"(sidenav.collapsed$ | async) === false\"\n [matTooltip]=\"item.label\"\n [routerLink]=\"item.routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\"\n matRipple routerLinkActive=\"link-active\">\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"(sidenav.collapsed$ | async) === false\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul *ngIf=\"routerLinkActive.isActive && (sidenav.collapsed$ | async) === false && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n rxap-navigation\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div (mouseenter)=\"lockeOverlay = true\"\n (mouseleave)=\"lockeOverlay = false; onMouseleave()\" class=\"navigation-overlay-container mat-elevation-z1\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-subtitle-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\"\n 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"], dependencies: [{ kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: IconDirective, selector: "mat-icon[rxapIcon]", inputs: ["rxapIcon"] }, { kind: "component", type: NavigationComponent, selector: "ul[rxap-navigation]", inputs: ["root", "items", "level"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [
122
+ trigger('sub-nav', [
123
+ transition(':enter', [
124
+ style({
125
+ display: 'block',
126
+ height: '0',
127
+ overflow: 'hidden',
128
+ }),
129
+ animate(150, style({ height: '*' })),
130
+ ]),
131
+ transition(':leave', [
132
+ style({ overflow: 'hidden' }),
133
+ animate(300, style({ height: '0' })),
134
+ style({ display: 'none' }),
135
+ ]),
136
+ ]),
137
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
237
138
  }
238
139
  __decorate([
239
140
  Required,
@@ -245,72 +146,75 @@ __decorate([
245
146
  __metadata("design:paramtypes", []),
246
147
  __metadata("design:returntype", void 0)
247
148
  ], NavigationItemComponent.prototype, "onMouseleave", null);
248
- export { NavigationItemComponent };
249
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationItemComponent, [{
250
- type: Component,
251
- args: [{ selector: 'li[rxap-navigation-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
252
- class: 'rxap-navigation-item'
253
- }, animations: [
254
- trigger('sub-nav', [
255
- transition(':enter', [
256
- style({ display: 'block', height: '0', overflow: 'hidden' }),
257
- animate(150, style({ height: '*' }))
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationItemComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'li[rxap-navigation-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
152
+ class: 'rxap-navigation-item',
153
+ }, animations: [
154
+ trigger('sub-nav', [
155
+ transition(':enter', [
156
+ style({
157
+ display: 'block',
158
+ height: '0',
159
+ overflow: 'hidden',
160
+ }),
161
+ animate(150, style({ height: '*' })),
162
+ ]),
163
+ transition(':leave', [
164
+ style({ overflow: 'hidden' }),
165
+ animate(300, style({ height: '0' })),
166
+ style({ display: 'none' }),
167
+ ]),
258
168
  ]),
259
- transition(':leave', [
260
- style({ overflow: 'hidden' }),
261
- animate(300, style({ height: '0' })),
262
- style({ display: 'none' })
263
- ])
264
- ])
265
- ], standalone: true, imports: [
266
- RouterLinkActive,
267
- MatRippleModule,
268
- RouterLink,
269
- MatTooltipModule,
270
- NgIf,
271
- MatIconModule,
272
- IconDirective,
273
- NavigationComponent,
274
- FlexModule,
275
- NgFor,
276
- AsyncPipe
277
- ], 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-subtitle-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"] }]
278
- }], function () { return [{ type: i5.Router, decorators: [{
279
- type: Inject,
280
- args: [Router]
281
- }] }, { type: i6.SidenavComponentService, decorators: [{
282
- type: Inject,
283
- args: [SidenavComponentService]
284
- }] }, { type: i0.ElementRef, decorators: [{
285
- type: Inject,
286
- args: [ElementRef]
287
- }] }, { type: i0.Renderer2, decorators: [{
288
- type: Inject,
289
- args: [Renderer2]
290
- }] }, { type: i7.Overlay, decorators: [{
291
- type: Inject,
292
- args: [Overlay]
293
- }] }, { type: i0.ViewContainerRef, decorators: [{
294
- type: Inject,
295
- args: [ViewContainerRef]
296
- }] }]; }, { routerLinkActive: [{
297
- type: ViewChild,
298
- args: [RouterLinkActive, { static: true }]
299
- }], item: [{
300
- type: Input
301
- }], level: [{
302
- type: Input
303
- }], isActive: [{
304
- type: HostBinding,
305
- args: ['class.active']
306
- }], _navigationOverlay: [{
307
- type: ViewChild,
308
- args: ['navigationOverlay']
309
- }], onMouseenter: [{
310
- type: HostListener,
311
- args: ['mouseenter']
312
- }], onMouseleave: [{
313
- type: HostListener,
314
- args: ['mouseleave']
315
- }] }); })();
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsRUFHdkIsU0FBUyxFQUdULFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBRVosV0FBVyxFQUNYLGdCQUFnQixFQUVoQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFFBQVEsRUFDUixZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFNN0IsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sYUFBYSxFQUNiLFVBQVUsRUFDWCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsSUFBSSxFQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUNMLE9BQU8sRUFFUixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8s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QUU5QixNQUFNO3VCQUFDLFVBQVU7O3NCQUVqQixNQUFNO3VCQUFDLFNBQVM7O3NCQUVoQixNQUFNO3VCQUFDLE9BQU87O3NCQUVkLE1BQU07dUJBQUMsZ0JBQWdCO3dCQXBDbkIsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUt0QyxJQUFJO2tCQUZWLEtBQUs7WUFLQyxLQUFLO2tCQURYLEtBQUs7WUFJQyxRQUFRO2tCQURkLFdBQVc7bUJBQUMsY0FBYztZQUluQixrQkFBa0I7a0JBRHpCLFNBQVM7bUJBQUMsbUJBQW1CO1lBa0Z2QixZQUFZO2tCQURsQixZQUFZO21CQUFDLFlBQVk7WUE4Qm5CLFlBQVk7a0JBRmxCLFlBQVk7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgT25EZXN0cm95LFxuICBBZnRlclZpZXdJbml0LFxuICBIb3N0QmluZGluZyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgSG9zdExpc3RlbmVyLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFJlcXVpcmVkLFxuICBEZWJvdW5jZUNhbGxcbn0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7XG4gIHRyaWdnZXIsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICBhbmltYXRlXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkl0ZW0sXG4gIE5hdmlnYXRpb24sXG4gIE5hdmlnYXRpb25EaXZpZGVySXRlbVxufSBmcm9tICcuLi9uYXZpZ2F0aW9uLWl0ZW0nO1xuaW1wb3J0IHtcbiAgUm91dGVyTGlua0FjdGl2ZSxcbiAgUm91dGVyLFxuICBOYXZpZ2F0aW9uRW5kLFxuICBSb3V0ZXJMaW5rXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgdGFwLFxuICBkZWxheSxcbiAgc3RhcnRXaXRoLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgc2tpcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaWRlbmF2Q29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQge1xuICBPdmVybGF5LFxuICBPdmVybGF5UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQvZmxleCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkRpcmVjdGl2ZSB9IGZyb20gJ0ByeGFwL21hdGVyaWFsLWRpcmVjdGl2ZXMvaWNvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge1xuICBOZ0lmLFxuICBOZ0ZvcixcbiAgQXN5bmNQaXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAgICAgICAgJ2xpW3J4YXAtbmF2aWdhdGlvbi1pdGVtXScsXG4gIHRlbXBsYXRlVXJsOiAgICAgJy4vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiAgICAgICBbICcuL25hdmlnYXRpb24taXRlbS5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246ICAgVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogICAgICAgICAgICB7XG4gICAgY2xhc3M6ICdyeGFwLW5hdmlnYXRpb24taXRlbSdcbiAgfSxcbiAgYW5pbWF0aW9uczogICAgICBbXG4gICAgdHJpZ2dlcignc3ViLW5hdicsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiAnYmxvY2snLCBoZWlnaHQ6ICcwJywgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgICBhbmltYXRlKDE1MCwgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSlcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBzdHlsZSh7IG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgzMDAsIHN0eWxlKHsgaGVpZ2h0OiAnMCcgfSkpLFxuICAgICAgICBzdHlsZSh7IGRpc3BsYXk6ICdub25lJyB9KVxuICAgICAgXSlcbiAgICBdKVxuICBdLFxuICBzdGFuZGFsb25lOiAgICAgIHRydWUsXG4gIGltcG9ydHM6ICAgICAgICAgW1xuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIFJvdXRlckxpbmssXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWNvbkRpcmVjdGl2ZSxcbiAgICBOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIEZsZXhNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgQXN5bmNQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkl0ZW1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIHB1YmxpYyBjaGlsZHJlbjogTmF2aWdhdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoUm91dGVyTGlua0FjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJvdXRlckxpbmtBY3RpdmUhOiBSb3V0ZXJMaW5rQWN0aXZlO1xuXG4gIEBJbnB1dCgpXG4gIEBSZXF1aXJlZFxuICBwdWJsaWMgaXRlbSE6IE5hdmlnYXRpb25JdGVtO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsZXZlbDogbnVtYmVyID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjdGl2ZScpXG4gIHB1YmxpYyBpc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25PdmVybGF5JylcbiAgcHJpdmF0ZSBfbmF2aWdhdGlvbk92ZXJsYXkhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIF9vdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBfZW1iZWRkZWRWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XG5cbiAgLyoqXG4gICAqIGluZGljYXRlcyB0aGUgbW91c2UgaXMgb3ZlciB0aGVcbiAgICovXG4gIHB1YmxpYyBsb2NrZU92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFJvdXRlcilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoU2lkZW5hdkNvbXBvbmVudFNlcnZpY2UpXG4gICAgcHVibGljIHJlYWRvbmx5IHNpZGVuYXY6IFNpZGVuYXZDb21wb25lbnRTZXJ2aWNlLFxuICAgIEBJbmplY3QoRWxlbWVudFJlZilcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChSZW5kZXJlcjIpXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBJbmplY3QoT3ZlcmxheSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXk6IE92ZXJsYXksXG4gICAgQEluamVjdChWaWV3Q29udGFpbmVyUmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5pdGVtKSB7XG4gICAgICBjb25zdCBpdGVtOiBOYXZpZ2F0aW9uSXRlbSA9IGNoYW5nZXMuaXRlbS5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmNoaWxkcmVuID1cbiAgICAgICAgaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA/IGl0ZW0uY2hpbGRyZW4gOiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICBkZWxheSgxMDApLFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5zaWRlbmF2LmNvbGxhcHNlZCQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAvLyBvbmx5IGNsb3NlIHRoZSBvdmVybGF5IGlmIHNpZGVuYXYgY29sbGFwc2VkXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnYWN0aXZlJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAvLyBkZXRhY2ggdGhlIG5hdmlnYXRpb24gb3ZlcmxheSBpZiB0aGUgc2lkZW5hdiBjb2xsYXBzZWRcbiAgICAvLyBzdGF0ZSBpcyBjaGFuZ2VkXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc2lkZW5hdi5jb2xsYXBzZWQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIHB1YmxpYyBvbk1vdXNlZW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGlmICghdGhpcy5yb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlIHx8IHRoaXMuc2lkZW5hdi5jb2xsYXBzZWQkLnZhbHVlKSB7XG4gICAgICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXG4gICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgICB0aGlzLl9lbWJlZGRlZFZpZXdSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChcbiAgICAgICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9uYXZpZ2F0aW9uT3ZlcmxheSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgQERlYm91bmNlQ2FsbCgxMDApXG4gIHB1YmxpYyBvbk1vdXNlbGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmxvY2tlT3ZlcmxheSkge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVnaW9uIHR5cGUgc2F2ZSBpdGVtIHByb3BlcnR5XG5cbiAgLy8gcmVxdWlyZWQgdG8gY2hlY2sgdGhlIHR5cGUgb2YgdGhlIGl0ZW0gcHJvcGVydHkgaW4gdGhlIG5nRm9yIGxvb3BcblxuICBwdWJsaWMgaXNOYXZpZ2F0aW9uRGl2aWRlckl0ZW0oXG4gICAgaXRlbTogTmF2aWdhdGlvbkl0ZW0gfCBOYXZpZ2F0aW9uRGl2aWRlckl0ZW1cbiAgKTogaXRlbSBpcyBOYXZpZ2F0aW9uRGl2aWRlckl0ZW0ge1xuICAgIHJldHVybiAoaXRlbSBhcyBhbnkpWydkaXZpZGVyJ107XG4gIH1cblxuICBwdWJsaWMgaXNOYXZpZ2F0aW9uSXRlbShcbiAgICBpdGVtOiBOYXZpZ2F0aW9uSXRlbSB8IE5hdmlnYXRpb25EaXZpZGVySXRlbVxuICApOiBpdGVtIGlzIE5hdmlnYXRpb25JdGVtIHtcbiAgICByZXR1cm4gIXRoaXMuaXNOYXZpZ2F0aW9uRGl2aWRlckl0ZW0oaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgYXNOYXZpZ2F0aW9uSXRlbShcbiAgICBpdGVtOiBOYXZpZ2F0aW9uSXRlbSB8IE5hdmlnYXRpb25EaXZpZGVySXRlbVxuICApOiBOYXZpZ2F0aW9uSXRlbSB7XG4gICAgaWYgKCF0aGlzLmlzTmF2aWdhdGlvbkl0ZW0oaXRlbSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGl0ZW0gaXMgbm90IGEgTmF2aWdhdGlvbkl0ZW0nKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvLyBlbmRyZWdpb25cbn1cbiIsIjxhIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICByb3V0ZXJMaW5rQWN0aXZlPVwibGluay1hY3RpdmVcIlxuICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIhKHNpZGVuYXYuY29sbGFwc2VkJCB8IGFzeW5jKVwiXG4gICBbbWF0VG9vbHRpcF09XCJpdGVtLmxhYmVsXCJcbiAgIGNsYXNzPVwibmF2aWdhdGlvbi1saW5rIG1hdC1ib2R5LTIgbWF0LWJvZHktc3Ryb25nIG5hdmlnYXRpb24tbGV2ZWwte3tsZXZlbH19XCIgbWF0UmlwcGxlPlxuICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIiBbcnhhcEljb25dPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJpY29uXCI+PC9tYXQtaWNvbj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiEoc2lkZW5hdi5jb2xsYXBzZWQkIHwgYXN5bmMpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG48L2E+XG5cbjx1bCByeGFwLW5hdmlnYXRpb25cbiAgICAqbmdJZj1cInJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmUgJiYgIShzaWRlbmF2LmNvbGxhcHNlZCQgfCBhc3luYykgJiYgY2hpbGRyZW5cIlxuICAgIFtAc3ViLW5hdl1cbiAgICBbaXRlbXNdPVwiY2hpbGRyZW5cIlxuICAgIFtsZXZlbF09XCJsZXZlbCArIDFcIlxuICAgIGNsYXNzPVwic3ViLWl0ZW1zXCJcbiAgICBmeEZsZXg9XCJub2dyb3dcIlxuPlxuPC91bD5cblxuPG5nLXRlbXBsYXRlICNuYXZpZ2F0aW9uT3ZlcmxheT5cbiAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb24tb3ZlcmxheS1jb250YWluZXIgbWF0LWVsZXZhdGlvbi16MVwiXG4gICAgICAgKG1vdXNlZW50ZXIpPVwibG9ja2VPdmVybGF5ID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImxvY2tlT3ZlcmxheSA9IGZhbHNlOyBvbk1vdXNlbGVhdmUoKVwiPlxuICAgIDx1bD5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgY2hpbGRyZW5cIj5cbiAgICAgICAgPGEgKm5nSWY9XCJpc05hdmlnYXRpb25JdGVtKGNoaWxkKVwiIFtyb3V0ZXJMaW5rXT1cImFzTmF2aWdhdGlvbkl0ZW0oY2hpbGQpLnJvdXRlckxpbmtcIlxuICAgICAgICAgICBjbGFzcz1cIm5hdmlnYXRpb24tbGluayBtYXQtc3VidGl0bGUtMiBtYXQtYm9keS1zdHJvbmdcIiBtYXRSaXBwbGU+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYXNOYXZpZ2F0aW9uSXRlbShjaGlsZCkuaWNvblwiIFtyeGFwSWNvbl09XCJhc05hdmlnYXRpb25JdGVtKGNoaWxkKS5pY29uXCIgY2xhc3M9XCJpY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgYXNOYXZpZ2F0aW9uSXRlbShjaGlsZCkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
169
+ ], standalone: true, imports: [
170
+ RouterLinkActive,
171
+ MatRippleModule,
172
+ RouterLink,
173
+ MatTooltipModule,
174
+ NgIf,
175
+ MatIconModule,
176
+ IconDirective,
177
+ NavigationComponent,
178
+ FlexModule,
179
+ NgFor,
180
+ AsyncPipe,
181
+ ], template: "<a [matTooltipDisabled]=\"(sidenav.collapsed$ | async) === false\"\n [matTooltip]=\"item.label\"\n [routerLink]=\"item.routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\"\n matRipple routerLinkActive=\"link-active\">\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"(sidenav.collapsed$ | async) === false\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul *ngIf=\"routerLinkActive.isActive && (sidenav.collapsed$ | async) === false && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n rxap-navigation\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div (mouseenter)=\"lockeOverlay = true\"\n (mouseleave)=\"lockeOverlay = false; onMouseleave()\" class=\"navigation-overlay-container mat-elevation-z1\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-subtitle-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\"\n 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"] }]
182
+ }], ctorParameters: function () { return [{ type: i5.Router, decorators: [{
183
+ type: Inject,
184
+ args: [Router]
185
+ }] }, { type: i6.SidenavComponentService, decorators: [{
186
+ type: Inject,
187
+ args: [SidenavComponentService]
188
+ }] }, { type: i0.ElementRef, decorators: [{
189
+ type: Inject,
190
+ args: [ElementRef]
191
+ }] }, { type: i0.Renderer2, decorators: [{
192
+ type: Inject,
193
+ args: [Renderer2]
194
+ }] }, { type: i7.Overlay, decorators: [{
195
+ type: Inject,
196
+ args: [Overlay]
197
+ }] }, { type: i0.ViewContainerRef, decorators: [{
198
+ type: Inject,
199
+ args: [ViewContainerRef]
200
+ }] }]; }, propDecorators: { routerLinkActive: [{
201
+ type: ViewChild,
202
+ args: [RouterLinkActive, { static: true }]
203
+ }], item: [{
204
+ type: Input
205
+ }], level: [{
206
+ type: Input
207
+ }], isActive: [{
208
+ type: HostBinding,
209
+ args: ['class.active']
210
+ }], _navigationOverlay: [{
211
+ type: ViewChild,
212
+ args: ['navigationOverlay']
213
+ }], onMouseenter: [{
214
+ type: HostListener,
215
+ args: ['mouseenter']
216
+ }], onMouseleave: [{
217
+ type: HostListener,
218
+ args: ['mouseleave']
219
+ }] } });
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBRVYsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEdBQ1QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFNN0IsT0FBTyxFQUNMLGFBQWEsRUFDYixNQUFNLEVBQ04sVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUNMLEtBQUssRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUNMLE9BQU8sR0FF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QkFDM0IsQ0FBQzt5QkFDSCxDQUFDO3FCQUNILGNBQ1csSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixVQUFVO3dCQUNWLEtBQUs7d0JBQ0wsU0FBUztxQkFDVjs7MEJBaUNFLE1BQU07MkJBQUMsTUFBTTs7MEJBRWIsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLFVBQVU7OzBCQUVqQixNQUFNOzJCQUFDLFNBQVM7OzBCQUVoQixNQUFNOzJCQUFDLE9BQU87OzBCQUVkLE1BQU07MkJBQUMsZ0JBQWdCOzRDQXBDbkIsZ0JBQWdCO3NCQUR0QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLdEMsSUFBSTtzQkFGVixLQUFLO2dCQUtDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxRQUFRO3NCQURkLFdBQVc7dUJBQUMsY0FBYztnQkFJbkIsa0JBQWtCO3NCQUR6QixTQUFTO3VCQUFDLG1CQUFtQjtnQkFtRnZCLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsWUFBWTtnQkE4Qm5CLFlBQVk7c0JBRmxCLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBEZWJvdW5jZUNhbGwsXG4gIFJlcXVpcmVkLFxufSBmcm9tICdAcnhhcC91dGlsaXRpZXMnO1xuaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbixcbiAgTmF2aWdhdGlvbkRpdmlkZXJJdGVtLFxuICBOYXZpZ2F0aW9uSXRlbSxcbn0gZnJvbSAnLi4vbmF2aWdhdGlvbi1pdGVtJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25FbmQsXG4gIFJvdXRlcixcbiAgUm91dGVyTGluayxcbiAgUm91dGVyTGlua0FjdGl2ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVsYXksXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIHNraXAsXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaWRlbmF2Q29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQge1xuICBPdmVybGF5LFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0L2ZsZXgnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25EaXJlY3RpdmUgfSBmcm9tICdAcnhhcC9tYXRlcmlhbC1kaXJlY3RpdmVzL2ljb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0ZvcixcbiAgTmdJZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaVtyeGFwLW5hdmlnYXRpb24taXRlbV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL25hdmlnYXRpb24taXRlbS5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdyeGFwLW5hdmlnYXRpb24taXRlbScsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzdWItbmF2JywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIH0pLFxuICAgICAgICBhbmltYXRlKDE1MCwgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvdmVyZmxvdzogJ2hpZGRlbicgfSksXG4gICAgICAgIGFuaW1hdGUoMzAwLCBzdHlsZSh7IGhlaWdodDogJzAnIH0pKSxcbiAgICAgICAgc3R5bGUoeyBkaXNwbGF5OiAnbm9uZScgfSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIFJvdXRlckxpbmssXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWNvbkRpcmVjdGl2ZSxcbiAgICBOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIEZsZXhNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuICBwdWJsaWMgY2hpbGRyZW46IE5hdmlnYXRpb24gfCBudWxsID0gbnVsbDtcblxuICBAVmlld0NoaWxkKFJvdXRlckxpbmtBY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aXZlITogUm91dGVyTGlua0FjdGl2ZTtcblxuICBASW5wdXQoKVxuICBAUmVxdWlyZWRcbiAgcHVibGljIGl0ZW0hOiBOYXZpZ2F0aW9uSXRlbTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGV2ZWwgPSAwO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgcHVibGljIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnbmF2aWdhdGlvbk92ZXJsYXknKVxuICBwcml2YXRlIF9uYXZpZ2F0aW9uT3ZlcmxheSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIF9lbWJlZGRlZFZpZXdSZWY/OiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcblxuICAvKipcbiAgICogaW5kaWNhdGVzIHRoZSBtb3VzZSBpcyBvdmVyIHRoZVxuICAgKi9cbiAgcHVibGljIGxvY2tlT3ZlcmxheSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUm91dGVyKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgQEluamVjdChTaWRlbmF2Q29tcG9uZW50U2VydmljZSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2lkZW5hdjogU2lkZW5hdkNvbXBvbmVudFNlcnZpY2UsXG4gICAgQEluamVjdChFbGVtZW50UmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KFJlbmRlcmVyMilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgQEluamVjdChPdmVybGF5KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBASW5qZWN0KFZpZXdDb250YWluZXJSZWYpXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW0nXSkge1xuICAgICAgY29uc3QgaXRlbTogTmF2aWdhdGlvbkl0ZW0gPSBjaGFuZ2VzWydpdGVtJ10uY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5jaGlsZHJlbiA9XG4gICAgICAgIGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPyBpdGVtLmNoaWxkcmVuIDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICBzdGFydFdpdGgodHJ1ZSksXG4gICAgICAgICAgICBkZWxheSgxMDApLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyTGlua0FjdGl2ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zaWRlbmF2LmNvbGxhcHNlZCQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIC8vIG9ubHkgY2xvc2UgdGhlIG92ZXJsYXkgaWYgc2lkZW5hdiBjb2xsYXBzZWRcbiAgICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgJ2FjdGl2ZScsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIC8vIGRldGFjaCB0aGUgbmF2aWdhdGlvbiBvdmVybGF5IGlmIHRoZSBzaWRlbmF2IGNvbGxhcHNlZFxuICAgIC8vIHN0YXRlIGlzIGNoYW5nZWRcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5zaWRlbmF2LmNvbGxhcHNlZCRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBwdWJsaWMgb25Nb3VzZWVudGVyKCkge1xuICAgIGlmICh0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoIXRoaXMucm91dGVyTGlua0FjdGl2ZS5pc0FjdGl2ZSB8fCB0aGlzLnNpZGVuYXYuY29sbGFwc2VkJC52YWx1ZSkge1xuICAgICAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgICAgICB0aGlzLl9lbWJlZGRlZFZpZXdSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChcbiAgICAgICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9uYXZpZ2F0aW9uT3ZlcmxheSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIEBEZWJvdW5jZUNhbGwoMTAwKVxuICBwdWJsaWMgb25Nb3VzZWxlYXZlKCkge1xuICAgIGlmICghdGhpcy5sb2NrZU92ZXJsYXkpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHJlZ2lvbiB0eXBlIHNhdmUgaXRlbSBwcm9wZXJ0eVxuXG4gIC8vIHJlcXVpcmVkIHRvIGNoZWNrIHRoZSB0eXBlIG9mIHRoZSBpdGVtIHByb3BlcnR5IGluIHRoZSBuZ0ZvciBsb29wXG5cbiAgcHVibGljIGlzTmF2aWdhdGlvbkRpdmlkZXJJdGVtKFxuICAgIGl0ZW06IE5hdmlnYXRpb25JdGVtIHwgTmF2aWdhdGlvbkRpdmlkZXJJdGVtLFxuICApOiBpdGVtIGlzIE5hdmlnYXRpb25EaXZpZGVySXRlbSB7XG4gICAgcmV0dXJuIChpdGVtIGFzIGFueSlbJ2RpdmlkZXInXTtcbiAgfVxuXG4gIHB1YmxpYyBpc05hdmlnYXRpb25JdGVtKFxuICAgIGl0ZW06IE5hdmlnYXRpb25JdGVtIHwgTmF2aWdhdGlvbkRpdmlkZXJJdGVtLFxuICApOiBpdGVtIGlzIE5hdmlnYXRpb25JdGVtIHtcbiAgICByZXR1cm4gIXRoaXMuaXNOYXZpZ2F0aW9uRGl2aWRlckl0ZW0oaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgYXNOYXZpZ2F0aW9uSXRlbShcbiAgICBpdGVtOiBOYXZpZ2F0aW9uSXRlbSB8IE5hdmlnYXRpb25EaXZpZGVySXRlbSxcbiAgKTogTmF2aWdhdGlvbkl0ZW0ge1xuICAgIGlmICghdGhpcy5pc05hdmlnYXRpb25JdGVtKGl0ZW0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBpdGVtIGlzIG5vdCBhIE5hdmlnYXRpb25JdGVtJyk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgLy8gZW5kcmVnaW9uXG59XG4iLCI8YSBbbWF0VG9vbHRpcERpc2FibGVkXT1cIihzaWRlbmF2LmNvbGxhcHNlZCQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgIFttYXRUb29sdGlwXT1cIml0ZW0ubGFiZWxcIlxuICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZXJMaW5rXCJcbiAgIGNsYXNzPVwibmF2aWdhdGlvbi1saW5rIG1hdC1ib2R5LTIgbWF0LWJvZHktc3Ryb25nIG5hdmlnYXRpb24tbGV2ZWwte3tsZXZlbH19XCJcbiAgIG1hdFJpcHBsZSByb3V0ZXJMaW5rQWN0aXZlPVwibGluay1hY3RpdmVcIj5cbiAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCIgW3J4YXBJY29uXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwiaWNvblwiPjwvbWF0LWljb24+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIoc2lkZW5hdi5jb2xsYXBzZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuPC9hPlxuXG48dWwgKm5nSWY9XCJyb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlICYmIChzaWRlbmF2LmNvbGxhcHNlZCQgfCBhc3luYykgPT09IGZhbHNlICYmIGNoaWxkcmVuXCJcbiAgICBbQHN1Yi1uYXZdXG4gICAgW2l0ZW1zXT1cImNoaWxkcmVuXCJcbiAgICBbbGV2ZWxdPVwibGV2ZWwgKyAxXCJcbiAgICBjbGFzcz1cInN1Yi1pdGVtc1wiXG4gICAgZnhGbGV4PVwibm9ncm93XCJcbiAgICByeGFwLW5hdmlnYXRpb25cbj5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSAjbmF2aWdhdGlvbk92ZXJsYXk+XG4gIDxkaXYgKG1vdXNlZW50ZXIpPVwibG9ja2VPdmVybGF5ID0gdHJ1ZVwiXG4gICAgICAgKG1vdXNlbGVhdmUpPVwibG9ja2VPdmVybGF5ID0gZmFsc2U7IG9uTW91c2VsZWF2ZSgpXCIgY2xhc3M9XCJuYXZpZ2F0aW9uLW92ZXJsYXktY29udGFpbmVyIG1hdC1lbGV2YXRpb24tejFcIj5cbiAgICA8dWw+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGNoaWxkcmVuXCI+XG4gICAgICAgIDxhICpuZ0lmPVwiaXNOYXZpZ2F0aW9uSXRlbShjaGlsZClcIiBbcm91dGVyTGlua109XCJhc05hdmlnYXRpb25JdGVtKGNoaWxkKS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgY2xhc3M9XCJuYXZpZ2F0aW9uLWxpbmsgbWF0LXN1YnRpdGxlLTIgbWF0LWJvZHktc3Ryb25nXCIgbWF0UmlwcGxlPlxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImFzTmF2aWdhdGlvbkl0ZW0oY2hpbGQpLmljb25cIiBbcnhhcEljb25dPVwiYXNOYXZpZ2F0aW9uSXRlbShjaGlsZCkuaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGFzTmF2aWdhdGlvbkl0ZW0oY2hpbGQpLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,10 +1,10 @@
1
1
  export function IsNavigationDividerItem(item) {
2
- return item && item.hasOwnProperty('divider') && item.divider;
2
+ return !!item && !!item['divider'];
3
3
  }
4
4
  export function IsNavigationInsertItem(item) {
5
- return item && item.hasOwnProperty('insert');
5
+ return !!item && !!item['insert'];
6
6
  }
7
7
  export function IsNavigationItem(item) {
8
- return (item && item.hasOwnProperty('routerLink') && item.hasOwnProperty('label'));
8
+ return (!!item && !!item['routerLink'] && !!item['label']);
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUFTO0lBRVQsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ2hFLENBQUM7QUFNRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLElBQVM7SUFFVCxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFvQkQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVM7SUFDeEMsT0FBTyxDQUNMLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQzFFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbkNvbmZpZyB9IGZyb20gJ0ByeGFwL3V0aWxpdGllcyc7XG5pbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbiAgVHlwZSxcbiAgQWJzdHJhY3RUeXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uID0gQXJyYXk8TmF2aWdhdGlvbkl0ZW0gfCBOYXZpZ2F0aW9uRGl2aWRlckl0ZW0+O1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uV2l0aEluc2VydHMgPSBBcnJheTxcbiAgfCBOYXZpZ2F0aW9uSXRlbTxOYXZpZ2F0aW9uV2l0aEluc2VydHM+XG4gIHwgTmF2aWdhdGlvbkRpdmlkZXJJdGVtXG4gIHwgTmF2aWdhdGlvbkluc2VydEl0ZW1cbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkRpdmlkZXJJdGVtIHtcbiAgZGl2aWRlcjogYm9vbGVhbjtcbiAgdGl0bGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBJc05hdmlnYXRpb25EaXZpZGVySXRlbShcbiAgaXRlbTogYW55XG4pOiBpdGVtIGlzIE5hdmlnYXRpb25EaXZpZGVySXRlbSB7XG4gIHJldHVybiBpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkoJ2RpdmlkZXInKSAmJiBpdGVtLmRpdmlkZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkluc2VydEl0ZW0ge1xuICBpbnNlcnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIElzTmF2aWdhdGlvbkluc2VydEl0ZW0oXG4gIGl0ZW06IGFueVxuKTogaXRlbSBpcyBOYXZpZ2F0aW9uSW5zZXJ0SXRlbSB7XG4gIHJldHVybiBpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkoJ2luc2VydCcpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25TdGF0dXMge1xuICBpc1Zpc2libGUoXG4gICAgbmF2aWdhdGlvbkl0ZW06IE5hdmlnYXRpb25JdGVtLFxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkl0ZW08Q2hpbGRyZW4gPSBOYXZpZ2F0aW9uPiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcm91dGVyTGluazogc3RyaW5nW107XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogQ2hpbGRyZW47XG4gIGljb24/OiBJY29uQ29uZmlnO1xuICBzdGF0dXM/OiBBcnJheTxcbiAgICB8IFR5cGU8TmF2aWdhdGlvblN0YXR1cz5cbiAgICB8IEluamVjdGlvblRva2VuPE5hdmlnYXRpb25TdGF0dXM+XG4gICAgfCBBYnN0cmFjdFR5cGU8TmF2aWdhdGlvblN0YXR1cz5cbiAgPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIElzTmF2aWdhdGlvbkl0ZW0oaXRlbTogYW55KTogaXRlbSBpcyBOYXZpZ2F0aW9uSXRlbSB7XG4gIHJldHVybiAoXG4gICAgaXRlbSAmJiBpdGVtLmhhc093blByb3BlcnR5KCdyb3V0ZXJMaW5rJykgJiYgaXRlbS5oYXNPd25Qcm9wZXJ0eSgnbGFiZWwnKVxuICApO1xufVxuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUFTO0lBRVQsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQU1ELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsSUFBUztJQUVULE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFvQkQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVM7SUFDeEMsT0FBTyxDQUNMLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUNsRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Db25maWcgfSBmcm9tICdAcnhhcC91dGlsaXRpZXMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RUeXBlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb24gPSBBcnJheTxOYXZpZ2F0aW9uSXRlbSB8IE5hdmlnYXRpb25EaXZpZGVySXRlbT47XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25XaXRoSW5zZXJ0cyA9IEFycmF5PFxuICB8IE5hdmlnYXRpb25JdGVtPE5hdmlnYXRpb25XaXRoSW5zZXJ0cz5cbiAgfCBOYXZpZ2F0aW9uRGl2aWRlckl0ZW1cbiAgfCBOYXZpZ2F0aW9uSW5zZXJ0SXRlbVxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uRGl2aWRlckl0ZW0ge1xuICBkaXZpZGVyOiBib29sZWFuO1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIElzTmF2aWdhdGlvbkRpdmlkZXJJdGVtKFxuICBpdGVtOiBhbnksXG4pOiBpdGVtIGlzIE5hdmlnYXRpb25EaXZpZGVySXRlbSB7XG4gIHJldHVybiAhIWl0ZW0gJiYgISFpdGVtWydkaXZpZGVyJ107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkluc2VydEl0ZW0ge1xuICBpbnNlcnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIElzTmF2aWdhdGlvbkluc2VydEl0ZW0oXG4gIGl0ZW06IGFueSxcbik6IGl0ZW0gaXMgTmF2aWdhdGlvbkluc2VydEl0ZW0ge1xuICByZXR1cm4gISFpdGVtICYmICEhaXRlbVsnaW5zZXJ0J107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvblN0YXR1cyB7XG4gIGlzVmlzaWJsZShcbiAgICBuYXZpZ2F0aW9uSXRlbTogTmF2aWdhdGlvbkl0ZW0sXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uSXRlbTxDaGlsZHJlbiA9IE5hdmlnYXRpb24+IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByb3V0ZXJMaW5rOiBzdHJpbmdbXTtcbiAgbGFiZWw6IHN0cmluZztcbiAgY2hpbGRyZW4/OiBDaGlsZHJlbjtcbiAgaWNvbj86IEljb25Db25maWc7XG4gIHN0YXR1cz86IEFycmF5PFxuICAgIHwgVHlwZTxOYXZpZ2F0aW9uU3RhdHVzPlxuICAgIHwgSW5qZWN0aW9uVG9rZW48TmF2aWdhdGlvblN0YXR1cz5cbiAgICB8IEFic3RyYWN0VHlwZTxOYXZpZ2F0aW9uU3RhdHVzPlxuICA+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSXNOYXZpZ2F0aW9uSXRlbShpdGVtOiBhbnkpOiBpdGVtIGlzIE5hdmlnYXRpb25JdGVtIHtcbiAgcmV0dXJuIChcbiAgICAhIWl0ZW0gJiYgISFpdGVtWydyb3V0ZXJMaW5rJ10gJiYgISFpdGVtWydsYWJlbCddXG4gICk7XG59XG4iXX0=