@rxap/layout 19.0.1-dev.12 → 19.0.1-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -38
- package/README.md +1 -1
- package/compodoc/changelog.html +0 -21
- package/compodoc/components/DefaultHeaderComponent.html +3 -3
- package/compodoc/dependencies.html +13 -13
- package/compodoc/index.html +1 -1
- package/compodoc/js/search/search_index.js +2 -2
- package/compodoc/properties.html +1 -1
- package/docs/assets/icons.js +15 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/{html/assets → assets}/main.js +4 -5
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1412 -0
- package/docs/classes/AppsButtonComponent.html +9 -0
- package/docs/classes/BaseLayoutComponent.html +2 -0
- package/docs/classes/DefaultHeaderComponent.html +9 -0
- package/docs/classes/DefaultHeaderService.html +16 -0
- package/docs/classes/ExternalAppsService.html +19 -0
- package/docs/classes/FooterComponent.html +5 -0
- package/docs/classes/FooterDirective.html +8 -0
- package/docs/classes/FooterService.html +14 -0
- package/docs/classes/HeaderComponent.html +6 -0
- package/docs/classes/HeaderDirective.html +8 -0
- package/docs/classes/HeaderService.html +14 -0
- package/docs/classes/LayoutComponent.html +6 -0
- package/docs/classes/LayoutService.html +20 -0
- package/docs/classes/LogoService.html +7 -0
- package/docs/classes/MinimalLayoutComponent.html +2 -0
- package/docs/classes/NavigationComponent.html +14 -0
- package/docs/classes/NavigationItemComponent.html +19 -0
- package/docs/classes/NavigationProgressBarComponent.html +4 -0
- package/docs/classes/NavigationService.html +17 -0
- package/docs/classes/ReleaseInfoComponent.html +6 -0
- package/docs/classes/SettingsButtonComponent.html +25 -0
- package/docs/classes/SidenavComponent.html +17 -0
- package/docs/classes/SidenavFooterDirective.html +3 -0
- package/docs/classes/SidenavHeaderDirective.html +3 -0
- package/docs/classes/SidenavToggleButtonComponent.html +5 -0
- package/docs/classes/UserProfileIconComponent.html +7 -0
- package/docs/documentation.json +3528 -1831
- package/docs/functions/IsNavigationDividerItem.html +1 -0
- package/docs/functions/IsNavigationInsertItem.html +1 -0
- package/docs/functions/IsNavigationItem.html +1 -0
- package/docs/functions/provideExternalApps.html +1 -0
- package/docs/functions/provideLayout.html +1 -0
- package/docs/functions/withDefaultHeaderComponent.html +1 -0
- package/docs/functions/withDefaultHeaderItems.html +1 -0
- package/docs/functions/withFooterComponents.html +1 -0
- package/docs/functions/withHeaderComponents.html +1 -0
- package/docs/functions/withNavigationConfig.html +1 -0
- package/docs/functions/withNavigationInserts.html +1 -0
- package/docs/functions/withReleaseInfoModules.html +1 -0
- package/docs/functions/withSettingsMenuItems.html +1 -0
- package/docs/functions/withUserProfileDataSource.html +1 -0
- package/docs/index.html +88 -0
- package/docs/interfaces/NavigationDividerItem.html +3 -0
- package/docs/interfaces/NavigationInsertItem.html +2 -0
- package/docs/interfaces/NavigationItem.html +6 -0
- package/docs/interfaces/NavigationStatus.html +2 -0
- package/docs/interfaces/ReleaseInfoModule.html +4 -0
- package/docs/interfaces/SettingsMenuItem.html +4 -0
- package/docs/modules.html +67 -0
- package/docs/types/DefaultHeaderItemComponent.html +1 -0
- package/docs/types/ExternalApp.html +1 -0
- package/docs/types/ExtractUsernameFromProfileFn.html +1 -0
- package/docs/types/Navigation.html +1 -0
- package/docs/types/NavigationWithInserts.html +1 -0
- package/docs/types/SettingsMenuItemComponent.html +1 -0
- package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -0
- package/docs/variables/RXAP_DEFAULT_HEADER_ITEM_COMPONENT.html +1 -0
- package/docs/variables/RXAP_EXTERNAL_APP.html +1 -0
- package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -0
- package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -0
- package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -0
- package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -0
- package/docs/variables/RXAP_LOGO_CONFIG.html +1 -0
- package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -0
- package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -0
- package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -0
- package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -0
- package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -0
- package/docs/variables/RXAP_USER_PROFILE_DATA_SOURCE.html +1 -0
- package/fesm2022/rxap-layout.mjs +2 -2
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/package.json +29 -29
- package/docs/html/assets/hierarchy.js +0 -1
- package/docs/html/assets/icons.js +0 -18
- package/docs/html/assets/icons.svg +0 -1
- package/docs/html/assets/navigation.js +0 -1
- package/docs/html/assets/search.js +0 -1
- package/docs/html/assets/style.css +0 -1611
- package/docs/html/classes/AppsButtonComponent.html +0 -13
- package/docs/html/classes/BaseLayoutComponent.html +0 -2
- package/docs/html/classes/DefaultHeaderComponent.html +0 -7
- package/docs/html/classes/DefaultHeaderService.html +0 -13
- package/docs/html/classes/ExternalAppsService.html +0 -19
- package/docs/html/classes/FooterComponent.html +0 -4
- package/docs/html/classes/FooterDirective.html +0 -11
- package/docs/html/classes/FooterService.html +0 -13
- package/docs/html/classes/HeaderComponent.html +0 -5
- package/docs/html/classes/HeaderDirective.html +0 -11
- package/docs/html/classes/HeaderService.html +0 -13
- package/docs/html/classes/LayoutComponent.html +0 -5
- package/docs/html/classes/LayoutService.html +0 -16
- package/docs/html/classes/LogoService.html +0 -6
- package/docs/html/classes/MinimalLayoutComponent.html +0 -2
- package/docs/html/classes/NavigationComponent.html +0 -16
- package/docs/html/classes/NavigationItemComponent.html +0 -24
- package/docs/html/classes/NavigationProgressBarComponent.html +0 -4
- package/docs/html/classes/NavigationService.html +0 -12
- package/docs/html/classes/ReleaseInfoComponent.html +0 -5
- package/docs/html/classes/SettingsButtonComponent.html +0 -18
- package/docs/html/classes/SidenavComponent.html +0 -15
- package/docs/html/classes/SidenavFooterDirective.html +0 -3
- package/docs/html/classes/SidenavHeaderDirective.html +0 -3
- package/docs/html/classes/SidenavToggleButtonComponent.html +0 -4
- package/docs/html/classes/UserProfileIconComponent.html +0 -5
- package/docs/html/functions/IsNavigationDividerItem.html +0 -1
- package/docs/html/functions/IsNavigationInsertItem.html +0 -1
- package/docs/html/functions/IsNavigationItem.html +0 -1
- package/docs/html/functions/provideExternalApps.html +0 -1
- package/docs/html/functions/provideLayout.html +0 -1
- package/docs/html/functions/withDefaultHeaderComponent.html +0 -1
- package/docs/html/functions/withDefaultHeaderItems.html +0 -1
- package/docs/html/functions/withFooterComponents.html +0 -1
- package/docs/html/functions/withHeaderComponents.html +0 -1
- package/docs/html/functions/withNavigationConfig.html +0 -1
- package/docs/html/functions/withNavigationInserts.html +0 -1
- package/docs/html/functions/withReleaseInfoModules.html +0 -1
- package/docs/html/functions/withSettingsMenuItems.html +0 -1
- package/docs/html/functions/withUserProfileDataSource.html +0 -1
- package/docs/html/index.html +0 -106
- package/docs/html/interfaces/NavigationDividerItem.html +0 -3
- package/docs/html/interfaces/NavigationInsertItem.html +0 -2
- package/docs/html/interfaces/NavigationItem.html +0 -6
- package/docs/html/interfaces/NavigationStatus.html +0 -2
- package/docs/html/interfaces/ReleaseInfoModule.html +0 -4
- package/docs/html/interfaces/SettingsMenuItem.html +0 -4
- package/docs/html/modules.html +0 -1
- package/docs/html/types/DefaultHeaderItemComponent.html +0 -1
- package/docs/html/types/ExternalApp.html +0 -1
- package/docs/html/types/ExtractUsernameFromProfileFn.html +0 -1
- package/docs/html/types/Navigation.html +0 -1
- package/docs/html/types/NavigationWithInserts.html +0 -1
- package/docs/html/types/SettingsMenuItemComponent.html +0 -1
- package/docs/html/variables/EXTRACT_USERNAME_FROM_PROFILE.html +0 -1
- package/docs/html/variables/RXAP_DEFAULT_HEADER_ITEM_COMPONENT.html +0 -1
- package/docs/html/variables/RXAP_EXTERNAL_APP.html +0 -1
- package/docs/html/variables/RXAP_EXTERNAL_APP_FILTER.html +0 -1
- package/docs/html/variables/RXAP_FOOTER_COMPONENT.html +0 -1
- package/docs/html/variables/RXAP_HEADER_COMPONENT.html +0 -1
- package/docs/html/variables/RXAP_LAYOUT_APPS_GRID.html +0 -1
- package/docs/html/variables/RXAP_LOGO_CONFIG.html +0 -1
- package/docs/html/variables/RXAP_NAVIGATION_CONFIG.html +0 -1
- package/docs/html/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +0 -1
- package/docs/html/variables/RXAP_RELEASE_INFO_MODULE.html +0 -1
- package/docs/html/variables/RXAP_SETTINGS_MENU_ITEM.html +0 -1
- package/docs/html/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +0 -1
- package/docs/html/variables/RXAP_USER_PROFILE_DATA_SOURCE.html +0 -1
- package/docs/markdown/README.md +0 -304
- package/docs/markdown/classes/AppsButtonComponent.md +0 -83
- package/docs/markdown/classes/BaseLayoutComponent.md +0 -19
- package/docs/markdown/classes/DefaultHeaderComponent.md +0 -59
- package/docs/markdown/classes/DefaultHeaderService.md +0 -87
- package/docs/markdown/classes/ExternalAppsService.md +0 -251
- package/docs/markdown/classes/FooterComponent.md +0 -35
- package/docs/markdown/classes/FooterDirective.md +0 -65
- package/docs/markdown/classes/FooterService.md +0 -87
- package/docs/markdown/classes/HeaderComponent.md +0 -43
- package/docs/markdown/classes/HeaderDirective.md +0 -65
- package/docs/markdown/classes/HeaderService.md +0 -87
- package/docs/markdown/classes/LayoutComponent.md +0 -43
- package/docs/markdown/classes/LayoutService.md +0 -149
- package/docs/markdown/classes/LogoService.md +0 -51
- package/docs/markdown/classes/MinimalLayoutComponent.md +0 -19
- package/docs/markdown/classes/NavigationComponent.md +0 -139
- package/docs/markdown/classes/NavigationItemComponent.md +0 -195
- package/docs/markdown/classes/NavigationProgressBarComponent.md +0 -35
- package/docs/markdown/classes/NavigationService.md +0 -205
- package/docs/markdown/classes/ReleaseInfoComponent.md +0 -47
- package/docs/markdown/classes/SettingsButtonComponent.md +0 -229
- package/docs/markdown/classes/SidenavComponent.md +0 -135
- package/docs/markdown/classes/SidenavFooterDirective.md +0 -35
- package/docs/markdown/classes/SidenavHeaderDirective.md +0 -35
- package/docs/markdown/classes/SidenavToggleButtonComponent.md +0 -39
- package/docs/markdown/classes/UserProfileIconComponent.md +0 -47
- package/docs/markdown/functions/IsNavigationDividerItem.md +0 -21
- package/docs/markdown/functions/IsNavigationInsertItem.md +0 -21
- package/docs/markdown/functions/IsNavigationItem.md +0 -21
- package/docs/markdown/functions/provideExternalApps.md +0 -21
- package/docs/markdown/functions/provideLayout.md +0 -21
- package/docs/markdown/functions/withDefaultHeaderComponent.md +0 -15
- package/docs/markdown/functions/withDefaultHeaderItems.md +0 -21
- package/docs/markdown/functions/withFooterComponents.md +0 -21
- package/docs/markdown/functions/withHeaderComponents.md +0 -21
- package/docs/markdown/functions/withNavigationConfig.md +0 -21
- package/docs/markdown/functions/withNavigationInserts.md +0 -21
- package/docs/markdown/functions/withReleaseInfoModules.md +0 -21
- package/docs/markdown/functions/withSettingsMenuItems.md +0 -21
- package/docs/markdown/functions/withUserProfileDataSource.md +0 -25
- package/docs/markdown/globals.md +0 -86
- package/docs/markdown/interfaces/NavigationDividerItem.md +0 -25
- package/docs/markdown/interfaces/NavigationInsertItem.md +0 -17
- package/docs/markdown/interfaces/NavigationItem.md +0 -61
- package/docs/markdown/interfaces/NavigationStatus.md +0 -27
- package/docs/markdown/interfaces/ReleaseInfoModule.md +0 -33
- package/docs/markdown/interfaces/SettingsMenuItem.md +0 -37
- package/docs/markdown/type-aliases/DefaultHeaderItemComponent.md +0 -11
- package/docs/markdown/type-aliases/ExternalApp.md +0 -11
- package/docs/markdown/type-aliases/ExtractUsernameFromProfileFn.md +0 -25
- package/docs/markdown/type-aliases/Navigation.md +0 -11
- package/docs/markdown/type-aliases/NavigationWithInserts.md +0 -11
- package/docs/markdown/type-aliases/SettingsMenuItemComponent.md +0 -11
- package/docs/markdown/variables/EXTRACT_USERNAME_FROM_PROFILE.md +0 -11
- package/docs/markdown/variables/RXAP_DEFAULT_HEADER_ITEM_COMPONENT.md +0 -11
- package/docs/markdown/variables/RXAP_EXTERNAL_APP.md +0 -11
- package/docs/markdown/variables/RXAP_EXTERNAL_APP_FILTER.md +0 -11
- package/docs/markdown/variables/RXAP_FOOTER_COMPONENT.md +0 -11
- package/docs/markdown/variables/RXAP_HEADER_COMPONENT.md +0 -11
- package/docs/markdown/variables/RXAP_LAYOUT_APPS_GRID.md +0 -11
- package/docs/markdown/variables/RXAP_LOGO_CONFIG.md +0 -11
- package/docs/markdown/variables/RXAP_NAVIGATION_CONFIG.md +0 -11
- package/docs/markdown/variables/RXAP_NAVIGATION_CONFIG_INSERTS.md +0 -11
- package/docs/markdown/variables/RXAP_RELEASE_INFO_MODULE.md +0 -11
- package/docs/markdown/variables/RXAP_SETTINGS_MENU_ITEM.md +0 -11
- package/docs/markdown/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.md +0 -11
- package/docs/markdown/variables/RXAP_USER_PROFILE_DATA_SOURCE.md +0 -11
- package/docs/wiki/Class.AppsButtonComponent.md +0 -79
- package/docs/wiki/Class.BaseLayoutComponent.md +0 -15
- package/docs/wiki/Class.DefaultHeaderComponent.md +0 -55
- package/docs/wiki/Class.DefaultHeaderService.md +0 -83
- package/docs/wiki/Class.ExternalAppsService.md +0 -247
- package/docs/wiki/Class.FooterComponent.md +0 -31
- package/docs/wiki/Class.FooterDirective.md +0 -61
- package/docs/wiki/Class.FooterService.md +0 -83
- package/docs/wiki/Class.HeaderComponent.md +0 -39
- package/docs/wiki/Class.HeaderDirective.md +0 -61
- package/docs/wiki/Class.HeaderService.md +0 -83
- package/docs/wiki/Class.LayoutComponent.md +0 -39
- package/docs/wiki/Class.LayoutService.md +0 -145
- package/docs/wiki/Class.LogoService.md +0 -47
- package/docs/wiki/Class.MinimalLayoutComponent.md +0 -15
- package/docs/wiki/Class.NavigationComponent.md +0 -135
- package/docs/wiki/Class.NavigationItemComponent.md +0 -191
- package/docs/wiki/Class.NavigationProgressBarComponent.md +0 -31
- package/docs/wiki/Class.NavigationService.md +0 -201
- package/docs/wiki/Class.ReleaseInfoComponent.md +0 -43
- package/docs/wiki/Class.SettingsButtonComponent.md +0 -225
- package/docs/wiki/Class.SidenavComponent.md +0 -131
- package/docs/wiki/Class.SidenavFooterDirective.md +0 -31
- package/docs/wiki/Class.SidenavHeaderDirective.md +0 -31
- package/docs/wiki/Class.SidenavToggleButtonComponent.md +0 -35
- package/docs/wiki/Class.UserProfileIconComponent.md +0 -43
- package/docs/wiki/Function.IsNavigationDividerItem.md +0 -17
- package/docs/wiki/Function.IsNavigationInsertItem.md +0 -17
- package/docs/wiki/Function.IsNavigationItem.md +0 -17
- package/docs/wiki/Function.provideExternalApps.md +0 -17
- package/docs/wiki/Function.provideLayout.md +0 -17
- package/docs/wiki/Function.withDefaultHeaderComponent.md +0 -11
- package/docs/wiki/Function.withDefaultHeaderItems.md +0 -17
- package/docs/wiki/Function.withFooterComponents.md +0 -17
- package/docs/wiki/Function.withHeaderComponents.md +0 -17
- package/docs/wiki/Function.withNavigationConfig.md +0 -17
- package/docs/wiki/Function.withNavigationInserts.md +0 -17
- package/docs/wiki/Function.withReleaseInfoModules.md +0 -17
- package/docs/wiki/Function.withSettingsMenuItems.md +0 -17
- package/docs/wiki/Function.withUserProfileDataSource.md +0 -21
- package/docs/wiki/Home.md +0 -300
- package/docs/wiki/Interface.NavigationDividerItem.md +0 -21
- package/docs/wiki/Interface.NavigationInsertItem.md +0 -13
- package/docs/wiki/Interface.NavigationItem.md +0 -57
- package/docs/wiki/Interface.NavigationStatus.md +0 -23
- package/docs/wiki/Interface.ReleaseInfoModule.md +0 -29
- package/docs/wiki/Interface.SettingsMenuItem.md +0 -33
- package/docs/wiki/TypeAlias.DefaultHeaderItemComponent.md +0 -7
- package/docs/wiki/TypeAlias.ExternalApp.md +0 -7
- package/docs/wiki/TypeAlias.ExtractUsernameFromProfileFn.md +0 -21
- package/docs/wiki/TypeAlias.Navigation.md +0 -7
- package/docs/wiki/TypeAlias.NavigationWithInserts.md +0 -7
- package/docs/wiki/TypeAlias.SettingsMenuItemComponent.md +0 -7
- package/docs/wiki/Variable.EXTRACT_USERNAME_FROM_PROFILE.md +0 -7
- package/docs/wiki/Variable.RXAP_DEFAULT_HEADER_ITEM_COMPONENT.md +0 -7
- package/docs/wiki/Variable.RXAP_EXTERNAL_APP.md +0 -7
- package/docs/wiki/Variable.RXAP_EXTERNAL_APP_FILTER.md +0 -7
- package/docs/wiki/Variable.RXAP_FOOTER_COMPONENT.md +0 -7
- package/docs/wiki/Variable.RXAP_HEADER_COMPONENT.md +0 -7
- package/docs/wiki/Variable.RXAP_LAYOUT_APPS_GRID.md +0 -7
- package/docs/wiki/Variable.RXAP_LOGO_CONFIG.md +0 -7
- package/docs/wiki/Variable.RXAP_NAVIGATION_CONFIG.md +0 -7
- package/docs/wiki/Variable.RXAP_NAVIGATION_CONFIG_INSERTS.md +0 -7
- package/docs/wiki/Variable.RXAP_RELEASE_INFO_MODULE.md +0 -7
- package/docs/wiki/Variable.RXAP_SETTINGS_MENU_ITEM.md +0 -7
- package/docs/wiki/Variable.RXAP_SETTINGS_MENU_ITEM_COMPONENT.md +0 -7
- package/docs/wiki/Variable.RXAP_USER_PROFILE_DATA_SOURCE.md +0 -7
- package/docs/wiki/_Sidebar.md +0 -82
- package/docs/wiki/globals.md +0 -82
- /package/docs/{html/.nojekyll → .nojekyll} +0 -0
- /package/docs/{html/assets → assets}/highlight.css +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxap-layout.mjs","sources":["../../../../../packages/angular/layout/src/lib/sidenav/sidenav-footer.directive.ts","../../../../../packages/angular/layout/src/lib/sidenav/sidenav-header.directive.ts","../../../../../packages/angular/layout/src/lib/tokens.ts","../../../../../packages/angular/layout/src/lib/footer.service.ts","../../../../../packages/angular/layout/src/lib/header.service.ts","../../../../../packages/angular/layout/src/lib/layout.service.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation-item.ts","../../../../../packages/angular/layout/src/lib/navigation.service.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation-item/navigation-item.component.html","../../../../../packages/angular/layout/src/lib/navigation/navigation.component.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation.component.html","../../../../../packages/angular/layout/src/lib/sidenav/sidenav.component.ts","../../../../../packages/angular/layout/src/lib/sidenav/sidenav.component.html","../../../../../packages/angular/layout/src/lib/release-info/release-info.component.ts","../../../../../packages/angular/layout/src/lib/release-info/release-info.component.html","../../../../../packages/angular/layout/src/lib/navigation-progress-bar/navigation-progress-bar.component.ts","../../../../../packages/angular/layout/src/lib/navigation-progress-bar/navigation-progress-bar.component.html","../../../../../packages/angular/layout/src/lib/footer/footer.component.ts","../../../../../packages/angular/layout/src/lib/footer/footer.component.html","../../../../../packages/angular/layout/src/lib/header/header.component.ts","../../../../../packages/angular/layout/src/lib/header/header.component.html","../../../../../packages/angular/layout/src/lib/base-layout/base-layout.component.ts","../../../../../packages/angular/layout/src/lib/base-layout/base-layout.component.html","../../../../../packages/angular/layout/src/lib/minimal-layout/minimal-layout.component.ts","../../../../../packages/angular/layout/src/lib/minimal-layout/minimal-layout.component.html","../../../../../packages/angular/layout/src/lib/logo.service.ts","../../../../../packages/angular/layout/src/lib/layout/layout.component.ts","../../../../../packages/angular/layout/src/lib/layout/layout.component.html","../../../../../packages/angular/layout/src/lib/header/header.directive.ts","../../../../../packages/angular/layout/src/lib/footer/footer.directive.ts","../../../../../packages/angular/layout/src/lib/default-header/user-profile-icon/user-profile-icon.component.ts","../../../../../packages/angular/layout/src/lib/default-header/user-profile-icon/user-profile-icon.component.html","../../../../../packages/angular/layout/src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts","../../../../../packages/angular/layout/src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.html","../../../../../packages/angular/layout/src/lib/default-header/settings-button/settings-button.component.ts","../../../../../packages/angular/layout/src/lib/default-header/settings-button/settings-button.component.html","../../../../../packages/angular/layout/src/lib/external-apps.service.ts","../../../../../packages/angular/layout/src/lib/default-header/apps-button/apps-button.component.ts","../../../../../packages/angular/layout/src/lib/default-header/apps-button/apps-button.component.html","../../../../../packages/angular/layout/src/lib/default-header/default-header.service.ts","../../../../../packages/angular/layout/src/lib/default-header/default-header.component.ts","../../../../../packages/angular/layout/src/lib/default-header/default-header.component.html","../../../../../packages/angular/layout/src/lib/provide.ts","../../../../../packages/angular/layout/src/index.ts","../../../../../packages/angular/layout/src/rxap-layout.ts"],"sourcesContent":["import {\n Directive,\n Inject,\n TemplateRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavFooter]',\n standalone: true,\n})\nexport class SidenavFooterDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>,\n ) {\n }\n}\n","import {\n Directive,\n Inject,\n TemplateRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavHeader]',\n standalone: true,\n})\nexport class SidenavHeaderDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>,\n ) {\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken } from '@angular/core';\nimport { LogoConfig } from '@rxap/config';\nimport { staticDataSource } from '@rxap/data-source';\nimport {\n DataSource,\n MethodWithParameters,\n} from '@rxap/pattern';\nimport { NavigationWithInserts } from './navigation/navigation-item';\nimport {\n DefaultHeaderItemComponent,\n ExternalApp,\n ExtractUsernameFromProfileFn,\n ReleaseInfoModule,\n SettingsMenuItem,\n SettingsMenuItemComponent,\n} from './types';\n\nexport const RXAP_NAVIGATION_CONFIG = new InjectionToken<NavigationWithInserts | (() => NavigationWithInserts)>(\n 'rxap/layout/navigation-config');\nexport const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken<Record<string, NavigationWithInserts>>(\n 'rxap/layout/navigation-config-inserts');\n\nexport const RXAP_FOOTER_COMPONENT = new InjectionToken<ComponentType<unknown>>('rxap/layout/footer-component');\nexport const RXAP_HEADER_COMPONENT = new InjectionToken<ComponentType<unknown>>('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\nexport const RXAP_EXTERNAL_APP_FILTER = new InjectionToken<MethodWithParameters<ExternalApp[], ExternalApp[]>>('rxap/layout/app-config-filter');\nexport const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken<ExtractUsernameFromProfileFn>(\n 'extract-username-from-profile',\n {\n providedIn: 'root',\n factory: () => (profile: any) => (\n profile ? profile.username ?? profile.email ?? profile.name : null\n ) ?? null,\n },\n);\n\nexport const RXAP_USER_PROFILE_DATA_SOURCE = new InjectionToken<DataSource>('rxap/layout/user-profile-data-source', {\n providedIn: 'root',\n factory: () => staticDataSource(null),\n});\n\nexport const RXAP_EXTERNAL_APP = new InjectionToken<ExternalApp>('rxap/layout/external-app');\n\nexport const RXAP_RELEASE_INFO_MODULE = new InjectionToken<ReleaseInfoModule>('rxap/layout/release-info-module');\n\nexport const RXAP_SETTINGS_MENU_ITEM_COMPONENT = new InjectionToken<Array<SettingsMenuItemComponent | (() => Promise<SettingsMenuItemComponent>)>>('rxap/layout/settings-menu-item-component');\n\nexport const RXAP_DEFAULT_HEADER_ITEM_COMPONENT = new InjectionToken<Array<DefaultHeaderItemComponent | (() => Promise<DefaultHeaderItemComponent>)>>('rxap/layout/default-header-item-component');\n\nexport const RXAP_SETTINGS_MENU_ITEM = new InjectionToken<SettingsMenuItem>('rxap/layout/settings-menu-item');\n","import {\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n computed,\n inject,\n Injectable,\n isDevMode,\n signal,\n} from '@angular/core';\nimport { RXAP_FOOTER_COMPONENT } from './tokens';\nimport { coerceArray } from '@rxap/utilities';\n\n@Injectable()\nexport class FooterService {\n\n private readonly components = coerceArray(inject(RXAP_FOOTER_COMPONENT, { optional: true }));\n\n /**\n * Represents an array of `Portal` objects with unknown type.\n */\n public readonly portals = signal<Array<Portal<unknown>>>(this.components.map(component => new ComponentPortal(component)));\n\n\n /**\n * Computes the count of portals.\n *\n * @returns {number} The count of portals.\n */\n public readonly portalCount = computed(() => this.portals().length);\n\n /**\n * Adds a portal to the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be added.\n *\n * @return {void}\n */\n public pushPortal(portal: Portal<unknown>) {\n if (!this.portals().includes(portal)) {\n this.portals.update(portals => [ ...portals, portal ]);\n } else {\n if (isDevMode()) {\n console.warn('Can not add the same portal multiple times');\n }\n }\n }\n\n /**\n * Removes a portal from the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be removed.\n * @return {void}\n */\n public removePortal(portal: Portal<unknown>) {\n const index = this.portals().indexOf(portal);\n if (index !== -1) {\n this.portals.update(portals => {\n portals.splice(index, 1);\n return portals.slice();\n });\n }\n }\n\n}\n","import {\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n computed,\n inject,\n Injectable,\n isDevMode,\n signal,\n} from '@angular/core';\nimport { RXAP_HEADER_COMPONENT } from './tokens';\nimport { coerceArray } from '@rxap/utilities';\n\n@Injectable()\nexport class HeaderService {\n\n private readonly components = coerceArray(inject(RXAP_HEADER_COMPONENT, { optional: true }));\n\n /**\n * Represents an array of `Portal` objects with unknown type.\n *\n * @typedef {Array<Portal<unknown>>} SignalPortals\n */\n public readonly portals = signal<Array<Portal<unknown>>>(this.components.map(component => new ComponentPortal(component)));\n\n\n /**\n * Computes the count of portals.\n *\n * @returns {number} The count of portals.\n */\n public readonly portalCount = computed(() => this.portals().length);\n\n\n /**\n * Adds a portal to the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be added.\n *\n * @return {void}\n */\n public pushPortal(portal: Portal<unknown>) {\n if (!this.portals().includes(portal)) {\n this.portals.update(portals => [ ...portals, portal ]);\n } else {\n if (isDevMode()) {\n console.warn('Can not add the same portal multiple times');\n }\n }\n }\n\n /**\n * Removes a portal from the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be removed.\n * @return {void}\n */\n public removePortal(portal: Portal<unknown>) {\n const index = this.portals().indexOf(portal);\n if (index !== -1) {\n this.portals.update(portals => {\n portals.splice(index, 1);\n return portals.slice();\n });\n }\n }\n\n}\n","import { MediaMatcher } from '@angular/cdk/layout';\nimport {\n computed,\n effect,\n inject,\n Injectable,\n isDevMode,\n signal,\n Signal,\n WritableSignal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatDrawerMode } from '@angular/material/sidenav';\nimport { ConfigService } from '@rxap/config';\nimport { ObserveCurrentThemeDensity } from '@rxap/ngx-theme';\nimport { Observable } from 'rxjs';\nimport { FooterService } from './footer.service';\nimport { HeaderService } from './header.service';\n\n@Injectable()\nexport class LayoutService {\n\n public readonly opened: WritableSignal<boolean>;\n public readonly mode: WritableSignal<MatDrawerMode>;\n public readonly pinned: WritableSignal<boolean>;\n public readonly collapsable: WritableSignal<boolean>;\n public readonly fixedBottomGap: Signal<number>;\n public readonly fixedTopGap: Signal<number>;\n public readonly currentThemeDensity = toSignal(ObserveCurrentThemeDensity());\n public readonly isMobile: Signal<boolean>;\n public readonly fixedInViewport: WritableSignal<boolean>;\n public readonly collapsed: Signal<boolean>;\n\n private readonly footerService = inject(FooterService);\n private readonly headerService = inject(HeaderService);\n private readonly config = inject(ConfigService);\n private readonly mediaMatcher = inject(MediaMatcher);\n\n constructor() {\n const mobileQuery = this.mediaMatcher.matchMedia('(max-width: 959px)');\n this.isMobile = toSignal(new Observable<boolean>(subscriber => {\n mobileQuery.addEventListener('change', (event) => {\n subscriber.next(event.matches);\n });\n }), { initialValue: mobileQuery.matches });\n\n const initialCollapsable = this.config.get('navigation.collapsable', true);\n const collapsable = initialCollapsable && !this.isMobile();\n const pinned = this.config.get('navigation.pinned', false);\n const mode = this.config.get('navigation.mode', pinned || !collapsable ? 'side' : 'over');\n const opened = this.config.get('navigation.opened', (!collapsable || pinned) && !this.isMobile());\n const fixedInViewport = this.config.get('navigation.fixedInViewport', true);\n\n if (isDevMode()) {\n console.log({\n initialCollapsable,\n collapsable,\n pinned,\n mode,\n opened,\n fixedInViewport,\n });\n }\n\n this.opened = signal(opened);\n this.mode = signal(mode);\n this.pinned = signal(pinned);\n this.collapsable = signal(collapsable);\n this.fixedInViewport = signal(fixedInViewport);\n this.collapsed = computed(() => this.collapsable() && !this.opened() && !this.pinned());\n\n this.fixedBottomGap = computed(() => {\n const footerPortalCount = this.footerService.portalCount();\n const currentThemeDensity = this.currentThemeDensity() ?? 0;\n return footerPortalCount * (currentThemeDensity * 4 + 64);\n });\n\n this.fixedTopGap = computed(() => {\n const headerPortalCount = this.headerService.portalCount();\n const currentThemeDensity = this.currentThemeDensity() ?? 0;\n return headerPortalCount * (currentThemeDensity * 4 + 64);\n });\n\n if (initialCollapsable) {\n effect(() => {\n const isMobile = this.isMobile();\n this.collapsable.set(!isMobile);\n if (!isMobile && !this.pinned()) {\n this.opened.set(false);\n }\n }, { allowSignalWrites: true });\n }\n effect(() => {\n if (this.pinned()) {\n this.mode.set('side');\n this.opened.set(true);\n } else {\n this.mode.set('over');\n this.opened.set(false);\n }\n }, { allowSignalWrites: true });\n }\n\n public toggleOpened() {\n this.opened.update(opened => !opened);\n }\n\n public togglePinned() {\n this.pinned.update(pinned => !pinned);\n }\n\n openSidenav() {\n this.opened.set(true);\n }\n\n closeSidenav() {\n this.opened.set(false);\n }\n}\n","import { IconConfig } from '@rxap/utilities';\nimport {\n AbstractType,\n InjectionToken,\n Type,\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['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['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[] | 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['routerLink'] && !!item['label']\n );\n}\n","import {\n inject,\n Inject,\n Injectable,\n Injector,\n INJECTOR,\n Optional,\n} from '@angular/core';\nimport {\n combineLatest,\n from,\n Observable,\n of,\n ReplaySubject,\n} from 'rxjs';\nimport {\n catchError,\n map,\n switchMap,\n} from 'rxjs/operators';\nimport {\n IsNavigationDividerItem,\n IsNavigationInsertItem,\n IsNavigationItem,\n Navigation,\n NavigationDividerItem,\n NavigationItem,\n NavigationWithInserts,\n} from './navigation/navigation-item';\nimport {\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS,\n} from './tokens';\n\n@Injectable()\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 private readonly injector: Injector = inject(INJECTOR);\n\n constructor(\n @Inject(RXAP_NAVIGATION_CONFIG)\n navigation: any,\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 = true,\n ): void {\n this.add(id, value, update);\n }\n\n public add(\n id: string,\n value: NavigationWithInserts,\n update = 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 = 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\n .status\n .map((statusToken) => this.injector.get(\n statusToken))\n .map((status) => {\n const isVisible = status.isVisible(\n navigationItem);\n if (typeof isVisible === 'boolean') {\n return of(isVisible);\n } else {\n return from(isVisible);\n }\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","import {\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n NgClass,\n NgIf,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n Renderer2,\n signal,\n SimpleChanges,\n viewChild,\n ViewEncapsulation, AfterViewInit,\n} from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n NavigationEnd,\n Router,\n RouterLink,\n RouterLinkActive,\n} from '@angular/router';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { coerceArray } from '@rxap/utilities';\nimport {\n debounceTime,\n Subscription,\n} from 'rxjs';\nimport {\n filter,\n startWith,\n tap,\n} from 'rxjs/operators';\nimport { LayoutService } from '../../layout.service';\nimport {\n Navigation,\n NavigationDividerItem,\n NavigationItem,\n} from '../navigation-item';\nimport { NavigationComponent } from '../navigation.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\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 animations: [\n trigger('sub-nav', [\n transition(':enter', [\n style({\n display: 'block',\n height: '0',\n overflow: 'hidden',\n }),\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 imports: [\n RouterLinkActive,\n RouterLink,\n NgIf,\n MatRippleModule,\n MatIconModule,\n IconDirective,\n MatDividerModule,\n forwardRef(() => NavigationComponent),\n NgClass,\n ]\n})\nexport class NavigationItemComponent\n implements OnChanges, OnDestroy, AfterViewInit {\n\n public readonly level = input(0);\n\n public children: Navigation | null = null;\n\n public readonly item = input.required<NavigationItem>();\n public readonly active = signal(false);\n\n public readonly itemClasses = computed(() => {\n let classes = `level-${ this.level() * 4 }`;\n if (this.collapsed()) {\n classes += ' invisible';\n }\n return classes;\n });\n\n private readonly layoutService = inject(LayoutService);\n\n public readonly collapsed = computed(() => this.layoutService.collapsed());\n\n private readonly _subscription = new Subscription();\n\n private readonly router = inject(Router);\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\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 debounceTime(100),\n startWith(true),\n tap(() => {\n let isActive = true;\n const urlParts = this.router.url.split('/');\n if (urlParts[0] === '') {\n urlParts[0] = '/';\n }\n const routerLink = coerceArray(this.item().routerLink).map(fragment => fragment.split('/')).flat();\n if (routerLink[0] === '') {\n routerLink[0] = '/';\n }\n for (let i = 0; i < routerLink.length; i++) {\n if (urlParts[i] !== routerLink[i]) {\n isActive = false;\n break;\n }\n }\n this.active.set(isActive);\n if (isActive) {\n this.renderer.addClass(this.elementRef.nativeElement, 'active');\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'active');\n }\n }),\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 [ngClass]=\"{\n 'border-l-4 text-accent-400 border-accent-600': active(),\n }\">\n <a [routerLink]=\"item().routerLink\"\n class=\"h-12 pl-4 pr-5 flex flex-row justify-between items-center gap-x-4\"\n matRipple\n routerLinkActive\n\n >\n <span\n [ngClass]=\"itemClasses()\"\n class=\"grow whitespace-nowrap\"\n >\n {{ item().label }}\n </span>\n <mat-icon *ngIf=\"item().icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n </a>\n\n <ng-container *ngIf=\"item().children?.length && active()\">\n\n <mat-divider></mat-divider>\n\n <ul [@sub-nav]\n [items]=\"children ?? []\"\n [level]=\"level() + 1\"\n rxap-navigation\n >\n </ul>\n\n <mat-divider></mat-divider>\n\n </ng-container>\n</div>\n","import {\n AsyncPipe,\n NgFor,\n NgIf,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n inject,\n INJECTOR,\n input,\n OnInit,\n runInInjectionContext,\n ViewEncapsulation,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { LayoutService } from '../layout.service';\nimport { NavigationService } from '../navigation.service';\nimport {\n Navigation,\n NavigationDividerItem,\n NavigationItem,\n} from './navigation-item';\nimport { NavigationItemComponent } from './navigation-item/navigation-item.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[rxap-navigation]',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n \n host: {\n class: 'list-none dark:text-neutral-400 text-neutral-700',\n },\n imports: [\n NgFor,\n NgIf,\n MatDividerModule,\n forwardRef(() => NavigationItemComponent),\n AsyncPipe,\n ]\n})\nexport class NavigationComponent implements OnInit {\n\n public items = input<Navigation>();\n\n public level = input(0);\n\n private readonly navigationService = inject(NavigationService);\n\n private readonly layoutService = inject(LayoutService);\n\n public readonly collapsed = computed(() => this.layoutService.collapsed());\n\n public navigationItems = computed(() => this.items() ?? []);\n\n public readonly root = input(false);\n\n private readonly injector = inject(INJECTOR);\n\n public ngOnInit(): void {\n if (this.root()) {\n runInInjectionContext(this.injector, () => {\n this.navigationItems = toSignal(this.navigationService.config$, { initialValue: [] });\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]=\"navigationItems()\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider></mat-divider>\n <div *ngIf=\"!collapsed() && item.title\" class=\"pl-5 h-6\">\n {{item.title}}\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li [item]=\"asNavigationItem(item)\"\n [level]=\"level()\"\n class=\"dark:hover:text-white hover:text-black\"\n rxap-navigation-item>\n </li>\n </ng-template>\n</ng-template>\n","import {\n NgClass,\n NgIf,\n NgStyle,\n NgTemplateOutlet,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n Signal,\n viewChild,\n} from '@angular/core';\nimport {\n MatButton,\n MatIconButton,\n} from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n MatDrawerMode,\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n} from '@angular/material/sidenav';\nimport { RouterOutlet } from '@angular/router';\nimport { LayoutService } from '../layout.service';\nimport { NavigationComponent } from '../navigation/navigation.component';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\n\n@Component({\n selector: 'rxap-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: ['./sidenav.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatIcon,\n MatIconButton,\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n NavigationComponent,\n NgIf,\n RouterOutlet,\n NgClass,\n NgStyle,\n MatDivider,\n NgTemplateOutlet,\n MatButton,\n ]\n})\nexport class SidenavComponent {\n\n private readonly layoutService = inject(LayoutService);\n\n\n private readonly sidenav = viewChild(MatSidenav);\n\n public readonly sidenavMode: Signal<MatDrawerMode> = computed(() => this.layoutService.mode());\n public readonly fixedBottomGap: Signal<number> = computed(() => this.layoutService.fixedBottomGap());\n public readonly fixedTopGap: Signal<number> = computed(() => this.layoutService.fixedTopGap());\n public readonly fixedInViewport: Signal<boolean> = computed(() => this.layoutService.fixedInViewport());\n public readonly pinned: Signal<boolean> = computed(() => this.layoutService.pinned());\n public readonly collapsed: Signal<boolean> = computed(() => this.layoutService.collapsed());\n public readonly collapsable: Signal<boolean> = computed(() => this.layoutService.collapsable());\n public readonly opened: Signal<boolean> = computed(() => this.layoutService.opened());\n public readonly sidenavFooterDirective = contentChild(SidenavFooterDirective);\n public readonly sidenavHeaderDirective = contentChild(SidenavHeaderDirective);\n\n togglePinned() {\n this.layoutService.togglePinned();\n }\n\n async openSidenav() {\n await this.sidenav()?.open();\n this.layoutService.openSidenav();\n }\n\n async closeSidenav() {\n await this.sidenav()?.close();\n this.layoutService.closeSidenav();\n }\n\n}\n","<mat-sidenav-container [ngStyle]=\"{\n 'padding-top.px': fixedTopGap(),\n 'padding-bottom.px': fixedBottomGap(),\n }\" class=\"h-full\">\n <mat-sidenav\n [fixedBottomGap]=\"fixedBottomGap()\"\n [fixedInViewport]=\"fixedInViewport()\"\n [fixedTopGap]=\"fixedTopGap()\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"{ collapsable: collapsable() }\"\n [opened]=\"opened()\"\n >\n <div (mouseleave)=\"collapsable() && !pinned() && closeSidenav()\"\n class=\"h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch\">\n\n <div (click)=\"togglePinned()\" *ngIf=\"collapsable()\"\n class=\"pl-2 self-stretch grow-0 flex flex-row justify-between items-center\">\n <span class=\"text-lg\" i18n>Navigation</span>\n <div class=\"flex flex-row items-center justify-center\" style=\"width: 64px\">\n <button mat-icon-button>\n <mat-icon *ngIf=\"!pinned()\">radio_button_unchecked</mat-icon>\n <mat-icon *ngIf=\"pinned()\">radio_button_checked</mat-icon>\n </button>\n </div>\n </div>\n\n @if (sidenavHeaderDirective()?.template; as template) {\n <div [ngClass]=\"{ hidden: collapsed() }\" class=\"header grow-0\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n <mat-divider [ngClass]=\"{ hidden: collapsed() }\" class=\"grow-0\"></mat-divider>\n }\n\n <ul\n (mouseenter)=\"collapsable() && !pinned() && openSidenav()\"\n class=\"grow self-stretch\"\n [root]=\"true\"\n rxap-navigation\n >\n </ul>\n\n @if (sidenavFooterDirective()?.template; as template) {\n <mat-divider [ngClass]=\"{ hidden: collapsed() }\" class=\"grow-0\"></mat-divider>\n <div [ngClass]=\"{ hidden: collapsed() }\" class=\"footer grow-0\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n }\n </div>\n </mat-sidenav>\n <mat-sidenav-content [ngClass]=\"{ 'ml-16': collapsable() }\" class=\"p-4\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n DetermineReleaseName,\n EnvironmentComponent,\n RXAP_ENVIRONMENT,\n} from '@rxap/environment';\nimport { RXAP_RELEASE_INFO_MODULE } from '../tokens';\nimport { coerceArray } from '@rxap/utilities';\n\n@Component({\n selector: 'rxap-release-info',\n imports: [\n MatButton,\n ],\n templateUrl: './release-info.component.html',\n styleUrl: './release-info.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReleaseInfoComponent {\n\n public readonly modules = coerceArray(inject(RXAP_RELEASE_INFO_MODULE, { optional: true }));\n public readonly release = DetermineReleaseName(inject(RXAP_ENVIRONMENT));\n\n private readonly dialog = inject(MatDialog);\n\n openEnvironmentInfo() {\n this.dialog.open(EnvironmentComponent, {\n closeOnNavigation: true,\n });\n }\n\n}\n","<div class=\"flex flex-col gap-2 w-full justify-center\">\n <button (click)=\"openEnvironmentInfo()\" mat-button>{{ release }}</button>\n @if (modules.length) {\n <table class=\"table-auto border-separate border-spacing-2 bg-white dark:bg-slate-800 text-sm shadow-sm\">\n <thead class=\"bg-slate-50 dark:bg-slate-700\">\n <th class=\"text-sm border-slate-300 dark:border-slate-600 text-slate-900 dark:text-slate-200 border p-2\">Module</th>\n <th class=\"text-sm border-slate-300 dark:border-slate-600 text-slate-900 dark:text-slate-200 border p-2\">Version</th>\n <th class=\"text-sm border-slate-300 dark:border-slate-600 text-slate-900 dark:text-slate-200 border p-2\">Hash</th>\n </thead>\n <tbody>\n @for (module of modules; track module.name) {\n <tr>\n <th class=\"text-sm border border-slate-300 dark:border-slate-700 text-slate-500 dark:text-slate-400 py-2 px-4\">{{ module.name }}</th>\n <td class=\"text-sm border border-slate-300 dark:border-slate-700 text-slate-500 dark:text-slate-400 p-2\">{{ module.version }}</td>\n <td class=\"text-sm border border-slate-300 dark:border-slate-700 text-slate-500 dark:text-slate-400 p-2\">{{ module.hash }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationStart,\n Router,\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 imports: [\n MatProgressBar,\n ]\n})\nexport class NavigationProgressBarComponent {\n\n public readonly router = inject(Router);\n\n public readonly navigating = toSignal(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 ), { initialValue: true });\n\n}\n","@if (navigating()) {\n<mat-progress-bar color=\"accent\" mode=\"indeterminate\"></mat-progress-bar>\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { FooterService } from '../footer.service';\n\n@Component({\n selector: 'rxap-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatToolbarModule, PortalModule]\n})\nexport class FooterComponent {\n\n private readonly footerService = inject(FooterService);\n\n public readonly portals = computed(() => this.footerService.portals());\n public readonly hasPortals = computed(() => this.portals().length > 0);\n\n}\n","@if (hasPortals()) {\n <mat-toolbar class=\"mat-elevation-z1\">\n @for (portal of portals(); track portal) {\n <mat-toolbar-row>\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n }\n </mat-toolbar>\n}\n","import { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport {\n MatToolbar,\n MatToolbarRow,\n} from '@angular/material/toolbar';\nimport { HeaderService } from '../header.service';\n\n@Component({\n selector: 'rxap-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatToolbar,\n MatToolbarRow,\n CdkPortalOutlet,\n ]\n})\nexport class HeaderComponent {\n\n public readonly color = input<ThemePalette>();\n\n private readonly headerService = inject(HeaderService);\n\n public readonly portals = computed(() => this.headerService.portals());\n public readonly hasPortals = computed(() => this.portals().length > 0);\n\n}\n","@if (hasPortals()) {\n <mat-toolbar [color]=\"color()\" class=\"mat-elevation-z1\">\n @for (portal of portals(); track portal) {\n <mat-toolbar-row>\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n }\n </mat-toolbar>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { FooterComponent } from '../footer/footer.component';\nimport { HeaderComponent } from '../header/header.component';\n\n@Component({\n selector: 'rxap-base-layout',\n imports: [\n HeaderComponent,\n FooterComponent,\n ],\n templateUrl: './base-layout.component.html',\n styleUrl: './base-layout.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseLayoutComponent {}\n","<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<ng-content></ng-content>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { BaseLayoutComponent } from '../base-layout/base-layout.component';\nimport { FooterComponent } from '../footer/footer.component';\nimport { HeaderComponent } from '../header/header.component';\nimport { NavigationProgressBarComponent } from '../navigation-progress-bar/navigation-progress-bar.component';\n\n@Component({\n selector: 'rxap-minimal-layout',\n imports: [RouterOutlet, BaseLayoutComponent, NavigationProgressBarComponent, HeaderComponent, FooterComponent],\n templateUrl: './minimal-layout.component.html',\n styleUrl: './minimal-layout.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MinimalLayoutComponent {}\n","<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<router-outlet></router-outlet>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n","import {\n computed,\n inject,\n Injectable,\n signal,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\nimport { RXAP_LOGO_CONFIG } from './tokens';\n\n@Injectable()\nexport class LogoService {\n\n private readonly config = inject(ConfigService);\n public readonly logo = signal(\n inject(RXAP_LOGO_CONFIG, { optional: true }) ??\n this.config.get('logo', {\n src: 'logo.png',\n width: 192,\n }),\n );\n\n public readonly src = computed(() => this.logo().src);\n public readonly width = computed(() => this.logo().width);\n public readonly height = computed(() => this.logo().height);\n\n}\n","import {\n AsyncPipe,\n NgClass,\n NgIf,\n NgOptimizedImage,\n NgStyle,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport {\n RouterLink,\n RouterOutlet,\n} from '@angular/router';\nimport { FooterComponent } from '../footer/footer.component';\nimport { HeaderComponent } from '../header/header.component';\nimport { LogoService } from '../logo.service';\nimport { NavigationProgressBarComponent } from '../navigation-progress-bar/navigation-progress-bar.component';\nimport { NavigationComponent } from '../navigation/navigation.component';\nimport { ReleaseInfoComponent } from '../release-info/release-info.component';\nimport { SidenavFooterDirective } from '../sidenav/sidenav-footer.directive';\nimport { SidenavComponent } from '../sidenav/sidenav.component';\n\n\n@Component({\n selector: 'rxap-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n HeaderComponent,\n MatSidenavModule,\n AsyncPipe,\n MatIconModule,\n MatButtonModule,\n RouterLink,\n NgIf,\n FooterComponent,\n MatMenuModule,\n NgOptimizedImage,\n NavigationComponent,\n RouterOutlet,\n NgStyle,\n NgClass,\n SidenavComponent,\n ReleaseInfoComponent,\n SidenavFooterDirective,\n NavigationProgressBarComponent,\n ]\n})\nexport class LayoutComponent {\n\n private readonly logoService = inject(LogoService);\n public readonly logoSrc: Signal<string> = computed(() => this.logoService.src());\n public readonly logoWidth: Signal<number> = computed(() => this.logoService.width());\n public readonly logoHeight: Signal<number> = computed(() => this.logoService.height());\n\n}\n","<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<rxap-sidenav>\n <router-outlet></router-outlet>\n <ng-template rxapSidenavFooter>\n <img\n [src]=\"logoSrc()\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth()\"\n [height]=\"logoHeight()\"\n alt=\"logo\"\n class=\"grow-0 mx-16 cursor-pointer\"\n />\n <div class=\"grow-0 px-16 mt-4\">\n <rxap-release-info></rxap-release-info>\n </div>\n </ng-template>\n</rxap-sidenav>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { HeaderService } from '../header.service';\n\n@Directive({\n selector: '[rxapHeader]',\n standalone: true,\n})\nexport class HeaderDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n private readonly headerService = inject(HeaderService);\n private readonly template: TemplateRef<void> = inject(TemplateRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n public ngOnInit() {\n this._portal = new TemplatePortal<void>(\n this.template,\n this.viewContainerRef,\n );\n this.headerService.pushPortal(this._portal);\n }\n\n public ngOnDestroy() {\n if (this._portal) {\n this.headerService.removePortal(this._portal);\n }\n }\n}\n\n\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { FooterService } from '../footer.service';\n\n@Directive({\n selector: '[rxapFooter]',\n standalone: true,\n})\nexport class FooterDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n private readonly footerService = inject(FooterService);\n private readonly template: TemplateRef<void> = inject(TemplateRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\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\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport {\n PubSubService,\n RXAP_TOPICS,\n} from '@rxap/ngx-pub-sub';\nimport { EXTRACT_USERNAME_FROM_PROFILE } from '../../tokens';\nimport { ExtractUsernameFromProfileFn } from '../../types';\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 imports: [\n MatMenuModule,\n MatIconModule,\n ]\n})\nexport class UserProfileIconComponent {\n\n private readonly extractUsernameFromProfile: ExtractUsernameFromProfileFn = inject(EXTRACT_USERNAME_FROM_PROFILE);\n private readonly pubSubService = inject(PubSubService);\n\n public readonly profile = input.required();\n\n public readonly username = computed(() => {\n const profile = this.profile();\n if (profile) {\n return this.extractUsernameFromProfile(profile);\n }\n return null;\n });\n\n public logout() {\n this.pubSubService.publish(RXAP_TOPICS.authentication.logout);\n }\n\n\n}\n","<button [matMenuTriggerFor]=\"menu\"\n class=\"rounded-full cursor-pointer outline-none overflow-hidden h-8 w-8 bg-center bg-no-repeat bg-cover flex flex-row justify-center items-center\">\n <mat-icon class=\"h-8 w-8 text-[32px]\" svgIcon=\"account-circle\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\" class=\"!max-w-none\">\n @if (this.username(); as username) {\n <button mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"account\"></mat-icon>\n <span>{{username}}</span>\n </span>\n </button>\n }\n <button (click)=\"logout()\" mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"logout\"></mat-icon>\n <span i18n>Logout</span>\n </span>\n </button>\n</mat-menu>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { LayoutService } from '../../layout.service';\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 imports: [\n MatIcon,\n MatIconButton,\n ]\n})\nexport class SidenavToggleButtonComponent {\n\n private readonly layoutComponentService = inject(LayoutService);\n\n public readonly opened = computed(() => this.layoutComponentService.opened());\n\n public toggle() {\n this.layoutComponentService.toggleOpened();\n }\n\n}\n","<button (click)=\"toggle()\" mat-icon-button>\n @if (opened()) {\n <mat-icon>menu_open</mat-icon>\n } @else {\n <mat-icon>menu</mat-icon>\n }\n</button>\n","import {\n CdkPortalOutlet,\n ComponentPortal,\n} from '@angular/cdk/portal';\nimport { NgIf } from '@angular/common';\nimport {\n Component,\n inject,\n Injector,\n isDevMode,\n runInInjectionContext,\n Signal,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n MatMenu,\n MatMenuItem,\n MatMenuTrigger,\n} from '@angular/material/menu';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport {\n ThemeService,\n} from '@rxap/ngx-theme';\nimport {\n coerceArray,\n IsFunction,\n ThemeDensity,\n} from '@rxap/utilities';\nimport { from } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n RXAP_SETTINGS_MENU_ITEM,\n RXAP_SETTINGS_MENU_ITEM_COMPONENT,\n} from '../../tokens';\nimport { SettingsMenuItem } from '../../types';\n\n@Component({\n selector: 'rxap-settings-button',\n templateUrl: './settings-button.component.html',\n styleUrls: ['./settings-button.component.scss'],\n imports: [\n MatIconButton,\n MatIcon,\n MatMenu,\n MatMenuTrigger,\n MatMenuItem,\n CdkPortalOutlet,\n IconDirective,\n NgIf,\n ]\n})\nexport class SettingsButtonComponent {\n\n public isDevMode = isDevMode();\n\n public readonly theme = inject(ThemeService);\n private readonly injector = inject(Injector);\n\n customItemComponents: Signal<ComponentPortal<unknown>[]> = toSignal(from(Promise.all(\n coerceArray(inject(RXAP_SETTINGS_MENU_ITEM_COMPONENT, { optional: true }))\n .map(item => IsFunction(item) ? item() : item),\n )).pipe(map(items => items.map(item => new ComponentPortal(item, null, this.injector)))), { initialValue: [] });\n\n customItems = signal(coerceArray(inject(RXAP_SETTINGS_MENU_ITEM, { optional: true })));\n\n private savePreviewDensityValue = false;\n private currentDensityValue: ThemeDensity | null = null;\n\n private savePreviewTypographyValue = false;\n private currentTypographyValue: string | null = null;\n\n public readonly availableTypographies = this.theme.getAvailableTypographies();\n private savePreviewThemeValue = false;\n\n public readonly availableThemes = this.theme.getAvailableThemes();\n private currentThemeValue: string | null = null;\n\n previewDensity(density: ThemeDensity) {\n this.theme.applyDensity(density);\n }\n\n restoreDensity() {\n this.theme.applyDensity(this.theme.density());\n }\n\n setDensity(density: ThemeDensity) {\n this.theme.setDensity(density);\n }\n\n previewTypography(typography: string) {\n this.theme.applyTypography(typography);\n }\n\n restoreTypography() {\n this.theme.applyTypography(this.theme.typography());\n }\n\n setTypography(typography: string) {\n this.theme.setTypography(typography);\n }\n\n previewTheme(theme: string) {\n this.theme.applyTheme(theme);\n }\n\n restoreTheme() {\n this.theme.applyTheme(this.theme.themeName());\n }\n\n setTheme(theme: string) {\n this.theme.setTheme(theme);\n }\n\n clickItem(item: SettingsMenuItem) {\n runInInjectionContext(this.injector, () => item.action());\n }\n}\n","<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon svgIcon=\"cog\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n @if (theme.darkMode()) {\n <mat-icon svgIcon=\"brightness-2\"></mat-icon>\n } @else {\n <mat-icon svgIcon=\"brightness-5\"></mat-icon>\n }\n <span i18n>Mode</span>\n </button>\n <button [matMenuTriggerFor]=\"themeMenu\" mat-menu-item>\n <mat-icon svgIcon=\"compare\"></mat-icon>\n <span i18n>Theme</span>\n </button>\n @for (item of customItems(); track item.label) {\n <button (click)=\"clickItem(item)\" mat-menu-item>\n <mat-icon *ngIf=\"item.icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n <span>{{ item.label }}</span>\n </button>\n }\n @for (item of customItemComponents(); track item) {\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n }\n</mat-menu>\n\n<mat-menu #themeMenu=\"matMenu\" xPosition=\"before\">\n <button [matMenuTriggerFor]=\"themeDensityMenu\" mat-menu-item>\n <mat-icon svgIcon=\"move-resize\"></mat-icon>\n <span i18n>Density</span>\n </button>\n @if (availableTypographies?.length) {\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n }\n @if (availableThemes?.length) {\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n }\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"setDensity(0)\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"setDensity(-1)\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"setDensity(-2)\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"setDensity(-3)\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-xs\"></mat-icon>\n <span i18n>Extreme Dense</span>\n </button>\n</mat-menu>\n<mat-menu #themeFontMenu=\"matMenu\" xPosition=\"before\">\n @for (typographyName of availableTypographies ?? []; track typographyName) {\n <button (click)=\"setTypography(typographyName)\"\n (mouseenter)=\"previewTypography(typographyName)\"\n (mouseleave)=\"restoreTypography()\"\n mat-menu-item>\n {{ typographyName }}\n </button>\n }\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n @for (themeName of availableThemes ?? []; track themeName) {\n <button (click)=\"setTheme(themeName)\"\n (mouseenter)=\"previewTheme(themeName)\"\n (mouseleave)=\"restoreTheme()\"\n mat-menu-item>\n {{ themeName }}\n </button>\n }\n</mat-menu>\n","import {\n inject,\n Injectable,\n LOCALE_ID,\n signal,\n} from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ClickOnLink } from '@rxap/browser-utilities';\nimport { ConfigService } from '@rxap/config';\nimport { RXAP_ENVIRONMENT } from '@rxap/environment';\nimport {\n coerceArray,\n JoinPath,\n} from '@rxap/utilities';\nimport {\n RXAP_EXTERNAL_APP,\n RXAP_EXTERNAL_APP_FILTER,\n} from './tokens';\nimport { ExternalApp } from './types';\n\n@Injectable()\nexport class ExternalAppsService {\n\n protected readonly appFilterList = coerceArray(inject(RXAP_EXTERNAL_APP_FILTER, { optional: true }));\n protected readonly config = inject(ConfigService);\n protected readonly localeId = inject(LOCALE_ID);\n protected readonly environment = inject(RXAP_ENVIRONMENT);\n protected readonly apps: Array<ExternalApp> = this.config.get('navigation.apps', []);\n protected readonly externalApps = coerceArray(inject(RXAP_EXTERNAL_APP, { optional: true }));\n\n /**\n * The list of active apps that is processed by the getAppList method\n */\n public readonly activeAppList = signal<Array<ExternalApp>>([]);\n\n public hasApp(appId: string): boolean {\n return this.apps.some(app => app.id === appId);\n }\n\n public getApp(appId: string): ExternalApp | null {\n if (!this.hasApp(appId)) {\n return null;\n }\n const app = this.apps.find(app => app.id === appId);\n if (!app) {\n throw new Error(`FATAL: App with id \"${ appId }\" not found!`);\n }\n return structuredClone(app);\n }\n\n public getAppUrl(appId: string, path: string, infix: string | null = this.getPathPrefix()): string | null {\n\n const app = this.getApp(appId);\n\n if (!app || !app.href) {\n return null;\n }\n\n return JoinPath(app.href, infix, path);\n\n }\n\n public getAppRouterLink(appId: string, path: string): string[] | null {\n\n const app = this.getApp(appId);\n\n if (!app || !app.routerLink) {\n return null;\n }\n\n return [ ...app.routerLink, path ];\n }\n\n public getAppUrlOrThrow(appId: string, path: string): string {\n const url = this.getAppUrl(appId, path);\n if (url) {\n return url;\n }\n throw new Error(`Could not find url for app with id \"${ appId }\"`);\n }\n\n public getAppRouterLinkOrThrow(appId: string, path: string): string[] {\n const routerLink = this.getAppRouterLink(appId, path);\n if (routerLink) {\n return routerLink;\n }\n throw new Error(`Could not find router link for app with id \"${ appId }\"`);\n }\n\n public navigate(appId: string, path: string): void {\n\n const url = this.getAppUrl(appId, path);\n\n if (url) {\n ClickOnLink(url);\n }\n\n }\n\n public async getAppList(): Promise<Array<ExternalApp>> {\n let appList: ExternalApp[] = [\n ...this.externalApps,\n ...this.apps,\n ].filter(app => !app.hidden)\n .map(app => structuredClone(app));\n\n appList.forEach(app => {\n if (app.href) {\n app.href = JoinPath(app.href, this.getPathPrefix());\n }\n });\n\n for (const appFilter of this.appFilterList) {\n appList = await appFilter.call(structuredClone(appList));\n }\n\n appList = structuredClone(appList);\n this.activeAppList.set(appList);\n return appList;\n }\n\n protected getPathPrefix(): string {\n if (this.environment.production && this.localeId) {\n return this.localeId.replace(/-.+$/, '');\n }\n return '';\n }\n\n}\n","import { NgOptimizedImage } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n OnInit,\n signal,\n} from '@angular/core';\nimport {\n MatAnchor,\n MatButton,\n MatIconButton,\n} from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { ExternalAppsService } from '../../external-apps.service';\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 imports: [\n NgOptimizedImage,\n MatButton,\n RouterLink,\n MatAnchor,\n MatIconButton,\n MatIcon,\n IconDirective,\n ]\n})\nexport class AppsButtonComponent implements OnInit {\n /**\n * The signal that indicates if the app list is open\n */\n public readonly isOpen = signal(false);\n\n private readonly externalAppsService = inject(ExternalAppsService);\n public readonly appList = computed(() => this.externalAppsService.activeAppList());\n public readonly hasApps = computed(() => this.appList().length > 0);\n\n public toggle(): void {\n this.isOpen.update(isOpen => !isOpen);\n }\n\n public ngOnInit(): void {\n this.externalAppsService.getAppList();\n }\n\n}\n","@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n","import {\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n computed,\n inject,\n Injectable,\n isDevMode,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { from } from 'rxjs';\nimport { RXAP_DEFAULT_HEADER_ITEM_COMPONENT } from '../tokens';\nimport {\n coerceArray,\n IsFunction,\n} from '@rxap/utilities';\n\n@Injectable()\nexport class DefaultHeaderService {\n\n private readonly components = toSignal(from(Promise.all(coerceArray(inject(RXAP_DEFAULT_HEADER_ITEM_COMPONENT, { optional: true }))\n .map(item => IsFunction(item) ? item() : item))), { initialValue: [] });\n\n private readonly injectedPortals = computed(() => this.components().map(component => new ComponentPortal(component)));\n private readonly methodPortals = signal<Portal<unknown>[]>([]);\n\n /**\n * Represents an array of `Portal` objects with unknown type.\n *\n * @typedef {Array<Portal<unknown>>} SignalPortals\n */\n public readonly portals = computed(() => [ ...this.injectedPortals(), ...this.methodPortals() ]);\n\n\n /**\n * Computes the count of portals.\n *\n * @returns {number} The count of portals.\n */\n public readonly portalCount = computed(() => this.portals().length);\n\n\n /**\n * Adds a portal to the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be added.\n *\n * @return {void}\n */\n public pushPortal(portal: Portal<unknown>) {\n if (!this.methodPortals().includes(portal)) {\n this.methodPortals.update(portals => [ ...portals, portal ]);\n } else {\n if (isDevMode()) {\n console.warn('Can not add the same portal multiple times');\n }\n }\n }\n\n /**\n * Removes a portal from the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be removed.\n * @return {void}\n */\n public removePortal(portal: Portal<unknown>) {\n const index = this.methodPortals().indexOf(portal);\n if (index !== -1) {\n this.methodPortals.update(portals => {\n portals.splice(index, 1);\n return portals.slice();\n });\n }\n }\n\n}\n","import { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatToolbarRow } from '@angular/material/toolbar';\nimport { HeaderService } from '../header.service';\nimport { LayoutService } from '../layout.service';\nimport { RXAP_USER_PROFILE_DATA_SOURCE } from '../tokens';\nimport { AppsButtonComponent } from './apps-button/apps-button.component';\nimport { DefaultHeaderService } from './default-header.service';\nimport { SettingsButtonComponent } from './settings-button/settings-button.component';\nimport { SidenavToggleButtonComponent } from './sidenav-toggle-button/sidenav-toggle-button.component';\nimport { UserProfileIconComponent } from './user-profile-icon/user-profile-icon.component';\n\n@Component({\n selector: 'rxap-default-header',\n imports: [\n AppsButtonComponent,\n SettingsButtonComponent,\n SidenavToggleButtonComponent,\n UserProfileIconComponent,\n MatToolbarRow,\n CdkPortalOutlet,\n ],\n host: {\n 'class': 'grow',\n },\n templateUrl: './default-header.component.html',\n styleUrl: './default-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultHeaderComponent {\n\n private readonly layoutComponentService = inject(LayoutService);\n\n public readonly collapsable = computed(() => this.layoutComponentService.collapsable());\n public readonly opened = computed(() => this.layoutComponentService.opened());\n public readonly profile = toSignal(inject(RXAP_USER_PROFILE_DATA_SOURCE).connect('user-profile'), { initialValue: null });\n\n private readonly defaultHeaderService = inject(DefaultHeaderService);\n\n public readonly portals = computed(() => this.defaultHeaderService.portals());\n public readonly hasPortals = computed(() => this.portals().length > 0);\n\n}\n","<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow flex flex-row gap-x-4 items-center\">\n @for (portal of portals(); track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Provider } from '@angular/core';\nimport { DataSource } from '@rxap/pattern';\nimport { Constructor } from '@rxap/utilities';\nimport { DefaultHeaderComponent } from './default-header/default-header.component';\nimport { DefaultHeaderService } from './default-header/default-header.service';\nimport { ExternalAppsService } from './external-apps.service';\nimport { FooterService } from './footer.service';\nimport { HeaderService } from './header.service';\nimport { LayoutService } from './layout.service';\nimport { LogoService } from './logo.service';\nimport { NavigationService } from './navigation.service';\nimport { NavigationWithInserts } from './navigation/navigation-item';\nimport {\n RXAP_DEFAULT_HEADER_ITEM_COMPONENT,\n RXAP_EXTERNAL_APP,\n RXAP_FOOTER_COMPONENT,\n RXAP_HEADER_COMPONENT,\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS,\n RXAP_RELEASE_INFO_MODULE,\n RXAP_SETTINGS_MENU_ITEM,\n RXAP_SETTINGS_MENU_ITEM_COMPONENT,\n RXAP_USER_PROFILE_DATA_SOURCE,\n} from './tokens';\nimport {\n DefaultHeaderItemComponent,\n ExternalApp,\n ReleaseInfoModule,\n SettingsMenuItem,\n SettingsMenuItemComponent,\n} from './types';\n\nexport function provideLayout(...additionalProviders: Provider[]): Provider[] {\n return [\n LayoutService,\n LogoService,\n HeaderService,\n FooterService,\n DefaultHeaderService,\n ...additionalProviders,\n ];\n}\n\nexport function provideExternalApps(...apps: ExternalApp[]): Provider[] {\n return [\n ExternalAppsService,\n ...apps.map(app => (\n {\n provide: RXAP_EXTERNAL_APP,\n useValue: app,\n multi: true,\n }\n ))\n ];\n}\n\nexport function withNavigationConfig(\n config: NavigationWithInserts | (() => NavigationWithInserts),\n): Provider[] {\n return [\n NavigationService,\n {\n provide: RXAP_NAVIGATION_CONFIG,\n useValue: config,\n },\n ];\n}\n\nexport function withNavigationInserts(inserts: Record<string, NavigationWithInserts>): Provider[] {\n return [{\n provide: RXAP_NAVIGATION_CONFIG_INSERTS,\n useValue: inserts,\n }];\n}\n\nexport function withSettingsMenuItems(...items: Array<SettingsMenuItemComponent | (() => Promise<SettingsMenuItemComponent> | SettingsMenuItemComponent) | SettingsMenuItem>): Provider[] {\n return [\n ...items.filter((item): item is SettingsMenuItemComponent => typeof item === 'function').map(component => (\n {\n provide: RXAP_SETTINGS_MENU_ITEM_COMPONENT,\n useValue: component,\n multi: true,\n }\n )),\n ...items.filter((item): item is SettingsMenuItem => typeof item !== 'function').map(item => (\n {\n provide: RXAP_SETTINGS_MENU_ITEM,\n useValue: item,\n multi: true,\n }\n )),\n ];\n}\n\nexport function withDefaultHeaderItems(...items: Array<DefaultHeaderItemComponent | (() => Promise<DefaultHeaderItemComponent> | DefaultHeaderItemComponent)>): Provider[] {\n return items.map(component => ({\n provide: RXAP_DEFAULT_HEADER_ITEM_COMPONENT,\n useValue: component,\n multi: true,\n }));\n}\n\nexport function withReleaseInfoModules(...module: ReleaseInfoModule[]): Provider[] {\n return module.map(item => (\n {\n provide: RXAP_RELEASE_INFO_MODULE,\n useValue: item,\n multi: true,\n }\n ));\n}\n\nexport function withHeaderComponents(components: Array<ComponentType<unknown>>): Provider[] {\n return components.map(component => (\n {\n provide: RXAP_HEADER_COMPONENT,\n useValue: component,\n }\n ));\n}\n\nexport function withFooterComponents(components: Array<ComponentType<unknown>>): Provider[] {\n return components.map(component => (\n {\n provide: RXAP_FOOTER_COMPONENT,\n useValue: component,\n }\n ));\n}\n\nexport function withDefaultHeaderComponent(): Provider {\n return {\n provide: RXAP_HEADER_COMPONENT,\n useValue: DefaultHeaderComponent,\n };\n}\n\nexport function withUserProfileDataSource(dataSource: Constructor<DataSource>, useClass = false): Provider {\n if (useClass) {\n return {\n provide: RXAP_USER_PROFILE_DATA_SOURCE,\n useClass: dataSource\n };\n } else {\n return {\n provide: RXAP_USER_PROFILE_DATA_SOURCE,\n useExisting: dataSource\n };\n }\n}\n","// region sidenav\nexport * from './lib/sidenav/sidenav-footer.directive';\nexport * from './lib/sidenav/sidenav-header.directive';\nexport * from './lib/sidenav/sidenav.component';\n// endregion\n\n// region release-info\nexport * from './lib/release-info/release-info.component';\n// endregion\n\n// region navigation navigation-item\nexport * from './lib/navigation/navigation-item/navigation-item.component';\n// endregion\n\n// region navigation-progress-bar\nexport * from './lib/navigation-progress-bar/navigation-progress-bar.component';\n// endregion\n\n// region navigation\nexport * from './lib/navigation/navigation-item';\nexport * from './lib/navigation/navigation.component';\n// endregion\n\n// region minimal-layout\nexport * from './lib/minimal-layout/minimal-layout.component';\n// endregion\n\n// region layout\nexport * from './lib/layout/layout.component';\n// endregion\n\n// region header\nexport * from './lib/header/header.component';\nexport * from './lib/header/header.directive';\n// endregion\n\n// region footer\nexport * from './lib/footer/footer.component';\nexport * from './lib/footer/footer.directive';\n// endregion\n\n// region default-header user-profile-icon\nexport * from './lib/default-header/user-profile-icon/user-profile-icon.component';\n// endregion\n\n// region default-header sidenav-toggle-button\nexport * from './lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component';\n// endregion\n\n// region default-header settings-button\nexport * from './lib/default-header/settings-button/settings-button.component';\n// endregion\n\n// region default-header apps-button\nexport * from './lib/default-header/apps-button/apps-button.component';\n// endregion\n\n// region default-header\nexport * from './lib/default-header/default-header.component';\nexport * from './lib/default-header/default-header.service';\n// endregion\n\n// region base-layout\nexport * from './lib/base-layout/base-layout.component';\n// endregion\n\n// region \nexport * from './lib/external-apps.service';\nexport * from './lib/footer.service';\nexport * from './lib/header.service';\nexport * from './lib/layout.service';\nexport * from './lib/logo.service';\nexport * from './lib/navigation.service';\nexport * from './lib/provide';\nexport * from './lib/tokens';\nexport * from './lib/types';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rxap-layout.mjs","sources":["../../../../../packages/angular/layout/src/lib/sidenav/sidenav-footer.directive.ts","../../../../../packages/angular/layout/src/lib/sidenav/sidenav-header.directive.ts","../../../../../packages/angular/layout/src/lib/tokens.ts","../../../../../packages/angular/layout/src/lib/footer.service.ts","../../../../../packages/angular/layout/src/lib/header.service.ts","../../../../../packages/angular/layout/src/lib/layout.service.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation-item.ts","../../../../../packages/angular/layout/src/lib/navigation.service.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation-item/navigation-item.component.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation-item/navigation-item.component.html","../../../../../packages/angular/layout/src/lib/navigation/navigation.component.ts","../../../../../packages/angular/layout/src/lib/navigation/navigation.component.html","../../../../../packages/angular/layout/src/lib/sidenav/sidenav.component.ts","../../../../../packages/angular/layout/src/lib/sidenav/sidenav.component.html","../../../../../packages/angular/layout/src/lib/release-info/release-info.component.ts","../../../../../packages/angular/layout/src/lib/release-info/release-info.component.html","../../../../../packages/angular/layout/src/lib/navigation-progress-bar/navigation-progress-bar.component.ts","../../../../../packages/angular/layout/src/lib/navigation-progress-bar/navigation-progress-bar.component.html","../../../../../packages/angular/layout/src/lib/footer/footer.component.ts","../../../../../packages/angular/layout/src/lib/footer/footer.component.html","../../../../../packages/angular/layout/src/lib/header/header.component.ts","../../../../../packages/angular/layout/src/lib/header/header.component.html","../../../../../packages/angular/layout/src/lib/base-layout/base-layout.component.ts","../../../../../packages/angular/layout/src/lib/base-layout/base-layout.component.html","../../../../../packages/angular/layout/src/lib/minimal-layout/minimal-layout.component.ts","../../../../../packages/angular/layout/src/lib/minimal-layout/minimal-layout.component.html","../../../../../packages/angular/layout/src/lib/logo.service.ts","../../../../../packages/angular/layout/src/lib/layout/layout.component.ts","../../../../../packages/angular/layout/src/lib/layout/layout.component.html","../../../../../packages/angular/layout/src/lib/header/header.directive.ts","../../../../../packages/angular/layout/src/lib/footer/footer.directive.ts","../../../../../packages/angular/layout/src/lib/default-header/user-profile-icon/user-profile-icon.component.ts","../../../../../packages/angular/layout/src/lib/default-header/user-profile-icon/user-profile-icon.component.html","../../../../../packages/angular/layout/src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts","../../../../../packages/angular/layout/src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.html","../../../../../packages/angular/layout/src/lib/default-header/settings-button/settings-button.component.ts","../../../../../packages/angular/layout/src/lib/default-header/settings-button/settings-button.component.html","../../../../../packages/angular/layout/src/lib/external-apps.service.ts","../../../../../packages/angular/layout/src/lib/default-header/apps-button/apps-button.component.ts","../../../../../packages/angular/layout/src/lib/default-header/apps-button/apps-button.component.html","../../../../../packages/angular/layout/src/lib/default-header/default-header.service.ts","../../../../../packages/angular/layout/src/lib/default-header/default-header.component.ts","../../../../../packages/angular/layout/src/lib/default-header/default-header.component.html","../../../../../packages/angular/layout/src/lib/provide.ts","../../../../../packages/angular/layout/src/index.ts","../../../../../packages/angular/layout/src/rxap-layout.ts"],"sourcesContent":["import {\n Directive,\n Inject,\n TemplateRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavFooter]',\n standalone: true,\n})\nexport class SidenavFooterDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>,\n ) {\n }\n}\n","import {\n Directive,\n Inject,\n TemplateRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[rxapSidenavHeader]',\n standalone: true,\n})\nexport class SidenavHeaderDirective {\n constructor(\n @Inject(TemplateRef)\n public readonly template: TemplateRef<void>,\n ) {\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken } from '@angular/core';\nimport { LogoConfig } from '@rxap/config';\nimport { staticDataSource } from '@rxap/data-source';\nimport {\n DataSource,\n MethodWithParameters,\n} from '@rxap/pattern';\nimport { NavigationWithInserts } from './navigation/navigation-item';\nimport {\n DefaultHeaderItemComponent,\n ExternalApp,\n ExtractUsernameFromProfileFn,\n ReleaseInfoModule,\n SettingsMenuItem,\n SettingsMenuItemComponent,\n} from './types';\n\nexport const RXAP_NAVIGATION_CONFIG = new InjectionToken<NavigationWithInserts | (() => NavigationWithInserts)>(\n 'rxap/layout/navigation-config');\nexport const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken<Record<string, NavigationWithInserts>>(\n 'rxap/layout/navigation-config-inserts');\n\nexport const RXAP_FOOTER_COMPONENT = new InjectionToken<ComponentType<unknown>>('rxap/layout/footer-component');\nexport const RXAP_HEADER_COMPONENT = new InjectionToken<ComponentType<unknown>>('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\nexport const RXAP_EXTERNAL_APP_FILTER = new InjectionToken<MethodWithParameters<ExternalApp[], ExternalApp[]>>('rxap/layout/app-config-filter');\nexport const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken<ExtractUsernameFromProfileFn>(\n 'extract-username-from-profile',\n {\n providedIn: 'root',\n factory: () => (profile: any) => (\n profile ? profile.username ?? profile.email ?? profile.name : null\n ) ?? null,\n },\n);\n\nexport const RXAP_USER_PROFILE_DATA_SOURCE = new InjectionToken<DataSource>('rxap/layout/user-profile-data-source', {\n providedIn: 'root',\n factory: () => staticDataSource(null),\n});\n\nexport const RXAP_EXTERNAL_APP = new InjectionToken<ExternalApp>('rxap/layout/external-app');\n\nexport const RXAP_RELEASE_INFO_MODULE = new InjectionToken<ReleaseInfoModule>('rxap/layout/release-info-module');\n\nexport const RXAP_SETTINGS_MENU_ITEM_COMPONENT = new InjectionToken<Array<SettingsMenuItemComponent | (() => Promise<SettingsMenuItemComponent>)>>('rxap/layout/settings-menu-item-component');\n\nexport const RXAP_DEFAULT_HEADER_ITEM_COMPONENT = new InjectionToken<Array<DefaultHeaderItemComponent | (() => Promise<DefaultHeaderItemComponent>)>>('rxap/layout/default-header-item-component');\n\nexport const RXAP_SETTINGS_MENU_ITEM = new InjectionToken<SettingsMenuItem>('rxap/layout/settings-menu-item');\n","import {\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n computed,\n inject,\n Injectable,\n isDevMode,\n signal,\n} from '@angular/core';\nimport { RXAP_FOOTER_COMPONENT } from './tokens';\nimport { coerceArray } from '@rxap/utilities';\n\n@Injectable()\nexport class FooterService {\n\n private readonly components = coerceArray(inject(RXAP_FOOTER_COMPONENT, { optional: true }));\n\n /**\n * Represents an array of `Portal` objects with unknown type.\n */\n public readonly portals = signal<Array<Portal<unknown>>>(this.components.map(component => new ComponentPortal(component)));\n\n\n /**\n * Computes the count of portals.\n *\n * @returns {number} The count of portals.\n */\n public readonly portalCount = computed(() => this.portals().length);\n\n /**\n * Adds a portal to the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be added.\n *\n * @return {void}\n */\n public pushPortal(portal: Portal<unknown>) {\n if (!this.portals().includes(portal)) {\n this.portals.update(portals => [ ...portals, portal ]);\n } else {\n if (isDevMode()) {\n console.warn('Can not add the same portal multiple times');\n }\n }\n }\n\n /**\n * Removes a portal from the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be removed.\n * @return {void}\n */\n public removePortal(portal: Portal<unknown>) {\n const index = this.portals().indexOf(portal);\n if (index !== -1) {\n this.portals.update(portals => {\n portals.splice(index, 1);\n return portals.slice();\n });\n }\n }\n\n}\n","import {\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n computed,\n inject,\n Injectable,\n isDevMode,\n signal,\n} from '@angular/core';\nimport { RXAP_HEADER_COMPONENT } from './tokens';\nimport { coerceArray } from '@rxap/utilities';\n\n@Injectable()\nexport class HeaderService {\n\n private readonly components = coerceArray(inject(RXAP_HEADER_COMPONENT, { optional: true }));\n\n /**\n * Represents an array of `Portal` objects with unknown type.\n *\n * @typedef {Array<Portal<unknown>>} SignalPortals\n */\n public readonly portals = signal<Array<Portal<unknown>>>(this.components.map(component => new ComponentPortal(component)));\n\n\n /**\n * Computes the count of portals.\n *\n * @returns {number} The count of portals.\n */\n public readonly portalCount = computed(() => this.portals().length);\n\n\n /**\n * Adds a portal to the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be added.\n *\n * @return {void}\n */\n public pushPortal(portal: Portal<unknown>) {\n if (!this.portals().includes(portal)) {\n this.portals.update(portals => [ ...portals, portal ]);\n } else {\n if (isDevMode()) {\n console.warn('Can not add the same portal multiple times');\n }\n }\n }\n\n /**\n * Removes a portal from the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be removed.\n * @return {void}\n */\n public removePortal(portal: Portal<unknown>) {\n const index = this.portals().indexOf(portal);\n if (index !== -1) {\n this.portals.update(portals => {\n portals.splice(index, 1);\n return portals.slice();\n });\n }\n }\n\n}\n","import { MediaMatcher } from '@angular/cdk/layout';\nimport {\n computed,\n effect,\n inject,\n Injectable,\n isDevMode,\n signal,\n Signal,\n WritableSignal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatDrawerMode } from '@angular/material/sidenav';\nimport { ConfigService } from '@rxap/config';\nimport { ObserveCurrentThemeDensity } from '@rxap/ngx-theme';\nimport { Observable } from 'rxjs';\nimport { FooterService } from './footer.service';\nimport { HeaderService } from './header.service';\n\n@Injectable()\nexport class LayoutService {\n\n public readonly opened: WritableSignal<boolean>;\n public readonly mode: WritableSignal<MatDrawerMode>;\n public readonly pinned: WritableSignal<boolean>;\n public readonly collapsable: WritableSignal<boolean>;\n public readonly fixedBottomGap: Signal<number>;\n public readonly fixedTopGap: Signal<number>;\n public readonly currentThemeDensity = toSignal(ObserveCurrentThemeDensity());\n public readonly isMobile: Signal<boolean>;\n public readonly fixedInViewport: WritableSignal<boolean>;\n public readonly collapsed: Signal<boolean>;\n\n private readonly footerService = inject(FooterService);\n private readonly headerService = inject(HeaderService);\n private readonly config = inject(ConfigService);\n private readonly mediaMatcher = inject(MediaMatcher);\n\n constructor() {\n const mobileQuery = this.mediaMatcher.matchMedia('(max-width: 959px)');\n this.isMobile = toSignal(new Observable<boolean>(subscriber => {\n mobileQuery.addEventListener('change', (event) => {\n subscriber.next(event.matches);\n });\n }), { initialValue: mobileQuery.matches });\n\n const initialCollapsable = this.config.get('navigation.collapsable', true);\n const collapsable = initialCollapsable && !this.isMobile();\n const pinned = this.config.get('navigation.pinned', false);\n const mode = this.config.get('navigation.mode', pinned || !collapsable ? 'side' : 'over');\n const opened = this.config.get('navigation.opened', (!collapsable || pinned) && !this.isMobile());\n const fixedInViewport = this.config.get('navigation.fixedInViewport', true);\n\n if (isDevMode()) {\n console.log({\n initialCollapsable,\n collapsable,\n pinned,\n mode,\n opened,\n fixedInViewport,\n });\n }\n\n this.opened = signal(opened);\n this.mode = signal(mode);\n this.pinned = signal(pinned);\n this.collapsable = signal(collapsable);\n this.fixedInViewport = signal(fixedInViewport);\n this.collapsed = computed(() => this.collapsable() && !this.opened() && !this.pinned());\n\n this.fixedBottomGap = computed(() => {\n const footerPortalCount = this.footerService.portalCount();\n const currentThemeDensity = this.currentThemeDensity() ?? 0;\n return footerPortalCount * (currentThemeDensity * 4 + 64);\n });\n\n this.fixedTopGap = computed(() => {\n const headerPortalCount = this.headerService.portalCount();\n const currentThemeDensity = this.currentThemeDensity() ?? 0;\n return headerPortalCount * (currentThemeDensity * 4 + 64);\n });\n\n if (initialCollapsable) {\n effect(() => {\n const isMobile = this.isMobile();\n this.collapsable.set(!isMobile);\n if (!isMobile && !this.pinned()) {\n this.opened.set(false);\n }\n }, { allowSignalWrites: true });\n }\n effect(() => {\n if (this.pinned()) {\n this.mode.set('side');\n this.opened.set(true);\n } else {\n this.mode.set('over');\n this.opened.set(false);\n }\n }, { allowSignalWrites: true });\n }\n\n public toggleOpened() {\n this.opened.update(opened => !opened);\n }\n\n public togglePinned() {\n this.pinned.update(pinned => !pinned);\n }\n\n openSidenav() {\n this.opened.set(true);\n }\n\n closeSidenav() {\n this.opened.set(false);\n }\n}\n","import { IconConfig } from '@rxap/utilities';\nimport {\n AbstractType,\n InjectionToken,\n Type,\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['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['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[] | 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['routerLink'] && !!item['label']\n );\n}\n","import {\n inject,\n Inject,\n Injectable,\n Injector,\n INJECTOR,\n Optional,\n} from '@angular/core';\nimport {\n combineLatest,\n from,\n Observable,\n of,\n ReplaySubject,\n} from 'rxjs';\nimport {\n catchError,\n map,\n switchMap,\n} from 'rxjs/operators';\nimport {\n IsNavigationDividerItem,\n IsNavigationInsertItem,\n IsNavigationItem,\n Navigation,\n NavigationDividerItem,\n NavigationItem,\n NavigationWithInserts,\n} from './navigation/navigation-item';\nimport {\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS,\n} from './tokens';\n\n@Injectable()\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 private readonly injector: Injector = inject(INJECTOR);\n\n constructor(\n @Inject(RXAP_NAVIGATION_CONFIG)\n navigation: any,\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 = true,\n ): void {\n this.add(id, value, update);\n }\n\n public add(\n id: string,\n value: NavigationWithInserts,\n update = 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 = 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\n .status\n .map((statusToken) => this.injector.get(\n statusToken))\n .map((status) => {\n const isVisible = status.isVisible(\n navigationItem);\n if (typeof isVisible === 'boolean') {\n return of(isVisible);\n } else {\n return from(isVisible);\n }\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","import {\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n NgClass,\n NgIf,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n Renderer2,\n signal,\n SimpleChanges,\n viewChild,\n ViewEncapsulation, AfterViewInit,\n} from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n NavigationEnd,\n Router,\n RouterLink,\n RouterLinkActive,\n} from '@angular/router';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { coerceArray } from '@rxap/utilities';\nimport {\n debounceTime,\n Subscription,\n} from 'rxjs';\nimport {\n filter,\n startWith,\n tap,\n} from 'rxjs/operators';\nimport { LayoutService } from '../../layout.service';\nimport {\n Navigation,\n NavigationDividerItem,\n NavigationItem,\n} from '../navigation-item';\nimport { NavigationComponent } from '../navigation.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\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 animations: [\n trigger('sub-nav', [\n transition(':enter', [\n style({\n display: 'block',\n height: '0',\n overflow: 'hidden',\n }),\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 imports: [\n RouterLinkActive,\n RouterLink,\n NgIf,\n MatRippleModule,\n MatIconModule,\n IconDirective,\n MatDividerModule,\n forwardRef(() => NavigationComponent),\n NgClass,\n ]\n})\nexport class NavigationItemComponent\n implements OnChanges, OnDestroy, AfterViewInit {\n\n public readonly level = input(0);\n\n public children: Navigation | null = null;\n\n public readonly item = input.required<NavigationItem>();\n public readonly active = signal(false);\n\n public readonly itemClasses = computed(() => {\n let classes = `level-${ this.level() * 4 }`;\n if (this.collapsed()) {\n classes += ' invisible';\n }\n return classes;\n });\n\n private readonly layoutService = inject(LayoutService);\n\n public readonly collapsed = computed(() => this.layoutService.collapsed());\n\n private readonly _subscription = new Subscription();\n\n private readonly router = inject(Router);\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\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 debounceTime(100),\n startWith(true),\n tap(() => {\n let isActive = true;\n const urlParts = this.router.url.split('/');\n if (urlParts[0] === '') {\n urlParts[0] = '/';\n }\n const routerLink = coerceArray(this.item().routerLink).map(fragment => fragment.split('/')).flat();\n if (routerLink[0] === '') {\n routerLink[0] = '/';\n }\n for (let i = 0; i < routerLink.length; i++) {\n if (urlParts[i] !== routerLink[i]) {\n isActive = false;\n break;\n }\n }\n this.active.set(isActive);\n if (isActive) {\n this.renderer.addClass(this.elementRef.nativeElement, 'active');\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'active');\n }\n }),\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 [ngClass]=\"{\n 'border-l-4 text-accent-400 border-accent-600': active(),\n }\">\n <a [routerLink]=\"item().routerLink\"\n class=\"h-12 pl-4 pr-5 flex flex-row justify-between items-center gap-x-4\"\n matRipple\n routerLinkActive\n\n >\n <span\n [ngClass]=\"itemClasses()\"\n class=\"grow whitespace-nowrap\"\n >\n {{ item().label }}\n </span>\n <mat-icon *ngIf=\"item().icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n </a>\n\n <ng-container *ngIf=\"item().children?.length && active()\">\n\n <mat-divider></mat-divider>\n\n <ul [@sub-nav]\n [items]=\"children ?? []\"\n [level]=\"level() + 1\"\n rxap-navigation\n >\n </ul>\n\n <mat-divider></mat-divider>\n\n </ng-container>\n</div>\n","import {\n AsyncPipe,\n NgFor,\n NgIf,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n inject,\n INJECTOR,\n input,\n OnInit,\n runInInjectionContext,\n ViewEncapsulation,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { LayoutService } from '../layout.service';\nimport { NavigationService } from '../navigation.service';\nimport {\n Navigation,\n NavigationDividerItem,\n NavigationItem,\n} from './navigation-item';\nimport { NavigationItemComponent } from './navigation-item/navigation-item.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[rxap-navigation]',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n \n host: {\n class: 'list-none dark:text-neutral-400 text-neutral-700',\n },\n imports: [\n NgFor,\n NgIf,\n MatDividerModule,\n forwardRef(() => NavigationItemComponent),\n AsyncPipe,\n ]\n})\nexport class NavigationComponent implements OnInit {\n\n public items = input<Navigation>();\n\n public level = input(0);\n\n private readonly navigationService = inject(NavigationService);\n\n private readonly layoutService = inject(LayoutService);\n\n public readonly collapsed = computed(() => this.layoutService.collapsed());\n\n public navigationItems = computed(() => this.items() ?? []);\n\n public readonly root = input(false);\n\n private readonly injector = inject(INJECTOR);\n\n public ngOnInit(): void {\n if (this.root()) {\n runInInjectionContext(this.injector, () => {\n this.navigationItems = toSignal(this.navigationService.config$, { initialValue: [] });\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]=\"navigationItems()\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider></mat-divider>\n <div *ngIf=\"!collapsed() && item.title\" class=\"pl-5 h-6\">\n {{item.title}}\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li [item]=\"asNavigationItem(item)\"\n [level]=\"level()\"\n class=\"dark:hover:text-white hover:text-black\"\n rxap-navigation-item>\n </li>\n </ng-template>\n</ng-template>\n","import {\n NgClass,\n NgIf,\n NgStyle,\n NgTemplateOutlet,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n Signal,\n viewChild,\n} from '@angular/core';\nimport {\n MatButton,\n MatIconButton,\n} from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n MatDrawerMode,\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n} from '@angular/material/sidenav';\nimport { RouterOutlet } from '@angular/router';\nimport { LayoutService } from '../layout.service';\nimport { NavigationComponent } from '../navigation/navigation.component';\nimport { SidenavFooterDirective } from './sidenav-footer.directive';\nimport { SidenavHeaderDirective } from './sidenav-header.directive';\n\n@Component({\n selector: 'rxap-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: ['./sidenav.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatIcon,\n MatIconButton,\n MatSidenav,\n MatSidenavContainer,\n MatSidenavContent,\n NavigationComponent,\n NgIf,\n RouterOutlet,\n NgClass,\n NgStyle,\n MatDivider,\n NgTemplateOutlet,\n MatButton,\n ]\n})\nexport class SidenavComponent {\n\n private readonly layoutService = inject(LayoutService);\n\n\n private readonly sidenav = viewChild(MatSidenav);\n\n public readonly sidenavMode: Signal<MatDrawerMode> = computed(() => this.layoutService.mode());\n public readonly fixedBottomGap: Signal<number> = computed(() => this.layoutService.fixedBottomGap());\n public readonly fixedTopGap: Signal<number> = computed(() => this.layoutService.fixedTopGap());\n public readonly fixedInViewport: Signal<boolean> = computed(() => this.layoutService.fixedInViewport());\n public readonly pinned: Signal<boolean> = computed(() => this.layoutService.pinned());\n public readonly collapsed: Signal<boolean> = computed(() => this.layoutService.collapsed());\n public readonly collapsable: Signal<boolean> = computed(() => this.layoutService.collapsable());\n public readonly opened: Signal<boolean> = computed(() => this.layoutService.opened());\n public readonly sidenavFooterDirective = contentChild(SidenavFooterDirective);\n public readonly sidenavHeaderDirective = contentChild(SidenavHeaderDirective);\n\n togglePinned() {\n this.layoutService.togglePinned();\n }\n\n async openSidenav() {\n await this.sidenav()?.open();\n this.layoutService.openSidenav();\n }\n\n async closeSidenav() {\n await this.sidenav()?.close();\n this.layoutService.closeSidenav();\n }\n\n}\n","<mat-sidenav-container [ngStyle]=\"{\n 'padding-top.px': fixedTopGap(),\n 'padding-bottom.px': fixedBottomGap(),\n }\" class=\"h-full\">\n <mat-sidenav\n [fixedBottomGap]=\"fixedBottomGap()\"\n [fixedInViewport]=\"fixedInViewport()\"\n [fixedTopGap]=\"fixedTopGap()\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"{ collapsable: collapsable() }\"\n [opened]=\"opened()\"\n >\n <div (mouseleave)=\"collapsable() && !pinned() && closeSidenav()\"\n class=\"h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch\">\n\n <div (click)=\"togglePinned()\" *ngIf=\"collapsable()\"\n class=\"pl-2 self-stretch grow-0 flex flex-row justify-between items-center\">\n <span class=\"text-lg\" i18n>Navigation</span>\n <div class=\"flex flex-row items-center justify-center\" style=\"width: 64px\">\n <button mat-icon-button>\n <mat-icon *ngIf=\"!pinned()\">radio_button_unchecked</mat-icon>\n <mat-icon *ngIf=\"pinned()\">radio_button_checked</mat-icon>\n </button>\n </div>\n </div>\n\n @if (sidenavHeaderDirective()?.template; as template) {\n <div [ngClass]=\"{ hidden: collapsed() }\" class=\"header grow-0\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n <mat-divider [ngClass]=\"{ hidden: collapsed() }\" class=\"grow-0\"></mat-divider>\n }\n\n <ul\n (mouseenter)=\"collapsable() && !pinned() && openSidenav()\"\n class=\"grow self-stretch\"\n [root]=\"true\"\n rxap-navigation\n >\n </ul>\n\n @if (sidenavFooterDirective()?.template; as template) {\n <mat-divider [ngClass]=\"{ hidden: collapsed() }\" class=\"grow-0\"></mat-divider>\n <div [ngClass]=\"{ hidden: collapsed() }\" class=\"footer grow-0\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n }\n </div>\n </mat-sidenav>\n <mat-sidenav-content [ngClass]=\"{ 'ml-16': collapsable() }\" class=\"p-4\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n DetermineReleaseName,\n EnvironmentComponent,\n RXAP_ENVIRONMENT,\n} from '@rxap/environment';\nimport { RXAP_RELEASE_INFO_MODULE } from '../tokens';\nimport { coerceArray } from '@rxap/utilities';\n\n@Component({\n selector: 'rxap-release-info',\n imports: [\n MatButton,\n ],\n templateUrl: './release-info.component.html',\n styleUrl: './release-info.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReleaseInfoComponent {\n\n public readonly modules = coerceArray(inject(RXAP_RELEASE_INFO_MODULE, { optional: true }));\n public readonly release = DetermineReleaseName(inject(RXAP_ENVIRONMENT));\n\n private readonly dialog = inject(MatDialog);\n\n openEnvironmentInfo() {\n this.dialog.open(EnvironmentComponent, {\n closeOnNavigation: true,\n });\n }\n\n}\n","<div class=\"flex flex-col gap-2 w-full justify-center\">\n <button (click)=\"openEnvironmentInfo()\" mat-button>{{ release }}</button>\n @if (modules.length) {\n <table class=\"table-auto border-separate border-spacing-2 bg-white dark:bg-slate-800 text-sm shadow-sm\">\n <thead class=\"bg-slate-50 dark:bg-slate-700\">\n <th class=\"text-sm border-slate-300 dark:border-slate-600 text-slate-900 dark:text-slate-200 border p-2\">Module</th>\n <th class=\"text-sm border-slate-300 dark:border-slate-600 text-slate-900 dark:text-slate-200 border p-2\">Version</th>\n <th class=\"text-sm border-slate-300 dark:border-slate-600 text-slate-900 dark:text-slate-200 border p-2\">Hash</th>\n </thead>\n <tbody>\n @for (module of modules; track module.name) {\n <tr>\n <th class=\"text-sm border border-slate-300 dark:border-slate-700 text-slate-500 dark:text-slate-400 py-2 px-4\">{{ module.name }}</th>\n <td class=\"text-sm border border-slate-300 dark:border-slate-700 text-slate-500 dark:text-slate-400 p-2\">{{ module.version }}</td>\n <td class=\"text-sm border border-slate-300 dark:border-slate-700 text-slate-500 dark:text-slate-400 p-2\">{{ module.hash }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationStart,\n Router,\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 imports: [\n MatProgressBar,\n ]\n})\nexport class NavigationProgressBarComponent {\n\n public readonly router = inject(Router);\n\n public readonly navigating = toSignal(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 ), { initialValue: true });\n\n}\n","@if (navigating()) {\n<mat-progress-bar color=\"accent\" mode=\"indeterminate\"></mat-progress-bar>\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { FooterService } from '../footer.service';\n\n@Component({\n selector: 'rxap-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatToolbarModule, PortalModule]\n})\nexport class FooterComponent {\n\n private readonly footerService = inject(FooterService);\n\n public readonly portals = computed(() => this.footerService.portals());\n public readonly hasPortals = computed(() => this.portals().length > 0);\n\n}\n","@if (hasPortals()) {\n <mat-toolbar class=\"mat-elevation-z1\">\n @for (portal of portals(); track portal) {\n <mat-toolbar-row>\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n }\n </mat-toolbar>\n}\n","import { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport {\n MatToolbar,\n MatToolbarRow,\n} from '@angular/material/toolbar';\nimport { HeaderService } from '../header.service';\n\n@Component({\n selector: 'rxap-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatToolbar,\n MatToolbarRow,\n CdkPortalOutlet,\n ]\n})\nexport class HeaderComponent {\n\n public readonly color = input<ThemePalette>();\n\n private readonly headerService = inject(HeaderService);\n\n public readonly portals = computed(() => this.headerService.portals());\n public readonly hasPortals = computed(() => this.portals().length > 0);\n\n}\n","@if (hasPortals()) {\n <mat-toolbar [color]=\"color()\" class=\"mat-elevation-z1\">\n @for (portal of portals(); track portal) {\n <mat-toolbar-row>\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n }\n </mat-toolbar>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { FooterComponent } from '../footer/footer.component';\nimport { HeaderComponent } from '../header/header.component';\n\n@Component({\n selector: 'rxap-base-layout',\n imports: [\n HeaderComponent,\n FooterComponent,\n ],\n templateUrl: './base-layout.component.html',\n styleUrl: './base-layout.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseLayoutComponent {}\n","<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<ng-content></ng-content>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { BaseLayoutComponent } from '../base-layout/base-layout.component';\nimport { FooterComponent } from '../footer/footer.component';\nimport { HeaderComponent } from '../header/header.component';\nimport { NavigationProgressBarComponent } from '../navigation-progress-bar/navigation-progress-bar.component';\n\n@Component({\n selector: 'rxap-minimal-layout',\n imports: [RouterOutlet, BaseLayoutComponent, NavigationProgressBarComponent, HeaderComponent, FooterComponent],\n templateUrl: './minimal-layout.component.html',\n styleUrl: './minimal-layout.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MinimalLayoutComponent {}\n","<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<router-outlet></router-outlet>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n","import {\n computed,\n inject,\n Injectable,\n signal,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\nimport { RXAP_LOGO_CONFIG } from './tokens';\n\n@Injectable()\nexport class LogoService {\n\n private readonly config = inject(ConfigService);\n public readonly logo = signal(\n inject(RXAP_LOGO_CONFIG, { optional: true }) ??\n this.config.get('logo', {\n src: 'logo.png',\n width: 192,\n }),\n );\n\n public readonly src = computed(() => this.logo().src);\n public readonly width = computed(() => this.logo().width);\n public readonly height = computed(() => this.logo().height);\n\n}\n","import {\n AsyncPipe,\n NgClass,\n NgIf,\n NgOptimizedImage,\n NgStyle,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport {\n RouterLink,\n RouterOutlet,\n} from '@angular/router';\nimport { FooterComponent } from '../footer/footer.component';\nimport { HeaderComponent } from '../header/header.component';\nimport { LogoService } from '../logo.service';\nimport { NavigationProgressBarComponent } from '../navigation-progress-bar/navigation-progress-bar.component';\nimport { NavigationComponent } from '../navigation/navigation.component';\nimport { ReleaseInfoComponent } from '../release-info/release-info.component';\nimport { SidenavFooterDirective } from '../sidenav/sidenav-footer.directive';\nimport { SidenavComponent } from '../sidenav/sidenav.component';\n\n\n@Component({\n selector: 'rxap-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n HeaderComponent,\n MatSidenavModule,\n AsyncPipe,\n MatIconModule,\n MatButtonModule,\n RouterLink,\n NgIf,\n FooterComponent,\n MatMenuModule,\n NgOptimizedImage,\n NavigationComponent,\n RouterOutlet,\n NgStyle,\n NgClass,\n SidenavComponent,\n ReleaseInfoComponent,\n SidenavFooterDirective,\n NavigationProgressBarComponent,\n ]\n})\nexport class LayoutComponent {\n\n private readonly logoService = inject(LogoService);\n public readonly logoSrc: Signal<string> = computed(() => this.logoService.src());\n public readonly logoWidth: Signal<number> = computed(() => this.logoService.width());\n public readonly logoHeight: Signal<number> = computed(() => this.logoService.height());\n\n}\n","<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<rxap-sidenav>\n <router-outlet></router-outlet>\n <ng-template rxapSidenavFooter>\n <img\n [src]=\"logoSrc()\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth()\"\n [height]=\"logoHeight()\"\n alt=\"logo\"\n class=\"grow-0 mx-16 cursor-pointer\"\n />\n <div class=\"grow-0 px-16 mt-4\">\n <rxap-release-info></rxap-release-info>\n </div>\n </ng-template>\n</rxap-sidenav>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { HeaderService } from '../header.service';\n\n@Directive({\n selector: '[rxapHeader]',\n standalone: true,\n})\nexport class HeaderDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n private readonly headerService = inject(HeaderService);\n private readonly template: TemplateRef<void> = inject(TemplateRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n public ngOnInit() {\n this._portal = new TemplatePortal<void>(\n this.template,\n this.viewContainerRef,\n );\n this.headerService.pushPortal(this._portal);\n }\n\n public ngOnDestroy() {\n if (this._portal) {\n this.headerService.removePortal(this._portal);\n }\n }\n}\n\n\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n inject,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { FooterService } from '../footer.service';\n\n@Directive({\n selector: '[rxapFooter]',\n standalone: true,\n})\nexport class FooterDirective implements OnInit, OnDestroy {\n private _portal?: TemplatePortal<void>;\n\n private readonly footerService = inject(FooterService);\n private readonly template: TemplateRef<void> = inject(TemplateRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\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\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport {\n PubSubService,\n RXAP_TOPICS,\n} from '@rxap/ngx-pub-sub';\nimport { EXTRACT_USERNAME_FROM_PROFILE } from '../../tokens';\nimport { ExtractUsernameFromProfileFn } from '../../types';\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 imports: [\n MatMenuModule,\n MatIconModule,\n ]\n})\nexport class UserProfileIconComponent {\n\n private readonly extractUsernameFromProfile: ExtractUsernameFromProfileFn = inject(EXTRACT_USERNAME_FROM_PROFILE);\n private readonly pubSubService = inject(PubSubService);\n\n public readonly profile = input.required();\n\n public readonly username = computed(() => {\n const profile = this.profile();\n if (profile) {\n return this.extractUsernameFromProfile(profile);\n }\n return null;\n });\n\n public logout() {\n this.pubSubService.publish(RXAP_TOPICS.authentication.logout);\n }\n\n\n}\n","<button [matMenuTriggerFor]=\"menu\"\n class=\"rounded-full cursor-pointer outline-none overflow-hidden h-8 w-8 bg-center bg-no-repeat bg-cover flex flex-row justify-center items-center\">\n <mat-icon class=\"h-8 w-8 text-[32px]\" svgIcon=\"account-circle\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\" class=\"!max-w-none\">\n @if (this.username(); as username) {\n <button mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"account\"></mat-icon>\n <span>{{username}}</span>\n </span>\n </button>\n }\n <button (click)=\"logout()\" mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"logout\"></mat-icon>\n <span i18n>Logout</span>\n </span>\n </button>\n</mat-menu>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { LayoutService } from '../../layout.service';\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 imports: [\n MatIcon,\n MatIconButton,\n ]\n})\nexport class SidenavToggleButtonComponent {\n\n private readonly layoutComponentService = inject(LayoutService);\n\n public readonly opened = computed(() => this.layoutComponentService.opened());\n\n public toggle() {\n this.layoutComponentService.toggleOpened();\n }\n\n}\n","<button (click)=\"toggle()\" mat-icon-button>\n @if (opened()) {\n <mat-icon>menu_open</mat-icon>\n } @else {\n <mat-icon>menu</mat-icon>\n }\n</button>\n","import {\n CdkPortalOutlet,\n ComponentPortal,\n} from '@angular/cdk/portal';\nimport { NgIf } from '@angular/common';\nimport {\n Component,\n inject,\n Injector,\n isDevMode,\n runInInjectionContext,\n Signal,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport {\n MatMenu,\n MatMenuItem,\n MatMenuTrigger,\n} from '@angular/material/menu';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport {\n ThemeService,\n} from '@rxap/ngx-theme';\nimport {\n coerceArray,\n IsFunction,\n ThemeDensity,\n} from '@rxap/utilities';\nimport { from } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n RXAP_SETTINGS_MENU_ITEM,\n RXAP_SETTINGS_MENU_ITEM_COMPONENT,\n} from '../../tokens';\nimport { SettingsMenuItem } from '../../types';\n\n@Component({\n selector: 'rxap-settings-button',\n templateUrl: './settings-button.component.html',\n styleUrls: ['./settings-button.component.scss'],\n imports: [\n MatIconButton,\n MatIcon,\n MatMenu,\n MatMenuTrigger,\n MatMenuItem,\n CdkPortalOutlet,\n IconDirective,\n NgIf,\n ]\n})\nexport class SettingsButtonComponent {\n\n public isDevMode = isDevMode();\n\n public readonly theme = inject(ThemeService);\n private readonly injector = inject(Injector);\n\n customItemComponents: Signal<ComponentPortal<unknown>[]> = toSignal(from(Promise.all(\n coerceArray(inject(RXAP_SETTINGS_MENU_ITEM_COMPONENT, { optional: true }))\n .map(item => IsFunction(item) ? item() : item),\n )).pipe(map(items => items.map(item => new ComponentPortal(item, null, this.injector)))), { initialValue: [] });\n\n customItems = signal(coerceArray(inject(RXAP_SETTINGS_MENU_ITEM, { optional: true })));\n\n private savePreviewDensityValue = false;\n private currentDensityValue: ThemeDensity | null = null;\n\n private savePreviewTypographyValue = false;\n private currentTypographyValue: string | null = null;\n\n public readonly availableTypographies = this.theme.getAvailableTypographies();\n private savePreviewThemeValue = false;\n\n public readonly availableThemes = this.theme.getAvailableThemes();\n private currentThemeValue: string | null = null;\n\n previewDensity(density: ThemeDensity) {\n this.theme.applyDensity(density);\n }\n\n restoreDensity() {\n this.theme.applyDensity(this.theme.density());\n }\n\n setDensity(density: ThemeDensity) {\n this.theme.setDensity(density);\n }\n\n previewTypography(typography: string) {\n this.theme.applyTypography(typography);\n }\n\n restoreTypography() {\n this.theme.applyTypography(this.theme.typography());\n }\n\n setTypography(typography: string) {\n this.theme.setTypography(typography);\n }\n\n previewTheme(theme: string) {\n this.theme.applyTheme(theme);\n }\n\n restoreTheme() {\n this.theme.applyTheme(this.theme.themeName());\n }\n\n setTheme(theme: string) {\n this.theme.setTheme(theme);\n }\n\n clickItem(item: SettingsMenuItem) {\n runInInjectionContext(this.injector, () => item.action());\n }\n}\n","<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon svgIcon=\"cog\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n @if (theme.darkMode()) {\n <mat-icon svgIcon=\"brightness-2\"></mat-icon>\n } @else {\n <mat-icon svgIcon=\"brightness-5\"></mat-icon>\n }\n <span i18n>Mode</span>\n </button>\n <button [matMenuTriggerFor]=\"themeMenu\" mat-menu-item>\n <mat-icon svgIcon=\"compare\"></mat-icon>\n <span i18n>Theme</span>\n </button>\n @for (item of customItems(); track item.label) {\n <button (click)=\"clickItem(item)\" mat-menu-item>\n <mat-icon *ngIf=\"item.icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n <span>{{ item.label }}</span>\n </button>\n }\n @for (item of customItemComponents(); track item) {\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n }\n</mat-menu>\n\n<mat-menu #themeMenu=\"matMenu\" xPosition=\"before\">\n <button [matMenuTriggerFor]=\"themeDensityMenu\" mat-menu-item>\n <mat-icon svgIcon=\"move-resize\"></mat-icon>\n <span i18n>Density</span>\n </button>\n @if (availableTypographies?.length) {\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n }\n @if (availableThemes?.length) {\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n }\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"setDensity(0)\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"setDensity(-1)\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"setDensity(-2)\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"setDensity(-3)\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-xs\"></mat-icon>\n <span i18n>Extreme Dense</span>\n </button>\n</mat-menu>\n<mat-menu #themeFontMenu=\"matMenu\" xPosition=\"before\">\n @for (typographyName of availableTypographies ?? []; track typographyName) {\n <button (click)=\"setTypography(typographyName)\"\n (mouseenter)=\"previewTypography(typographyName)\"\n (mouseleave)=\"restoreTypography()\"\n mat-menu-item>\n {{ typographyName }}\n </button>\n }\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n @for (themeName of availableThemes ?? []; track themeName) {\n <button (click)=\"setTheme(themeName)\"\n (mouseenter)=\"previewTheme(themeName)\"\n (mouseleave)=\"restoreTheme()\"\n mat-menu-item>\n {{ themeName }}\n </button>\n }\n</mat-menu>\n","import {\n inject,\n Injectable,\n LOCALE_ID,\n signal,\n} from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ClickOnLink } from '@rxap/browser-utilities';\nimport { ConfigService } from '@rxap/config';\nimport { RXAP_ENVIRONMENT } from '@rxap/environment';\nimport {\n coerceArray,\n JoinPath,\n} from '@rxap/utilities';\nimport {\n RXAP_EXTERNAL_APP,\n RXAP_EXTERNAL_APP_FILTER,\n} from './tokens';\nimport { ExternalApp } from './types';\n\n@Injectable()\nexport class ExternalAppsService {\n\n protected readonly appFilterList = coerceArray(inject(RXAP_EXTERNAL_APP_FILTER, { optional: true }));\n protected readonly config = inject(ConfigService);\n protected readonly localeId = inject(LOCALE_ID);\n protected readonly environment = inject(RXAP_ENVIRONMENT);\n protected readonly apps: Array<ExternalApp> = this.config.get('navigation.apps', []);\n protected readonly externalApps = coerceArray(inject(RXAP_EXTERNAL_APP, { optional: true }));\n\n /**\n * The list of active apps that is processed by the getAppList method\n */\n public readonly activeAppList = signal<Array<ExternalApp>>([]);\n\n public hasApp(appId: string): boolean {\n return this.apps.some(app => app.id === appId);\n }\n\n public getApp(appId: string): ExternalApp | null {\n if (!this.hasApp(appId)) {\n return null;\n }\n const app = this.apps.find(app => app.id === appId);\n if (!app) {\n throw new Error(`FATAL: App with id \"${ appId }\" not found!`);\n }\n return structuredClone(app);\n }\n\n public getAppUrl(appId: string, path: string, infix: string | null = this.getPathPrefix()): string | null {\n\n const app = this.getApp(appId);\n\n if (!app || !app.href) {\n return null;\n }\n\n return JoinPath(app.href, infix, path);\n\n }\n\n public getAppRouterLink(appId: string, path: string): string[] | null {\n\n const app = this.getApp(appId);\n\n if (!app || !app.routerLink) {\n return null;\n }\n\n return [ ...app.routerLink, path ];\n }\n\n public getAppUrlOrThrow(appId: string, path: string): string {\n const url = this.getAppUrl(appId, path);\n if (url) {\n return url;\n }\n throw new Error(`Could not find url for app with id \"${ appId }\"`);\n }\n\n public getAppRouterLinkOrThrow(appId: string, path: string): string[] {\n const routerLink = this.getAppRouterLink(appId, path);\n if (routerLink) {\n return routerLink;\n }\n throw new Error(`Could not find router link for app with id \"${ appId }\"`);\n }\n\n public navigate(appId: string, path: string): void {\n\n const url = this.getAppUrl(appId, path);\n\n if (url) {\n ClickOnLink(url);\n }\n\n }\n\n public async getAppList(): Promise<Array<ExternalApp>> {\n let appList: ExternalApp[] = [\n ...this.externalApps,\n ...this.apps,\n ].filter(app => !app.hidden)\n .map(app => structuredClone(app));\n\n appList.forEach(app => {\n if (app.href) {\n app.href = JoinPath(app.href, this.getPathPrefix());\n }\n });\n\n for (const appFilter of this.appFilterList) {\n appList = await appFilter.call(structuredClone(appList));\n }\n\n appList = structuredClone(appList);\n this.activeAppList.set(appList);\n return appList;\n }\n\n protected getPathPrefix(): string {\n if (this.environment.production && this.localeId) {\n return this.localeId.replace(/-.+$/, '');\n }\n return '';\n }\n\n}\n","import { NgOptimizedImage } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n OnInit,\n signal,\n} from '@angular/core';\nimport {\n MatAnchor,\n MatButton,\n MatIconButton,\n} from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { ExternalAppsService } from '../../external-apps.service';\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 imports: [\n NgOptimizedImage,\n MatButton,\n RouterLink,\n MatAnchor,\n MatIconButton,\n MatIcon,\n IconDirective,\n ]\n})\nexport class AppsButtonComponent implements OnInit {\n /**\n * The signal that indicates if the app list is open\n */\n public readonly isOpen = signal(false);\n\n private readonly externalAppsService = inject(ExternalAppsService);\n public readonly appList = computed(() => this.externalAppsService.activeAppList());\n public readonly hasApps = computed(() => this.appList().length > 0);\n\n public toggle(): void {\n this.isOpen.update(isOpen => !isOpen);\n }\n\n public ngOnInit(): void {\n this.externalAppsService.getAppList();\n }\n\n}\n","@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n","import {\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n computed,\n inject,\n Injectable,\n isDevMode,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { from } from 'rxjs';\nimport { RXAP_DEFAULT_HEADER_ITEM_COMPONENT } from '../tokens';\nimport {\n coerceArray,\n IsFunction,\n} from '@rxap/utilities';\n\n@Injectable()\nexport class DefaultHeaderService {\n\n private readonly components = toSignal(from(Promise.all(coerceArray(inject(RXAP_DEFAULT_HEADER_ITEM_COMPONENT, { optional: true }))\n .map(item => IsFunction(item) ? item() : item))), { initialValue: [] });\n\n private readonly injectedPortals = computed(() => this.components().map(component => new ComponentPortal(component)));\n private readonly methodPortals = signal<Portal<unknown>[]>([]);\n\n /**\n * Represents an array of `Portal` objects with unknown type.\n *\n * @typedef {Array<Portal<unknown>>} SignalPortals\n */\n public readonly portals = computed(() => [ ...this.injectedPortals(), ...this.methodPortals() ]);\n\n\n /**\n * Computes the count of portals.\n *\n * @returns {number} The count of portals.\n */\n public readonly portalCount = computed(() => this.portals().length);\n\n\n /**\n * Adds a portal to the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be added.\n *\n * @return {void}\n */\n public pushPortal(portal: Portal<unknown>) {\n if (!this.methodPortals().includes(portal)) {\n this.methodPortals.update(portals => [ ...portals, portal ]);\n } else {\n if (isDevMode()) {\n console.warn('Can not add the same portal multiple times');\n }\n }\n }\n\n /**\n * Removes a portal from the list of portals.\n *\n * @param {Portal<unknown>} portal - The portal to be removed.\n * @return {void}\n */\n public removePortal(portal: Portal<unknown>) {\n const index = this.methodPortals().indexOf(portal);\n if (index !== -1) {\n this.methodPortals.update(portals => {\n portals.splice(index, 1);\n return portals.slice();\n });\n }\n }\n\n}\n","import { CdkPortalOutlet } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatToolbarRow } from '@angular/material/toolbar';\nimport { HeaderService } from '../header.service';\nimport { LayoutService } from '../layout.service';\nimport { RXAP_USER_PROFILE_DATA_SOURCE } from '../tokens';\nimport { AppsButtonComponent } from './apps-button/apps-button.component';\nimport { DefaultHeaderService } from './default-header.service';\nimport { SettingsButtonComponent } from './settings-button/settings-button.component';\nimport { SidenavToggleButtonComponent } from './sidenav-toggle-button/sidenav-toggle-button.component';\nimport { UserProfileIconComponent } from './user-profile-icon/user-profile-icon.component';\n\n@Component({\n selector: 'rxap-default-header',\n imports: [\n AppsButtonComponent,\n SettingsButtonComponent,\n SidenavToggleButtonComponent,\n UserProfileIconComponent,\n MatToolbarRow,\n CdkPortalOutlet,\n ],\n host: {\n 'class': 'grow',\n },\n templateUrl: './default-header.component.html',\n styleUrl: './default-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultHeaderComponent {\n\n private readonly layoutComponentService = inject(LayoutService);\n\n public readonly collapsable = computed(() => this.layoutComponentService.collapsable());\n public readonly opened = computed(() => this.layoutComponentService.opened());\n public readonly profile = toSignal(inject(RXAP_USER_PROFILE_DATA_SOURCE).connect('user-profile'), { initialValue: null });\n\n private readonly defaultHeaderService = inject(DefaultHeaderService);\n\n public readonly portals = computed(() => this.defaultHeaderService.portals());\n public readonly hasPortals = computed(() => this.portals().length > 0);\n\n}\n","<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (!collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow flex flex-row gap-x-4 items-center\">\n @for (portal of portals(); track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n }\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (this.profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Provider } from '@angular/core';\nimport { DataSource } from '@rxap/pattern';\nimport { Constructor } from '@rxap/utilities';\nimport { DefaultHeaderComponent } from './default-header/default-header.component';\nimport { DefaultHeaderService } from './default-header/default-header.service';\nimport { ExternalAppsService } from './external-apps.service';\nimport { FooterService } from './footer.service';\nimport { HeaderService } from './header.service';\nimport { LayoutService } from './layout.service';\nimport { LogoService } from './logo.service';\nimport { NavigationService } from './navigation.service';\nimport { NavigationWithInserts } from './navigation/navigation-item';\nimport {\n RXAP_DEFAULT_HEADER_ITEM_COMPONENT,\n RXAP_EXTERNAL_APP,\n RXAP_FOOTER_COMPONENT,\n RXAP_HEADER_COMPONENT,\n RXAP_NAVIGATION_CONFIG,\n RXAP_NAVIGATION_CONFIG_INSERTS,\n RXAP_RELEASE_INFO_MODULE,\n RXAP_SETTINGS_MENU_ITEM,\n RXAP_SETTINGS_MENU_ITEM_COMPONENT,\n RXAP_USER_PROFILE_DATA_SOURCE,\n} from './tokens';\nimport {\n DefaultHeaderItemComponent,\n ExternalApp,\n ReleaseInfoModule,\n SettingsMenuItem,\n SettingsMenuItemComponent,\n} from './types';\n\nexport function provideLayout(...additionalProviders: Provider[]): Provider[] {\n return [\n LayoutService,\n LogoService,\n HeaderService,\n FooterService,\n DefaultHeaderService,\n ...additionalProviders,\n ];\n}\n\nexport function provideExternalApps(...apps: ExternalApp[]): Provider[] {\n return [\n ExternalAppsService,\n ...apps.map(app => (\n {\n provide: RXAP_EXTERNAL_APP,\n useValue: app,\n multi: true,\n }\n ))\n ];\n}\n\nexport function withNavigationConfig(\n config: NavigationWithInserts | (() => NavigationWithInserts),\n): Provider[] {\n return [\n NavigationService,\n {\n provide: RXAP_NAVIGATION_CONFIG,\n useValue: config,\n },\n ];\n}\n\nexport function withNavigationInserts(inserts: Record<string, NavigationWithInserts>): Provider[] {\n return [{\n provide: RXAP_NAVIGATION_CONFIG_INSERTS,\n useValue: inserts,\n }];\n}\n\nexport function withSettingsMenuItems(...items: Array<SettingsMenuItemComponent | (() => Promise<SettingsMenuItemComponent> | SettingsMenuItemComponent) | SettingsMenuItem>): Provider[] {\n return [\n ...items.filter((item): item is SettingsMenuItemComponent => typeof item === 'function').map(component => (\n {\n provide: RXAP_SETTINGS_MENU_ITEM_COMPONENT,\n useValue: component,\n multi: true,\n }\n )),\n ...items.filter((item): item is SettingsMenuItem => typeof item !== 'function').map(item => (\n {\n provide: RXAP_SETTINGS_MENU_ITEM,\n useValue: item,\n multi: true,\n }\n )),\n ];\n}\n\nexport function withDefaultHeaderItems(...items: Array<DefaultHeaderItemComponent | (() => Promise<DefaultHeaderItemComponent> | DefaultHeaderItemComponent)>): Provider[] {\n return items.map(component => ({\n provide: RXAP_DEFAULT_HEADER_ITEM_COMPONENT,\n useValue: component,\n multi: true,\n }));\n}\n\nexport function withReleaseInfoModules(...module: ReleaseInfoModule[]): Provider[] {\n return module.map(item => (\n {\n provide: RXAP_RELEASE_INFO_MODULE,\n useValue: item,\n multi: true,\n }\n ));\n}\n\nexport function withHeaderComponents(components: Array<ComponentType<unknown>>): Provider[] {\n return components.map(component => (\n {\n provide: RXAP_HEADER_COMPONENT,\n useValue: component,\n }\n ));\n}\n\nexport function withFooterComponents(components: Array<ComponentType<unknown>>): Provider[] {\n return components.map(component => (\n {\n provide: RXAP_FOOTER_COMPONENT,\n useValue: component,\n }\n ));\n}\n\nexport function withDefaultHeaderComponent(): Provider {\n return {\n provide: RXAP_HEADER_COMPONENT,\n useValue: DefaultHeaderComponent,\n };\n}\n\nexport function withUserProfileDataSource(dataSource: Constructor<DataSource>, useClass = false): Provider {\n if (useClass) {\n return {\n provide: RXAP_USER_PROFILE_DATA_SOURCE,\n useClass: dataSource\n };\n } else {\n return {\n provide: RXAP_USER_PROFILE_DATA_SOURCE,\n useExisting: dataSource\n };\n }\n}\n","// region sidenav\nexport * from './lib/sidenav/sidenav-footer.directive';\nexport * from './lib/sidenav/sidenav-header.directive';\nexport * from './lib/sidenav/sidenav.component';\n// endregion\n\n// region release-info\nexport * from './lib/release-info/release-info.component';\n// endregion\n\n// region navigation navigation-item\nexport * from './lib/navigation/navigation-item/navigation-item.component';\n// endregion\n\n// region navigation-progress-bar\nexport * from './lib/navigation-progress-bar/navigation-progress-bar.component';\n// endregion\n\n// region navigation\nexport * from './lib/navigation/navigation-item';\nexport * from './lib/navigation/navigation.component';\n// endregion\n\n// region minimal-layout\nexport * from './lib/minimal-layout/minimal-layout.component';\n// endregion\n\n// region layout\nexport * from './lib/layout/layout.component';\n// endregion\n\n// region header\nexport * from './lib/header/header.component';\nexport * from './lib/header/header.directive';\n// endregion\n\n// region footer\nexport * from './lib/footer/footer.component';\nexport * from './lib/footer/footer.directive';\n// endregion\n\n// region default-header user-profile-icon\nexport * from './lib/default-header/user-profile-icon/user-profile-icon.component';\n// endregion\n\n// region default-header sidenav-toggle-button\nexport * from './lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component';\n// endregion\n\n// region default-header settings-button\nexport * from './lib/default-header/settings-button/settings-button.component';\n// endregion\n\n// region default-header apps-button\nexport * from './lib/default-header/apps-button/apps-button.component';\n// endregion\n\n// region default-header\nexport * from './lib/default-header/default-header.component';\nexport * from './lib/default-header/default-header.service';\n// endregion\n\n// region base-layout\nexport * from './lib/base-layout/base-layout.component';\n// endregion\n\n// region \nexport * from './lib/external-apps.service';\nexport * from './lib/footer.service';\nexport * from './lib/header.service';\nexport * from './lib/layout.service';\nexport * from './lib/logo.service';\nexport * from './lib/navigation.service';\nexport * from './lib/provide';\nexport * from './lib/tokens';\nexport * from './lib/types';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|