@rxap/layout 12.1.0 → 12.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,13 +14,13 @@ import * as i2 from "../../sidenav/sidenav.component.service";
14
14
  import * as i3 from "@angular/cdk/overlay";
15
15
  const _c0 = ["navigationOverlay"];
16
16
  const _c1 = ["rxap-navigation-item", ""];
17
- function NavigationItemComponent_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
17
+ function NavigationItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
18
18
  i0.ɵɵelement(0, "mat-icon", 5);
19
19
  } if (rf & 2) {
20
20
  const ctx_r0 = i0.ɵɵnextContext();
21
21
  i0.ɵɵproperty("rxapIcon", ctx_r0.item.icon);
22
22
  } }
23
- function NavigationItemComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
23
+ function NavigationItemComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
24
24
  i0.ɵɵelementStart(0, "span", 6);
25
25
  i0.ɵɵtext(1);
26
26
  i0.ɵɵelementEnd();
@@ -29,22 +29,22 @@ function NavigationItemComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
29
29
  i0.ɵɵadvance(1);
30
30
  i0.ɵɵtextInterpolate(ctx_r1.item.label);
31
31
  } }
32
- function NavigationItemComponent_ul_4_Template(rf, ctx) { if (rf & 1) {
32
+ function NavigationItemComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
33
33
  i0.ɵɵelement(0, "ul", 7);
34
34
  } if (rf & 2) {
35
35
  const ctx_r2 = i0.ɵɵnextContext();
36
36
  i0.ɵɵproperty("@sub-nav", undefined)("items", ctx_r2.children)("level", ctx_r2.level + 1);
37
37
  } }
38
- function NavigationItemComponent_ng_template_6_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
38
+ function NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
39
39
  i0.ɵɵelement(0, "mat-icon", 5);
40
40
  } if (rf & 2) {
41
41
  const child_r6 = i0.ɵɵnextContext(2).$implicit;
42
42
  const ctx_r8 = i0.ɵɵnextContext(2);
43
43
  i0.ɵɵproperty("rxapIcon", ctx_r8.asNavigationItem(child_r6).icon);
44
44
  } }
45
- function NavigationItemComponent_ng_template_6_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
45
+ function NavigationItemComponent_ng_template_7_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
46
46
  i0.ɵɵelementStart(0, "a", 11);
47
- i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_6_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
47
+ i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
48
48
  i0.ɵɵelementStart(2, "span", 6);
49
49
  i0.ɵɵtext(3);
50
50
  i0.ɵɵelementEnd();
@@ -58,9 +58,9 @@ function NavigationItemComponent_ng_template_6_li_2_a_1_Template(rf, ctx) { if (
58
58
  i0.ɵɵadvance(2);
59
59
  i0.ɵɵtextInterpolate(ctx_r7.asNavigationItem(child_r6).label);
60
60
  } }
61
- function NavigationItemComponent_ng_template_6_li_2_Template(rf, ctx) { if (rf & 1) {
61
+ function NavigationItemComponent_ng_template_7_li_2_Template(rf, ctx) { if (rf & 1) {
62
62
  i0.ɵɵelementStart(0, "li");
63
- i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_6_li_2_a_1_Template, 4, 3, "a", 10);
63
+ i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_Template, 4, 3, "a", 10);
64
64
  i0.ɵɵelementEnd();
65
65
  } if (rf & 2) {
66
66
  const child_r6 = ctx.$implicit;
@@ -68,12 +68,12 @@ function NavigationItemComponent_ng_template_6_li_2_Template(rf, ctx) { if (rf &
68
68
  i0.ɵɵadvance(1);
69
69
  i0.ɵɵproperty("ngIf", ctx_r5.isNavigationItem(child_r6));
70
70
  } }
71
- function NavigationItemComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
71
+ function NavigationItemComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
72
72
  const _r12 = i0.ɵɵgetCurrentView();
73
73
  i0.ɵɵelementStart(0, "div", 8);
74
- i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_6_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.lockeOverlay = true; })("mouseleave", function NavigationItemComponent_ng_template_6_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); ctx_r13.lockeOverlay = false; return ctx_r13.onMouseleave(); });
74
+ i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_7_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return 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 ctx_r13.onMouseleave(); });
75
75
  i0.ɵɵelementStart(1, "ul");
76
- i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_6_li_2_Template, 2, 1, "li", 9);
76
+ i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
77
77
  i0.ɵɵelementEnd();
78
78
  i0.ɵɵelementEnd();
79
79
  } if (rf & 2) {
@@ -191,24 +191,25 @@ NavigationItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Nav
191
191
  i0.ɵɵlistener("mouseenter", function NavigationItemComponent_mouseenter_HostBindingHandler() { return ctx.onMouseenter(); })("mouseleave", function NavigationItemComponent_mouseleave_HostBindingHandler() { return ctx.onMouseleave(); });
192
192
  } if (rf & 2) {
193
193
  i0.ɵɵclassProp("active", ctx.isActive);
194
- } }, inputs: { item: "item", level: "level" }, features: [i0.ɵɵNgOnChangesFeature], attrs: _c1, decls: 8, vars: 11, consts: [["routerLinkActive", "link-active", "matRipple", "", 3, "routerLink"], ["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) {
194
+ } }, 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) {
195
195
  i0.ɵɵelementStart(0, "a", 0);
196
- i0.ɵɵtemplate(1, NavigationItemComponent_mat_icon_1_Template, 1, 1, "mat-icon", 1);
197
- i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_2_Template, 2, 1, "ng-template", 2);
198
- i0.ɵɵpipe(3, "async");
196
+ i0.ɵɵpipe(1, "async");
197
+ i0.ɵɵtemplate(2, NavigationItemComponent_mat_icon_2_Template, 1, 1, "mat-icon", 1);
198
+ i0.ɵɵtemplate(3, NavigationItemComponent_ng_template_3_Template, 2, 1, "ng-template", 2);
199
+ i0.ɵɵpipe(4, "async");
199
200
  i0.ɵɵelementEnd();
200
- i0.ɵɵtemplate(4, NavigationItemComponent_ul_4_Template, 1, 3, "ul", 3);
201
- i0.ɵɵpipe(5, "async");
202
- i0.ɵɵtemplate(6, NavigationItemComponent_ng_template_6_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
201
+ i0.ɵɵtemplate(5, NavigationItemComponent_ul_5_Template, 1, 3, "ul", 3);
202
+ i0.ɵɵpipe(6, "async");
203
+ i0.ɵɵtemplate(7, NavigationItemComponent_ng_template_7_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
203
204
  } if (rf & 2) {
204
205
  i0.ɵɵclassMapInterpolate1("navigation-link mat-body-2 mat-body-strong navigation-level-", ctx.level, "");
205
- i0.ɵɵproperty("routerLink", ctx.item.routerLink);
206
- i0.ɵɵadvance(1);
206
+ i0.ɵɵproperty("routerLink", ctx.item.routerLink)("matTooltipDisabled", !i0.ɵɵpipeBind1(1, 9, ctx.sidenav.collapsed$))("matTooltip", ctx.item.label);
207
+ i0.ɵɵadvance(2);
207
208
  i0.ɵɵproperty("ngIf", ctx.item.icon);
208
209
  i0.ɵɵadvance(1);
209
- i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(3, 7, ctx.sidenav.collapsed$));
210
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 11, ctx.sidenav.collapsed$));
210
211
  i0.ɵɵadvance(2);
211
- i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(5, 9, ctx.sidenav.collapsed$) && ctx.children);
212
+ i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(6, 13, ctx.sidenav.collapsed$) && ctx.children);
212
213
  } }, styles: [".navigation-overlay-container,.rxap-navigation-item{display:flex;flex-direction:column;min-height:48px}.navigation-overlay-container .navigation-link,.rxap-navigation-item .navigation-link{display:flex;flex-direction:row;align-items:center;text-decoration:none;height:48px}.navigation-overlay-container .navigation-link .icon,.rxap-navigation-item .navigation-link .icon{margin:0 16px}.navigation-overlay-container .navigation-link .label,.rxap-navigation-item .navigation-link .label{padding-right:12px}.navigation-overlay-container .navigation-link.navigation-level-1,.rxap-navigation-item .navigation-link.navigation-level-1{padding-left:52px}.navigation-overlay-container .navigation-link.navigation-level-1 .icon,.rxap-navigation-item .navigation-link.navigation-level-1 .icon{padding-left:0}.navigation-overlay-container .navigation-link.navigation-level-2,.rxap-navigation-item .navigation-link.navigation-level-2{padding-left:88px}.navigation-overlay-container .navigation-link.navigation-level-2 .icon,.rxap-navigation-item .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}"], encapsulation: 2, data: { animation: [
213
214
  trigger('sub-nav', [
214
215
  transition(':enter', [
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-item.component.js","sourceRoot":"","sources":["../../../../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ViewChild,\n OnDestroy,\n AfterViewInit,\n HostBinding,\n ViewEncapsulation,\n ElementRef,\n Renderer2,\n HostListener,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n EmbeddedViewRef,\n Inject,\n} from '@angular/core';\nimport { Required, DebounceCall } from '@rxap/utilities';\nimport { trigger, style, transition, animate } from '@angular/animations';\nimport {\n NavigationItem,\n Navigation,\n NavigationDividerItem,\n} from '../navigation-item';\nimport { RouterLinkActive, Router, NavigationEnd } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport {\n filter,\n tap,\n delay,\n startWith,\n distinctUntilChanged,\n skip,\n} from 'rxjs/operators';\nimport { SidenavComponentService } from '../../sidenav/sidenav.component.service';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'li[rxap-navigation-item]',\n templateUrl: './navigation-item.component.html',\n styleUrls: ['./navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'rxap-navigation-item',\n },\n animations: [\n trigger('sub-nav', [\n transition(':enter', [\n style({ display: 'block', height: '0', overflow: 'hidden' }),\n animate(150, style({ height: '*' })),\n ]),\n transition(':leave', [\n style({ overflow: 'hidden' }),\n animate(300, style({ height: '0' })),\n style({ display: 'none' }),\n ]),\n ]),\n ],\n})\nexport class NavigationItemComponent\n implements OnChanges, AfterViewInit, OnDestroy, OnInit\n{\n public children: Navigation | null = null;\n\n @ViewChild(RouterLinkActive, { static: true })\n public routerLinkActive!: RouterLinkActive;\n\n @Input()\n @Required\n public item!: NavigationItem;\n\n @Input()\n public level: number = 0;\n\n @HostBinding('class.active')\n public isActive: boolean = false;\n\n @ViewChild('navigationOverlay')\n private _navigationOverlay!: TemplateRef<any>;\n\n private readonly _subscription = new Subscription();\n\n private _overlayRef?: OverlayRef;\n private _embeddedViewRef?: EmbeddedViewRef<any>;\n\n /**\n * indicates the mouse is over the\n */\n public lockeOverlay: boolean = false;\n\n constructor(\n @Inject(Router)\n private readonly router: Router,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n @Inject(Overlay)\n private readonly overlay: Overlay,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.item) {\n const item: NavigationItem = changes.item.currentValue;\n this.children =\n item.children && item.children.length ? item.children : null;\n }\n }\n\n public ngAfterViewInit() {\n this._subscription.add(\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n startWith(true),\n delay(100),\n tap(() => {\n if (this.routerLinkActive.isActive) {\n if (!this.sidenav.collapsed$.value) {\n // only close the overlay if sidenav collapsed\n this._overlayRef?.detach();\n }\n this.renderer.addClass(this.elementRef.nativeElement, 'active');\n } else {\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'active'\n );\n }\n })\n )\n .subscribe()\n );\n }\n\n public ngOnInit() {\n // detach the navigation overlay if the sidenav collapsed\n // state is changed\n this._subscription.add(\n this.sidenav.collapsed$\n .pipe(\n skip(1),\n distinctUntilChanged(),\n tap(() => this._overlayRef?.detach())\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n this._overlayRef?.dispose();\n }\n\n @HostListener('mouseenter')\n public onMouseenter() {\n if (this.children) {\n if (!this.routerLinkActive.isActive || this.sidenav.collapsed$.value) {\n if (!this._overlayRef) {\n this._overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originY: 'top',\n originX: 'end',\n overlayY: 'top',\n overlayX: 'start',\n },\n ]),\n });\n }\n if (!this._overlayRef.hasAttached()) {\n this._embeddedViewRef = this._overlayRef.attach(\n new TemplatePortal(this._navigationOverlay, this.viewContainerRef)\n );\n }\n }\n }\n }\n\n @HostListener('mouseleave')\n @DebounceCall(100)\n public onMouseleave() {\n if (!this.lockeOverlay) {\n this._overlayRef?.detach();\n }\n }\n\n // region type save item property\n\n // required to check the type of the item property in the ngFor loop\n\n public isNavigationDividerItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationDividerItem {\n return (item as any)['divider'];\n }\n\n public isNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationItem {\n return !this.isNavigationDividerItem(item);\n }\n\n public asNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): NavigationItem {\n if (!this.isNavigationItem(item)) {\n throw new Error('The item is not a NavigationItem');\n }\n return item;\n }\n\n // endregion\n}\n","<a [routerLink]=\"item.routerLink\"\n routerLinkActive=\"link-active\"\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"]}
1
+ {"version":3,"file":"navigation-item.component.js","sourceRoot":"","sources":["../../../../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ViewChild,\n OnDestroy,\n AfterViewInit,\n HostBinding,\n ViewEncapsulation,\n ElementRef,\n Renderer2,\n HostListener,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n EmbeddedViewRef,\n Inject,\n} from '@angular/core';\nimport { Required, DebounceCall } from '@rxap/utilities';\nimport { trigger, style, transition, animate } from '@angular/animations';\nimport {\n NavigationItem,\n Navigation,\n NavigationDividerItem,\n} from '../navigation-item';\nimport { RouterLinkActive, Router, NavigationEnd } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport {\n filter,\n tap,\n delay,\n startWith,\n distinctUntilChanged,\n skip,\n} from 'rxjs/operators';\nimport { SidenavComponentService } from '../../sidenav/sidenav.component.service';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'li[rxap-navigation-item]',\n templateUrl: './navigation-item.component.html',\n styleUrls: ['./navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'rxap-navigation-item',\n },\n animations: [\n trigger('sub-nav', [\n transition(':enter', [\n style({ display: 'block', height: '0', overflow: 'hidden' }),\n animate(150, style({ height: '*' })),\n ]),\n transition(':leave', [\n style({ overflow: 'hidden' }),\n animate(300, style({ height: '0' })),\n style({ display: 'none' }),\n ]),\n ]),\n ],\n})\nexport class NavigationItemComponent\n implements OnChanges, AfterViewInit, OnDestroy, OnInit\n{\n public children: Navigation | null = null;\n\n @ViewChild(RouterLinkActive, { static: true })\n public routerLinkActive!: RouterLinkActive;\n\n @Input()\n @Required\n public item!: NavigationItem;\n\n @Input()\n public level: number = 0;\n\n @HostBinding('class.active')\n public isActive: boolean = false;\n\n @ViewChild('navigationOverlay')\n private _navigationOverlay!: TemplateRef<any>;\n\n private readonly _subscription = new Subscription();\n\n private _overlayRef?: OverlayRef;\n private _embeddedViewRef?: EmbeddedViewRef<any>;\n\n /**\n * indicates the mouse is over the\n */\n public lockeOverlay: boolean = false;\n\n constructor(\n @Inject(Router)\n private readonly router: Router,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n @Inject(Overlay)\n private readonly overlay: Overlay,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.item) {\n const item: NavigationItem = changes.item.currentValue;\n this.children =\n item.children && item.children.length ? item.children : null;\n }\n }\n\n public ngAfterViewInit() {\n this._subscription.add(\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n startWith(true),\n delay(100),\n tap(() => {\n if (this.routerLinkActive.isActive) {\n if (!this.sidenav.collapsed$.value) {\n // only close the overlay if sidenav collapsed\n this._overlayRef?.detach();\n }\n this.renderer.addClass(this.elementRef.nativeElement, 'active');\n } else {\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'active'\n );\n }\n })\n )\n .subscribe()\n );\n }\n\n public ngOnInit() {\n // detach the navigation overlay if the sidenav collapsed\n // state is changed\n this._subscription.add(\n this.sidenav.collapsed$\n .pipe(\n skip(1),\n distinctUntilChanged(),\n tap(() => this._overlayRef?.detach())\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n this._overlayRef?.dispose();\n }\n\n @HostListener('mouseenter')\n public onMouseenter() {\n if (this.children) {\n if (!this.routerLinkActive.isActive || this.sidenav.collapsed$.value) {\n if (!this._overlayRef) {\n this._overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originY: 'top',\n originX: 'end',\n overlayY: 'top',\n overlayX: 'start',\n },\n ]),\n });\n }\n if (!this._overlayRef.hasAttached()) {\n this._embeddedViewRef = this._overlayRef.attach(\n new TemplatePortal(this._navigationOverlay, this.viewContainerRef)\n );\n }\n }\n }\n }\n\n @HostListener('mouseleave')\n @DebounceCall(100)\n public onMouseleave() {\n if (!this.lockeOverlay) {\n this._overlayRef?.detach();\n }\n }\n\n // region type save item property\n\n // required to check the type of the item property in the ngFor loop\n\n public isNavigationDividerItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationDividerItem {\n return (item as any)['divider'];\n }\n\n public isNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationItem {\n return !this.isNavigationDividerItem(item);\n }\n\n public asNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): NavigationItem {\n if (!this.isNavigationItem(item)) {\n throw new Error('The item is not a NavigationItem');\n }\n return item;\n }\n\n // endregion\n}\n","<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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-item.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/navigation/navigation-item.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,uBAAuB,CACrC,IAAS;IAET,OAAO,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;AAChE,CAAC;AAMD,MAAM,UAAU,sBAAsB,CACpC,IAAS;IAET,OAAO,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAoBD,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,OAAO,CACL,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAC1E,CAAC;AACJ,CAAC","sourcesContent":["import { IconConfig } from '@rxap/utilities';\nimport { InjectionToken, Type, AbstractType } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport type Navigation = Array<NavigationItem | NavigationDividerItem>;\n\nexport type NavigationWithInserts = Array<\n | NavigationItem<NavigationWithInserts>\n | NavigationDividerItem\n | NavigationInsertItem\n>;\n\nexport interface NavigationDividerItem {\n divider: boolean;\n title?: string;\n}\n\nexport function IsNavigationDividerItem(\n item: any\n): item is NavigationDividerItem {\n return item && item.hasOwnProperty('divider') && item.divider;\n}\n\nexport interface NavigationInsertItem {\n insert: string;\n}\n\nexport function IsNavigationInsertItem(\n item: any\n): item is NavigationInsertItem {\n return item && item.hasOwnProperty('insert');\n}\n\nexport interface NavigationStatus {\n isVisible(\n routerLink: string[]\n ): Observable<boolean> | Promise<boolean> | boolean;\n}\n\nexport interface NavigationItem<Children = Navigation> {\n routerLink: string[];\n label: string;\n children?: Children;\n icon?: IconConfig;\n status?: Array<\n | Type<NavigationStatus>\n | InjectionToken<NavigationStatus>\n | AbstractType<NavigationStatus>\n >;\n}\n\nexport function IsNavigationItem(item: any): item is NavigationItem {\n return (\n item && item.hasOwnProperty('routerLink') && item.hasOwnProperty('label')\n );\n}\n"]}
1
+ {"version":3,"file":"navigation-item.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/navigation/navigation-item.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,uBAAuB,CACrC,IAAS;IAET,OAAO,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;AAChE,CAAC;AAMD,MAAM,UAAU,sBAAsB,CACpC,IAAS;IAET,OAAO,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAoBD,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,OAAO,CACL,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAC1E,CAAC;AACJ,CAAC","sourcesContent":["import { IconConfig } from '@rxap/utilities';\nimport {\n InjectionToken,\n Type,\n AbstractType\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport type Navigation = Array<NavigationItem | NavigationDividerItem>;\n\nexport type NavigationWithInserts = Array<\n | NavigationItem<NavigationWithInserts>\n | NavigationDividerItem\n | NavigationInsertItem\n>;\n\nexport interface NavigationDividerItem {\n divider: boolean;\n title?: string;\n}\n\nexport function IsNavigationDividerItem(\n item: any\n): item is NavigationDividerItem {\n return item && item.hasOwnProperty('divider') && item.divider;\n}\n\nexport interface NavigationInsertItem {\n insert: string;\n}\n\nexport function IsNavigationInsertItem(\n item: any\n): item is NavigationInsertItem {\n return item && item.hasOwnProperty('insert');\n}\n\nexport interface NavigationStatus {\n isVisible(\n navigationItem: NavigationItem,\n ): Observable<boolean> | Promise<boolean> | boolean;\n}\n\nexport interface NavigationItem<Children = Navigation> extends Record<string, unknown> {\n routerLink: string[];\n label: string;\n children?: Children;\n icon?: IconConfig;\n status?: Array<\n | Type<NavigationStatus>\n | InjectionToken<NavigationStatus>\n | AbstractType<NavigationStatus>\n >;\n}\n\nexport function IsNavigationItem(item: any): item is NavigationItem {\n return (\n item && item.hasOwnProperty('routerLink') && item.hasOwnProperty('label')\n );\n}\n"]}
@@ -12,13 +12,15 @@ import { ButtonComponentModule } from '@rxap/components';
12
12
  import { MatRippleModule } from '@angular/material/core';
13
13
  import { MatDividerModule } from '@angular/material/divider';
14
14
  import { StopPropagationDirectiveModule } from '@rxap/directives';
15
+ import { MatTooltipModule } from '@angular/material/tooltip';
15
16
  import * as i0 from "@angular/core";
16
17
  import * as i1 from "@angular/router";
17
18
  import * as i2 from "@angular/material/core";
18
- import * as i3 from "@angular/common";
19
- import * as i4 from "@angular/material/icon";
20
- import * as i5 from "@rxap/material-directives/icon";
21
- import * as i6 from "@angular/flex-layout/flex";
19
+ import * as i3 from "@angular/material/tooltip";
20
+ import * as i4 from "@angular/common";
21
+ import * as i5 from "@angular/material/icon";
22
+ import * as i6 from "@rxap/material-directives/icon";
23
+ import * as i7 from "@angular/flex-layout/flex";
22
24
  export class NavigationComponentModule {
23
25
  }
24
26
  NavigationComponentModule.ɵfac = function NavigationComponentModule_Factory(t) { return new (t || NavigationComponentModule)(); };
@@ -34,6 +36,7 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
34
36
  MatRippleModule,
35
37
  MatDividerModule,
36
38
  StopPropagationDirectiveModule,
39
+ MatTooltipModule
37
40
  ]] });
38
41
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationComponentModule, [{
39
42
  type: NgModule,
@@ -50,6 +53,7 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
50
53
  MatRippleModule,
51
54
  MatDividerModule,
52
55
  StopPropagationDirectiveModule,
56
+ MatTooltipModule
53
57
  ],
54
58
  exports: [NavigationComponent]
55
59
  }]
@@ -63,6 +67,7 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
63
67
  ButtonComponentModule,
64
68
  MatRippleModule,
65
69
  MatDividerModule,
66
- StopPropagationDirectiveModule], exports: [NavigationComponent] }); })();
67
- i0.ɵɵsetComponentScope(NavigationItemComponent, [i1.RouterLinkWithHref, i1.RouterLinkActive, i2.MatRipple, i3.NgIf, i4.MatIcon, i5.IconDirective, NavigationComponent, i6.DefaultFlexDirective, i3.NgForOf], [i3.AsyncPipe]);
70
+ StopPropagationDirectiveModule,
71
+ MatTooltipModule], exports: [NavigationComponent] }); })();
72
+ i0.ɵɵsetComponentScope(NavigationItemComponent, [i1.RouterLinkWithHref, i1.RouterLinkActive, i2.MatRipple, i3.MatTooltip, i4.NgIf, i5.MatIcon, i6.IconDirective, NavigationComponent, i7.DefaultFlexDirective, i4.NgForOf], [i4.AsyncPipe]);
68
73
  //# sourceMappingURL=navigation.component.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.component.module.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/navigation/navigation.component.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;;;;;;;;AAmBlE,MAAM,OAAO,yBAAyB;;kGAAzB,yBAAyB;2EAAzB,yBAAyB;+EAd3B;YACP,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,gBAAgB;YAChB,8BAA8B;SAC/B;uFAGU,yBAAyB;cAhBrC,QAAQ;eAAC;gBACR,YAAY,EAAE,CAAE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,CAAE;gBACtF,OAAO,EAAE;oBACP,aAAa;oBACb,eAAe;oBACf,gBAAgB;oBAChB,YAAY;oBACZ,YAAY;oBACZ,mBAAmB;oBACnB,qBAAqB;oBACrB,eAAe;oBACf,gBAAgB;oBAChB,8BAA8B;iBAC/B;gBACD,OAAO,EAAO,CAAE,mBAAmB,CAAE;aACtC;;wFACY,yBAAyB,mBAfpB,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,aAElF,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,mBAAmB;QACnB,qBAAqB;QACrB,eAAe;QACf,gBAAgB;QAChB,8BAA8B,aAEhB,mBAAmB;uBAbE,uBAAuB,oGAA5C,mBAAmB","sourcesContent":["import { NgModule } from '@angular/core';\nimport { NavigationComponent } from './navigation.component';\nimport { NavigationItemComponent } from './navigation-item/navigation-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { ReplaceRouterPathsPipe } from './replace-router-paths.pipe';\nimport { IconDirectiveModule } from '@rxap/material-directives/icon';\nimport { ButtonComponentModule } from '@rxap/components';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { StopPropagationDirectiveModule } from '@rxap/directives';\n\n\n@NgModule({\n declarations: [ NavigationComponent, NavigationItemComponent, ReplaceRouterPathsPipe ],\n imports: [\n MatIconModule,\n MatButtonModule,\n FlexLayoutModule,\n RouterModule,\n CommonModule,\n IconDirectiveModule,\n ButtonComponentModule,\n MatRippleModule,\n MatDividerModule,\n StopPropagationDirectiveModule,\n ],\n exports: [ NavigationComponent ]\n})\nexport class NavigationComponentModule {}\n"]}
1
+ {"version":3,"file":"navigation.component.module.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/navigation/navigation.component.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;;;;;;;;;AAoB7D,MAAM,OAAO,yBAAyB;;kGAAzB,yBAAyB;2EAAzB,yBAAyB;+EAf3B;YACP,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,eAAe;YACf,gBAAgB;YAChB,8BAA8B;YAC9B,gBAAgB;SACjB;uFAGU,yBAAyB;cAjBrC,QAAQ;eAAC;gBACR,YAAY,EAAE,CAAE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,CAAE;gBACtF,OAAO,EAAE;oBACP,aAAa;oBACb,eAAe;oBACf,gBAAgB;oBAChB,YAAY;oBACZ,YAAY;oBACZ,mBAAmB;oBACnB,qBAAqB;oBACrB,eAAe;oBACf,gBAAgB;oBAChB,8BAA8B;oBAC9B,gBAAgB;iBACjB;gBACD,OAAO,EAAO,CAAE,mBAAmB,CAAE;aACtC;;wFACY,yBAAyB,mBAhBpB,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,aAElF,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,YAAY;QACZ,YAAY;QACZ,mBAAmB;QACnB,qBAAqB;QACrB,eAAe;QACf,gBAAgB;QAChB,8BAA8B;QAC9B,gBAAgB,aAEF,mBAAmB;uBAdE,uBAAuB,mHAA5C,mBAAmB","sourcesContent":["import { NgModule } from '@angular/core';\nimport { NavigationComponent } from './navigation.component';\nimport { NavigationItemComponent } from './navigation-item/navigation-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { ReplaceRouterPathsPipe } from './replace-router-paths.pipe';\nimport { IconDirectiveModule } from '@rxap/material-directives/icon';\nimport { ButtonComponentModule } from '@rxap/components';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { StopPropagationDirectiveModule } from '@rxap/directives';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n declarations: [ NavigationComponent, NavigationItemComponent, ReplaceRouterPathsPipe ],\n imports: [\n MatIconModule,\n MatButtonModule,\n FlexLayoutModule,\n RouterModule,\n CommonModule,\n IconDirectiveModule,\n ButtonComponentModule,\n MatRippleModule,\n MatDividerModule,\n StopPropagationDirectiveModule,\n MatTooltipModule\n ],\n exports: [ NavigationComponent ]\n})\nexport class NavigationComponentModule {}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { Injectable, Inject, Optional, INJECTOR } from '@angular/core';
2
2
  import { ReplaySubject, of, combineLatest, from } from 'rxjs';
3
- import { IsNavigationInsertItem, IsNavigationItem, IsNavigationDividerItem, } from './navigation-item';
4
- import { RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, } from '../tokens';
5
- import { switchMap, map } from 'rxjs/operators';
3
+ import { IsNavigationInsertItem, IsNavigationItem, IsNavigationDividerItem } from './navigation-item';
4
+ import { RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS } from '../tokens';
5
+ import { switchMap, map, catchError } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  export class NavigationService {
8
8
  constructor(navigation, injector, inserts = null) {
@@ -62,18 +62,22 @@ export class NavigationService {
62
62
  const isVisibleArray$ = navigationItem.status
63
63
  .map((statusToken) => this.injector.get(statusToken))
64
64
  .map((status) => {
65
- const isVisible = status.isVisible(navigationItem.routerLink);
65
+ const isVisible = status.isVisible(navigationItem);
66
66
  if (typeof isVisible === 'boolean') {
67
67
  return of(isVisible);
68
68
  }
69
69
  else {
70
70
  return from(isVisible);
71
71
  }
72
- });
72
+ }).map(isVisible$ => isVisible$.pipe(catchError(e => {
73
+ console.error('isVisible method failed: ' + e.message);
74
+ return of(false);
75
+ })));
73
76
  // TODO : dont wait for all status services to complete, but cancel waiting if one returns false
74
77
  return combineLatest(isVisibleArray$).pipe(map((isVisibleArray) => isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)), map((isVisible) => (isVisible ? navigationItem : null)), switchMap((navigationItemOrNull) => {
78
+ var _a;
75
79
  if (navigationItemOrNull) {
76
- if (navigationItemOrNull.children) {
80
+ if ((_a = navigationItemOrNull.children) === null || _a === void 0 ? void 0 : _a.length) {
77
81
  return this.checkNavigationStatusProviders(navigationItemOrNull.children).pipe(map((children) => (Object.assign(Object.assign({}, navigationItemOrNull), { children }))));
78
82
  }
79
83
  return of(navigationItemOrNull);
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.service.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/navigation/navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAc,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1E,OAAO,EAGL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,GAGxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;;AAGhD,MAAM,OAAO,iBAAiB;IAS5B,YAEE,UAAe,EAEE,QAAkB,EAGnC,UAAsB,IAAI;QAHT,aAAQ,GAAR,QAAQ,CAAU;QAV7B,YAAO,GAAG,IAAI,GAAG,EAAiC,CAAC;QAI1C,gBAAW,GAAG,IAAI,aAAa,CAAa,CAAC,CAAC,CAAC;QAW9D,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QACD,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAgB,EAAE,EAAE,CAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAC/B,CAAC;SACH;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAClC,SAAS,CAAC,CAAC,4BAA4B,EAAE,EAAE,CACzC,IAAI,CAAC,8BAA8B,CAAC,4BAA4B,CAAC,CAClE,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CACX,EAAU,EACV,KAA4B,EAC5B,SAAkB,IAAI;QAEtB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEM,GAAG,CACR,EAAU,EACV,KAA4B,EAC5B,SAAkB,IAAI;QAEtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAEM,GAAG,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,GAAG,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,EAAU,EAAE,SAAkB,IAAI;QAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,kCAAkC,CACvC,cAAsD;QAEtD,IAAI,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YACrE,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;SAC3B;QACD,MAAM,eAAe,GAA+B,cAAc,CAAC,MAAM;aACtE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE;gBAClC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACL,gGAAgG;QAChG,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CACxC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CACrB,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,IAAI,SAAS,EAAE,IAAI,CAAC,CAClE,EACD,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACvD,SAAS,CAAC,CAAC,oBAAoB,EAAE,EAAE;YACjC,IAAI,oBAAoB,EAAE;gBACxB,IAAI,oBAAoB,CAAC,QAAQ,EAAE;oBACjC,OAAO,IAAI,CAAC,8BAA8B,CACxC,oBAAoB,CAAC,QAAQ,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iCACb,oBAAoB,KACvB,QAAQ,IACR,CAAC,CACJ,CAAC;iBACH;gBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC,CAAC;aACjC;YACD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,8BAA8B,CACnC,UAAsB;QAEtB,OAAO,aAAa,CAClB,UAAU,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAChC,IAAI,CAAC,kCAAkC,CAAC,cAAc,CAAC,CACxD,CACF,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAe,EAAE,CAAC;YAEvC,KAAK,MAAM,cAAc,IAAI,uBAAuB,EAAE;gBACpD,IAAI,cAAc,KAAK,IAAI,EAAE;oBAC3B,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACtC;aACF;YAED,OAAO,eAAe,CAAC;QACzB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,qBAA4C;;QAE5C,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,KAAK,MAAM,cAAc,IAAI,qBAAqB,EAAE;YAClD,IAAI,sBAAsB,CAAC,cAAc,CAAC,EAAE;gBAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;oBAC3C,UAAU,CAAC,IAAI,CACb,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CACjE,CAAC;iBACH;aACF;iBAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE;gBAC3C,UAAU,CAAC,IAAI,iCACV,cAAc,KACjB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,MAAA,cAAc,CAAC,QAAQ,mCAAI,EAAE,CAAC,IAC5D,CAAC;aACJ;iBAAM,IAAI,uBAAuB,CAAC,cAAc,CAAC,EAAE;gBAClD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACjC;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;;kFA9KU,iBAAiB,cAUlB,sBAAsB,eAEtB,QAAQ,eAGR,8BAA8B;uEAf7B,iBAAiB,WAAjB,iBAAiB,mBADJ,MAAM;uFACnB,iBAAiB;cAD7B,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;sBAW7B,MAAM;uBAAC,sBAAsB;;sBAE7B,MAAM;uBAAC,QAAQ;;sBAEf,QAAQ;;sBACR,MAAM;uBAAC,8BAA8B","sourcesContent":["import type { Injector } from '@angular/core';\nimport { Injectable, Inject, Optional, INJECTOR } from '@angular/core';\nimport { Observable, ReplaySubject, of, combineLatest, from } from 'rxjs';\nimport {\n Navigation,\n NavigationWithInserts,\n IsNavigationInsertItem,\n IsNavigationItem,\n IsNavigationDividerItem,\n NavigationItem,\n NavigationDividerItem,\n} from './navigation-item';\nimport {\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS,\n} from '../tokens';\nimport { switchMap, map } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n public readonly config$: Observable<Navigation>;\n\n private inserts = new Map<string, NavigationWithInserts>();\n\n private readonly navigation: NavigationWithInserts;\n\n private readonly navigation$ = new ReplaySubject<Navigation>(1);\n\n constructor(\n @Inject(RXAP_NAVIGATION_CONFIG)\n navigation: any,\n @Inject(INJECTOR)\n private readonly injector: Injector,\n @Optional()\n @Inject(RXAP_NAVIGATION_CONFIG_INSERTS)\n inserts: any | null = null\n ) {\n if (typeof navigation === 'function') {\n this.navigation = navigation();\n } else {\n this.navigation = navigation;\n }\n if (inserts) {\n Object.entries(inserts).forEach(([id, insert]: [string, any]) =>\n this.insert(id, insert, false)\n );\n }\n this.updateNavigation();\n this.config$ = this.navigation$.pipe(\n switchMap((navigationWithoutStatusCheck) =>\n this.checkNavigationStatusProviders(navigationWithoutStatusCheck)\n )\n );\n }\n\n /**\n * @deprecated use add instead\n * @param id\n * @param value\n * @param update\n */\n public insert(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.add(id, value, update);\n }\n\n public add(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.inserts.set(id, value);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public has(id: string): boolean {\n return this.inserts.has(id);\n }\n\n public get(id: string): NavigationWithInserts | undefined {\n return this.inserts.get(id);\n }\n\n public remove(id: string, update: boolean = true): void {\n this.inserts.delete(id);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public updateNavigation(): void {\n this.navigation$.next(this.replaceInserts(this.navigation));\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationItemStatusProviders(\n navigationItem: NavigationItem | NavigationDividerItem\n ): Observable<NavigationItem | NavigationDividerItem | null> {\n if (IsNavigationDividerItem(navigationItem) || !navigationItem.status) {\n return of(navigationItem);\n }\n const isVisibleArray$: Array<Observable<boolean>> = navigationItem.status\n .map((statusToken) => this.injector.get(statusToken))\n .map((status) => {\n const isVisible = status.isVisible(navigationItem.routerLink);\n if (typeof isVisible === 'boolean') {\n return of(isVisible);\n } else {\n return from(isVisible);\n }\n });\n // TODO : dont wait for all status services to complete, but cancel waiting if one returns false\n return combineLatest(isVisibleArray$).pipe(\n map((isVisibleArray) =>\n isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)\n ),\n map((isVisible) => (isVisible ? navigationItem : null)),\n switchMap((navigationItemOrNull) => {\n if (navigationItemOrNull) {\n if (navigationItemOrNull.children) {\n return this.checkNavigationStatusProviders(\n navigationItemOrNull.children\n ).pipe(\n map((children) => ({\n ...navigationItemOrNull,\n children,\n }))\n );\n }\n return of(navigationItemOrNull);\n }\n return of(null);\n })\n );\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationStatusProviders(\n navigation: Navigation\n ): Observable<Navigation> {\n return combineLatest(\n navigation.map((navigationItem) =>\n this.checkNavigationItemStatusProviders(navigationItem)\n )\n ).pipe(\n map((navigationWithNullItems) => {\n const cleanNavigation: Navigation = [];\n\n for (const navigationItem of navigationWithNullItems) {\n if (navigationItem !== null) {\n cleanNavigation.push(navigationItem);\n }\n }\n\n return cleanNavigation;\n })\n );\n }\n\n private replaceInserts(\n navigationWithInserts: NavigationWithInserts\n ): Navigation {\n const navigation: Navigation = [];\n\n for (const navigationItem of navigationWithInserts) {\n if (IsNavigationInsertItem(navigationItem)) {\n if (this.inserts.has(navigationItem.insert)) {\n navigation.push(\n ...this.replaceInserts(this.inserts.get(navigationItem.insert)!)\n );\n }\n } else if (IsNavigationItem(navigationItem)) {\n navigation.push({\n ...navigationItem,\n children: this.replaceInserts(navigationItem.children ?? []),\n });\n } else if (IsNavigationDividerItem(navigationItem)) {\n navigation.push(navigationItem);\n }\n }\n\n return navigation;\n }\n}\n"]}
1
+ {"version":3,"file":"navigation.service.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/navigation/navigation.service.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Injector } from '@angular/core';\nimport {\n Injectable,\n Inject,\n Optional,\n INJECTOR\n} from '@angular/core';\nimport {\n Observable,\n ReplaySubject,\n of,\n combineLatest,\n from\n} from 'rxjs';\nimport {\n Navigation,\n NavigationWithInserts,\n IsNavigationInsertItem,\n IsNavigationItem,\n IsNavigationDividerItem,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS\n} from '../tokens';\nimport {\n switchMap,\n map,\n catchError\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n public readonly config$: Observable<Navigation>;\n\n private inserts = new Map<string, NavigationWithInserts>();\n\n private readonly navigation: NavigationWithInserts;\n\n private readonly navigation$ = new ReplaySubject<Navigation>(1);\n\n constructor(\n @Inject(RXAP_NAVIGATION_CONFIG)\n navigation: any,\n @Inject(INJECTOR)\n private readonly injector: Injector,\n @Optional()\n @Inject(RXAP_NAVIGATION_CONFIG_INSERTS)\n inserts: any | null = null\n ) {\n if (typeof navigation === 'function') {\n this.navigation = navigation();\n } else {\n this.navigation = navigation;\n }\n if (inserts) {\n Object.entries(inserts).forEach(([id, insert]: [string, any]) =>\n this.insert(id, insert, false)\n );\n }\n this.updateNavigation();\n this.config$ = this.navigation$.pipe(\n switchMap((navigationWithoutStatusCheck) =>\n this.checkNavigationStatusProviders(navigationWithoutStatusCheck)\n )\n );\n }\n\n /**\n * @deprecated use add instead\n * @param id\n * @param value\n * @param update\n */\n public insert(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.add(id, value, update);\n }\n\n public add(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.inserts.set(id, value);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public has(id: string): boolean {\n return this.inserts.has(id);\n }\n\n public get(id: string): NavigationWithInserts | undefined {\n return this.inserts.get(id);\n }\n\n public remove(id: string, update: boolean = true): void {\n this.inserts.delete(id);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public updateNavigation(): void {\n this.navigation$.next(this.replaceInserts(this.navigation));\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationItemStatusProviders(\n navigationItem: NavigationItem | NavigationDividerItem\n ): Observable<NavigationItem | NavigationDividerItem | null> {\n if (IsNavigationDividerItem(navigationItem) || !navigationItem.status) {\n return of(navigationItem);\n }\n const isVisibleArray$: Array<Observable<boolean>> = navigationItem.status\n .map((statusToken) => this.injector.get(statusToken))\n .map((status) => {\n const isVisible = status.isVisible(navigationItem);\n if (typeof isVisible === 'boolean') {\n return of(isVisible);\n } else {\n return from(isVisible);\n }\n }).map(isVisible$ => isVisible$.pipe(catchError(e => {\n console.error('isVisible method failed: ' + e.message);\n return of(false);\n })));\n // TODO : dont wait for all status services to complete, but cancel waiting if one returns false\n return combineLatest(isVisibleArray$).pipe(\n map((isVisibleArray) =>\n isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)\n ),\n map((isVisible) => (isVisible ? navigationItem : null)),\n switchMap((navigationItemOrNull) => {\n if (navigationItemOrNull) {\n if (navigationItemOrNull.children?.length) {\n return this.checkNavigationStatusProviders(\n navigationItemOrNull.children\n ).pipe(\n map((children) => ({\n ...navigationItemOrNull,\n children,\n }))\n );\n }\n return of(navigationItemOrNull);\n }\n return of(null);\n })\n );\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationStatusProviders(\n navigation: Navigation\n ): Observable<Navigation> {\n return combineLatest(\n navigation.map((navigationItem) =>\n this.checkNavigationItemStatusProviders(navigationItem)\n )\n ).pipe(\n map((navigationWithNullItems) => {\n const cleanNavigation: Navigation = [];\n\n for (const navigationItem of navigationWithNullItems) {\n if (navigationItem !== null) {\n cleanNavigation.push(navigationItem);\n }\n }\n\n return cleanNavigation;\n })\n );\n }\n\n private replaceInserts(\n navigationWithInserts: NavigationWithInserts\n ): Navigation {\n const navigation: Navigation = [];\n\n for (const navigationItem of navigationWithInserts) {\n if (IsNavigationInsertItem(navigationItem)) {\n if (this.inserts.has(navigationItem.insert)) {\n navigation.push(\n ...this.replaceInserts(this.inserts.get(navigationItem.insert)!)\n );\n }\n } else if (IsNavigationItem(navigationItem)) {\n navigation.push({\n ...navigationItem,\n children: this.replaceInserts(navigationItem.children ?? []),\n });\n } else if (IsNavigationDividerItem(navigationItem)) {\n navigation.push(navigationItem);\n }\n }\n\n return navigation;\n }\n}\n"]}
@@ -6,7 +6,7 @@ import * as i1 from "@rxap/config";
6
6
  export class SidenavComponentService {
7
7
  constructor(config) {
8
8
  this.config = config;
9
- this.collapsed$ = new BehaviorSubject(false);
9
+ this.collapsed$ = new BehaviorSubject(true);
10
10
  this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));
11
11
  }
12
12
  toggleNavigationCollapse() {
@@ -1 +1 @@
1
- {"version":3,"file":"sidenav.component.service.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/sidenav/sidenav.component.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;;AAG7C,MAAM,OAAO,uBAAuB;IAIlC,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAFlC,eAAU,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAGtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,CAAC;IAEM,wBAAwB;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;;8FAVU,uBAAuB;6EAAvB,uBAAuB,WAAvB,uBAAuB,mBADV,MAAM;uFACnB,uBAAuB;cADnC,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConfigService } from '@rxap/config';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavComponentService {\n\n public readonly collapsed$ = new BehaviorSubject(false);\n\n constructor(private readonly config: ConfigService) {\n this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));\n }\n\n public toggleNavigationCollapse(): void {\n this.collapsed$.next(!this.collapsed$.value);\n }\n\n}\n"]}
1
+ {"version":3,"file":"sidenav.component.service.js","sourceRoot":"","sources":["../../../../../../libs/layout/src/lib/sidenav/sidenav.component.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;;AAG7C,MAAM,OAAO,uBAAuB;IAIlC,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAFlC,eAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAGrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,CAAC;IAEM,wBAAwB;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;;8FAVU,uBAAuB;6EAAvB,uBAAuB,WAAvB,uBAAuB,mBADV,MAAM;uFACnB,uBAAuB;cADnC,UAAU;eAAC,EAAE,UAAU,EAAE,MAAM,EAAE","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConfigService } from '@rxap/config';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavComponentService {\n\n public readonly collapsed$ = new BehaviorSubject(true);\n\n constructor(private readonly config: ConfigService) {\n this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));\n }\n\n public toggleNavigationCollapse(): void {\n this.collapsed$.next(!this.collapsed$.value);\n }\n\n}\n"]}
@@ -9,7 +9,7 @@ import { MatToolbarModule } from '@angular/material/toolbar';
9
9
  import * as i4 from '@angular/cdk/portal';
10
10
  import { PortalModule, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
11
11
  import { Subscription, BehaviorSubject, ReplaySubject, of, from, combineLatest } from 'rxjs';
12
- import { filter, map, tap, switchMap, startWith, delay, skip, distinctUntilChanged } from 'rxjs/operators';
12
+ import { filter, map, tap, switchMap, catchError, startWith, delay, skip, distinctUntilChanged } from 'rxjs/operators';
13
13
  import * as i3$5 from '@angular/material/sidenav';
14
14
  import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
15
15
  import * as i2$2 from '@rxap/authentication';
@@ -47,9 +47,11 @@ import { MatGridListModule } from '@angular/material/grid-list';
47
47
  import * as i2$5 from '@angular/material/divider';
48
48
  import { MatDividerModule } from '@angular/material/divider';
49
49
  import { trigger, transition, style, animate } from '@angular/animations';
50
- import * as i5$1 from '@rxap/material-directives/icon';
50
+ import * as i6$1 from '@rxap/material-directives/icon';
51
51
  import { IconDirectiveModule } from '@rxap/material-directives/icon';
52
52
  import { ButtonComponentModule } from '@rxap/components';
53
+ import * as i3$6 from '@angular/material/tooltip';
54
+ import { MatTooltipModule } from '@angular/material/tooltip';
53
55
 
54
56
  const RXAP_NAVIGATION_CONFIG = new InjectionToken('rxap/layout/navigation-config');
55
57
  const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken('rxap/layout/navigation-config-inserts');
@@ -1030,7 +1032,7 @@ SidenavHeaderDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: Side
1030
1032
  class SidenavComponentService {
1031
1033
  constructor(config) {
1032
1034
  this.config = config;
1033
- this.collapsed$ = new BehaviorSubject(false);
1035
+ this.collapsed$ = new BehaviorSubject(true);
1034
1036
  this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));
1035
1037
  }
1036
1038
  toggleNavigationCollapse() {
@@ -1112,18 +1114,22 @@ class NavigationService {
1112
1114
  const isVisibleArray$ = navigationItem.status
1113
1115
  .map((statusToken) => this.injector.get(statusToken))
1114
1116
  .map((status) => {
1115
- const isVisible = status.isVisible(navigationItem.routerLink);
1117
+ const isVisible = status.isVisible(navigationItem);
1116
1118
  if (typeof isVisible === 'boolean') {
1117
1119
  return of(isVisible);
1118
1120
  }
1119
1121
  else {
1120
1122
  return from(isVisible);
1121
1123
  }
1122
- });
1124
+ }).map(isVisible$ => isVisible$.pipe(catchError(e => {
1125
+ console.error('isVisible method failed: ' + e.message);
1126
+ return of(false);
1127
+ })));
1123
1128
  // TODO : dont wait for all status services to complete, but cancel waiting if one returns false
1124
1129
  return combineLatest(isVisibleArray$).pipe(map((isVisibleArray) => isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)), map((isVisible) => (isVisible ? navigationItem : null)), switchMap((navigationItemOrNull) => {
1130
+ var _a;
1125
1131
  if (navigationItemOrNull) {
1126
- if (navigationItemOrNull.children) {
1132
+ if ((_a = navigationItemOrNull.children) === null || _a === void 0 ? void 0 : _a.length) {
1127
1133
  return this.checkNavigationStatusProviders(navigationItemOrNull.children).pipe(map((children) => (Object.assign(Object.assign({}, navigationItemOrNull), { children }))));
1128
1134
  }
1129
1135
  return of(navigationItemOrNull);
@@ -1185,13 +1191,13 @@ NavigationService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Naviga
1185
1191
 
1186
1192
  const _c0$3 = ["navigationOverlay"];
1187
1193
  const _c1$2 = ["rxap-navigation-item", ""];
1188
- function NavigationItemComponent_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
1194
+ function NavigationItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
1189
1195
  i0.ɵɵelement(0, "mat-icon", 5);
1190
1196
  } if (rf & 2) {
1191
1197
  const ctx_r0 = i0.ɵɵnextContext();
1192
1198
  i0.ɵɵproperty("rxapIcon", ctx_r0.item.icon);
1193
1199
  } }
1194
- function NavigationItemComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1200
+ function NavigationItemComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
1195
1201
  i0.ɵɵelementStart(0, "span", 6);
1196
1202
  i0.ɵɵtext(1);
1197
1203
  i0.ɵɵelementEnd();
@@ -1200,22 +1206,22 @@ function NavigationItemComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1200
1206
  i0.ɵɵadvance(1);
1201
1207
  i0.ɵɵtextInterpolate(ctx_r1.item.label);
1202
1208
  } }
1203
- function NavigationItemComponent_ul_4_Template(rf, ctx) { if (rf & 1) {
1209
+ function NavigationItemComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
1204
1210
  i0.ɵɵelement(0, "ul", 7);
1205
1211
  } if (rf & 2) {
1206
1212
  const ctx_r2 = i0.ɵɵnextContext();
1207
1213
  i0.ɵɵproperty("@sub-nav", undefined)("items", ctx_r2.children)("level", ctx_r2.level + 1);
1208
1214
  } }
1209
- function NavigationItemComponent_ng_template_6_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
1215
+ function NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
1210
1216
  i0.ɵɵelement(0, "mat-icon", 5);
1211
1217
  } if (rf & 2) {
1212
1218
  const child_r6 = i0.ɵɵnextContext(2).$implicit;
1213
1219
  const ctx_r8 = i0.ɵɵnextContext(2);
1214
1220
  i0.ɵɵproperty("rxapIcon", ctx_r8.asNavigationItem(child_r6).icon);
1215
1221
  } }
1216
- function NavigationItemComponent_ng_template_6_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
1222
+ function NavigationItemComponent_ng_template_7_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
1217
1223
  i0.ɵɵelementStart(0, "a", 11);
1218
- i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_6_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
1224
+ i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
1219
1225
  i0.ɵɵelementStart(2, "span", 6);
1220
1226
  i0.ɵɵtext(3);
1221
1227
  i0.ɵɵelementEnd();
@@ -1229,9 +1235,9 @@ function NavigationItemComponent_ng_template_6_li_2_a_1_Template(rf, ctx) { if (
1229
1235
  i0.ɵɵadvance(2);
1230
1236
  i0.ɵɵtextInterpolate(ctx_r7.asNavigationItem(child_r6).label);
1231
1237
  } }
1232
- function NavigationItemComponent_ng_template_6_li_2_Template(rf, ctx) { if (rf & 1) {
1238
+ function NavigationItemComponent_ng_template_7_li_2_Template(rf, ctx) { if (rf & 1) {
1233
1239
  i0.ɵɵelementStart(0, "li");
1234
- i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_6_li_2_a_1_Template, 4, 3, "a", 10);
1240
+ i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_Template, 4, 3, "a", 10);
1235
1241
  i0.ɵɵelementEnd();
1236
1242
  } if (rf & 2) {
1237
1243
  const child_r6 = ctx.$implicit;
@@ -1239,12 +1245,12 @@ function NavigationItemComponent_ng_template_6_li_2_Template(rf, ctx) { if (rf &
1239
1245
  i0.ɵɵadvance(1);
1240
1246
  i0.ɵɵproperty("ngIf", ctx_r5.isNavigationItem(child_r6));
1241
1247
  } }
1242
- function NavigationItemComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
1248
+ function NavigationItemComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
1243
1249
  const _r12 = i0.ɵɵgetCurrentView();
1244
1250
  i0.ɵɵelementStart(0, "div", 8);
1245
- i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_6_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.lockeOverlay = true; })("mouseleave", function NavigationItemComponent_ng_template_6_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); ctx_r13.lockeOverlay = false; return ctx_r13.onMouseleave(); });
1251
+ i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_7_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return 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 ctx_r13.onMouseleave(); });
1246
1252
  i0.ɵɵelementStart(1, "ul");
1247
- i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_6_li_2_Template, 2, 1, "li", 9);
1253
+ i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
1248
1254
  i0.ɵɵelementEnd();
1249
1255
  i0.ɵɵelementEnd();
1250
1256
  } if (rf & 2) {
@@ -1362,24 +1368,25 @@ NavigationItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Nav
1362
1368
  i0.ɵɵlistener("mouseenter", function NavigationItemComponent_mouseenter_HostBindingHandler() { return ctx.onMouseenter(); })("mouseleave", function NavigationItemComponent_mouseleave_HostBindingHandler() { return ctx.onMouseleave(); });
1363
1369
  } if (rf & 2) {
1364
1370
  i0.ɵɵclassProp("active", ctx.isActive);
1365
- } }, inputs: { item: "item", level: "level" }, features: [i0.ɵɵNgOnChangesFeature], attrs: _c1$2, decls: 8, vars: 11, consts: [["routerLinkActive", "link-active", "matRipple", "", 3, "routerLink"], ["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) {
1371
+ } }, inputs: { item: "item", level: "level" }, features: [i0.ɵɵNgOnChangesFeature], attrs: _c1$2, 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) {
1366
1372
  i0.ɵɵelementStart(0, "a", 0);
1367
- i0.ɵɵtemplate(1, NavigationItemComponent_mat_icon_1_Template, 1, 1, "mat-icon", 1);
1368
- i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_2_Template, 2, 1, "ng-template", 2);
1369
- i0.ɵɵpipe(3, "async");
1373
+ i0.ɵɵpipe(1, "async");
1374
+ i0.ɵɵtemplate(2, NavigationItemComponent_mat_icon_2_Template, 1, 1, "mat-icon", 1);
1375
+ i0.ɵɵtemplate(3, NavigationItemComponent_ng_template_3_Template, 2, 1, "ng-template", 2);
1376
+ i0.ɵɵpipe(4, "async");
1370
1377
  i0.ɵɵelementEnd();
1371
- i0.ɵɵtemplate(4, NavigationItemComponent_ul_4_Template, 1, 3, "ul", 3);
1372
- i0.ɵɵpipe(5, "async");
1373
- i0.ɵɵtemplate(6, NavigationItemComponent_ng_template_6_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
1378
+ i0.ɵɵtemplate(5, NavigationItemComponent_ul_5_Template, 1, 3, "ul", 3);
1379
+ i0.ɵɵpipe(6, "async");
1380
+ i0.ɵɵtemplate(7, NavigationItemComponent_ng_template_7_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
1374
1381
  } if (rf & 2) {
1375
1382
  i0.ɵɵclassMapInterpolate1("navigation-link mat-body-2 mat-body-strong navigation-level-", ctx.level, "");
1376
- i0.ɵɵproperty("routerLink", ctx.item.routerLink);
1377
- i0.ɵɵadvance(1);
1383
+ i0.ɵɵproperty("routerLink", ctx.item.routerLink)("matTooltipDisabled", !i0.ɵɵpipeBind1(1, 9, ctx.sidenav.collapsed$))("matTooltip", ctx.item.label);
1384
+ i0.ɵɵadvance(2);
1378
1385
  i0.ɵɵproperty("ngIf", ctx.item.icon);
1379
1386
  i0.ɵɵadvance(1);
1380
- i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(3, 7, ctx.sidenav.collapsed$));
1387
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 11, ctx.sidenav.collapsed$));
1381
1388
  i0.ɵɵadvance(2);
1382
- i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(5, 9, ctx.sidenav.collapsed$) && ctx.children);
1389
+ i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(6, 13, ctx.sidenav.collapsed$) && ctx.children);
1383
1390
  } }, styles: [".navigation-overlay-container,.rxap-navigation-item{display:flex;flex-direction:column;min-height:48px}.navigation-overlay-container .navigation-link,.rxap-navigation-item .navigation-link{display:flex;flex-direction:row;align-items:center;text-decoration:none;height:48px}.navigation-overlay-container .navigation-link .icon,.rxap-navigation-item .navigation-link .icon{margin:0 16px}.navigation-overlay-container .navigation-link .label,.rxap-navigation-item .navigation-link .label{padding-right:12px}.navigation-overlay-container .navigation-link.navigation-level-1,.rxap-navigation-item .navigation-link.navigation-level-1{padding-left:52px}.navigation-overlay-container .navigation-link.navigation-level-1 .icon,.rxap-navigation-item .navigation-link.navigation-level-1 .icon{padding-left:0}.navigation-overlay-container .navigation-link.navigation-level-2,.rxap-navigation-item .navigation-link.navigation-level-2{padding-left:88px}.navigation-overlay-container .navigation-link.navigation-level-2 .icon,.rxap-navigation-item .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}"], encapsulation: 2, data: { animation: [
1384
1391
  trigger('sub-nav', [
1385
1392
  transition(':enter', [
@@ -2017,6 +2024,7 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
2017
2024
  MatRippleModule,
2018
2025
  MatDividerModule,
2019
2026
  StopPropagationDirectiveModule,
2027
+ MatTooltipModule
2020
2028
  ]] });
2021
2029
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationComponentModule, [{
2022
2030
  type: NgModule,
@@ -2033,6 +2041,7 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
2033
2041
  MatRippleModule,
2034
2042
  MatDividerModule,
2035
2043
  StopPropagationDirectiveModule,
2044
+ MatTooltipModule
2036
2045
  ],
2037
2046
  exports: [NavigationComponent]
2038
2047
  }]
@@ -2046,8 +2055,9 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
2046
2055
  ButtonComponentModule,
2047
2056
  MatRippleModule,
2048
2057
  MatDividerModule,
2049
- StopPropagationDirectiveModule], exports: [NavigationComponent] }); })();
2050
- i0.ɵɵsetComponentScope(NavigationItemComponent, [i1$4.RouterLinkWithHref, i1$4.RouterLinkActive, i6.MatRipple, i2.NgIf, i3$3.MatIcon, i5$1.IconDirective, NavigationComponent, i1$3.DefaultFlexDirective, i2.NgForOf], [i2.AsyncPipe]);
2058
+ StopPropagationDirectiveModule,
2059
+ MatTooltipModule], exports: [NavigationComponent] }); })();
2060
+ i0.ɵɵsetComponentScope(NavigationItemComponent, [i1$4.RouterLinkWithHref, i1$4.RouterLinkActive, i6.MatRipple, i3$6.MatTooltip, i2.NgIf, i3$3.MatIcon, i6$1.IconDirective, NavigationComponent, i1$3.DefaultFlexDirective, i2.NgForOf], [i2.AsyncPipe]);
2051
2061
 
2052
2062
  class SidenavModule {
2053
2063
  }