@rxap/layout 13.0.0 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"rxap-layout.mjs","sources":["../../../../libs/layout/src/lib/tokens.ts","../../../../libs/layout/src/lib/footer/footer.component.html","../../../../libs/layout/src/lib/footer/footer.component.ts","../../../../libs/layout/src/lib/footer/footer.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.html","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.html","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.html","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.html","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.ts","../../../../libs/layout/src/lib/header/header.component.html","../../../../libs/layout/src/lib/header/header.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.module.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.module.ts","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.html","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.module.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.module.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.module.ts","../../../../libs/layout/src/lib/header/header.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.service.ts","../../../../libs/layout/src/lib/sidenav/sidenav-footer.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav-header.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item.ts","../../../../libs/layout/src/lib/navigation/navigation.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.html","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../libs/layout/src/lib/navigation/navigation.component.html","../../../../libs/layout/src/lib/navigation/navigation.component.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.html","../../../../libs/layout/src/lib/sidenav/sidenav.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.service.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.html","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.ts","../../../../libs/layout/src/lib/layout/layout.component.html","../../../../libs/layout/src/lib/layout/layout.component.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.service.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.pipe.ts","../../../../libs/layout/src/lib/navigation/navigation.component.module.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.module.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.module.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.module.ts","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.module.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.html","../../../../libs/layout/src/lib/sidenav/version/version.component.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.module.ts","../../../../libs/layout/src/lib/footer.directive.ts","../../../../libs/layout/src/rxap-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LogoConfig } from './types';\nimport { NavigationWithInserts } from './navigation/navigation-item';\n\nexport const RXAP_NAVIGATION_CONFIG = new InjectionToken<NavigationWithInserts | (() => NavigationWithInserts)>('rxap/layout/navigation-config');\nexport const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken<Record<string, NavigationWithInserts>>('rxap/layout/navigation-config-inserts');\n\nexport const RXAP_FOOTER_COMPONENT = new InjectionToken('rxap/layout/footer-component');\nexport const RXAP_HEADER_COMPONENT = new InjectionToken('rxap/layout/header-component');\nexport const RXAP_LOGO_CONFIG = new InjectionToken<LogoConfig>('rxap/layout/logo-config');\nexport const RXAP_LAYOUT_APPS_GRID = new InjectionToken('rxap/layout/apps-grid');\n","<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-footer',\n templateUrl: './footer.component.html',\n styleUrls: [ './footer.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FooterComponent {\n\n constructor(\n public readonly footerService: FooterService\n ) {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { FooterComponent } from './footer.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ FooterComponent ],\n imports: [\n MatToolbarModule,\n CommonModule,\n PortalModule\n ],\n exports: [ FooterComponent ]\n})\nexport class FooterModule {}\n","<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n","import {\n Component,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { Required } from '@rxap/utilities';\n\n@Component({\n selector: 'rxap-sidenav-toggle-button',\n templateUrl: './sidenav-toggle-button.component.html',\n styleUrls: [ './sidenav-toggle-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sidenav-toggle-button' }\n})\nexport class SidenavToggleButtonComponent {\n\n @Input()\n @Required\n public sidenav!: MatSidenav;\n\n}\n","<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Injectable,\n Inject,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\n\nexport const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language';\nexport const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language_last_change';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageSelectorService {\n public readonly languages: any;\n public readonly defaultLanguage: string;\n public selectedLanguage: string;\n\n constructor(\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.languages = this.config.get<any>('i18n.languages') ?? {};\n this.defaultLanguage =\n this.config.get('i18n.defaultLanguage') ??\n Object.keys(this.languages)[0] ??\n 'en';\n this.selectedLanguage =\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??\n this.defaultLanguage;\n }\n\n public setLanguage(language: string) {\n if (language !== this.selectedLanguage) {\n this.redirect(language);\n }\n }\n\n public autoRedirect() {\n if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {\n this.redirect(\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)!\n );\n }\n }\n\n private redirect(language: string) {\n const currentUrl = location.origin + location.pathname + location.search;\n const redirectUrl =\n location.origin +\n `/${language}` +\n location.pathname.replace(new RegExp(`^\\/${this.selectedLanguage}`), '') +\n location.search;\n this.selectedLanguage = language;\n localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);\n if (currentUrl !== redirectUrl) {\n if (this.checkLastChange()) {\n location.replace(redirectUrl);\n }\n } else {\n console.log('Redirect not required');\n }\n }\n\n private checkLastChange(): boolean {\n const lastChangeString = localStorage.getItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY\n );\n if (lastChangeString) {\n if (Date.now() - parseInt(lastChangeString, 10) < 1000) {\n return false;\n }\n }\n localStorage.setItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY,\n Date.now().toFixed(0)\n );\n return true;\n }\n}\n\n@Component({\n selector: 'rxap-language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-language-selector' },\n})\nexport class LanguageSelectorComponent {\n constructor(public readonly language: LanguageSelectorService) {}\n}\n","<ng-template [ngIf]=\"grid && grid.length\">\n <button #trigger=\"cdkOverlayOrigin\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n <ng-template (overlayOutsideClick)=\"isOpen = false\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n cdkConnectedOverlay>\n\n <div class=\"grid-container\">\n\n <ul [ngStyle]=\"{ columns: columns }\" class=\"grid\">\n <li *ngFor=\"let item of gridWithPadding\" [ngClass]=\"{ empty: item.empty }\">\n <a *ngIf=\"!item.empty\" [href]=\"item.href\">\n\n <span fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"12px\">\n <img [src]=\"item.image\" width=\"53px\">\n <span>{{item.label}}</span>\n </span>\n\n </a>\n </li>\n </ul>\n\n </div>\n\n </ng-template>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject,\n Optional,\n} from '@angular/core';\nimport { RXAP_LAYOUT_APPS_GRID } from '../../tokens';\nimport { ConfigService } from '@rxap/config';\n\nexport interface AppsButtonGridItem {\n image: string;\n label: string;\n href: string;\n empty?: false;\n}\n\nexport interface EmptyAppsButtonGridItem {\n empty: true;\n href?: undefined;\n label?: undefined;\n image?: undefined;\n}\n\n@Component({\n selector: 'rxap-apps-button',\n templateUrl: './apps-button.component.html',\n styleUrls: ['./apps-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-apps-button' },\n})\nexport class AppsButtonComponent {\n public get gridWithPadding(): Array<\n AppsButtonGridItem | EmptyAppsButtonGridItem\n > {\n const gridWithPadding: Array<AppsButtonGridItem | EmptyAppsButtonGridItem> =\n this.grid.slice();\n while (gridWithPadding.length % this.columns !== 0) {\n gridWithPadding.push({ empty: true });\n }\n return gridWithPadding;\n }\n\n public get columns() {\n if (this.grid.length < 4) {\n return 1;\n }\n if (this.grid.length < 6) {\n return 2;\n }\n return 3;\n }\n\n public isOpen = false;\n public grid: Array<AppsButtonGridItem> = [];\n\n constructor(\n @Optional()\n @Inject(RXAP_LAYOUT_APPS_GRID)\n grid: any,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.grid = grid ?? this.config.get('navigation.apps') ?? [];\n }\n}\n","<button [matMenuTriggerFor]=\"menu\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n [name]=\"(userName$ | async) ?? ''\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UserService } from '@rxap/authentication';\nimport { map } from 'rxjs/operators';\nimport { isDefined } from '@rxap/utilities/rxjs';\n\n@Component({\n selector: 'rxap-user-profile-icon',\n templateUrl: './user-profile-icon.component.html',\n styleUrls: ['./user-profile-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-user-profile-icon' },\n})\nexport class UserProfileIconComponent {\n public userProfileUrl$: Observable<string | undefined>;\n public userName$: Observable<string>;\n\n constructor(\n @Inject(UserService)\n public userService: UserService\n ) {\n this.userProfileUrl$ = this.userService.user$.pipe(\n isDefined(),\n map((user) => user.photoURL ?? user.avatarUrl)\n );\n this.userName$ = this.userService.user$.pipe(\n isDefined(),\n map(\n (user) =>\n user.name ??\n (user.firstname || user.lastname\n ? [user.firstname, user.lastname].join(' ').trim()\n : null) ??\n user.username\n )\n );\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'rxap-sign-out',\n templateUrl: './sign-out.component.html',\n styleUrls: [ './sign-out.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sign-out' }\n})\nexport class SignOutComponent {\n\n constructor(\n @Inject(Router)\n private readonly router: Router\n ) {}\n\n public redirectToRoot() {\n this.router.navigate([ '/' ]);\n }\n\n}\n","<button\n rxapSignOut\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n>\n <mat-icon>login</mat-icon>\n</button>\n","<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n Router,\n NavigationStart,\n NavigationEnd,\n NavigationCancel\n} from '@angular/router';\nimport {\n filter,\n map\n} from 'rxjs/operators';\n\n@Component({\n selector: 'rxap-navigation-progress-bar',\n templateUrl: './navigation-progress-bar.component.html',\n styleUrls: [ './navigation-progress-bar.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-navigation-progress-bar' }\n})\nexport class NavigationProgressBarComponent {\n\n public navigating$: Observable<boolean>;\n\n public constructor(\n @Inject(Router) public readonly router: Router\n ) {\n this.navigating$ = this.router.events.pipe(\n filter(\n event =>\n event instanceof NavigationStart ||\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel\n ),\n map(event => event instanceof NavigationStart)\n );\n }\n\n}\n","<mat-toolbar [ngClass]=\"{ open: sidenav?.opened }\" [color]=\"color\" class=\"mat-elevation-z3\">\n <mat-toolbar-row *ngFor=\"let headerComponent of components\">\n <ng-container *ngComponentOutlet=\"headerComponent\"></ng-container>\n </mat-toolbar-row>\n <mat-toolbar-row>\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n fxLayoutGap=\"16px\"\n class=\"content\"\n >\n <rxap-sidenav-toggle-button *ngIf=\"sidenav\" fxFlex=\"nogrow\" [sidenav]=\"sidenav\"></rxap-sidenav-toggle-button>\n <div fxFlex=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-language-selector fxFlex=\"nogrow\"></rxap-language-selector>\n <rxap-apps-button fxFlex=\"nogrow\"></rxap-apps-button>\n <rxap-user-profile-icon *ngIf=\"hasUser$ | async\" fxFlex=\"nogrow\"></rxap-user-profile-icon>\n <div fxFlex=\"nogrow\" *ngIf=\"settingsMenuPanel\">\n <button mat-icon-button [matMenuTriggerFor]=\"settingsMenuPanel\">\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-sign-out fxFlex=\"nogrow\"></rxap-sign-out>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Input,\n Optional,\n Inject,\n} from '@angular/core';\nimport { Constructor } from '@rxap/utilities';\nimport { Subscription, Observable } from 'rxjs';\nimport { tap, map } from 'rxjs/operators';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { UserService } from '@rxap/authentication';\nimport { RXAP_HEADER_COMPONENT } from '../tokens';\nimport { HeaderService } from '@rxap/services';\nimport { MatMenuPanel } from '@angular/material/menu';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'rxap-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-header',\n },\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n @Input()\n public sidenav?: MatSidenav;\n\n public components: Array<Constructor<any>> = [];\n\n public subscriptions = new Subscription();\n\n public hasUser$: Observable<boolean>;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public settingsMenuPanel?: MatMenuPanel;\n\n constructor(\n @Inject(HeaderService)\n public readonly headerComponentService: HeaderService,\n @Inject(UserService)\n private readonly userService: UserService<any>,\n @Optional() @Inject(RXAP_HEADER_COMPONENT) public headerComponent: any\n ) {\n this.hasUser$ = this.userService.user$.pipe(map(Boolean));\n }\n\n public ngOnInit() {\n this.updateComponents();\n this.subscriptions.add(\n this.headerComponentService.update$\n .pipe(tap(() => this.updateComponents()))\n .subscribe()\n );\n }\n\n public updateComponents(): void {\n this.components = this.headerComponentService.getComponents();\n }\n\n public ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignOutComponent } from './sign-out.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SignOutDirectiveModule } from '@rxap/authentication';\n\n\n@NgModule({\n declarations: [SignOutComponent],\n imports: [\n MatButtonModule,\n MatIconModule,\n SignOutDirectiveModule,\n ],\n exports: [SignOutComponent]\n})\nexport class SignOutComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { UserProfileIconComponent } from './user-profile-icon.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { AvatarBackgroundImageDirectiveModule } from '@rxap/directives';\n\n\n@NgModule({\n declarations: [UserProfileIconComponent],\n imports: [\n MatMenuModule,\n MatIconModule,\n CommonModule,\n FlexLayoutModule,\n AvatarBackgroundImageDirectiveModule,\n ],\n exports: [UserProfileIconComponent]\n})\nexport class UserProfileIconComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { NavigationProgressBarComponent } from './navigation-progress-bar.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [NavigationProgressBarComponent],\n imports: [\n MatProgressBarModule,\n CommonModule\n ],\n exports: [NavigationProgressBarComponent]\n})\nexport class NavigationProgressBarComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { SidenavToggleButtonComponent } from './sidenav-toggle-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [SidenavToggleButtonComponent],\n imports: [\n MatIconModule,\n CommonModule,\n MatButtonModule\n ],\n exports: [SidenavToggleButtonComponent]\n})\nexport class SidenavToggleButtonComponentModule { }\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { ResetService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-reset-button',\n templateUrl: './reset-button.component.html',\n styleUrls: ['./reset-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-reset-button' },\n})\nexport class ResetButtonComponent {\n constructor(\n @Inject(ResetService)\n public readonly resetService: ResetService\n ) {}\n}\n","<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { ResetButtonComponent } from './reset-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ResetButtonComponent],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [ResetButtonComponent]\n})\nexport class ResetButtonComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { AppsButtonComponent } from './apps-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ AppsButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n MatGridListModule,\n OverlayModule,\n FlexLayoutModule,\n CommonModule,\n RouterModule\n ],\n exports: [ AppsButtonComponent ]\n})\nexport class AppsButtonComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { LanguageSelectorComponent } from './language-selector.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [ LanguageSelectorComponent ],\n imports: [\n MatSelectModule,\n CommonModule,\n FormsModule\n ],\n exports: [ LanguageSelectorComponent ]\n})\nexport class LanguageSelectorComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { HeaderComponent } from './header.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { SignOutComponentModule } from './sign-out/sign-out.component.module';\nimport { UserProfileIconComponentModule } from './user-profile-icon/user-profile-icon.component.module';\nimport { NavigationProgressBarComponentModule } from './navigation-progress-bar/navigation-progress-bar.component.module';\nimport { SidenavToggleButtonComponentModule } from './sidenav-toggle-button/sidenav-toggle-button.component.module';\nimport { ResetButtonComponentModule } from './reset-button/reset-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { AppsButtonComponentModule } from './apps-button/apps-button.component.module';\nimport { LanguageSelectorComponentModule } from './language-selector/language-selector.component.module';\n\n\n@NgModule({\n declarations: [ HeaderComponent ],\n imports: [\n MatToolbarModule,\n SignOutComponentModule,\n UserProfileIconComponentModule,\n NavigationProgressBarComponentModule,\n SidenavToggleButtonComponentModule,\n ResetButtonComponentModule,\n FlexLayoutModule,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n AppsButtonComponentModule,\n LanguageSelectorComponentModule\n ],\n exports: [ HeaderComponent ]\n})\nexport class HeaderModule {}\n","import {\n Injectable,\n Optional,\n Inject\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\nimport {\n FooterService,\n HeaderService\n} from '@rxap/services';\nimport { RXAP_LOGO_CONFIG } from '../tokens';\nimport { LogoConfig } from '../types';\nimport { ConfigService } from '@rxap/config';\nimport { MatDrawerMode } from '@angular/material/sidenav';\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutComponentService {\n\n public opened$ = new BehaviorSubject<boolean>(true);\n public mode$ = new BehaviorSubject<MatDrawerMode>('side');\n public fixedBottomGap$: Observable<number>;\n public fixedTopGap$ = new BehaviorSubject<number>(64);\n public logo: LogoConfig;\n\n public constructor(\n public readonly footerComponentService: FooterService,\n public readonly headerComponentService: HeaderService,\n @Optional() @Inject(RXAP_LOGO_CONFIG) logoConfig: LogoConfig | null = null,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.mode$.next(this.config.get('navigation.mode', this.mode$.value));\n this.opened$.next(this.config.get('navigation.open', this.opened$.value));\n this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));\n this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);\n this.headerComponentService.update$.pipe(\n tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))\n ).subscribe();\n this.logo = logoConfig ?? {\n src: '/assets/logo.png',\n width: '192'\n };\n }\n\n}\n","import { Directive, TemplateRef, Inject } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavFooter]',\n})\nexport class SidenavFooterDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","import { Directive, Inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavHeader]',\n})\nexport class SidenavHeaderDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConfigService } from '@rxap/config';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavComponentService {\n\n public readonly collapsed$ = new BehaviorSubject(true);\n\n constructor(private readonly config: ConfigService) {\n this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));\n }\n\n public toggleNavigationCollapse(): void {\n this.collapsed$.next(!this.collapsed$.value);\n }\n\n}\n","import { IconConfig } from '@rxap/utilities';\nimport {\n InjectionToken,\n Type,\n AbstractType\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport type Navigation = Array<NavigationItem | NavigationDividerItem>;\n\nexport type NavigationWithInserts = Array<\n | NavigationItem<NavigationWithInserts>\n | NavigationDividerItem\n | NavigationInsertItem\n>;\n\nexport interface NavigationDividerItem {\n divider: boolean;\n title?: string;\n}\n\nexport function IsNavigationDividerItem(\n item: any\n): item is NavigationDividerItem {\n return item && item.hasOwnProperty('divider') && item.divider;\n}\n\nexport interface NavigationInsertItem {\n insert: string;\n}\n\nexport function IsNavigationInsertItem(\n item: any\n): item is NavigationInsertItem {\n return item && item.hasOwnProperty('insert');\n}\n\nexport interface NavigationStatus {\n isVisible(\n navigationItem: NavigationItem,\n ): Observable<boolean> | Promise<boolean> | boolean;\n}\n\nexport interface NavigationItem<Children = Navigation> extends Record<string, unknown> {\n routerLink: string[];\n label: string;\n children?: Children;\n icon?: IconConfig;\n status?: Array<\n | Type<NavigationStatus>\n | InjectionToken<NavigationStatus>\n | AbstractType<NavigationStatus>\n >;\n}\n\nexport function IsNavigationItem(item: any): item is NavigationItem {\n return (\n item && item.hasOwnProperty('routerLink') && item.hasOwnProperty('label')\n );\n}\n","import type { Injector } from '@angular/core';\nimport {\n Injectable,\n Inject,\n Optional,\n INJECTOR\n} from '@angular/core';\nimport {\n Observable,\n ReplaySubject,\n of,\n combineLatest,\n from\n} from 'rxjs';\nimport {\n Navigation,\n NavigationWithInserts,\n IsNavigationInsertItem,\n IsNavigationItem,\n IsNavigationDividerItem,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS\n} from '../tokens';\nimport {\n switchMap,\n map,\n catchError\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n public readonly config$: Observable<Navigation>;\n\n private inserts = new Map<string, NavigationWithInserts>();\n\n private readonly navigation: NavigationWithInserts;\n\n private readonly navigation$ = new ReplaySubject<Navigation>(1);\n\n constructor(\n @Inject(RXAP_NAVIGATION_CONFIG)\n navigation: any,\n @Inject(INJECTOR)\n private readonly injector: Injector,\n @Optional()\n @Inject(RXAP_NAVIGATION_CONFIG_INSERTS)\n inserts: any | null = null\n ) {\n if (typeof navigation === 'function') {\n this.navigation = navigation();\n } else {\n this.navigation = navigation;\n }\n if (inserts) {\n Object.entries(inserts).forEach(([id, insert]: [string, any]) =>\n this.insert(id, insert, false)\n );\n }\n this.updateNavigation();\n this.config$ = this.navigation$.pipe(\n switchMap((navigationWithoutStatusCheck) =>\n this.checkNavigationStatusProviders(navigationWithoutStatusCheck)\n )\n );\n }\n\n /**\n * @deprecated use add instead\n * @param id\n * @param value\n * @param update\n */\n public insert(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.add(id, value, update);\n }\n\n public add(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.inserts.set(id, value);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public has(id: string): boolean {\n return this.inserts.has(id);\n }\n\n public get(id: string): NavigationWithInserts | undefined {\n return this.inserts.get(id);\n }\n\n public remove(id: string, update: boolean = true): void {\n this.inserts.delete(id);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public updateNavigation(): void {\n this.navigation$.next(this.replaceInserts(this.navigation));\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationItemStatusProviders(\n navigationItem: NavigationItem | NavigationDividerItem\n ): Observable<NavigationItem | NavigationDividerItem | null> {\n if (IsNavigationDividerItem(navigationItem) || !navigationItem.status) {\n return of(navigationItem);\n }\n const isVisibleArray$: Array<Observable<boolean>> = navigationItem.status\n .map((statusToken) => this.injector.get(statusToken))\n .map((status) => {\n const isVisible = status.isVisible(navigationItem);\n if (typeof isVisible === 'boolean') {\n return of(isVisible);\n } else {\n return from(isVisible);\n }\n }).map(isVisible$ => isVisible$.pipe(catchError(e => {\n console.error('isVisible method failed: ' + e.message);\n return of(false);\n })));\n // TODO : dont wait for all status services to complete, but cancel waiting if one returns false\n return combineLatest(isVisibleArray$).pipe(\n map((isVisibleArray) =>\n isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)\n ),\n map((isVisible) => (isVisible ? navigationItem : null)),\n switchMap((navigationItemOrNull) => {\n if (navigationItemOrNull) {\n if (navigationItemOrNull.children?.length) {\n return this.checkNavigationStatusProviders(\n navigationItemOrNull.children\n ).pipe(\n map((children) => ({\n ...navigationItemOrNull,\n children,\n }))\n );\n }\n return of(navigationItemOrNull);\n }\n return of(null);\n })\n );\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationStatusProviders(\n navigation: Navigation\n ): Observable<Navigation> {\n return combineLatest(\n navigation.map((navigationItem) =>\n this.checkNavigationItemStatusProviders(navigationItem)\n )\n ).pipe(\n map((navigationWithNullItems) => {\n const cleanNavigation: Navigation = [];\n\n for (const navigationItem of navigationWithNullItems) {\n if (navigationItem !== null) {\n cleanNavigation.push(navigationItem);\n }\n }\n\n return cleanNavigation;\n })\n );\n }\n\n private replaceInserts(\n navigationWithInserts: NavigationWithInserts\n ): Navigation {\n const navigation: Navigation = [];\n\n for (const navigationItem of navigationWithInserts) {\n if (IsNavigationInsertItem(navigationItem)) {\n if (this.inserts.has(navigationItem.insert)) {\n navigation.push(\n ...this.replaceInserts(this.inserts.get(navigationItem.insert)!)\n );\n }\n } else if (IsNavigationItem(navigationItem)) {\n navigation.push({\n ...navigationItem,\n children: this.replaceInserts(navigationItem.children ?? []),\n });\n } else if (IsNavigationDividerItem(navigationItem)) {\n navigation.push(navigationItem);\n }\n }\n\n return navigation;\n }\n}\n","<a [routerLink]=\"item.routerLink\"\n routerLinkActive=\"link-active\"\n [matTooltipDisabled]=\"!(sidenav.collapsed$ | async)\"\n [matTooltip]=\"item.label\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\" matRipple>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"!(sidenav.collapsed$ | async)\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul rxap-navigation\n *ngIf=\"routerLinkActive.isActive && !(sidenav.collapsed$ | async) && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div class=\"navigation-overlay-container mat-elevation-z1\"\n (mouseenter)=\"lockeOverlay = true\" (mouseleave)=\"lockeOverlay = false; onMouseleave()\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\" class=\"icon\"></mat-icon>\n <span class=\"label\">{{ asNavigationItem(child).label }}</span>\n </a>\n </li>\n </ul>\n </div>\n</ng-template>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ViewChild,\n OnDestroy,\n AfterViewInit,\n HostBinding,\n ViewEncapsulation,\n ElementRef,\n Renderer2,\n HostListener,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n EmbeddedViewRef,\n Inject,\n} from '@angular/core';\nimport { Required, DebounceCall } from '@rxap/utilities';\nimport { trigger, style, transition, animate } from '@angular/animations';\nimport {\n NavigationItem,\n Navigation,\n NavigationDividerItem,\n} from '../navigation-item';\nimport { RouterLinkActive, Router, NavigationEnd } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport {\n filter,\n tap,\n delay,\n startWith,\n distinctUntilChanged,\n skip,\n} from 'rxjs/operators';\nimport { SidenavComponentService } from '../../sidenav/sidenav.component.service';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'li[rxap-navigation-item]',\n templateUrl: './navigation-item.component.html',\n styleUrls: ['./navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'rxap-navigation-item',\n },\n animations: [\n trigger('sub-nav', [\n transition(':enter', [\n style({ display: 'block', height: '0', overflow: 'hidden' }),\n animate(150, style({ height: '*' })),\n ]),\n transition(':leave', [\n style({ overflow: 'hidden' }),\n animate(300, style({ height: '0' })),\n style({ display: 'none' }),\n ]),\n ]),\n ],\n})\nexport class NavigationItemComponent\n implements OnChanges, AfterViewInit, OnDestroy, OnInit\n{\n public children: Navigation | null = null;\n\n @ViewChild(RouterLinkActive, { static: true })\n public routerLinkActive!: RouterLinkActive;\n\n @Input()\n @Required\n public item!: NavigationItem;\n\n @Input()\n public level: number = 0;\n\n @HostBinding('class.active')\n public isActive: boolean = false;\n\n @ViewChild('navigationOverlay')\n private _navigationOverlay!: TemplateRef<any>;\n\n private readonly _subscription = new Subscription();\n\n private _overlayRef?: OverlayRef;\n private _embeddedViewRef?: EmbeddedViewRef<any>;\n\n /**\n * indicates the mouse is over the\n */\n public lockeOverlay: boolean = false;\n\n constructor(\n @Inject(Router)\n private readonly router: Router,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n @Inject(Overlay)\n private readonly overlay: Overlay,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.item) {\n const item: NavigationItem = changes.item.currentValue;\n this.children =\n item.children && item.children.length ? item.children : null;\n }\n }\n\n public ngAfterViewInit() {\n this._subscription.add(\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n startWith(true),\n delay(100),\n tap(() => {\n if (this.routerLinkActive.isActive) {\n if (!this.sidenav.collapsed$.value) {\n // only close the overlay if sidenav collapsed\n this._overlayRef?.detach();\n }\n this.renderer.addClass(this.elementRef.nativeElement, 'active');\n } else {\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'active'\n );\n }\n })\n )\n .subscribe()\n );\n }\n\n public ngOnInit() {\n // detach the navigation overlay if the sidenav collapsed\n // state is changed\n this._subscription.add(\n this.sidenav.collapsed$\n .pipe(\n skip(1),\n distinctUntilChanged(),\n tap(() => this._overlayRef?.detach())\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n this._overlayRef?.dispose();\n }\n\n @HostListener('mouseenter')\n public onMouseenter() {\n if (this.children) {\n if (!this.routerLinkActive.isActive || this.sidenav.collapsed$.value) {\n if (!this._overlayRef) {\n this._overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originY: 'top',\n originX: 'end',\n overlayY: 'top',\n overlayX: 'start',\n },\n ]),\n });\n }\n if (!this._overlayRef.hasAttached()) {\n this._embeddedViewRef = this._overlayRef.attach(\n new TemplatePortal(this._navigationOverlay, this.viewContainerRef)\n );\n }\n }\n }\n }\n\n @HostListener('mouseleave')\n @DebounceCall(100)\n public onMouseleave() {\n if (!this.lockeOverlay) {\n this._overlayRef?.detach();\n }\n }\n\n // region type save item property\n\n // required to check the type of the item property in the ngFor loop\n\n public isNavigationDividerItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationDividerItem {\n return (item as any)['divider'];\n }\n\n public isNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationItem {\n return !this.isNavigationDividerItem(item);\n }\n\n public asNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): NavigationItem {\n if (!this.isNavigationItem(item)) {\n throw new Error('The item is not a NavigationItem');\n }\n return item;\n }\n\n // endregion\n}\n","<ng-template [ngForOf]=\"items\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <div *ngIf=\"!(sidenav.collapsed$ | async)\" class=\"divider-title\" fxFlex=\"nogrow\" fxLayout=\"row\" fxLayoutAlign=\"start end\">\n <span fxFlex=\"nogrow\" *ngIf=\"item.title\">{{item.title}}</span>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li class=\"item\" rxap-navigation-item [level]=\"level\" [item]=\"asNavigationItem(item)\"></li>\n </ng-template>\n</ng-template>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n ViewEncapsulation,\n HostBinding,\n Inject\n} from '@angular/core';\nimport {\n Navigation,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n Required,\n coerceBoolean\n} from '@rxap/utilities';\nimport { NavigationService } from './navigation.service';\nimport { Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { SidenavComponentService } from '../sidenav/sidenav.component.service';\n\n@Component({\n selector: 'ul[rxap-navigation]',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'rxap-navigation' },\n})\nexport class NavigationComponent implements OnInit, OnDestroy {\n @HostBinding('class.rxap-root-navigation')\n public _root = false;\n\n @Input()\n public set root(value: boolean | '') {\n this._root = coerceBoolean(value);\n }\n\n @Input()\n @Required\n public items!: Navigation;\n\n public subscription?: Subscription;\n\n @Input()\n public level: number = 0;\n\n constructor(\n @Inject(NavigationService)\n private readonly navigationService: NavigationService,\n @Inject(ChangeDetectorRef)\n private readonly cdr: ChangeDetectorRef,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService\n ) {}\n\n public ngOnInit(): void {\n if (this._root) {\n this.items = [];\n this.subscription = this.navigationService.config$\n .pipe(\n tap((navigation) => (this.items = navigation)),\n tap(() => this.cdr.detectChanges())\n )\n .subscribe();\n }\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n // region type save item property\n\n // required to check the type of the item property in the ngFor loop\n\n public isNavigationDividerItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationDividerItem {\n return (item as any)['divider'];\n }\n\n public isNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationItem {\n return !this.isNavigationDividerItem(item);\n }\n\n public asNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): NavigationItem {\n if (!this.isNavigationItem(item)) {\n throw new Error('The item is not a NavigationItem');\n }\n return item;\n }\n\n // endregion\n}\n","<div class=\"container\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div fxFlex=\"nogrow\" class=\"header\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n </ng-template>\n <div fxFlex=\"grow\" class=\"nav-container\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button mat-button class=\"sidebar-toggle\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" fxFlex=\"nogrow\"\n (click)=\"sidenav.toggleNavigationCollapse()\">\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon fxFlex=\"nogrow\" class=\"arrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n=\"@@rxap.layout.navigation.collapse-sidebar\">Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n <div fxFlex=\"nogrow\" class=\"footer\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ContentChild\n} from '@angular/core';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavComponentService } from './sidenav.component.service';\n\n@Component({\n selector: 'rxap-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: [ './sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-sidenav'\n }\n})\nexport class SidenavComponent {\n\n @ContentChild(SidenavFooterDirective)\n public sidenavFooterDirective?: SidenavFooterDirective;\n\n @ContentChild(SidenavHeaderDirective)\n public sidenavHeaderDirective?: SidenavHeaderDirective;\n\n constructor(public readonly sidenav: SidenavComponentService) {}\n\n}\n","import {\n Injectable,\n Inject\n} from '@angular/core';\nimport {\n HeaderService,\n FooterService\n} from '@rxap/services';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavContentComponentService {\n\n public headerRows$ = new BehaviorSubject<number>(1);\n public footerRows$: Observable<number>;\n public innerHeight$: Observable<string>;\n public marginTop$: Observable<string>;\n public marginBottom$: Observable<string>;\n\n constructor(\n @Inject(FooterService) public readonly footerComponentService: FooterService,\n @Inject(HeaderService) public readonly headerComponentService: HeaderService\n ) {\n this.headerRows$.next(this.headerComponentService.countComponent);\n\n this.footerComponentService.portalCount$.pipe().subscribe();\n\n this.footerRows$ = this.footerComponentService.portalCount$;\n\n this.headerComponentService.update$.pipe(\n tap(() => this.headerRows$.next(this.headerComponentService.countComponent))\n ).subscribe();\n\n this.innerHeight$ = combineLatest([\n this.headerRows$,\n this.footerRows$\n ]).pipe(\n map(([ headerRows, footerRows ]) => `calc(100% - ${64 * (headerRows + footerRows)}px)`)\n );\n\n this.marginTop$ = this.headerRows$.pipe(\n map(headerRows => `${headerRows * 64}px`)\n );\n\n this.marginBottom$ = this.footerRows$.pipe(\n map(footerRows => `${footerRows * 64}px`)\n );\n\n }\n\n}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { Required } from '@rxap/utilities';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { SidenavContentComponentService } from './sidenav-content.component.service';\n\n@Component({\n selector: 'rxap-sidenav-content',\n templateUrl: './sidenav-content.component.html',\n styleUrls: [ './sidenav-content.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SidenavContentComponent implements OnInit {\n\n @Input() @Required public sidenav!: MatSidenav;\n\n constructor(public readonly sccs: SidenavContentComponentService) { }\n\n ngOnInit() {\n }\n\n}\n","<div [ngClass]=\"{ 'open': (sidenav.openedChange | async) }\" [ngStyle]=\"{\n height: sccs.innerHeight$ | async,\n marginTop: sccs.marginTop$ | async,\n marginBottom: sccs.marginBottom$ | async\n}\" class=\"container\">\n <!-- <dx-breadcrumb></dx-breadcrumb>-->\n <div class=\"inner\">\n <router-outlet></router-outlet>\n <ng-content></ng-content>\n </div>\n</div>\n","<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter\n} from '@angular/core';\n\n@Component({\n selector: 'rxap-toggle-window-sidenav-button',\n templateUrl: './toggle-window-sidenav-button.component.html',\n styleUrls: [ './toggle-window-sidenav-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-toggle-window-sidenav-button'\n }\n})\nexport class ToggleWindowSidenavButtonComponent implements OnInit {\n\n @Input()\n public openWindowSidenav = false;\n\n @Output()\n public openWindowSidenavChange = new EventEmitter<boolean>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public toggle() {\n this.openWindowSidenav = !this.openWindowSidenav;\n this.openWindowSidenavChange.emit(this.openWindowSidenav);\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Inject,\n OnDestroy\n} from '@angular/core';\nimport {\n WindowContainerSidenavService,\n ContainerComponent\n} from '@rxap/services';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-window-container-sidenav',\n templateUrl: './window-container-sidenav.component.html',\n styleUrls: [ './window-container-sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WindowContainerSidenavComponent implements OnInit, OnDestroy {\n\n public portals = new Map<string, ComponentPortal<any>>();\n\n private subscription = new Subscription();\n\n constructor(\n @Inject(WindowContainerSidenavService)\n public readonly service: WindowContainerSidenavService\n ) { }\n\n public ngOnInit(): void {\n const components = this.service.getAll();\n for (const component of components) {\n this.add(component);\n }\n this.subscription.add(this.service.add$.pipe(\n tap(component => this.add(component))\n ).subscribe());\n this.subscription.add(this.service.remove$.pipe(\n tap(component => this.remove(component))\n ).subscribe());\n }\n\n public ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n public trackBy(index: number, id: string) {\n return id;\n }\n\n private add(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n throw new Error(`Component portal with id ${component.id} already exists`);\n }\n const portal = new ComponentPortal(component.component, component.viewContainerRef, component.injector, component.componentFactoryResolver);\n this.portals.set(component.id, portal);\n }\n\n private remove(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n const portal = this.portals.get(component.id)!;\n this.portals.delete(component.id);\n portal.detach();\n }\n }\n\n}\n","<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewChild\n} from '@angular/core';\nimport { LayoutComponentService } from './layout.component.service';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n@Component({\n selector: 'rxap-layout',\n templateUrl: './layout.component.html',\n styleUrls: [ './layout.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LayoutComponent {\n\n public openWindowSidenav = false;\n\n @ViewChild(MatSidenav, { static: true }) public sidenav!: MatSidenav;\n\n constructor(\n public readonly layoutComponentService: LayoutComponentService,\n ) { }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n of\n} from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ReplaceRouterPathsService {\n\n public transform(routerLink: string[]): Observable<string[]> {\n return of(routerLink);\n }\n\n}\n","import {\n NgModule,\n Pipe,\n PipeTransform\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ReplaceRouterPathsService } from './replace-router-paths.service';\n\n@Pipe({\n name: 'replaceRouterPaths'\n})\nexport class ReplaceRouterPathsPipe implements PipeTransform {\n constructor(\n public rrp: ReplaceRouterPathsService\n ) {}\n\n transform(routerLink: string[]): Observable<string[]> {\n return this.rrp.transform(routerLink);\n }\n}\n\n@NgModule({\n declarations: [ ReplaceRouterPathsPipe ],\n exports: [ ReplaceRouterPathsPipe ]\n})\nexport class ReplaceRouterPathsPipeModule {}\n","import { NgModule } from '@angular/core';\nimport { NavigationComponent } from './navigation.component';\nimport { NavigationItemComponent } from './navigation-item/navigation-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { ReplaceRouterPathsPipeModule } from './replace-router-paths.pipe';\nimport { IconDirectiveModule } from '@rxap/material-directives/icon';\nimport { ButtonComponentModule } from '@rxap/components';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { StopPropagationDirectiveModule } from '@rxap/directives';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n declarations: [ NavigationComponent, NavigationItemComponent ],\n imports: [\n MatIconModule,\n MatButtonModule,\n FlexLayoutModule,\n RouterModule,\n CommonModule,\n IconDirectiveModule,\n ButtonComponentModule,\n MatRippleModule,\n MatDividerModule,\n StopPropagationDirectiveModule,\n MatTooltipModule,\n ReplaceRouterPathsPipeModule\n ],\n exports: [ NavigationComponent ]\n})\nexport class NavigationComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavComponent } from './sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NavigationComponentModule } from '../navigation/navigation.component.module';\nimport { CommonModule } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n imports: [\n FlexLayoutModule,\n NavigationComponentModule,\n CommonModule,\n MatDividerModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n})\nexport class SidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavContentComponent } from './sidenav-content.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ SidenavContentComponent ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [ SidenavContentComponent ]\n})\nexport class SidenavContentModule {}\n","import { NgModule } from '@angular/core';\nimport { WindowContainerSidenavComponent } from './window-container-sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ WindowContainerSidenavComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule,\n PortalModule,\n ],\n exports: [ WindowContainerSidenavComponent ],\n})\nexport class WindowContainerSidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { ToggleWindowSidenavButtonComponent } from './toggle-window-sidenav-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [ ToggleWindowSidenavButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n CommonModule,\n ],\n exports: [ ToggleWindowSidenavButtonComponent ],\n})\nexport class ToggleWindowSidenavButtonModule {}\n","import {\n NgModule,\n ModuleWithProviders\n} from '@angular/core';\nimport { LayoutComponent } from './layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { FooterModule } from '../footer/footer.component.module';\nimport { HeaderModule } from '../header/header.component.module';\nimport { CommonModule } from '@angular/common';\nimport { SidenavModule } from '../sidenav/sidenav.component.module';\nimport { SidenavContentModule } from '../sidenav-content/sidenav-content.component.module';\nimport { NavigationWithInserts } from '../navigation/navigation-item';\nimport { RXAP_NAVIGATION_CONFIG } from '../tokens';\nimport { WindowContainerSidenavModule } from '../window-container-sidenav/window-container-sidenav.component.module';\nimport { ToggleWindowSidenavButtonModule } from '../toggle-window-sidenav-button/toggle-window-sidenav-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [ LayoutComponent ],\n imports: [\n MatSidenavModule,\n FooterModule,\n HeaderModule,\n CommonModule,\n SidenavModule,\n SidenavContentModule,\n WindowContainerSidenavModule,\n ToggleWindowSidenavButtonModule,\n FlexLayoutModule,\n RouterModule\n ],\n exports: [ LayoutComponent ]\n})\nexport class LayoutModule {\n\n public static withNavigation(navigation: NavigationWithInserts | (() => NavigationWithInserts)): ModuleWithProviders<LayoutModule> {\n\n return {\n ngModule: LayoutModule,\n providers: [\n {\n provide: RXAP_NAVIGATION_CONFIG,\n useValue: navigation\n }\n ]\n };\n }\n\n}\n","<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Inject\n} from '@angular/core';\nimport {\n VersionService,\n Version\n} from '@rxap/services';\nimport {\n KeyValue,\n Required\n} from '@rxap/utilities';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-version',\n templateUrl: './version.component.html',\n styleUrls: [ './version.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VersionComponent implements OnInit, OnDestroy {\n\n @Required\n public modules!: KeyValue<Version>;\n\n private subscription?: Subscription;\n\n constructor(\n @Inject(VersionService) private version: VersionService\n ) { }\n\n public ngOnInit(): void {\n this.modules = this.version.get();\n this.subscription = this.version.update$.pipe(\n tap(() => this.modules = this.version.get())\n ).subscribe();\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { VersionComponent } from './version.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ VersionComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule\n ],\n exports: [ VersionComponent ]\n})\nexport class VersionComponentModule {}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n NgModule,\n Inject,\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Directive({\n selector: '[rxapFooter]',\n})\nexport class FooterDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n constructor(\n @Inject(FooterService)\n private readonly footerService: FooterService,\n @Inject(TemplateRef)\n private readonly template: TemplateRef<void>,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnInit() {\n this._portal = new TemplatePortal<void>(\n this.template,\n this.viewContainerRef\n );\n this.footerService.pushPortal(this._portal);\n }\n\n public ngOnDestroy() {\n if (this._portal) {\n this.footerService.removePortal(this._portal);\n }\n }\n}\n\n@NgModule({\n declarations: [FooterDirective],\n exports: [FooterDirective],\n})\nexport class FooterDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rxap-layout.mjs","sources":["../../../../libs/layout/src/lib/tokens.ts","../../../../libs/layout/src/lib/footer/footer.component.html","../../../../libs/layout/src/lib/footer/footer.component.ts","../../../../libs/layout/src/lib/footer/footer.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.html","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.html","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.html","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.html","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.html","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.ts","../../../../libs/layout/src/lib/header/header.component.html","../../../../libs/layout/src/lib/header/header.component.ts","../../../../libs/layout/src/lib/header/sign-out/sign-out.component.module.ts","../../../../libs/layout/src/lib/header/user-profile-icon/user-profile-icon.component.module.ts","../../../../libs/layout/src/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.ts","../../../../libs/layout/src/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.ts","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.html","../../../../libs/layout/src/lib/header/reset-button/reset-button.component.module.ts","../../../../libs/layout/src/lib/header/apps-button/apps-button.component.module.ts","../../../../libs/layout/src/lib/header/language-selector/language-selector.component.module.ts","../../../../libs/layout/src/lib/header/header.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.service.ts","../../../../libs/layout/src/lib/sidenav/sidenav-footer.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav-header.directive.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item.ts","../../../../libs/layout/src/lib/navigation/navigation.service.ts","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.html","../../../../libs/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../libs/layout/src/lib/navigation/navigation.component.html","../../../../libs/layout/src/lib/navigation/navigation.component.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.html","../../../../libs/layout/src/lib/sidenav/sidenav.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.service.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.html","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.html","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.ts","../../../../libs/layout/src/lib/layout/layout.component.html","../../../../libs/layout/src/lib/layout/layout.component.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.service.ts","../../../../libs/layout/src/lib/navigation/replace-router-paths.pipe.ts","../../../../libs/layout/src/lib/navigation/navigation.component.module.ts","../../../../libs/layout/src/lib/sidenav/sidenav.component.module.ts","../../../../libs/layout/src/lib/sidenav-content/sidenav-content.component.module.ts","../../../../libs/layout/src/lib/window-container-sidenav/window-container-sidenav.component.module.ts","../../../../libs/layout/src/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.ts","../../../../libs/layout/src/lib/layout/layout.component.module.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.html","../../../../libs/layout/src/lib/sidenav/version/version.component.ts","../../../../libs/layout/src/lib/sidenav/version/version.component.module.ts","../../../../libs/layout/src/lib/footer.directive.ts","../../../../libs/layout/src/rxap-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LogoConfig } from './types';\nimport { NavigationWithInserts } from './navigation/navigation-item';\n\nexport const RXAP_NAVIGATION_CONFIG = new InjectionToken<NavigationWithInserts | (() => NavigationWithInserts)>('rxap/layout/navigation-config');\nexport const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken<Record<string, NavigationWithInserts>>('rxap/layout/navigation-config-inserts');\n\nexport const RXAP_FOOTER_COMPONENT = new InjectionToken('rxap/layout/footer-component');\nexport const RXAP_HEADER_COMPONENT = new InjectionToken('rxap/layout/header-component');\nexport const RXAP_LOGO_CONFIG = new InjectionToken<LogoConfig>('rxap/layout/logo-config');\nexport const RXAP_LAYOUT_APPS_GRID = new InjectionToken('rxap/layout/apps-grid');\n","<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-footer',\n templateUrl: './footer.component.html',\n styleUrls: [ './footer.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FooterComponent {\n\n constructor(\n public readonly footerService: FooterService\n ) {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { FooterComponent } from './footer.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ FooterComponent ],\n imports: [\n MatToolbarModule,\n CommonModule,\n PortalModule\n ],\n exports: [ FooterComponent ]\n})\nexport class FooterModule {}\n","<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n","import {\n Component,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { Required } from '@rxap/utilities';\n\n@Component({\n selector: 'rxap-sidenav-toggle-button',\n templateUrl: './sidenav-toggle-button.component.html',\n styleUrls: [ './sidenav-toggle-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sidenav-toggle-button' }\n})\nexport class SidenavToggleButtonComponent {\n\n @Input()\n @Required\n public sidenav!: MatSidenav;\n\n}\n","<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Injectable,\n Inject,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\n\nexport const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language';\nexport const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY =\n 'rxap__selected_language_last_change';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageSelectorService {\n public readonly languages: any;\n public readonly defaultLanguage: string;\n public selectedLanguage: string;\n\n constructor(\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.languages = this.config.get<any>('i18n.languages') ?? {};\n this.defaultLanguage =\n this.config.get('i18n.defaultLanguage') ??\n Object.keys(this.languages)[0] ??\n 'en';\n this.selectedLanguage =\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??\n this.defaultLanguage;\n }\n\n public setLanguage(language: string) {\n if (language !== this.selectedLanguage) {\n this.redirect(language);\n }\n }\n\n public autoRedirect() {\n if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {\n this.redirect(\n localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)!\n );\n }\n }\n\n private redirect(language: string) {\n const currentUrl = location.origin + location.pathname + location.search;\n const redirectUrl =\n location.origin +\n `/${language}` +\n location.pathname.replace(new RegExp(`^\\/${this.selectedLanguage}`), '') +\n location.search;\n this.selectedLanguage = language;\n localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);\n if (currentUrl !== redirectUrl) {\n if (this.checkLastChange()) {\n location.replace(redirectUrl);\n }\n } else {\n console.log('Redirect not required');\n }\n }\n\n private checkLastChange(): boolean {\n const lastChangeString = localStorage.getItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY\n );\n if (lastChangeString) {\n if (Date.now() - parseInt(lastChangeString, 10) < 1000) {\n return false;\n }\n }\n localStorage.setItem(\n RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY,\n Date.now().toFixed(0)\n );\n return true;\n }\n}\n\n@Component({\n selector: 'rxap-language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-language-selector' },\n})\nexport class LanguageSelectorComponent {\n constructor(public readonly language: LanguageSelectorService) {}\n}\n","<ng-template [ngIf]=\"grid && grid.length\">\n <button #trigger=\"cdkOverlayOrigin\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n <ng-template (overlayOutsideClick)=\"isOpen = false\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n cdkConnectedOverlay>\n\n <div class=\"grid-container\">\n\n <ul [ngStyle]=\"{ columns: columns }\" class=\"grid\">\n <li *ngFor=\"let item of gridWithPadding\" [ngClass]=\"{ empty: item.empty }\">\n <a *ngIf=\"!item.empty\" [href]=\"item.href\">\n\n <span fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"12px\">\n <img [src]=\"item.image\" width=\"53px\">\n <span>{{item.label}}</span>\n </span>\n\n </a>\n </li>\n </ul>\n\n </div>\n\n </ng-template>\n</ng-template>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject,\n Optional,\n} from '@angular/core';\nimport { RXAP_LAYOUT_APPS_GRID } from '../../tokens';\nimport { ConfigService } from '@rxap/config';\n\nexport interface AppsButtonGridItem {\n image: string;\n label: string;\n href: string;\n empty?: false;\n}\n\nexport interface EmptyAppsButtonGridItem {\n empty: true;\n href?: undefined;\n label?: undefined;\n image?: undefined;\n}\n\n@Component({\n selector: 'rxap-apps-button',\n templateUrl: './apps-button.component.html',\n styleUrls: ['./apps-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-apps-button' },\n})\nexport class AppsButtonComponent {\n public get gridWithPadding(): Array<\n AppsButtonGridItem | EmptyAppsButtonGridItem\n > {\n const gridWithPadding: Array<AppsButtonGridItem | EmptyAppsButtonGridItem> =\n this.grid.slice();\n while (gridWithPadding.length % this.columns !== 0) {\n gridWithPadding.push({ empty: true });\n }\n return gridWithPadding;\n }\n\n public get columns() {\n if (this.grid.length < 4) {\n return 1;\n }\n if (this.grid.length < 6) {\n return 2;\n }\n return 3;\n }\n\n public isOpen = false;\n public grid: Array<AppsButtonGridItem> = [];\n\n constructor(\n @Optional()\n @Inject(RXAP_LAYOUT_APPS_GRID)\n grid: any,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.grid = grid ?? this.config.get('navigation.apps') ?? [];\n }\n}\n","<button [matMenuTriggerFor]=\"menu\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n [name]=\"(userName$ | async) ?? ''\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UserService } from '@rxap/authentication';\nimport { map } from 'rxjs/operators';\nimport { isDefined } from '@rxap/utilities/rxjs';\n\n@Component({\n selector: 'rxap-user-profile-icon',\n templateUrl: './user-profile-icon.component.html',\n styleUrls: ['./user-profile-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-user-profile-icon' },\n})\nexport class UserProfileIconComponent {\n public userProfileUrl$: Observable<string | undefined>;\n public userName$: Observable<string>;\n\n constructor(\n @Inject(UserService)\n public userService: UserService\n ) {\n this.userProfileUrl$ = this.userService.user$.pipe(\n isDefined(),\n map((user) => user.photoURL ?? user.avatarUrl)\n );\n this.userName$ = this.userService.user$.pipe(\n isDefined(),\n map(\n (user) =>\n user.name ??\n (user.firstname || user.lastname\n ? [user.firstname, user.lastname].join(' ').trim()\n : null) ??\n user.username\n )\n );\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'rxap-sign-out',\n templateUrl: './sign-out.component.html',\n styleUrls: [ './sign-out.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-sign-out' }\n})\nexport class SignOutComponent {\n\n constructor(\n @Inject(Router)\n private readonly router: Router\n ) {}\n\n public redirectToRoot() {\n this.router.navigate([ '/' ]);\n }\n\n}\n","<button\n rxapSignOut\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n>\n <mat-icon>login</mat-icon>\n</button>\n","<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n","import {\n Component,\n ChangeDetectionStrategy,\n Inject\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n Router,\n NavigationStart,\n NavigationEnd,\n NavigationCancel\n} from '@angular/router';\nimport {\n filter,\n map\n} from 'rxjs/operators';\n\n@Component({\n selector: 'rxap-navigation-progress-bar',\n templateUrl: './navigation-progress-bar.component.html',\n styleUrls: [ './navigation-progress-bar.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-navigation-progress-bar' }\n})\nexport class NavigationProgressBarComponent {\n\n public navigating$: Observable<boolean>;\n\n public constructor(\n @Inject(Router) public readonly router: Router\n ) {\n this.navigating$ = this.router.events.pipe(\n filter(\n event =>\n event instanceof NavigationStart ||\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel\n ),\n map(event => event instanceof NavigationStart)\n );\n }\n\n}\n","<mat-toolbar [ngClass]=\"{ open: sidenav?.opened }\" [color]=\"color\" class=\"mat-elevation-z3\">\n <mat-toolbar-row *ngFor=\"let headerComponent of components\">\n <ng-container *ngComponentOutlet=\"headerComponent\"></ng-container>\n </mat-toolbar-row>\n <mat-toolbar-row>\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n fxLayoutGap=\"16px\"\n class=\"content\"\n >\n <rxap-sidenav-toggle-button *ngIf=\"sidenav\" fxFlex=\"nogrow\" [sidenav]=\"sidenav\"></rxap-sidenav-toggle-button>\n <div fxFlex=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-language-selector fxFlex=\"nogrow\"></rxap-language-selector>\n <rxap-apps-button fxFlex=\"nogrow\"></rxap-apps-button>\n <rxap-user-profile-icon *ngIf=\"hasUser$ | async\" fxFlex=\"nogrow\"></rxap-user-profile-icon>\n <div fxFlex=\"nogrow\" *ngIf=\"settingsMenuPanel\">\n <button mat-icon-button [matMenuTriggerFor]=\"settingsMenuPanel\">\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-sign-out fxFlex=\"nogrow\"></rxap-sign-out>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Input,\n Optional,\n Inject,\n} from '@angular/core';\nimport { Constructor } from '@rxap/utilities';\nimport { Subscription, Observable } from 'rxjs';\nimport { tap, map } from 'rxjs/operators';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { UserService } from '@rxap/authentication';\nimport { RXAP_HEADER_COMPONENT } from '../tokens';\nimport { HeaderService } from '@rxap/services';\nimport { MatMenuPanel } from '@angular/material/menu';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'rxap-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-header',\n },\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n @Input()\n public sidenav?: MatSidenav;\n\n public components: Array<Constructor<any>> = [];\n\n public subscriptions = new Subscription();\n\n public hasUser$: Observable<boolean>;\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public settingsMenuPanel?: MatMenuPanel;\n\n constructor(\n @Inject(HeaderService)\n public readonly headerComponentService: HeaderService,\n @Inject(UserService)\n private readonly userService: UserService<any>,\n @Optional() @Inject(RXAP_HEADER_COMPONENT) public headerComponent: any\n ) {\n this.hasUser$ = this.userService.user$.pipe(map(Boolean));\n }\n\n public ngOnInit() {\n this.updateComponents();\n this.subscriptions.add(\n this.headerComponentService.update$\n .pipe(tap(() => this.updateComponents()))\n .subscribe()\n );\n }\n\n public updateComponents(): void {\n this.components = this.headerComponentService.getComponents();\n }\n\n public ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SignOutComponent } from './sign-out.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SignOutDirectiveModule } from '@rxap/authentication';\n\n\n@NgModule({\n declarations: [SignOutComponent],\n imports: [\n MatButtonModule,\n MatIconModule,\n SignOutDirectiveModule,\n ],\n exports: [SignOutComponent]\n})\nexport class SignOutComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { UserProfileIconComponent } from './user-profile-icon.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { AvatarBackgroundImageDirectiveModule } from '@rxap/directives';\n\n\n@NgModule({\n declarations: [UserProfileIconComponent],\n imports: [\n MatMenuModule,\n MatIconModule,\n CommonModule,\n FlexLayoutModule,\n AvatarBackgroundImageDirectiveModule,\n ],\n exports: [UserProfileIconComponent]\n})\nexport class UserProfileIconComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { NavigationProgressBarComponent } from './navigation-progress-bar.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [NavigationProgressBarComponent],\n imports: [\n MatProgressBarModule,\n CommonModule\n ],\n exports: [NavigationProgressBarComponent]\n})\nexport class NavigationProgressBarComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { SidenavToggleButtonComponent } from './sidenav-toggle-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [SidenavToggleButtonComponent],\n imports: [\n MatIconModule,\n CommonModule,\n MatButtonModule\n ],\n exports: [SidenavToggleButtonComponent]\n})\nexport class SidenavToggleButtonComponentModule { }\n","import { Component, ChangeDetectionStrategy, Inject } from '@angular/core';\nimport { ResetService } from '@rxap/services';\n\n@Component({\n selector: 'rxap-reset-button',\n templateUrl: './reset-button.component.html',\n styleUrls: ['./reset-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'rxap-reset-button' },\n})\nexport class ResetButtonComponent {\n constructor(\n @Inject(ResetService)\n public readonly resetService: ResetService\n ) {}\n}\n","<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { ResetButtonComponent } from './reset-button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ResetButtonComponent],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [ResetButtonComponent]\n})\nexport class ResetButtonComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { AppsButtonComponent } from './apps-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ AppsButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n MatGridListModule,\n OverlayModule,\n FlexLayoutModule,\n CommonModule,\n RouterModule\n ],\n exports: [ AppsButtonComponent ]\n})\nexport class AppsButtonComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { LanguageSelectorComponent } from './language-selector.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [ LanguageSelectorComponent ],\n imports: [\n MatSelectModule,\n CommonModule,\n FormsModule\n ],\n exports: [ LanguageSelectorComponent ]\n})\nexport class LanguageSelectorComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { HeaderComponent } from './header.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { SignOutComponentModule } from './sign-out/sign-out.component.module';\nimport { UserProfileIconComponentModule } from './user-profile-icon/user-profile-icon.component.module';\nimport { NavigationProgressBarComponentModule } from './navigation-progress-bar/navigation-progress-bar.component.module';\nimport { SidenavToggleButtonComponentModule } from './sidenav-toggle-button/sidenav-toggle-button.component.module';\nimport { ResetButtonComponentModule } from './reset-button/reset-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { AppsButtonComponentModule } from './apps-button/apps-button.component.module';\nimport { LanguageSelectorComponentModule } from './language-selector/language-selector.component.module';\n\n\n@NgModule({\n declarations: [ HeaderComponent ],\n imports: [\n MatToolbarModule,\n SignOutComponentModule,\n UserProfileIconComponentModule,\n NavigationProgressBarComponentModule,\n SidenavToggleButtonComponentModule,\n ResetButtonComponentModule,\n FlexLayoutModule,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n AppsButtonComponentModule,\n LanguageSelectorComponentModule\n ],\n exports: [ HeaderComponent ]\n})\nexport class HeaderModule {}\n","import {\n Injectable,\n Optional,\n Inject\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\nimport {\n FooterService,\n HeaderService\n} from '@rxap/services';\nimport { RXAP_LOGO_CONFIG } from '../tokens';\nimport { LogoConfig } from '../types';\nimport { ConfigService } from '@rxap/config';\nimport { MatDrawerMode } from '@angular/material/sidenav';\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutComponentService {\n\n public opened$ = new BehaviorSubject<boolean>(true);\n public mode$ = new BehaviorSubject<MatDrawerMode>('side');\n public fixedBottomGap$: Observable<number>;\n public fixedTopGap$ = new BehaviorSubject<number>(64);\n public logo: LogoConfig;\n\n public constructor(\n public readonly footerComponentService: FooterService,\n public readonly headerComponentService: HeaderService,\n @Optional() @Inject(RXAP_LOGO_CONFIG) logoConfig: LogoConfig | null = null,\n @Inject(ConfigService)\n private readonly config: ConfigService\n ) {\n this.mode$.next(this.config.get('navigation.mode', this.mode$.value));\n this.opened$.next(this.config.get('navigation.open', this.opened$.value));\n this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));\n this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);\n this.headerComponentService.update$.pipe(\n tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))\n ).subscribe();\n this.logo = logoConfig ?? {\n src: '/assets/logo.png',\n width: '192'\n };\n }\n\n}\n","import { Directive, TemplateRef, Inject } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavFooter]',\n})\nexport class SidenavFooterDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","import { Directive, Inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavHeader]',\n})\nexport class SidenavHeaderDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ConfigService } from '@rxap/config';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavComponentService {\n\n public readonly collapsed$ = new BehaviorSubject(true);\n\n constructor(private readonly config: ConfigService) {\n this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));\n }\n\n public toggleNavigationCollapse(): void {\n this.collapsed$.next(!this.collapsed$.value);\n }\n\n}\n","import { IconConfig } from '@rxap/utilities';\nimport {\n InjectionToken,\n Type,\n AbstractType\n} from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport type Navigation = Array<NavigationItem | NavigationDividerItem>;\n\nexport type NavigationWithInserts = Array<\n | NavigationItem<NavigationWithInserts>\n | NavigationDividerItem\n | NavigationInsertItem\n>;\n\nexport interface NavigationDividerItem {\n divider: boolean;\n title?: string;\n}\n\nexport function IsNavigationDividerItem(\n item: any\n): item is NavigationDividerItem {\n return item && item.hasOwnProperty('divider') && item.divider;\n}\n\nexport interface NavigationInsertItem {\n insert: string;\n}\n\nexport function IsNavigationInsertItem(\n item: any\n): item is NavigationInsertItem {\n return item && item.hasOwnProperty('insert');\n}\n\nexport interface NavigationStatus {\n isVisible(\n navigationItem: NavigationItem,\n ): Observable<boolean> | Promise<boolean> | boolean;\n}\n\nexport interface NavigationItem<Children = Navigation> extends Record<string, unknown> {\n routerLink: string[];\n label: string;\n children?: Children;\n icon?: IconConfig;\n status?: Array<\n | Type<NavigationStatus>\n | InjectionToken<NavigationStatus>\n | AbstractType<NavigationStatus>\n >;\n}\n\nexport function IsNavigationItem(item: any): item is NavigationItem {\n return (\n item && item.hasOwnProperty('routerLink') && item.hasOwnProperty('label')\n );\n}\n","import type { Injector } from '@angular/core';\nimport {\n Injectable,\n Inject,\n Optional,\n INJECTOR\n} from '@angular/core';\nimport {\n Observable,\n ReplaySubject,\n of,\n combineLatest,\n from\n} from 'rxjs';\nimport {\n Navigation,\n NavigationWithInserts,\n IsNavigationInsertItem,\n IsNavigationItem,\n IsNavigationDividerItem,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS\n} from '../tokens';\nimport {\n switchMap,\n map,\n catchError\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n public readonly config$: Observable<Navigation>;\n\n private inserts = new Map<string, NavigationWithInserts>();\n\n private readonly navigation: NavigationWithInserts;\n\n private readonly navigation$ = new ReplaySubject<Navigation>(1);\n\n constructor(\n @Inject(RXAP_NAVIGATION_CONFIG)\n navigation: any,\n @Inject(INJECTOR)\n private readonly injector: Injector,\n @Optional()\n @Inject(RXAP_NAVIGATION_CONFIG_INSERTS)\n inserts: any | null = null\n ) {\n if (typeof navigation === 'function') {\n this.navigation = navigation();\n } else {\n this.navigation = navigation;\n }\n if (inserts) {\n Object.entries(inserts).forEach(([id, insert]: [string, any]) =>\n this.insert(id, insert, false)\n );\n }\n this.updateNavigation();\n this.config$ = this.navigation$.pipe(\n switchMap((navigationWithoutStatusCheck) =>\n this.checkNavigationStatusProviders(navigationWithoutStatusCheck)\n )\n );\n }\n\n /**\n * @deprecated use add instead\n * @param id\n * @param value\n * @param update\n */\n public insert(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.add(id, value, update);\n }\n\n public add(\n id: string,\n value: NavigationWithInserts,\n update: boolean = true\n ): void {\n this.inserts.set(id, value);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public has(id: string): boolean {\n return this.inserts.has(id);\n }\n\n public get(id: string): NavigationWithInserts | undefined {\n return this.inserts.get(id);\n }\n\n public remove(id: string, update: boolean = true): void {\n this.inserts.delete(id);\n if (update) {\n this.updateNavigation();\n }\n }\n\n public updateNavigation(): void {\n this.navigation$.next(this.replaceInserts(this.navigation));\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationItemStatusProviders(\n navigationItem: NavigationItem | NavigationDividerItem\n ): Observable<NavigationItem | NavigationDividerItem | null> {\n if (IsNavigationDividerItem(navigationItem) || !navigationItem.status) {\n return of(navigationItem);\n }\n const isVisibleArray$: Array<Observable<boolean>> = navigationItem.status\n .map((statusToken) => this.injector.get(statusToken))\n .map((status) => {\n const isVisible = status.isVisible(navigationItem);\n if (typeof isVisible === 'boolean') {\n return of(isVisible);\n } else {\n return from(isVisible);\n }\n }).map(isVisible$ => isVisible$.pipe(catchError(e => {\n console.error('isVisible method failed: ' + e.message);\n return of(false);\n })));\n // TODO : dont wait for all status services to complete, but cancel waiting if one returns false\n return combineLatest(isVisibleArray$).pipe(\n map((isVisibleArray) =>\n isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)\n ),\n map((isVisible) => (isVisible ? navigationItem : null)),\n switchMap((navigationItemOrNull) => {\n if (navigationItemOrNull) {\n if (navigationItemOrNull.children?.length) {\n return this.checkNavigationStatusProviders(\n navigationItemOrNull.children\n ).pipe(\n map((children) => ({\n ...navigationItemOrNull,\n children,\n }))\n );\n }\n return of(navigationItemOrNull);\n }\n return of(null);\n })\n );\n }\n\n /**\n * @internal\n * @param navigationItem\n */\n public checkNavigationStatusProviders(\n navigation: Navigation\n ): Observable<Navigation> {\n return combineLatest(\n navigation.map((navigationItem) =>\n this.checkNavigationItemStatusProviders(navigationItem)\n )\n ).pipe(\n map((navigationWithNullItems) => {\n const cleanNavigation: Navigation = [];\n\n for (const navigationItem of navigationWithNullItems) {\n if (navigationItem !== null) {\n cleanNavigation.push(navigationItem);\n }\n }\n\n return cleanNavigation;\n })\n );\n }\n\n private replaceInserts(\n navigationWithInserts: NavigationWithInserts\n ): Navigation {\n const navigation: Navigation = [];\n\n for (const navigationItem of navigationWithInserts) {\n if (IsNavigationInsertItem(navigationItem)) {\n if (this.inserts.has(navigationItem.insert)) {\n navigation.push(\n ...this.replaceInserts(this.inserts.get(navigationItem.insert)!)\n );\n }\n } else if (IsNavigationItem(navigationItem)) {\n navigation.push({\n ...navigationItem,\n children: this.replaceInserts(navigationItem.children ?? []),\n });\n } else if (IsNavigationDividerItem(navigationItem)) {\n navigation.push(navigationItem);\n }\n }\n\n return navigation;\n }\n}\n","<a [routerLink]=\"item.routerLink\"\n routerLinkActive=\"link-active\"\n [matTooltipDisabled]=\"!(sidenav.collapsed$ | async)\"\n [matTooltip]=\"item.label\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\" matRipple>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"!(sidenav.collapsed$ | async)\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul rxap-navigation\n *ngIf=\"routerLinkActive.isActive && !(sidenav.collapsed$ | async) && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div class=\"navigation-overlay-container mat-elevation-z1\"\n (mouseenter)=\"lockeOverlay = true\" (mouseleave)=\"lockeOverlay = false; onMouseleave()\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\" class=\"icon\"></mat-icon>\n <span class=\"label\">{{ asNavigationItem(child).label }}</span>\n </a>\n </li>\n </ul>\n </div>\n</ng-template>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n ViewChild,\n OnDestroy,\n AfterViewInit,\n HostBinding,\n ViewEncapsulation,\n ElementRef,\n Renderer2,\n HostListener,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n EmbeddedViewRef,\n Inject,\n} from '@angular/core';\nimport { Required, DebounceCall } from '@rxap/utilities';\nimport { trigger, style, transition, animate } from '@angular/animations';\nimport {\n NavigationItem,\n Navigation,\n NavigationDividerItem,\n} from '../navigation-item';\nimport { RouterLinkActive, Router, NavigationEnd } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport {\n filter,\n tap,\n delay,\n startWith,\n distinctUntilChanged,\n skip,\n} from 'rxjs/operators';\nimport { SidenavComponentService } from '../../sidenav/sidenav.component.service';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'li[rxap-navigation-item]',\n templateUrl: './navigation-item.component.html',\n styleUrls: ['./navigation-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'rxap-navigation-item',\n },\n animations: [\n trigger('sub-nav', [\n transition(':enter', [\n style({ display: 'block', height: '0', overflow: 'hidden' }),\n animate(150, style({ height: '*' })),\n ]),\n transition(':leave', [\n style({ overflow: 'hidden' }),\n animate(300, style({ height: '0' })),\n style({ display: 'none' }),\n ]),\n ]),\n ],\n})\nexport class NavigationItemComponent\n implements OnChanges, AfterViewInit, OnDestroy, OnInit\n{\n public children: Navigation | null = null;\n\n @ViewChild(RouterLinkActive, { static: true })\n public routerLinkActive!: RouterLinkActive;\n\n @Input()\n @Required\n public item!: NavigationItem;\n\n @Input()\n public level: number = 0;\n\n @HostBinding('class.active')\n public isActive: boolean = false;\n\n @ViewChild('navigationOverlay')\n private _navigationOverlay!: TemplateRef<any>;\n\n private readonly _subscription = new Subscription();\n\n private _overlayRef?: OverlayRef;\n private _embeddedViewRef?: EmbeddedViewRef<any>;\n\n /**\n * indicates the mouse is over the\n */\n public lockeOverlay: boolean = false;\n\n constructor(\n @Inject(Router)\n private readonly router: Router,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n @Inject(Overlay)\n private readonly overlay: Overlay,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.item) {\n const item: NavigationItem = changes.item.currentValue;\n this.children =\n item.children && item.children.length ? item.children : null;\n }\n }\n\n public ngAfterViewInit() {\n this._subscription.add(\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n startWith(true),\n delay(100),\n tap(() => {\n if (this.routerLinkActive.isActive) {\n if (!this.sidenav.collapsed$.value) {\n // only close the overlay if sidenav collapsed\n this._overlayRef?.detach();\n }\n this.renderer.addClass(this.elementRef.nativeElement, 'active');\n } else {\n this.renderer.removeClass(\n this.elementRef.nativeElement,\n 'active'\n );\n }\n })\n )\n .subscribe()\n );\n }\n\n public ngOnInit() {\n // detach the navigation overlay if the sidenav collapsed\n // state is changed\n this._subscription.add(\n this.sidenav.collapsed$\n .pipe(\n skip(1),\n distinctUntilChanged(),\n tap(() => this._overlayRef?.detach())\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy() {\n this._subscription?.unsubscribe();\n this._overlayRef?.dispose();\n }\n\n @HostListener('mouseenter')\n public onMouseenter() {\n if (this.children) {\n if (!this.routerLinkActive.isActive || this.sidenav.collapsed$.value) {\n if (!this._overlayRef) {\n this._overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originY: 'top',\n originX: 'end',\n overlayY: 'top',\n overlayX: 'start',\n },\n ]),\n });\n }\n if (!this._overlayRef.hasAttached()) {\n this._embeddedViewRef = this._overlayRef.attach(\n new TemplatePortal(this._navigationOverlay, this.viewContainerRef)\n );\n }\n }\n }\n }\n\n @HostListener('mouseleave')\n @DebounceCall(100)\n public onMouseleave() {\n if (!this.lockeOverlay) {\n this._overlayRef?.detach();\n }\n }\n\n // region type save item property\n\n // required to check the type of the item property in the ngFor loop\n\n public isNavigationDividerItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationDividerItem {\n return (item as any)['divider'];\n }\n\n public isNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationItem {\n return !this.isNavigationDividerItem(item);\n }\n\n public asNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): NavigationItem {\n if (!this.isNavigationItem(item)) {\n throw new Error('The item is not a NavigationItem');\n }\n return item;\n }\n\n // endregion\n}\n","<ng-template [ngForOf]=\"items\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <div *ngIf=\"!(sidenav.collapsed$ | async)\" class=\"divider-title\" fxFlex=\"nogrow\" fxLayout=\"row\" fxLayoutAlign=\"start end\">\n <span fxFlex=\"nogrow\" *ngIf=\"item.title\">{{item.title}}</span>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li class=\"item\" rxap-navigation-item [level]=\"level\" [item]=\"asNavigationItem(item)\"></li>\n </ng-template>\n</ng-template>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n ViewEncapsulation,\n HostBinding,\n Inject\n} from '@angular/core';\nimport {\n Navigation,\n NavigationItem,\n NavigationDividerItem\n} from './navigation-item';\nimport {\n Required,\n coerceBoolean\n} from '@rxap/utilities';\nimport { NavigationService } from './navigation.service';\nimport { Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { SidenavComponentService } from '../sidenav/sidenav.component.service';\n\n@Component({\n selector: 'ul[rxap-navigation]',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'rxap-navigation' },\n})\nexport class NavigationComponent implements OnInit, OnDestroy {\n @HostBinding('class.rxap-root-navigation')\n public _root = false;\n\n @Input()\n public set root(value: boolean | '') {\n this._root = coerceBoolean(value);\n }\n\n @Input()\n @Required\n public items!: Navigation;\n\n public subscription?: Subscription;\n\n @Input()\n public level: number = 0;\n\n constructor(\n @Inject(NavigationService)\n private readonly navigationService: NavigationService,\n @Inject(ChangeDetectorRef)\n private readonly cdr: ChangeDetectorRef,\n @Inject(SidenavComponentService)\n public readonly sidenav: SidenavComponentService\n ) {}\n\n public ngOnInit(): void {\n if (this._root) {\n this.items = [];\n this.subscription = this.navigationService.config$\n .pipe(\n tap((navigation) => (this.items = navigation)),\n tap(() => this.cdr.detectChanges())\n )\n .subscribe();\n }\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n // region type save item property\n\n // required to check the type of the item property in the ngFor loop\n\n public isNavigationDividerItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationDividerItem {\n return (item as any)['divider'];\n }\n\n public isNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): item is NavigationItem {\n return !this.isNavigationDividerItem(item);\n }\n\n public asNavigationItem(\n item: NavigationItem | NavigationDividerItem\n ): NavigationItem {\n if (!this.isNavigationItem(item)) {\n throw new Error('The item is not a NavigationItem');\n }\n return item;\n }\n\n // endregion\n}\n","<div class=\"container\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div fxFlex=\"nogrow\" class=\"header\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n </ng-template>\n <div fxFlex=\"grow\" class=\"nav-container\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button mat-button class=\"sidebar-toggle\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" fxFlex=\"nogrow\"\n (click)=\"sidenav.toggleNavigationCollapse()\">\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon fxFlex=\"nogrow\" class=\"arrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n>Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider fxFlex=\"nogrow\" [fxHide]=\"sidenav.collapsed$ | async\"></mat-divider>\n <div fxFlex=\"nogrow\" class=\"footer\" [fxHide]=\"sidenav.collapsed$ | async\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n ContentChild\n} from '@angular/core';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavComponentService } from './sidenav.component.service';\n\n@Component({\n selector: 'rxap-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: [ './sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-layout-sidenav'\n }\n})\nexport class SidenavComponent {\n\n @ContentChild(SidenavFooterDirective)\n public sidenavFooterDirective?: SidenavFooterDirective;\n\n @ContentChild(SidenavHeaderDirective)\n public sidenavHeaderDirective?: SidenavHeaderDirective;\n\n constructor(public readonly sidenav: SidenavComponentService) {}\n\n}\n","import {\n Injectable,\n Inject\n} from '@angular/core';\nimport {\n HeaderService,\n FooterService\n} from '@rxap/services';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest\n} from 'rxjs';\nimport {\n tap,\n map\n} from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SidenavContentComponentService {\n\n public headerRows$ = new BehaviorSubject<number>(1);\n public footerRows$: Observable<number>;\n public innerHeight$: Observable<string>;\n public marginTop$: Observable<string>;\n public marginBottom$: Observable<string>;\n\n constructor(\n @Inject(FooterService) public readonly footerComponentService: FooterService,\n @Inject(HeaderService) public readonly headerComponentService: HeaderService\n ) {\n this.headerRows$.next(this.headerComponentService.countComponent);\n\n this.footerComponentService.portalCount$.pipe().subscribe();\n\n this.footerRows$ = this.footerComponentService.portalCount$;\n\n this.headerComponentService.update$.pipe(\n tap(() => this.headerRows$.next(this.headerComponentService.countComponent))\n ).subscribe();\n\n this.innerHeight$ = combineLatest([\n this.headerRows$,\n this.footerRows$\n ]).pipe(\n map(([ headerRows, footerRows ]) => `calc(100% - ${64 * (headerRows + footerRows)}px)`)\n );\n\n this.marginTop$ = this.headerRows$.pipe(\n map(headerRows => `${headerRows * 64}px`)\n );\n\n this.marginBottom$ = this.footerRows$.pipe(\n map(footerRows => `${footerRows * 64}px`)\n );\n\n }\n\n}\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input\n} from '@angular/core';\nimport { Required } from '@rxap/utilities';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { SidenavContentComponentService } from './sidenav-content.component.service';\n\n@Component({\n selector: 'rxap-sidenav-content',\n templateUrl: './sidenav-content.component.html',\n styleUrls: [ './sidenav-content.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SidenavContentComponent implements OnInit {\n\n @Input() @Required public sidenav!: MatSidenav;\n\n constructor(public readonly sccs: SidenavContentComponentService) { }\n\n ngOnInit() {\n }\n\n}\n","<div [ngClass]=\"{ 'open': (sidenav.openedChange | async) }\" [ngStyle]=\"{\n height: sccs.innerHeight$ | async,\n marginTop: sccs.marginTop$ | async,\n marginBottom: sccs.marginBottom$ | async\n}\" class=\"container\">\n <!-- <dx-breadcrumb></dx-breadcrumb>-->\n <div class=\"inner\">\n <router-outlet></router-outlet>\n <ng-content></ng-content>\n </div>\n</div>\n","<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter\n} from '@angular/core';\n\n@Component({\n selector: 'rxap-toggle-window-sidenav-button',\n templateUrl: './toggle-window-sidenav-button.component.html',\n styleUrls: [ './toggle-window-sidenav-button.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'rxap-toggle-window-sidenav-button'\n }\n})\nexport class ToggleWindowSidenavButtonComponent implements OnInit {\n\n @Input()\n public openWindowSidenav = false;\n\n @Output()\n public openWindowSidenavChange = new EventEmitter<boolean>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public toggle() {\n this.openWindowSidenav = !this.openWindowSidenav;\n this.openWindowSidenavChange.emit(this.openWindowSidenav);\n }\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n Inject,\n OnDestroy\n} from '@angular/core';\nimport {\n WindowContainerSidenavService,\n ContainerComponent\n} from '@rxap/services';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-window-container-sidenav',\n templateUrl: './window-container-sidenav.component.html',\n styleUrls: [ './window-container-sidenav.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WindowContainerSidenavComponent implements OnInit, OnDestroy {\n\n public portals = new Map<string, ComponentPortal<any>>();\n\n private subscription = new Subscription();\n\n constructor(\n @Inject(WindowContainerSidenavService)\n public readonly service: WindowContainerSidenavService\n ) { }\n\n public ngOnInit(): void {\n const components = this.service.getAll();\n for (const component of components) {\n this.add(component);\n }\n this.subscription.add(this.service.add$.pipe(\n tap(component => this.add(component))\n ).subscribe());\n this.subscription.add(this.service.remove$.pipe(\n tap(component => this.remove(component))\n ).subscribe());\n }\n\n public ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n public trackBy(index: number, id: string) {\n return id;\n }\n\n private add(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n throw new Error(`Component portal with id ${component.id} already exists`);\n }\n const portal = new ComponentPortal(component.component, component.viewContainerRef, component.injector, component.componentFactoryResolver);\n this.portals.set(component.id, portal);\n }\n\n private remove(component: ContainerComponent) {\n if (this.portals.has(component.id)) {\n const portal = this.portals.get(component.id)!;\n this.portals.delete(component.id);\n portal.detach();\n }\n }\n\n}\n","<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewChild\n} from '@angular/core';\nimport { LayoutComponentService } from './layout.component.service';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n@Component({\n selector: 'rxap-layout',\n templateUrl: './layout.component.html',\n styleUrls: [ './layout.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LayoutComponent {\n\n public openWindowSidenav = false;\n\n @ViewChild(MatSidenav, { static: true }) public sidenav!: MatSidenav;\n\n constructor(\n public readonly layoutComponentService: LayoutComponentService,\n ) { }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n Observable,\n of\n} from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ReplaceRouterPathsService {\n\n public transform(routerLink: string[]): Observable<string[]> {\n return of(routerLink);\n }\n\n}\n","import {\n NgModule,\n Pipe,\n PipeTransform\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ReplaceRouterPathsService } from './replace-router-paths.service';\n\n@Pipe({\n name: 'replaceRouterPaths'\n})\nexport class ReplaceRouterPathsPipe implements PipeTransform {\n constructor(\n public rrp: ReplaceRouterPathsService\n ) {}\n\n transform(routerLink: string[]): Observable<string[]> {\n return this.rrp.transform(routerLink);\n }\n}\n\n@NgModule({\n declarations: [ ReplaceRouterPathsPipe ],\n exports: [ ReplaceRouterPathsPipe ]\n})\nexport class ReplaceRouterPathsPipeModule {}\n","import { NgModule } from '@angular/core';\nimport { NavigationComponent } from './navigation.component';\nimport { NavigationItemComponent } from './navigation-item/navigation-item.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { ReplaceRouterPathsPipeModule } from './replace-router-paths.pipe';\nimport { IconDirectiveModule } from '@rxap/material-directives/icon';\nimport { ButtonComponentModule } from '@rxap/components';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { StopPropagationDirectiveModule } from '@rxap/directives';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n declarations: [ NavigationComponent, NavigationItemComponent ],\n imports: [\n MatIconModule,\n MatButtonModule,\n FlexLayoutModule,\n RouterModule,\n CommonModule,\n IconDirectiveModule,\n ButtonComponentModule,\n MatRippleModule,\n MatDividerModule,\n StopPropagationDirectiveModule,\n MatTooltipModule,\n ReplaceRouterPathsPipeModule\n ],\n exports: [ NavigationComponent ]\n})\nexport class NavigationComponentModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavComponent } from './sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NavigationComponentModule } from '../navigation/navigation.component.module';\nimport { CommonModule } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n declarations: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n imports: [\n FlexLayoutModule,\n NavigationComponentModule,\n CommonModule,\n MatDividerModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [ SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective ],\n})\nexport class SidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { SidenavContentComponent } from './sidenav-content.component';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [ SidenavContentComponent ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [ SidenavContentComponent ]\n})\nexport class SidenavContentModule {}\n","import { NgModule } from '@angular/core';\nimport { WindowContainerSidenavComponent } from './window-container-sidenav.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\n\n@NgModule({\n declarations: [ WindowContainerSidenavComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule,\n PortalModule,\n ],\n exports: [ WindowContainerSidenavComponent ],\n})\nexport class WindowContainerSidenavModule {}\n","import { NgModule } from '@angular/core';\nimport { ToggleWindowSidenavButtonComponent } from './toggle-window-sidenav-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\n\n@NgModule({\n declarations: [ ToggleWindowSidenavButtonComponent ],\n imports: [\n MatButtonModule,\n MatIconModule,\n CommonModule,\n ],\n exports: [ ToggleWindowSidenavButtonComponent ],\n})\nexport class ToggleWindowSidenavButtonModule {}\n","import {\n NgModule,\n ModuleWithProviders\n} from '@angular/core';\nimport { LayoutComponent } from './layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { FooterModule } from '../footer/footer.component.module';\nimport { HeaderModule } from '../header/header.component.module';\nimport { CommonModule } from '@angular/common';\nimport { SidenavModule } from '../sidenav/sidenav.component.module';\nimport { SidenavContentModule } from '../sidenav-content/sidenav-content.component.module';\nimport { NavigationWithInserts } from '../navigation/navigation-item';\nimport { RXAP_NAVIGATION_CONFIG } from '../tokens';\nimport { WindowContainerSidenavModule } from '../window-container-sidenav/window-container-sidenav.component.module';\nimport { ToggleWindowSidenavButtonModule } from '../toggle-window-sidenav-button/toggle-window-sidenav-button.component.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [ LayoutComponent ],\n imports: [\n MatSidenavModule,\n FooterModule,\n HeaderModule,\n CommonModule,\n SidenavModule,\n SidenavContentModule,\n WindowContainerSidenavModule,\n ToggleWindowSidenavButtonModule,\n FlexLayoutModule,\n RouterModule\n ],\n exports: [ LayoutComponent ]\n})\nexport class LayoutModule {\n\n public static withNavigation(navigation: NavigationWithInserts | (() => NavigationWithInserts)): ModuleWithProviders<LayoutModule> {\n\n return {\n ngModule: LayoutModule,\n providers: [\n {\n provide: RXAP_NAVIGATION_CONFIG,\n useValue: navigation\n }\n ]\n };\n }\n\n}\n","<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n","import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n OnDestroy,\n Inject\n} from '@angular/core';\nimport {\n VersionService,\n Version\n} from '@rxap/services';\nimport {\n KeyValue,\n Required\n} from '@rxap/utilities';\nimport { tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rxap-version',\n templateUrl: './version.component.html',\n styleUrls: [ './version.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VersionComponent implements OnInit, OnDestroy {\n\n @Required\n public modules!: KeyValue<Version>;\n\n private subscription?: Subscription;\n\n constructor(\n @Inject(VersionService) private version: VersionService\n ) { }\n\n public ngOnInit(): void {\n this.modules = this.version.get();\n this.subscription = this.version.update$.pipe(\n tap(() => this.modules = this.version.get())\n ).subscribe();\n }\n\n public ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { VersionComponent } from './version.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [ VersionComponent ],\n imports: [\n FlexLayoutModule,\n CommonModule\n ],\n exports: [ VersionComponent ]\n})\nexport class VersionComponentModule {}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n NgModule,\n Inject,\n} from '@angular/core';\nimport { FooterService } from '@rxap/services';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Directive({\n selector: '[rxapFooter]',\n})\nexport class FooterDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n constructor(\n @Inject(FooterService)\n private readonly footerService: FooterService,\n @Inject(TemplateRef)\n private readonly template: TemplateRef<void>,\n @Inject(ViewContainerRef)\n private readonly viewContainerRef: ViewContainerRef\n ) {}\n\n public ngOnInit() {\n this._portal = new TemplatePortal<void>(\n this.template,\n this.viewContainerRef\n );\n this.footerService.pushPortal(this._portal);\n }\n\n public ngOnDestroy() {\n if (this._portal) {\n this.footerService.removePortal(this._portal);\n }\n }\n}\n\n@NgModule({\n declarations: [FooterDirective],\n exports: [FooterDirective],\n})\nexport class FooterDirectiveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rxap/layout",
3
- "version": "13.0.0",
3
+ "version": "13.0.1",
4
4
  "bugs": {
5
5
  "url": "https://gitlab.com/rxap/packages/-/issues",
6
6
  "email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
@@ -29,15 +29,16 @@
29
29
  "@angular/platform-browser": "^13.2.3",
30
30
  "@angular/platform-browser-dynamic": "^13.2.3",
31
31
  "@angular/router": "^13.2.3",
32
- "@rxap/authentication": "^13.0.0",
32
+ "@rxap/authentication": "^13.0.1",
33
33
  "@rxap/components": "^13.0.0",
34
- "@rxap/config": "^13.0.0",
34
+ "@rxap/config": "^13.1.3",
35
35
  "@rxap/definition": "^13.0.0",
36
36
  "@rxap/directives": "^13.0.0",
37
37
  "@rxap/forms": "^13.0.0",
38
38
  "@rxap/material-directives": "^13.0.0",
39
39
  "@rxap/services": "^13.0.0",
40
40
  "@rxap/utilities": "^13.0.0",
41
+ "joi": "^17.6.3",
41
42
  "reflect-metadata": "^0.1.13",
42
43
  "rxjs": "^6.5.5"
43
44
  },