@rxap/layout 13.0.0 → 13.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"rxap-layout.mjs","sources":["../../../../libs/layout/src/lib/tokens.ts","../../../../libs/layout/src/lib/footer/footer.component.html","../../../../libs/layout/src/lib/footer/footer.component.ts","../../../../libs/layout/src/lib/footer/footer.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.html","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.html","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.html","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.html","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.ts","../../../../libs/layout/src/lib/header/header.component.html","../../../../libs/layout/src/lib/header/header.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.module.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.module.ts","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.html","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.module.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.module.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.module.ts","../../../../libs/layout/src/lib/header/header.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.service.ts","../../../../libs/layout/src/lib/sidenav/sidenav-footer.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav-header.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item.ts","../../../../libs/layout/src/lib/navigation/navigation.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.html","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../libs/layout/src/lib/navigation/navigation.component.html","../../../../libs/layout/src/lib/navigation/navigation.component.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.html","../../../../libs/layout/src/lib/sidenav/sidenav.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.service.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.html","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.ts","../../../../libs/layout/src/lib/layout/layout.component.html","../../../../libs/layout/src/lib/layout/layout.component.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.service.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.pipe.ts","../../../../libs/layout/src/lib/navigation/navigation.component.module.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.module.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.module.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.module.ts","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.module.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.html","../../../../libs/layout/src/lib/sidenav/version/version.component.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.module.ts","../../../../libs/layout/src/lib/footer.directive.ts","../../../../libs/layout/src/rxap-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LogoConfig } from './types';\nimport { NavigationWithInserts } from './navigation/navigation-item';\n\nexport const RXAP_NAVIGATION_CONFIG = new InjectionToken<NavigationWithInserts | (() => NavigationWithInserts)>('rxap/layout/navigation-config');\nexport const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken<Record<string, NavigationWithInserts>>('rxap/layout/navigation-config-inserts');\n\nexport const RXAP_FOOTER_COMPONENT = new InjectionToken('rxap/layout/footer-component');\nexport const RXAP_HEADER_COMPONENT = new InjectionToken('rxap/layout/header-component');\nexport const RXAP_LOGO_CONFIG = new InjectionToken<LogoConfig>('rxap/layout/logo-config');\nexport const RXAP_LAYOUT_APPS_GRID = new InjectionToken('rxap/layout/apps-grid');\n","<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-footer',\n templateUrl: './footer.component.html',\n styleUrls: [ './footer.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FooterComponent {\n\n constructor(\n public readonly footerService: FooterService\n ) {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { FooterComponent } from './footer.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ FooterComponent ],\n imports: [\n MatToolbarModule,\n CommonModule,\n PortalModule\n ],\n exports: [ FooterComponent ]\n})\nexport class FooterModule {}\n","<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n","import {\n Component,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { Required } from '@rxap/utilities';\n\n@Component({\n selector: 'rxap-sidenav-toggle-button',\n templateUrl: './sidenav-toggle-button.component.html',\n styleUrls: [ './sidenav-toggle-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sidenav-toggle-button' }\n})\nexport class SidenavToggleButtonComponent {\n\n @Input()\n @Required\n public sidenav!: MatSidenav;\n\n}\n","<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Injectable,\n Inject,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\n\nexport const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language';\nexport const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language_last_change';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageSelectorService {\n public readonly languages: any;\n public readonly defaultLanguage: string;\n public selectedLanguage: string;\n\n constructor(\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.languages = this.config.get<any>('i18n.languages') ?? {};\n this.defaultLanguage =\n this.config.get('i18n.defaultLanguage') ??\n Object.keys(this.languages)[0] ??\n 'en';\n this.selectedLanguage =\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??\n this.defaultLanguage;\n }\n\n public setLanguage(language: string) {\n if (language !== this.selectedLanguage) {\n this.redirect(language);\n }\n }\n\n public autoRedirect() {\n if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {\n this.redirect(\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)!\n );\n }\n }\n\n private redirect(language: string) {\n const currentUrl = location.origin + location.pathname + location.search;\n const redirectUrl =\n location.origin +\n `/${language}` +\n location.pathname.replace(new RegExp(`^\\/${this.selectedLanguage}`), '') +\n location.search;\n this.selectedLanguage = language;\n localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);\n if (currentUrl !== redirectUrl) {\n if (this.checkLastChange()) {\n location.replace(redirectUrl);\n }\n } else {\n console.log('Redirect not required');\n }\n }\n\n private checkLastChange(): boolean {\n const lastChangeString = localStorage.getItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY\n );\n if (lastChangeString) {\n if (Date.now() - parseInt(lastChangeString, 10) < 1000) {\n return false;\n }\n }\n localStorage.setItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY,\n Date.now().toFixed(0)\n );\n return true;\n }\n}\n\n@Component({\n selector: 'rxap-language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-language-selector' },\n})\nexport class LanguageSelectorComponent {\n constructor(public readonly language: LanguageSelectorService) {}\n}\n","<ng-template [ngIf]=\"grid && grid.length\">\n <button #trigger=\"cdkOverlayOrigin\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n <ng-template (overlayOutsideClick)=\"isOpen = false\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n cdkConnectedOverlay>\n\n <div class=\"grid-container\">\n\n <ul [ngStyle]=\"{ columns: columns }\" class=\"grid\">\n <li *ngFor=\"let item of gridWithPadding\" [ngClass]=\"{ empty: item.empty }\">\n <a *ngIf=\"!item.empty\" [href]=\"item.href\">\n\n <span fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"12px\">\n <img [src]=\"item.image\" width=\"53px\">\n <span>{{item.label}}</span>\n </span>\n\n </a>\n </li>\n </ul>\n\n </div>\n\n </ng-template>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject,\n Optional,\n} from '@angular/core';\nimport { RXAP_LAYOUT_APPS_GRID } from '../../tokens';\nimport { ConfigService } from '@rxap/config';\n\nexport interface AppsButtonGridItem {\n image: string;\n label: string;\n href: string;\n empty?: false;\n}\n\nexport interface EmptyAppsButtonGridItem {\n empty: true;\n href?: undefined;\n label?: undefined;\n image?: undefined;\n}\n\n@Component({\n selector: 'rxap-apps-button',\n templateUrl: './apps-button.component.html',\n styleUrls: ['./apps-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-apps-button' },\n})\nexport class AppsButtonComponent {\n public get gridWithPadding(): Array<\n AppsButtonGridItem | EmptyAppsButtonGridItem\n > {\n const gridWithPadding: Array<AppsButtonGridItem | EmptyAppsButtonGridItem> =\n this.grid.slice();\n while (gridWithPadding.length % this.columns !== 0) {\n gridWithPadding.push({ empty: true });\n }\n return gridWithPadding;\n }\n\n public get columns() {\n if (this.grid.length < 4) {\n return 1;\n }\n if (this.grid.length < 6) {\n return 2;\n }\n return 3;\n }\n\n public isOpen = false;\n public grid: Array<AppsButtonGridItem> = [];\n\n constructor(\n @Optional()\n @Inject(RXAP_LAYOUT_APPS_GRID)\n grid: any,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.grid = grid ?? this.config.get('navigation.apps') ?? [];\n }\n}\n","<button [matMenuTriggerFor]=\"menu\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n [name]=\"(userName$ | async) ?? ''\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UserService } from '@rxap/authentication';\nimport { map } from 'rxjs/operators';\nimport { isDefined } from '@rxap/utilities/rxjs';\n\n@Component({\n selector: 'rxap-user-profile-icon',\n templateUrl: './user-profile-icon.component.html',\n styleUrls: ['./user-profile-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-user-profile-icon' },\n})\nexport class UserProfileIconComponent {\n public userProfileUrl$: Observable<string | undefined>;\n public userName$: Observable<string>;\n\n constructor(\n @Inject(UserService)\n public userService: UserService\n ) {\n this.userProfileUrl$ = this.userService.user$.pipe(\n isDefined(),\n map((user) => user.photoURL ?? user.avatarUrl)\n );\n this.userName$ = this.userService.user$.pipe(\n isDefined(),\n map(\n (user) =>\n user.name ??\n (user.firstname || user.lastname\n ? [user.firstname, user.lastname].join(' ').trim()\n : null) ??\n user.username\n )\n );\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'rxap-sign-out',\n templateUrl: './sign-out.component.html',\n styleUrls: [ './sign-out.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sign-out' }\n})\nexport class SignOutComponent {\n\n constructor(\n @Inject(Router)\n private readonly router: Router\n ) {}\n\n public redirectToRoot() {\n this.router.navigate([ '/' ]);\n }\n\n}\n","<button\n rxapSignOut\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n>\n <mat-icon>login</mat-icon>\n</button>\n","<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n Router,\n NavigationStart,\n NavigationEnd,\n NavigationCancel\n} from '@angular/router';\nimport {\n filter,\n map\n} from 'rxjs/operators';\n\n@Component({\n selector: 'rxap-navigation-progress-bar',\n templateUrl: './navigation-progress-bar.component.html',\n styleUrls: [ './navigation-progress-bar.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-navigation-progress-bar' }\n})\nexport class NavigationProgressBarComponent {\n\n public navigating$: Observable<boolean>;\n\n public constructor(\n @Inject(Router) public readonly router: Router\n ) {\n this.navigating$ = this.router.events.pipe(\n filter(\n event =>\n event instanceof NavigationStart ||\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel\n ),\n map(event => event instanceof NavigationStart)\n );\n }\n\n}\n","<mat-toolbar [ngClass]=\"{ open: sidenav?.opened }\" [color]=\"color\" class=\"mat-elevation-z3\">\n <mat-toolbar-row *ngFor=\"let headerComponent of components\">\n <ng-container *ngComponentOutlet=\"headerComponent\"></ng-container>\n </mat-toolbar-row>\n <mat-toolbar-row>\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n fxLayoutGap=\"16px\"\n class=\"content\"\n >\n <rxap-sidenav-toggle-button *ngIf=\"sidenav\" fxFlex=\"nogrow\" [sidenav]=\"sidenav\"></rxap-sidenav-toggle-button>\n <div fxFlex=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-language-selector fxFlex=\"nogrow\"></rxap-language-selector>\n <rxap-apps-button fxFlex=\"nogrow\"></rxap-apps-button>\n <rxap-user-profile-icon *ngIf=\"hasUser$ | async\" fxFlex=\"nogrow\"></rxap-user-profile-icon>\n <div fxFlex=\"nogrow\" *ngIf=\"settingsMenuPanel\">\n <button mat-icon-button [matMenuTriggerFor]=\"settingsMenuPanel\">\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-sign-out fxFlex=\"nogrow\"></rxap-sign-out>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Input,\n Optional,\n Inject,\n} from '@angular/core';\nimport { Constructor } from '@rxap/utilities';\nimport { Subscription, Observable } from 'rxjs';\nimport { tap, map } from 'rxjs/operators';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { UserService } from '@rxap/authentication';\nimport { RXAP_HEADER_COMPONENT } from '../tokens';\nimport { HeaderService } from '@rxap/services';\nimport { MatMenuPanel } from '@angular/material/menu';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'rxap-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-header',\n },\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n @Input()\n public sidenav?: MatSidenav;\n\n public components: Array<Constructor<any>> = [];\n\n public subscriptions = new Subscription();\n\n public hasUser$: Observable<boolean>;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public settingsMenuPanel?: MatMenuPanel;\n\n constructor(\n @Inject(HeaderService)\n public readonly headerComponentService: HeaderService,\n @Inject(UserService)\n private readonly userService: UserService<any>,\n @Optional() @Inject(RXAP_HEADER_COMPONENT) public headerComponent: any\n ) {\n this.hasUser$ = this.userService.user$.pipe(map(Boolean));\n }\n\n public ngOnInit() {\n this.updateComponents();\n this.subscriptions.add(\n this.headerComponentService.update$\n .pipe(tap(() => this.updateComponents()))\n .subscribe()\n );\n }\n\n public updateComponents(): void {\n this.components = this.headerComponentService.getComponents();\n }\n\n public ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignOutComponent } from './sign-out.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SignOutDirectiveModule } from '@rxap/authentication';\n\n\n@NgModule({\n declarations: [SignOutComponent],\n imports: [\n MatButtonModule,\n MatIconModule,\n SignOutDirectiveModule,\n ],\n exports: [SignOutComponent]\n})\nexport class SignOutComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { UserProfileIconComponent } from './user-profile-icon.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { AvatarBackgroundImageDirectiveModule } from '@rxap/directives';\n\n\n@NgModule({\n declarations: [UserProfileIconComponent],\n imports: [\n MatMenuModule,\n MatIconModule,\n CommonModule,\n FlexLayoutModule,\n AvatarBackgroundImageDirectiveModule,\n ],\n exports: [UserProfileIconComponent]\n})\nexport class UserProfileIconComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { NavigationProgressBarComponent } from './navigation-progress-bar.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [NavigationProgressBarComponent],\n imports: [\n MatProgressBarModule,\n CommonModule\n ],\n exports: [NavigationProgressBarComponent]\n})\nexport class NavigationProgressBarComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { SidenavToggleButtonComponent } from './sidenav-toggle-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [SidenavToggleButtonComponent],\n imports: [\n MatIconModule,\n CommonModule,\n MatButtonModule\n ],\n exports: [SidenavToggleButtonComponent]\n})\nexport class SidenavToggleButtonComponentModule { }\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { ResetService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-reset-button',\n templateUrl: './reset-button.component.html',\n styleUrls: ['./reset-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-reset-button' },\n})\nexport class ResetButtonComponent {\n constructor(\n @Inject(ResetService)\n public readonly resetService: ResetService\n ) {}\n}\n","<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { ResetButtonComponent } from './reset-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ResetButtonComponent],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [ResetButtonComponent]\n})\nexport class ResetButtonComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { AppsButtonComponent } from './apps-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ AppsButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n MatGridListModule,\n OverlayModule,\n FlexLayoutModule,\n CommonModule,\n RouterModule\n ],\n exports: [ AppsButtonComponent ]\n})\nexport class AppsButtonComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { LanguageSelectorComponent } from './language-selector.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [ LanguageSelectorComponent ],\n imports: [\n MatSelectModule,\n CommonModule,\n FormsModule\n ],\n exports: [ LanguageSelectorComponent ]\n})\nexport class LanguageSelectorComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { HeaderComponent } from './header.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { SignOutComponentModule } from './sign-out/sign-out.component.module';\nimport { UserProfileIconComponentModule } from './user-profile-icon/user-profile-icon.component.module';\nimport { NavigationProgressBarComponentModule } from './navigation-progress-bar/navigation-progress-bar.component.module';\nimport { SidenavToggleButtonComponentModule } from './sidenav-toggle-button/sidenav-toggle-button.component.module';\nimport { ResetButtonComponentModule } from './reset-button/reset-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { AppsButtonComponentModule } from './apps-button/apps-button.component.module';\nimport { LanguageSelectorComponentModule } from './language-selector/language-selector.component.module';\n\n\n@NgModule({\n declarations: [ HeaderComponent ],\n imports: [\n MatToolbarModule,\n SignOutComponentModule,\n UserProfileIconComponentModule,\n NavigationProgressBarComponentModule,\n SidenavToggleButtonComponentModule,\n ResetButtonComponentModule,\n FlexLayoutModule,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n AppsButtonComponentModule,\n LanguageSelectorComponentModule\n ],\n exports: [ HeaderComponent ]\n})\nexport class HeaderModule {}\n","import {\n Injectable,\n Optional,\n Inject\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\nimport {\n FooterService,\n HeaderService\n} from '@rxap/services';\nimport { RXAP_LOGO_CONFIG } from '../tokens';\nimport { LogoConfig } from '../types';\nimport { ConfigService } from '@rxap/config';\nimport { MatDrawerMode } from '@angular/material/sidenav';\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutComponentService {\n\n public opened$ = new BehaviorSubject<boolean>(true);\n public mode$ = new BehaviorSubject<MatDrawerMode>('side');\n public fixedBottomGap$: Observable<number>;\n public fixedTopGap$ = new BehaviorSubject<number>(64);\n public logo: LogoConfig;\n\n public constructor(\n public readonly footerComponentService: FooterService,\n public readonly headerComponentService: HeaderService,\n @Optional() @Inject(RXAP_LOGO_CONFIG) logoConfig: LogoConfig | null = null,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.mode$.next(this.config.get('navigation.mode', this.mode$.value));\n this.opened$.next(this.config.get('navigation.open', this.opened$.value));\n this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));\n this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);\n this.headerComponentService.update$.pipe(\n tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))\n ).subscribe();\n this.logo = logoConfig ?? {\n src: '/assets/logo.png',\n width: '192'\n };\n }\n\n}\n","import { Directive, TemplateRef, Inject } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavFooter]',\n})\nexport class SidenavFooterDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","import { Directive, Inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavHeader]',\n})\nexport class SidenavHeaderDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","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","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","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","<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","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","<ng-template [ngForOf]=\"items\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <div *ngIf=\"!(sidenav.collapsed$ | async)\" class=\"divider-title\" fxFlex=\"nogrow\" fxLayout=\"row\" fxLayoutAlign=\"start end\">\n <span fxFlex=\"nogrow\" *ngIf=\"item.title\">{{item.title}}</span>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li class=\"item\" rxap-navigation-item [level]=\"level\" [item]=\"asNavigationItem(item)\"></li>\n </ng-template>\n</ng-template>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n ViewEncapsulation,\n HostBinding,\n Inject\n} from '@angular/core';\nimport {\n Navigation,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n Required,\n coerceBoolean\n} from '@rxap/utilities';\nimport { NavigationService } from './navigation.service';\nimport { Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { SidenavComponentService } from '../sidenav/sidenav.component.service';\n\n@Component({\n selector: 'ul[rxap-navigation]',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'rxap-navigation' },\n})\nexport class NavigationComponent implements OnInit, OnDestroy {\n @HostBinding('class.rxap-root-navigation')\n public _root = false;\n\n @Input()\n public set root(value: boolean | '') {\n this._root = coerceBoolean(value);\n }\n\n @Input()\n @Required\n public items!: Navigation;\n\n public subscription?: Subscription;\n\n @Input()\n public level: number = 0;\n\n constructor(\n @Inject(NavigationService)\n private readonly navigationService: NavigationService,\n @Inject(ChangeDetectorRef)\n private readonly cdr: ChangeDetectorRef,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService\n ) {}\n\n public ngOnInit(): void {\n if (this._root) {\n this.items = [];\n this.subscription = this.navigationService.config$\n .pipe(\n tap((navigation) => (this.items = navigation)),\n tap(() => this.cdr.detectChanges())\n )\n .subscribe();\n }\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\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","<div class=\"container\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div fxFlex=\"nogrow\" class=\"header\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n </ng-template>\n <div fxFlex=\"grow\" class=\"nav-container\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button mat-button class=\"sidebar-toggle\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" fxFlex=\"nogrow\"\n (click)=\"sidenav.toggleNavigationCollapse()\">\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon fxFlex=\"nogrow\" class=\"arrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n=\"@@rxap.layout.navigation.collapse-sidebar\">Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n <div fxFlex=\"nogrow\" class=\"footer\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ContentChild\n} from '@angular/core';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavComponentService } from './sidenav.component.service';\n\n@Component({\n selector: 'rxap-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: [ './sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-sidenav'\n }\n})\nexport class SidenavComponent {\n\n @ContentChild(SidenavFooterDirective)\n public sidenavFooterDirective?: SidenavFooterDirective;\n\n @ContentChild(SidenavHeaderDirective)\n public sidenavHeaderDirective?: SidenavHeaderDirective;\n\n constructor(public readonly sidenav: SidenavComponentService) {}\n\n}\n","import {\n Injectable,\n Inject\n} from '@angular/core';\nimport {\n HeaderService,\n FooterService\n} from '@rxap/services';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavContentComponentService {\n\n public headerRows$ = new BehaviorSubject<number>(1);\n public footerRows$: Observable<number>;\n public innerHeight$: Observable<string>;\n public marginTop$: Observable<string>;\n public marginBottom$: Observable<string>;\n\n constructor(\n @Inject(FooterService) public readonly footerComponentService: FooterService,\n @Inject(HeaderService) public readonly headerComponentService: HeaderService\n ) {\n this.headerRows$.next(this.headerComponentService.countComponent);\n\n this.footerComponentService.portalCount$.pipe().subscribe();\n\n this.footerRows$ = this.footerComponentService.portalCount$;\n\n this.headerComponentService.update$.pipe(\n tap(() => this.headerRows$.next(this.headerComponentService.countComponent))\n ).subscribe();\n\n this.innerHeight$ = combineLatest([\n this.headerRows$,\n this.footerRows$\n ]).pipe(\n map(([ headerRows, footerRows ]) => `calc(100% - ${64 * (headerRows + footerRows)}px)`)\n );\n\n this.marginTop$ = this.headerRows$.pipe(\n map(headerRows => `${headerRows * 64}px`)\n );\n\n this.marginBottom$ = this.footerRows$.pipe(\n map(footerRows => `${footerRows * 64}px`)\n );\n\n }\n\n}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { Required } from '@rxap/utilities';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { SidenavContentComponentService } from './sidenav-content.component.service';\n\n@Component({\n selector: 'rxap-sidenav-content',\n templateUrl: './sidenav-content.component.html',\n styleUrls: [ './sidenav-content.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SidenavContentComponent implements OnInit {\n\n @Input() @Required public sidenav!: MatSidenav;\n\n constructor(public readonly sccs: SidenavContentComponentService) { }\n\n ngOnInit() {\n }\n\n}\n","<div [ngClass]=\"{ 'open': (sidenav.openedChange | async) }\" [ngStyle]=\"{\n height: sccs.innerHeight$ | async,\n marginTop: sccs.marginTop$ | async,\n marginBottom: sccs.marginBottom$ | async\n}\" class=\"container\">\n <!-- <dx-breadcrumb></dx-breadcrumb>-->\n <div class=\"inner\">\n <router-outlet></router-outlet>\n <ng-content></ng-content>\n </div>\n</div>\n","<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter\n} from '@angular/core';\n\n@Component({\n selector: 'rxap-toggle-window-sidenav-button',\n templateUrl: './toggle-window-sidenav-button.component.html',\n styleUrls: [ './toggle-window-sidenav-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-toggle-window-sidenav-button'\n }\n})\nexport class ToggleWindowSidenavButtonComponent implements OnInit {\n\n @Input()\n public openWindowSidenav = false;\n\n @Output()\n public openWindowSidenavChange = new EventEmitter<boolean>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public toggle() {\n this.openWindowSidenav = !this.openWindowSidenav;\n this.openWindowSidenavChange.emit(this.openWindowSidenav);\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Inject,\n OnDestroy\n} from '@angular/core';\nimport {\n WindowContainerSidenavService,\n ContainerComponent\n} from '@rxap/services';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-window-container-sidenav',\n templateUrl: './window-container-sidenav.component.html',\n styleUrls: [ './window-container-sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WindowContainerSidenavComponent implements OnInit, OnDestroy {\n\n public portals = new Map<string, ComponentPortal<any>>();\n\n private subscription = new Subscription();\n\n constructor(\n @Inject(WindowContainerSidenavService)\n public readonly service: WindowContainerSidenavService\n ) { }\n\n public ngOnInit(): void {\n const components = this.service.getAll();\n for (const component of components) {\n this.add(component);\n }\n this.subscription.add(this.service.add$.pipe(\n tap(component => this.add(component))\n ).subscribe());\n this.subscription.add(this.service.remove$.pipe(\n tap(component => this.remove(component))\n ).subscribe());\n }\n\n public ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n public trackBy(index: number, id: string) {\n return id;\n }\n\n private add(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n throw new Error(`Component portal with id ${component.id} already exists`);\n }\n const portal = new ComponentPortal(component.component, component.viewContainerRef, component.injector, component.componentFactoryResolver);\n this.portals.set(component.id, portal);\n }\n\n private remove(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n const portal = this.portals.get(component.id)!;\n this.portals.delete(component.id);\n portal.detach();\n }\n }\n\n}\n","<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewChild\n} from '@angular/core';\nimport { LayoutComponentService } from './layout.component.service';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n@Component({\n selector: 'rxap-layout',\n templateUrl: './layout.component.html',\n styleUrls: [ './layout.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LayoutComponent {\n\n public openWindowSidenav = false;\n\n @ViewChild(MatSidenav, { static: true }) public sidenav!: MatSidenav;\n\n constructor(\n public readonly layoutComponentService: LayoutComponentService,\n ) { }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n of\n} from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ReplaceRouterPathsService {\n\n public transform(routerLink: string[]): Observable<string[]> {\n return of(routerLink);\n }\n\n}\n","import {\n NgModule,\n Pipe,\n PipeTransform\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ReplaceRouterPathsService } from './replace-router-paths.service';\n\n@Pipe({\n name: 'replaceRouterPaths'\n})\nexport class ReplaceRouterPathsPipe implements PipeTransform {\n constructor(\n public rrp: ReplaceRouterPathsService\n ) {}\n\n transform(routerLink: string[]): Observable<string[]> {\n return this.rrp.transform(routerLink);\n }\n}\n\n@NgModule({\n declarations: [ ReplaceRouterPathsPipe ],\n exports: [ ReplaceRouterPathsPipe ]\n})\nexport class ReplaceRouterPathsPipeModule {}\n","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 { ReplaceRouterPathsPipeModule } 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 ],\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 ReplaceRouterPathsPipeModule\n ],\n exports: [ NavigationComponent ]\n})\nexport class NavigationComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavComponent } from './sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NavigationComponentModule } from '../navigation/navigation.component.module';\nimport { CommonModule } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n imports: [\n FlexLayoutModule,\n NavigationComponentModule,\n CommonModule,\n MatDividerModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n})\nexport class SidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavContentComponent } from './sidenav-content.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ SidenavContentComponent ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [ SidenavContentComponent ]\n})\nexport class SidenavContentModule {}\n","import { NgModule } from '@angular/core';\nimport { WindowContainerSidenavComponent } from './window-container-sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ WindowContainerSidenavComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule,\n PortalModule,\n ],\n exports: [ WindowContainerSidenavComponent ],\n})\nexport class WindowContainerSidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { ToggleWindowSidenavButtonComponent } from './toggle-window-sidenav-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [ ToggleWindowSidenavButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n CommonModule,\n ],\n exports: [ ToggleWindowSidenavButtonComponent ],\n})\nexport class ToggleWindowSidenavButtonModule {}\n","import {\n NgModule,\n ModuleWithProviders\n} from '@angular/core';\nimport { LayoutComponent } from './layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { FooterModule } from '../footer/footer.component.module';\nimport { HeaderModule } from '../header/header.component.module';\nimport { CommonModule } from '@angular/common';\nimport { SidenavModule } from '../sidenav/sidenav.component.module';\nimport { SidenavContentModule } from '../sidenav-content/sidenav-content.component.module';\nimport { NavigationWithInserts } from '../navigation/navigation-item';\nimport { RXAP_NAVIGATION_CONFIG } from '../tokens';\nimport { WindowContainerSidenavModule } from '../window-container-sidenav/window-container-sidenav.component.module';\nimport { ToggleWindowSidenavButtonModule } from '../toggle-window-sidenav-button/toggle-window-sidenav-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [ LayoutComponent ],\n imports: [\n MatSidenavModule,\n FooterModule,\n HeaderModule,\n CommonModule,\n SidenavModule,\n SidenavContentModule,\n WindowContainerSidenavModule,\n ToggleWindowSidenavButtonModule,\n FlexLayoutModule,\n RouterModule\n ],\n exports: [ LayoutComponent ]\n})\nexport class LayoutModule {\n\n public static withNavigation(navigation: NavigationWithInserts | (() => NavigationWithInserts)): ModuleWithProviders<LayoutModule> {\n\n return {\n ngModule: LayoutModule,\n providers: [\n {\n provide: RXAP_NAVIGATION_CONFIG,\n useValue: navigation\n }\n ]\n };\n }\n\n}\n","<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Inject\n} from '@angular/core';\nimport {\n VersionService,\n Version\n} from '@rxap/services';\nimport {\n KeyValue,\n Required\n} from '@rxap/utilities';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-version',\n templateUrl: './version.component.html',\n styleUrls: [ './version.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VersionComponent implements OnInit, OnDestroy {\n\n @Required\n public modules!: KeyValue<Version>;\n\n private subscription?: Subscription;\n\n constructor(\n @Inject(VersionService) private version: VersionService\n ) { }\n\n public ngOnInit(): void {\n this.modules = this.version.get();\n this.subscription = this.version.update$.pipe(\n tap(() => this.modules = this.version.get())\n ).subscribe();\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { VersionComponent } from './version.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ VersionComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule\n ],\n exports: [ VersionComponent ]\n})\nexport class VersionComponentModule {}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n NgModule,\n Inject,\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Directive({\n selector: '[rxapFooter]',\n})\nexport class FooterDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n constructor(\n @Inject(FooterService)\n private readonly footerService: FooterService,\n @Inject(TemplateRef)\n private readonly template: TemplateRef<void>,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnInit() {\n this._portal = new TemplatePortal<void>(\n this.template,\n this.viewContainerRef\n );\n this.footerService.pushPortal(this._portal);\n }\n\n public ngOnDestroy() {\n if (this._portal) {\n this.footerService.removePortal(this._portal);\n }\n }\n}\n\n@NgModule({\n declarations: [FooterDirective],\n exports: [FooterDirective],\n})\nexport class FooterDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rxap-layout.mjs","sources":["../../../../libs/layout/src/lib/tokens.ts","../../../../libs/layout/src/lib/footer/footer.component.html","../../../../libs/layout/src/lib/footer/footer.component.ts","../../../../libs/layout/src/lib/footer/footer.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.html","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.html","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.html","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.html","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.ts","../../../../libs/layout/src/lib/header/header.component.html","../../../../libs/layout/src/lib/header/header.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.module.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.module.ts","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.html","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.module.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.module.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.module.ts","../../../../libs/layout/src/lib/header/header.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.service.ts","../../../../libs/layout/src/lib/sidenav/sidenav-footer.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav-header.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item.ts","../../../../libs/layout/src/lib/navigation/navigation.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.html","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../libs/layout/src/lib/navigation/navigation.component.html","../../../../libs/layout/src/lib/navigation/navigation.component.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.html","../../../../libs/layout/src/lib/sidenav/sidenav.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.service.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.html","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.ts","../../../../libs/layout/src/lib/layout/layout.component.html","../../../../libs/layout/src/lib/layout/layout.component.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.service.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.pipe.ts","../../../../libs/layout/src/lib/navigation/navigation.component.module.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.module.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.module.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.module.ts","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.module.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.html","../../../../libs/layout/src/lib/sidenav/version/version.component.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.module.ts","../../../../libs/layout/src/lib/footer.directive.ts","../../../../libs/layout/src/rxap-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LogoConfig } from './types';\nimport { NavigationWithInserts } from './navigation/navigation-item';\n\nexport const RXAP_NAVIGATION_CONFIG = new InjectionToken<NavigationWithInserts | (() => NavigationWithInserts)>('rxap/layout/navigation-config');\nexport const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken<Record<string, NavigationWithInserts>>('rxap/layout/navigation-config-inserts');\n\nexport const RXAP_FOOTER_COMPONENT = new InjectionToken('rxap/layout/footer-component');\nexport const RXAP_HEADER_COMPONENT = new InjectionToken('rxap/layout/header-component');\nexport const RXAP_LOGO_CONFIG = new InjectionToken<LogoConfig>('rxap/layout/logo-config');\nexport const RXAP_LAYOUT_APPS_GRID = new InjectionToken('rxap/layout/apps-grid');\n","<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-footer',\n templateUrl: './footer.component.html',\n styleUrls: [ './footer.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FooterComponent {\n\n constructor(\n public readonly footerService: FooterService\n ) {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { FooterComponent } from './footer.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ FooterComponent ],\n imports: [\n MatToolbarModule,\n CommonModule,\n PortalModule\n ],\n exports: [ FooterComponent ]\n})\nexport class FooterModule {}\n","<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n","import {\n Component,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { Required } from '@rxap/utilities';\n\n@Component({\n selector: 'rxap-sidenav-toggle-button',\n templateUrl: './sidenav-toggle-button.component.html',\n styleUrls: [ './sidenav-toggle-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sidenav-toggle-button' }\n})\nexport class SidenavToggleButtonComponent {\n\n @Input()\n @Required\n public sidenav!: MatSidenav;\n\n}\n","<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Injectable,\n Inject,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\n\nexport const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language';\nexport const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language_last_change';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageSelectorService {\n public readonly languages: any;\n public readonly defaultLanguage: string;\n public selectedLanguage: string;\n\n constructor(\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.languages = this.config.get<any>('i18n.languages') ?? {};\n this.defaultLanguage =\n this.config.get('i18n.defaultLanguage') ??\n Object.keys(this.languages)[0] ??\n 'en';\n this.selectedLanguage =\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??\n this.defaultLanguage;\n }\n\n public setLanguage(language: string) {\n if (language !== this.selectedLanguage) {\n this.redirect(language);\n }\n }\n\n public autoRedirect() {\n if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {\n this.redirect(\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)!\n );\n }\n }\n\n private redirect(language: string) {\n const currentUrl = location.origin + location.pathname + location.search;\n const redirectUrl =\n location.origin +\n `/${language}` +\n location.pathname.replace(new RegExp(`^\\/${this.selectedLanguage}`), '') +\n location.search;\n this.selectedLanguage = language;\n localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);\n if (currentUrl !== redirectUrl) {\n if (this.checkLastChange()) {\n location.replace(redirectUrl);\n }\n } else {\n console.log('Redirect not required');\n }\n }\n\n private checkLastChange(): boolean {\n const lastChangeString = localStorage.getItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY\n );\n if (lastChangeString) {\n if (Date.now() - parseInt(lastChangeString, 10) < 1000) {\n return false;\n }\n }\n localStorage.setItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY,\n Date.now().toFixed(0)\n );\n return true;\n }\n}\n\n@Component({\n selector: 'rxap-language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-language-selector' },\n})\nexport class LanguageSelectorComponent {\n constructor(public readonly language: LanguageSelectorService) {}\n}\n","<ng-template [ngIf]=\"grid && grid.length\">\n <button #trigger=\"cdkOverlayOrigin\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n <ng-template (overlayOutsideClick)=\"isOpen = false\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n cdkConnectedOverlay>\n\n <div class=\"grid-container\">\n\n <ul [ngStyle]=\"{ columns: columns }\" class=\"grid\">\n <li *ngFor=\"let item of gridWithPadding\" [ngClass]=\"{ empty: item.empty }\">\n <a *ngIf=\"!item.empty\" [href]=\"item.href\">\n\n <span fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"12px\">\n <img [src]=\"item.image\" width=\"53px\">\n <span>{{item.label}}</span>\n </span>\n\n </a>\n </li>\n </ul>\n\n </div>\n\n </ng-template>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject,\n Optional,\n} from '@angular/core';\nimport { RXAP_LAYOUT_APPS_GRID } from '../../tokens';\nimport { ConfigService } from '@rxap/config';\n\nexport interface AppsButtonGridItem {\n image: string;\n label: string;\n href: string;\n empty?: false;\n}\n\nexport interface EmptyAppsButtonGridItem {\n empty: true;\n href?: undefined;\n label?: undefined;\n image?: undefined;\n}\n\n@Component({\n selector: 'rxap-apps-button',\n templateUrl: './apps-button.component.html',\n styleUrls: ['./apps-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-apps-button' },\n})\nexport class AppsButtonComponent {\n public get gridWithPadding(): Array<\n AppsButtonGridItem | EmptyAppsButtonGridItem\n > {\n const gridWithPadding: Array<AppsButtonGridItem | EmptyAppsButtonGridItem> =\n this.grid.slice();\n while (gridWithPadding.length % this.columns !== 0) {\n gridWithPadding.push({ empty: true });\n }\n return gridWithPadding;\n }\n\n public get columns() {\n if (this.grid.length < 4) {\n return 1;\n }\n if (this.grid.length < 6) {\n return 2;\n }\n return 3;\n }\n\n public isOpen = false;\n public grid: Array<AppsButtonGridItem> = [];\n\n constructor(\n @Optional()\n @Inject(RXAP_LAYOUT_APPS_GRID)\n grid: any,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.grid = grid ?? this.config.get('navigation.apps') ?? [];\n }\n}\n","<button [matMenuTriggerFor]=\"menu\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n [name]=\"(userName$ | async) ?? ''\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UserService } from '@rxap/authentication';\nimport { map } from 'rxjs/operators';\nimport { isDefined } from '@rxap/utilities/rxjs';\n\n@Component({\n selector: 'rxap-user-profile-icon',\n templateUrl: './user-profile-icon.component.html',\n styleUrls: ['./user-profile-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-user-profile-icon' },\n})\nexport class UserProfileIconComponent {\n public userProfileUrl$: Observable<string | undefined>;\n public userName$: Observable<string>;\n\n constructor(\n @Inject(UserService)\n public userService: UserService\n ) {\n this.userProfileUrl$ = this.userService.user$.pipe(\n isDefined(),\n map((user) => user.photoURL ?? user.avatarUrl)\n );\n this.userName$ = this.userService.user$.pipe(\n isDefined(),\n map(\n (user) =>\n user.name ??\n (user.firstname || user.lastname\n ? [user.firstname, user.lastname].join(' ').trim()\n : null) ??\n user.username\n )\n );\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'rxap-sign-out',\n templateUrl: './sign-out.component.html',\n styleUrls: [ './sign-out.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sign-out' }\n})\nexport class SignOutComponent {\n\n constructor(\n @Inject(Router)\n private readonly router: Router\n ) {}\n\n public redirectToRoot() {\n this.router.navigate([ '/' ]);\n }\n\n}\n","<button\n rxapSignOut\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n>\n <mat-icon>login</mat-icon>\n</button>\n","<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n Router,\n NavigationStart,\n NavigationEnd,\n NavigationCancel\n} from '@angular/router';\nimport {\n filter,\n map\n} from 'rxjs/operators';\n\n@Component({\n selector: 'rxap-navigation-progress-bar',\n templateUrl: './navigation-progress-bar.component.html',\n styleUrls: [ './navigation-progress-bar.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-navigation-progress-bar' }\n})\nexport class NavigationProgressBarComponent {\n\n public navigating$: Observable<boolean>;\n\n public constructor(\n @Inject(Router) public readonly router: Router\n ) {\n this.navigating$ = this.router.events.pipe(\n filter(\n event =>\n event instanceof NavigationStart ||\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel\n ),\n map(event => event instanceof NavigationStart)\n );\n }\n\n}\n","<mat-toolbar [ngClass]=\"{ open: sidenav?.opened }\" [color]=\"color\" class=\"mat-elevation-z3\">\n <mat-toolbar-row *ngFor=\"let headerComponent of components\">\n <ng-container *ngComponentOutlet=\"headerComponent\"></ng-container>\n </mat-toolbar-row>\n <mat-toolbar-row>\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n fxLayoutGap=\"16px\"\n class=\"content\"\n >\n <rxap-sidenav-toggle-button *ngIf=\"sidenav\" fxFlex=\"nogrow\" [sidenav]=\"sidenav\"></rxap-sidenav-toggle-button>\n <div fxFlex=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-language-selector fxFlex=\"nogrow\"></rxap-language-selector>\n <rxap-apps-button fxFlex=\"nogrow\"></rxap-apps-button>\n <rxap-user-profile-icon *ngIf=\"hasUser$ | async\" fxFlex=\"nogrow\"></rxap-user-profile-icon>\n <div fxFlex=\"nogrow\" *ngIf=\"settingsMenuPanel\">\n <button mat-icon-button [matMenuTriggerFor]=\"settingsMenuPanel\">\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-sign-out fxFlex=\"nogrow\"></rxap-sign-out>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Input,\n Optional,\n Inject,\n} from '@angular/core';\nimport { Constructor } from '@rxap/utilities';\nimport { Subscription, Observable } from 'rxjs';\nimport { tap, map } from 'rxjs/operators';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { UserService } from '@rxap/authentication';\nimport { RXAP_HEADER_COMPONENT } from '../tokens';\nimport { HeaderService } from '@rxap/services';\nimport { MatMenuPanel } from '@angular/material/menu';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'rxap-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-header',\n },\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n @Input()\n public sidenav?: MatSidenav;\n\n public components: Array<Constructor<any>> = [];\n\n public subscriptions = new Subscription();\n\n public hasUser$: Observable<boolean>;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public settingsMenuPanel?: MatMenuPanel;\n\n constructor(\n @Inject(HeaderService)\n public readonly headerComponentService: HeaderService,\n @Inject(UserService)\n private readonly userService: UserService<any>,\n @Optional() @Inject(RXAP_HEADER_COMPONENT) public headerComponent: any\n ) {\n this.hasUser$ = this.userService.user$.pipe(map(Boolean));\n }\n\n public ngOnInit() {\n this.updateComponents();\n this.subscriptions.add(\n this.headerComponentService.update$\n .pipe(tap(() => this.updateComponents()))\n .subscribe()\n );\n }\n\n public updateComponents(): void {\n this.components = this.headerComponentService.getComponents();\n }\n\n public ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignOutComponent } from './sign-out.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SignOutDirectiveModule } from '@rxap/authentication';\n\n\n@NgModule({\n declarations: [SignOutComponent],\n imports: [\n MatButtonModule,\n MatIconModule,\n SignOutDirectiveModule,\n ],\n exports: [SignOutComponent]\n})\nexport class SignOutComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { UserProfileIconComponent } from './user-profile-icon.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { AvatarBackgroundImageDirectiveModule } from '@rxap/directives';\n\n\n@NgModule({\n declarations: [UserProfileIconComponent],\n imports: [\n MatMenuModule,\n MatIconModule,\n CommonModule,\n FlexLayoutModule,\n AvatarBackgroundImageDirectiveModule,\n ],\n exports: [UserProfileIconComponent]\n})\nexport class UserProfileIconComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { NavigationProgressBarComponent } from './navigation-progress-bar.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [NavigationProgressBarComponent],\n imports: [\n MatProgressBarModule,\n CommonModule\n ],\n exports: [NavigationProgressBarComponent]\n})\nexport class NavigationProgressBarComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { SidenavToggleButtonComponent } from './sidenav-toggle-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [SidenavToggleButtonComponent],\n imports: [\n MatIconModule,\n CommonModule,\n MatButtonModule\n ],\n exports: [SidenavToggleButtonComponent]\n})\nexport class SidenavToggleButtonComponentModule { }\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { ResetService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-reset-button',\n templateUrl: './reset-button.component.html',\n styleUrls: ['./reset-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-reset-button' },\n})\nexport class ResetButtonComponent {\n constructor(\n @Inject(ResetService)\n public readonly resetService: ResetService\n ) {}\n}\n","<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { ResetButtonComponent } from './reset-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ResetButtonComponent],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [ResetButtonComponent]\n})\nexport class ResetButtonComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { AppsButtonComponent } from './apps-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ AppsButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n MatGridListModule,\n OverlayModule,\n FlexLayoutModule,\n CommonModule,\n RouterModule\n ],\n exports: [ AppsButtonComponent ]\n})\nexport class AppsButtonComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { LanguageSelectorComponent } from './language-selector.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [ LanguageSelectorComponent ],\n imports: [\n MatSelectModule,\n CommonModule,\n FormsModule\n ],\n exports: [ LanguageSelectorComponent ]\n})\nexport class LanguageSelectorComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { HeaderComponent } from './header.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { SignOutComponentModule } from './sign-out/sign-out.component.module';\nimport { UserProfileIconComponentModule } from './user-profile-icon/user-profile-icon.component.module';\nimport { NavigationProgressBarComponentModule } from './navigation-progress-bar/navigation-progress-bar.component.module';\nimport { SidenavToggleButtonComponentModule } from './sidenav-toggle-button/sidenav-toggle-button.component.module';\nimport { ResetButtonComponentModule } from './reset-button/reset-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { AppsButtonComponentModule } from './apps-button/apps-button.component.module';\nimport { LanguageSelectorComponentModule } from './language-selector/language-selector.component.module';\n\n\n@NgModule({\n declarations: [ HeaderComponent ],\n imports: [\n MatToolbarModule,\n SignOutComponentModule,\n UserProfileIconComponentModule,\n NavigationProgressBarComponentModule,\n SidenavToggleButtonComponentModule,\n ResetButtonComponentModule,\n FlexLayoutModule,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n AppsButtonComponentModule,\n LanguageSelectorComponentModule\n ],\n exports: [ HeaderComponent ]\n})\nexport class HeaderModule {}\n","import {\n Injectable,\n Optional,\n Inject\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\nimport {\n FooterService,\n HeaderService\n} from '@rxap/services';\nimport { RXAP_LOGO_CONFIG } from '../tokens';\nimport { LogoConfig } from '../types';\nimport { ConfigService } from '@rxap/config';\nimport { MatDrawerMode } from '@angular/material/sidenav';\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutComponentService {\n\n public opened$ = new BehaviorSubject<boolean>(true);\n public mode$ = new BehaviorSubject<MatDrawerMode>('side');\n public fixedBottomGap$: Observable<number>;\n public fixedTopGap$ = new BehaviorSubject<number>(64);\n public logo: LogoConfig;\n\n public constructor(\n public readonly footerComponentService: FooterService,\n public readonly headerComponentService: HeaderService,\n @Optional() @Inject(RXAP_LOGO_CONFIG) logoConfig: LogoConfig | null = null,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.mode$.next(this.config.get('navigation.mode', this.mode$.value));\n this.opened$.next(this.config.get('navigation.open', this.opened$.value));\n this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));\n this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);\n this.headerComponentService.update$.pipe(\n tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))\n ).subscribe();\n this.logo = logoConfig ?? {\n src: '/assets/logo.png',\n width: '192'\n };\n }\n\n}\n","import { Directive, TemplateRef, Inject } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavFooter]',\n})\nexport class SidenavFooterDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","import { Directive, Inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavHeader]',\n})\nexport class SidenavHeaderDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","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","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","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","<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","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","<ng-template [ngForOf]=\"items\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <div *ngIf=\"!(sidenav.collapsed$ | async)\" class=\"divider-title\" fxFlex=\"nogrow\" fxLayout=\"row\" fxLayoutAlign=\"start end\">\n <span fxFlex=\"nogrow\" *ngIf=\"item.title\">{{item.title}}</span>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li class=\"item\" rxap-navigation-item [level]=\"level\" [item]=\"asNavigationItem(item)\"></li>\n </ng-template>\n</ng-template>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n ViewEncapsulation,\n HostBinding,\n Inject\n} from '@angular/core';\nimport {\n Navigation,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n Required,\n coerceBoolean\n} from '@rxap/utilities';\nimport { NavigationService } from './navigation.service';\nimport { Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { SidenavComponentService } from '../sidenav/sidenav.component.service';\n\n@Component({\n selector: 'ul[rxap-navigation]',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'rxap-navigation' },\n})\nexport class NavigationComponent implements OnInit, OnDestroy {\n @HostBinding('class.rxap-root-navigation')\n public _root = false;\n\n @Input()\n public set root(value: boolean | '') {\n this._root = coerceBoolean(value);\n }\n\n @Input()\n @Required\n public items!: Navigation;\n\n public subscription?: Subscription;\n\n @Input()\n public level: number = 0;\n\n constructor(\n @Inject(NavigationService)\n private readonly navigationService: NavigationService,\n @Inject(ChangeDetectorRef)\n private readonly cdr: ChangeDetectorRef,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService\n ) {}\n\n public ngOnInit(): void {\n if (this._root) {\n this.items = [];\n this.subscription = this.navigationService.config$\n .pipe(\n tap((navigation) => (this.items = navigation)),\n tap(() => this.cdr.detectChanges())\n )\n .subscribe();\n }\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\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","<div class=\"container\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div fxFlex=\"nogrow\" class=\"header\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n </ng-template>\n <div fxFlex=\"grow\" class=\"nav-container\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button mat-button class=\"sidebar-toggle\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" fxFlex=\"nogrow\"\n (click)=\"sidenav.toggleNavigationCollapse()\">\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon fxFlex=\"nogrow\" class=\"arrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n>Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n <div fxFlex=\"nogrow\" class=\"footer\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ContentChild\n} from '@angular/core';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavComponentService } from './sidenav.component.service';\n\n@Component({\n selector: 'rxap-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: [ './sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-sidenav'\n }\n})\nexport class SidenavComponent {\n\n @ContentChild(SidenavFooterDirective)\n public sidenavFooterDirective?: SidenavFooterDirective;\n\n @ContentChild(SidenavHeaderDirective)\n public sidenavHeaderDirective?: SidenavHeaderDirective;\n\n constructor(public readonly sidenav: SidenavComponentService) {}\n\n}\n","import {\n Injectable,\n Inject\n} from '@angular/core';\nimport {\n HeaderService,\n FooterService\n} from '@rxap/services';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavContentComponentService {\n\n public headerRows$ = new BehaviorSubject<number>(1);\n public footerRows$: Observable<number>;\n public innerHeight$: Observable<string>;\n public marginTop$: Observable<string>;\n public marginBottom$: Observable<string>;\n\n constructor(\n @Inject(FooterService) public readonly footerComponentService: FooterService,\n @Inject(HeaderService) public readonly headerComponentService: HeaderService\n ) {\n this.headerRows$.next(this.headerComponentService.countComponent);\n\n this.footerComponentService.portalCount$.pipe().subscribe();\n\n this.footerRows$ = this.footerComponentService.portalCount$;\n\n this.headerComponentService.update$.pipe(\n tap(() => this.headerRows$.next(this.headerComponentService.countComponent))\n ).subscribe();\n\n this.innerHeight$ = combineLatest([\n this.headerRows$,\n this.footerRows$\n ]).pipe(\n map(([ headerRows, footerRows ]) => `calc(100% - ${64 * (headerRows + footerRows)}px)`)\n );\n\n this.marginTop$ = this.headerRows$.pipe(\n map(headerRows => `${headerRows * 64}px`)\n );\n\n this.marginBottom$ = this.footerRows$.pipe(\n map(footerRows => `${footerRows * 64}px`)\n );\n\n }\n\n}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { Required } from '@rxap/utilities';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { SidenavContentComponentService } from './sidenav-content.component.service';\n\n@Component({\n selector: 'rxap-sidenav-content',\n templateUrl: './sidenav-content.component.html',\n styleUrls: [ './sidenav-content.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SidenavContentComponent implements OnInit {\n\n @Input() @Required public sidenav!: MatSidenav;\n\n constructor(public readonly sccs: SidenavContentComponentService) { }\n\n ngOnInit() {\n }\n\n}\n","<div [ngClass]=\"{ 'open': (sidenav.openedChange | async) }\" [ngStyle]=\"{\n height: sccs.innerHeight$ | async,\n marginTop: sccs.marginTop$ | async,\n marginBottom: sccs.marginBottom$ | async\n}\" class=\"container\">\n <!-- <dx-breadcrumb></dx-breadcrumb>-->\n <div class=\"inner\">\n <router-outlet></router-outlet>\n <ng-content></ng-content>\n </div>\n</div>\n","<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter\n} from '@angular/core';\n\n@Component({\n selector: 'rxap-toggle-window-sidenav-button',\n templateUrl: './toggle-window-sidenav-button.component.html',\n styleUrls: [ './toggle-window-sidenav-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-toggle-window-sidenav-button'\n }\n})\nexport class ToggleWindowSidenavButtonComponent implements OnInit {\n\n @Input()\n public openWindowSidenav = false;\n\n @Output()\n public openWindowSidenavChange = new EventEmitter<boolean>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public toggle() {\n this.openWindowSidenav = !this.openWindowSidenav;\n this.openWindowSidenavChange.emit(this.openWindowSidenav);\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Inject,\n OnDestroy\n} from '@angular/core';\nimport {\n WindowContainerSidenavService,\n ContainerComponent\n} from '@rxap/services';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-window-container-sidenav',\n templateUrl: './window-container-sidenav.component.html',\n styleUrls: [ './window-container-sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WindowContainerSidenavComponent implements OnInit, OnDestroy {\n\n public portals = new Map<string, ComponentPortal<any>>();\n\n private subscription = new Subscription();\n\n constructor(\n @Inject(WindowContainerSidenavService)\n public readonly service: WindowContainerSidenavService\n ) { }\n\n public ngOnInit(): void {\n const components = this.service.getAll();\n for (const component of components) {\n this.add(component);\n }\n this.subscription.add(this.service.add$.pipe(\n tap(component => this.add(component))\n ).subscribe());\n this.subscription.add(this.service.remove$.pipe(\n tap(component => this.remove(component))\n ).subscribe());\n }\n\n public ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n public trackBy(index: number, id: string) {\n return id;\n }\n\n private add(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n throw new Error(`Component portal with id ${component.id} already exists`);\n }\n const portal = new ComponentPortal(component.component, component.viewContainerRef, component.injector, component.componentFactoryResolver);\n this.portals.set(component.id, portal);\n }\n\n private remove(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n const portal = this.portals.get(component.id)!;\n this.portals.delete(component.id);\n portal.detach();\n }\n }\n\n}\n","<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewChild\n} from '@angular/core';\nimport { LayoutComponentService } from './layout.component.service';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n@Component({\n selector: 'rxap-layout',\n templateUrl: './layout.component.html',\n styleUrls: [ './layout.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LayoutComponent {\n\n public openWindowSidenav = false;\n\n @ViewChild(MatSidenav, { static: true }) public sidenav!: MatSidenav;\n\n constructor(\n public readonly layoutComponentService: LayoutComponentService,\n ) { }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n of\n} from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ReplaceRouterPathsService {\n\n public transform(routerLink: string[]): Observable<string[]> {\n return of(routerLink);\n }\n\n}\n","import {\n NgModule,\n Pipe,\n PipeTransform\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ReplaceRouterPathsService } from './replace-router-paths.service';\n\n@Pipe({\n name: 'replaceRouterPaths'\n})\nexport class ReplaceRouterPathsPipe implements PipeTransform {\n constructor(\n public rrp: ReplaceRouterPathsService\n ) {}\n\n transform(routerLink: string[]): Observable<string[]> {\n return this.rrp.transform(routerLink);\n }\n}\n\n@NgModule({\n declarations: [ ReplaceRouterPathsPipe ],\n exports: [ ReplaceRouterPathsPipe ]\n})\nexport class ReplaceRouterPathsPipeModule {}\n","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 { ReplaceRouterPathsPipeModule } 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 ],\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 ReplaceRouterPathsPipeModule\n ],\n exports: [ NavigationComponent ]\n})\nexport class NavigationComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavComponent } from './sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NavigationComponentModule } from '../navigation/navigation.component.module';\nimport { CommonModule } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n imports: [\n FlexLayoutModule,\n NavigationComponentModule,\n CommonModule,\n MatDividerModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n})\nexport class SidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavContentComponent } from './sidenav-content.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ SidenavContentComponent ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [ SidenavContentComponent ]\n})\nexport class SidenavContentModule {}\n","import { NgModule } from '@angular/core';\nimport { WindowContainerSidenavComponent } from './window-container-sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ WindowContainerSidenavComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule,\n PortalModule,\n ],\n exports: [ WindowContainerSidenavComponent ],\n})\nexport class WindowContainerSidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { ToggleWindowSidenavButtonComponent } from './toggle-window-sidenav-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [ ToggleWindowSidenavButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n CommonModule,\n ],\n exports: [ ToggleWindowSidenavButtonComponent ],\n})\nexport class ToggleWindowSidenavButtonModule {}\n","import {\n NgModule,\n ModuleWithProviders\n} from '@angular/core';\nimport { LayoutComponent } from './layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { FooterModule } from '../footer/footer.component.module';\nimport { HeaderModule } from '../header/header.component.module';\nimport { CommonModule } from '@angular/common';\nimport { SidenavModule } from '../sidenav/sidenav.component.module';\nimport { SidenavContentModule } from '../sidenav-content/sidenav-content.component.module';\nimport { NavigationWithInserts } from '../navigation/navigation-item';\nimport { RXAP_NAVIGATION_CONFIG } from '../tokens';\nimport { WindowContainerSidenavModule } from '../window-container-sidenav/window-container-sidenav.component.module';\nimport { ToggleWindowSidenavButtonModule } from '../toggle-window-sidenav-button/toggle-window-sidenav-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [ LayoutComponent ],\n imports: [\n MatSidenavModule,\n FooterModule,\n HeaderModule,\n CommonModule,\n SidenavModule,\n SidenavContentModule,\n WindowContainerSidenavModule,\n ToggleWindowSidenavButtonModule,\n FlexLayoutModule,\n RouterModule\n ],\n exports: [ LayoutComponent ]\n})\nexport class LayoutModule {\n\n public static withNavigation(navigation: NavigationWithInserts | (() => NavigationWithInserts)): ModuleWithProviders<LayoutModule> {\n\n return {\n ngModule: LayoutModule,\n providers: [\n {\n provide: RXAP_NAVIGATION_CONFIG,\n useValue: navigation\n }\n ]\n };\n }\n\n}\n","<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Inject\n} from '@angular/core';\nimport {\n VersionService,\n Version\n} from '@rxap/services';\nimport {\n KeyValue,\n Required\n} from '@rxap/utilities';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-version',\n templateUrl: './version.component.html',\n styleUrls: [ './version.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VersionComponent implements OnInit, OnDestroy {\n\n @Required\n public modules!: KeyValue<Version>;\n\n private subscription?: Subscription;\n\n constructor(\n @Inject(VersionService) private version: VersionService\n ) { }\n\n public ngOnInit(): void {\n this.modules = this.version.get();\n this.subscription = this.version.update$.pipe(\n tap(() => this.modules = this.version.get())\n ).subscribe();\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { VersionComponent } from './version.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ VersionComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule\n ],\n exports: [ VersionComponent ]\n})\nexport class VersionComponentModule {}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n NgModule,\n Inject,\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Directive({\n selector: '[rxapFooter]',\n})\nexport class FooterDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n constructor(\n @Inject(FooterService)\n private readonly footerService: FooterService,\n @Inject(TemplateRef)\n private readonly template: TemplateRef<void>,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnInit() {\n this._portal = new TemplatePortal<void>(\n this.template,\n this.viewContainerRef\n );\n this.footerService.pushPortal(this._portal);\n }\n\n public ngOnDestroy() {\n if (this._portal) {\n this.footerService.removePortal(this._portal);\n }\n }\n}\n\n@NgModule({\n declarations: [FooterDirective],\n exports: [FooterDirective],\n})\nexport class FooterDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1557,11 +1557,11 @@ SidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavCom
1557
1557
  /**
1558
1558
  * @suppress {msgDescriptions}
1559
1559
  */
1560
- const MSG_EXTERNAL_rxap_layout_navigation_collapse_sidebar$$LIB_SIDENAV_SIDENAV_COMPONENT_TS_1 = goog.getMsg("Collapse sidebar");
1561
- i18n_0 = MSG_EXTERNAL_rxap_layout_navigation_collapse_sidebar$$LIB_SIDENAV_SIDENAV_COMPONENT_TS_1;
1560
+ const MSG_EXTERNAL_1144722711335201698$$LIB_SIDENAV_SIDENAV_COMPONENT_TS_1 = goog.getMsg("Collapse sidebar");
1561
+ i18n_0 = MSG_EXTERNAL_1144722711335201698$$LIB_SIDENAV_SIDENAV_COMPONENT_TS_1;
1562
1562
  }
1563
1563
  else {
1564
- i18n_0 = $localize `:@@rxap.layout.navigation.collapse-sidebar␟98effe6eb558f87ab061ab608a31b44adec4e2ae␟1144722711335201698:Collapse sidebar`;
1564
+ i18n_0 = $localize `:␟98effe6eb558f87ab061ab608a31b44adec4e2ae␟1144722711335201698:Collapse sidebar`;
1565
1565
  } return [[1, "container", 3, "ngClass"], ["fxLayout", "column", "fxLayoutAlign", "space-between stretch", 1, "inner"], [3, "ngIf"], ["fxFlex", "grow", 1, "nav-container"], ["fxLayout", "column", "root", "", "rxap-navigation", ""], ["fxFlex", "nogrow"], ["mat-button", "", "fxFlex", "nogrow", 1, "sidebar-toggle", 3, "ngClass", "click"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "16px", 1, "sidebar-toggle-inner"], ["fxFlex", "nogrow", 1, "arrow"], ["fxFlex", "grow", 1, "label", 3, "fxHide"], i18n_0, ["fxFlex", "nogrow", 1, "header", 3, "fxHide"], [4, "ngTemplateOutlet"], ["fxFlex", "nogrow", 3, "fxHide"], ["fxFlex", "nogrow", 1, "footer", 3, "fxHide"]]; }, template: function SidenavComponent_Template(rf, ctx) { if (rf & 1) {
1566
1566
  i0.ɵɵelementStart(0, "div", 0);
1567
1567
  i0.ɵɵpipe(1, "async");
@@ -1599,7 +1599,7 @@ SidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavCom
1599
1599
  type: Component,
1600
1600
  args: [{ selector: 'rxap-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, host: {
1601
1601
  class: 'rxap-layout-sidenav'
1602
- }, template: "<div class=\"container\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div fxFlex=\"nogrow\" class=\"header\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n </ng-template>\n <div fxFlex=\"grow\" class=\"nav-container\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button mat-button class=\"sidebar-toggle\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" fxFlex=\"nogrow\"\n (click)=\"sidenav.toggleNavigationCollapse()\">\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon fxFlex=\"nogrow\" class=\"arrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n=\"@@rxap.layout.navigation.collapse-sidebar\">Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n <div fxFlex=\"nogrow\" class=\"footer\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".container,.container .inner{height:100%}.container .inner .header{padding-bottom:12px}.container .inner .footer{padding-top:12px}.container .inner .nav-container{overflow-y:scroll;padding-top:12px}.container .inner .nav-container::-webkit-scrollbar{width:6px}.container .inner .nav-container::-webkit-scrollbar-track{border-radius:2px}.container .inner .nav-container::-webkit-scrollbar-thumb{border-radius:10px}.container .sidebar-toggle{min-height:48px}.container .sidebar-toggle .sidebar-toggle-inner{padding:0}.container .sidebar-toggle .arrow{transform:rotate(180deg)}.container .sidebar-toggle.collapsed .arrow{transform:initial}.container .sidebar-toggle.collapsed .sidebar-toggle-inner{justify-content:space-around!important}\n"] }]
1602
+ }, template: "<div class=\"container\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div fxFlex=\"nogrow\" class=\"header\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n </ng-template>\n <div fxFlex=\"grow\" class=\"nav-container\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button mat-button class=\"sidebar-toggle\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" fxFlex=\"nogrow\"\n (click)=\"sidenav.toggleNavigationCollapse()\">\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon fxFlex=\"nogrow\" class=\"arrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n>Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n <div fxFlex=\"nogrow\" class=\"footer\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".container,.container .inner{height:100%}.container .inner .header{padding-bottom:12px}.container .inner .footer{padding-top:12px}.container .inner .nav-container{overflow-y:scroll;padding-top:12px}.container .inner .nav-container::-webkit-scrollbar{width:6px}.container .inner .nav-container::-webkit-scrollbar-track{border-radius:2px}.container .inner .nav-container::-webkit-scrollbar-thumb{border-radius:10px}.container .sidebar-toggle{min-height:48px}.container .sidebar-toggle .sidebar-toggle-inner{padding:0}.container .sidebar-toggle .arrow{transform:rotate(180deg)}.container .sidebar-toggle.collapsed .arrow{transform:initial}.container .sidebar-toggle.collapsed .sidebar-toggle-inner{justify-content:space-around!important}\n"] }]
1603
1603
  }], function () { return [{ type: SidenavComponentService }]; }, { sidenavFooterDirective: [{
1604
1604
  type: ContentChild,
1605
1605
  args: [SidenavFooterDirective]