@rxap/layout 13.0.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/footer/footer.component.mjs +4 -4
- package/esm2020/lib/footer/footer.component.module.mjs +4 -6
- package/esm2020/lib/header/apps-button/apps-button.component.mjs +9 -9
- package/esm2020/lib/header/apps-button/apps-button.component.module.mjs +8 -10
- package/esm2020/lib/header/header.component.mjs +11 -11
- package/esm2020/lib/header/header.component.module.mjs +14 -16
- package/esm2020/lib/header/language-selector/language-selector.component.mjs +8 -8
- package/esm2020/lib/header/language-selector/language-selector.component.module.mjs +4 -6
- package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +4 -4
- package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +3 -5
- package/esm2020/lib/header/reset-button/reset-button.component.mjs +4 -4
- package/esm2020/lib/header/reset-button/reset-button.component.module.mjs +3 -5
- package/esm2020/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +5 -5
- package/esm2020/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.mjs +4 -6
- package/esm2020/lib/header/sign-out/sign-out.component.mjs +4 -4
- package/esm2020/lib/header/sign-out/sign-out.component.module.mjs +4 -6
- package/esm2020/lib/header/user-profile-icon/user-profile-icon.component.mjs +6 -6
- package/esm2020/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +6 -8
- package/esm2020/lib/layout/layout.component.mjs +9 -9
- package/esm2020/lib/layout/layout.component.module.mjs +11 -13
- package/esm2020/lib/navigation/navigation-item/navigation-item.component.mjs +2 -2
- package/esm2020/lib/navigation/navigation.component.mjs +5 -5
- package/esm2020/lib/navigation/navigation.component.module.mjs +20 -22
- package/esm2020/lib/sidenav/sidenav.component.mjs +8 -8
- package/esm2020/lib/sidenav/sidenav.component.module.mjs +7 -9
- package/esm2020/lib/sidenav/version/version.component.mjs +2 -2
- package/esm2020/lib/sidenav/version/version.component.module.mjs +3 -5
- package/esm2020/lib/sidenav-content/sidenav-content.component.mjs +2 -2
- package/esm2020/lib/sidenav-content/sidenav-content.component.module.mjs +3 -5
- package/esm2020/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +3 -3
- package/esm2020/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.mjs +4 -6
- package/esm2020/lib/window-container-sidenav/window-container-sidenav.component.mjs +1 -1
- package/esm2020/lib/window-container-sidenav/window-container-sidenav.component.module.mjs +4 -6
- package/fesm2015/rxap-layout.mjs +456 -488
- package/fesm2015/rxap-layout.mjs.map +1 -1
- package/fesm2020/rxap-layout.mjs +415 -447
- package/fesm2020/rxap-layout.mjs.map +1 -1
- package/lib/footer/footer.component.d.ts +1 -1
- package/lib/footer.directive.d.ts +1 -1
- package/lib/header/apps-button/apps-button.component.d.ts +1 -1
- package/lib/header/header.component.d.ts +1 -1
- package/lib/header/language-selector/language-selector.component.d.ts +1 -1
- package/lib/header/navigation-progress-bar/navigation-progress-bar.component.d.ts +1 -1
- package/lib/header/reset-button/reset-button.component.d.ts +1 -1
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +1 -1
- package/lib/header/sign-out/sign-out.component.d.ts +1 -1
- package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +1 -1
- package/lib/layout/layout.component.d.ts +1 -1
- package/lib/navigation/navigation-item/navigation-item.component.d.ts +1 -1
- package/lib/navigation/navigation.component.d.ts +1 -1
- package/lib/navigation/replace-router-paths.pipe.d.ts +1 -1
- package/lib/sidenav/sidenav-footer.directive.d.ts +1 -1
- package/lib/sidenav/sidenav-header.directive.d.ts +1 -1
- package/lib/sidenav/sidenav.component.d.ts +1 -1
- package/lib/sidenav/version/version.component.d.ts +1 -1
- package/lib/sidenav-content/sidenav-content.component.d.ts +1 -1
- package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +1 -1
- package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +1 -1
- package/package.json +22 -25
- package/rxap-layout.d.ts +0 -5
|
@@ -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/sign-out/sign-out.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.html","../../../../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/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/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/apps-button/apps-button.component.html","../../../../libs/layout/src/lib/header/apps-button/apps-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/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/window-container-sidenav/window-container-sidenav.component.html","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.ts","../../../../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/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","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","<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","<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","<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]=\"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","<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","<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 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","<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","<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":["_c0","_c1","i1","i1.SidenavComponentService","_c2","i1.SidenavContentComponentService","i1.LayoutComponentService","i1.ReplaceRouterPathsService","i4"],"mappings":"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"}
|