@rxap/layout 18.0.3-dev.1 → 18.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +267 -1
  3. package/compodoc/changelog.html +16 -0
  4. package/compodoc/components/AppsButtonComponent.html +197 -153
  5. package/compodoc/components/BaseLayoutComponent.html +351 -0
  6. package/compodoc/components/DefaultHeaderComponent.html +545 -0
  7. package/compodoc/components/FooterComponent.html +58 -79
  8. package/compodoc/components/HeaderComponent.html +49 -294
  9. package/compodoc/components/LanguageSelectorComponent.html +6 -54
  10. package/compodoc/components/LayoutComponent.html +69 -464
  11. package/compodoc/components/MinimalLayoutComponent.html +349 -0
  12. package/compodoc/components/NavigationComponent.html +116 -312
  13. package/compodoc/components/NavigationItemComponent.html +130 -361
  14. package/compodoc/components/NavigationProgressBarComponent.html +41 -107
  15. package/compodoc/components/ReleaseInfoComponent.html +536 -0
  16. package/compodoc/components/SettingsButtonComponent.html +186 -225
  17. package/compodoc/components/SidenavComponent.html +566 -142
  18. package/compodoc/components/SidenavToggleButtonComponent.html +71 -91
  19. package/compodoc/components/SignOutComponent.html +7 -60
  20. package/compodoc/components/UserProfileIconComponent.html +97 -161
  21. package/compodoc/dependencies.html +9 -25
  22. package/compodoc/directives/FooterDirective-1.html +293 -0
  23. package/compodoc/directives/FooterDirective.html +8 -86
  24. package/compodoc/directives/HeaderDirective.html +293 -0
  25. package/compodoc/index.html +177 -2
  26. package/compodoc/injectables/ExternalAppsService.html +1311 -0
  27. package/compodoc/injectables/FooterService.html +573 -0
  28. package/compodoc/injectables/HeaderService.html +576 -0
  29. package/compodoc/injectables/LayoutService.html +899 -0
  30. package/compodoc/injectables/LogoService.html +411 -0
  31. package/compodoc/injectables/NavigationService.html +46 -57
  32. package/compodoc/interfaces/ReleaseInfoModule.html +385 -0
  33. package/compodoc/interfaces/SettingsMenuItem.html +385 -0
  34. package/compodoc/js/menu-wc.js +24 -40
  35. package/compodoc/js/menu-wc_es5.js +1 -1
  36. package/compodoc/js/search/search_index.js +2 -2
  37. package/compodoc/miscellaneous/functions.html +532 -0
  38. package/compodoc/miscellaneous/typealiases.html +40 -2
  39. package/compodoc/miscellaneous/variables.html +123 -9
  40. package/compodoc/overview.html +2 -10
  41. package/compodoc/properties.html +1 -1
  42. package/docs/assets/highlight.css +42 -0
  43. package/docs/assets/navigation.js +1 -1
  44. package/docs/assets/search.js +1 -1
  45. package/docs/classes/AppsButtonComponent.html +8 -8
  46. package/docs/classes/BaseLayoutComponent.html +2 -0
  47. package/docs/classes/DefaultHeaderComponent.html +7 -0
  48. package/docs/classes/ExternalAppsService.html +19 -0
  49. package/docs/classes/FooterComponent.html +5 -3
  50. package/docs/classes/FooterDirective.html +2 -2
  51. package/docs/classes/FooterService.html +14 -0
  52. package/docs/classes/HeaderComponent.html +6 -8
  53. package/docs/classes/HeaderDirective.html +8 -0
  54. package/docs/classes/HeaderService.html +14 -0
  55. package/docs/classes/LayoutComponent.html +4 -12
  56. package/docs/classes/LayoutService.html +20 -0
  57. package/docs/classes/LogoService.html +7 -0
  58. package/docs/classes/MinimalLayoutComponent.html +2 -0
  59. package/docs/classes/NavigationComponent.html +7 -8
  60. package/docs/classes/NavigationItemComponent.html +6 -9
  61. package/docs/classes/NavigationProgressBarComponent.html +3 -3
  62. package/docs/classes/NavigationService.html +3 -3
  63. package/docs/classes/ReleaseInfoComponent.html +6 -0
  64. package/docs/classes/SettingsButtonComponent.html +6 -11
  65. package/docs/classes/SidenavComponent.html +17 -5
  66. package/docs/classes/SidenavFooterDirective.html +2 -2
  67. package/docs/classes/SidenavHeaderDirective.html +2 -2
  68. package/docs/classes/SidenavToggleButtonComponent.html +4 -3
  69. package/docs/classes/UserProfileIconComponent.html +5 -4
  70. package/docs/documentation.json +9635 -9292
  71. package/docs/functions/IsNavigationDividerItem.html +1 -1
  72. package/docs/functions/IsNavigationInsertItem.html +1 -1
  73. package/docs/functions/IsNavigationItem.html +1 -1
  74. package/docs/functions/provideLayout.html +1 -0
  75. package/docs/functions/widthDefaultHeaderComponent.html +1 -0
  76. package/docs/functions/withExternalApps.html +1 -0
  77. package/docs/functions/withFooterComponents.html +1 -0
  78. package/docs/functions/withHeaderComponents.html +1 -0
  79. package/docs/functions/withNavigationConfig.html +1 -0
  80. package/docs/functions/withNavigationInserts.html +1 -0
  81. package/docs/functions/withReleaseInfoModules.html +1 -0
  82. package/docs/functions/withSettingsMenuItems.html +1 -0
  83. package/docs/index.html +65 -2
  84. package/docs/interfaces/NavigationDividerItem.html +2 -2
  85. package/docs/interfaces/NavigationInsertItem.html +2 -2
  86. package/docs/interfaces/NavigationItem.html +2 -2
  87. package/docs/interfaces/NavigationStatus.html +2 -2
  88. package/docs/interfaces/ReleaseInfoModule.html +4 -0
  89. package/docs/interfaces/SettingsMenuItem.html +4 -0
  90. package/docs/modules.html +31 -17
  91. package/docs/types/ExternalApp.html +1 -0
  92. package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
  93. package/docs/types/Navigation.html +1 -1
  94. package/docs/types/NavigationWithInserts.html +1 -1
  95. package/docs/types/SettingsMenuItemComponent.html +1 -0
  96. package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
  97. package/docs/variables/RXAP_EXTERNAL_APP.html +1 -0
  98. package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -0
  99. package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -1
  100. package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -1
  101. package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -1
  102. package/docs/variables/RXAP_LOGO_CONFIG.html +1 -1
  103. package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -1
  104. package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -1
  105. package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -0
  106. package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -0
  107. package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -0
  108. package/esm2022/index.mjs +35 -40
  109. package/esm2022/lib/base-layout/base-layout.component.mjs +16 -0
  110. package/esm2022/lib/default-header/apps-button/apps-button.component.mjs +40 -0
  111. package/esm2022/lib/default-header/default-header.component.mjs +32 -0
  112. package/esm2022/lib/default-header/settings-button/settings-button.component.mjs +73 -0
  113. package/esm2022/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +24 -0
  114. package/esm2022/lib/default-header/user-profile-icon/user-profile-icon.component.mjs +35 -0
  115. package/esm2022/lib/external-apps.service.mjs +99 -0
  116. package/esm2022/lib/footer/footer.component.mjs +13 -13
  117. package/esm2022/lib/footer/footer.directive.mjs +30 -0
  118. package/esm2022/lib/footer.service.mjs +58 -0
  119. package/esm2022/lib/header/header.component.mjs +17 -65
  120. package/esm2022/lib/header/header.directive.mjs +30 -0
  121. package/esm2022/lib/header.service.mjs +60 -0
  122. package/esm2022/lib/layout/layout.component.mjs +33 -47
  123. package/esm2022/lib/layout.service.mjs +93 -0
  124. package/esm2022/lib/logo.service.mjs +23 -0
  125. package/esm2022/lib/minimal-layout/minimal-layout.component.mjs +14 -0
  126. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +30 -64
  127. package/esm2022/lib/navigation/navigation.component.mjs +22 -48
  128. package/esm2022/lib/navigation-progress-bar/navigation-progress-bar.component.mjs +23 -0
  129. package/esm2022/lib/navigation.service.mjs +141 -0
  130. package/esm2022/lib/provide.mjs +80 -0
  131. package/esm2022/lib/release-info/release-info.component.mjs +28 -0
  132. package/esm2022/lib/sidenav/sidenav.component.mjs +50 -33
  133. package/esm2022/lib/tokens.mjs +10 -1
  134. package/esm2022/lib/types.mjs +1 -1
  135. package/fesm2022/rxap-layout.mjs +856 -833
  136. package/fesm2022/rxap-layout.mjs.map +1 -1
  137. package/index.d.ts +18 -19
  138. package/lib/base-layout/base-layout.component.d.ts +5 -0
  139. package/lib/default-header/apps-button/apps-button.component.d.ts +15 -0
  140. package/lib/default-header/default-header.component.d.ts +11 -0
  141. package/lib/{header → default-header}/settings-button/settings-button.component.d.ts +6 -14
  142. package/lib/{header → default-header}/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +3 -5
  143. package/lib/default-header/user-profile-icon/user-profile-icon.component.d.ts +10 -0
  144. package/lib/external-apps.service.d.ts +26 -0
  145. package/lib/footer/footer.component.d.ts +3 -3
  146. package/lib/{footer.directive.d.ts → footer/footer.directive.d.ts} +2 -4
  147. package/lib/footer.service.d.ts +32 -0
  148. package/lib/header/header.component.d.ts +6 -12
  149. package/lib/header/header.directive.d.ts +12 -0
  150. package/lib/header.service.d.ts +34 -0
  151. package/lib/layout/layout.component.d.ts +4 -17
  152. package/lib/layout.service.d.ts +26 -0
  153. package/lib/logo.service.d.ts +10 -0
  154. package/lib/minimal-layout/minimal-layout.component.d.ts +5 -0
  155. package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -18
  156. package/lib/navigation/navigation.component.d.ts +10 -15
  157. package/lib/{header/navigation-progress-bar → navigation-progress-bar}/navigation-progress-bar.component.d.ts +1 -3
  158. package/lib/{navigation/navigation.service.d.ts → navigation.service.d.ts} +4 -5
  159. package/lib/provide.d.ts +13 -0
  160. package/lib/release-info/release-info.component.d.ts +9 -0
  161. package/lib/sidenav/sidenav.component.d.ts +18 -6
  162. package/lib/tokens.d.ts +12 -3
  163. package/lib/types.d.ts +15 -4
  164. package/package.json +30 -66
  165. package/theme.css +1 -1
  166. package/docs/classes/AppUrlService.html +0 -13
  167. package/docs/classes/AuthenticationServiceMock.html +0 -3
  168. package/docs/classes/LanguageSelectorComponent.html +0 -3
  169. package/docs/classes/LayoutComponentService.html +0 -15
  170. package/docs/classes/ReplaceRouterPathsPipe.html +0 -4
  171. package/docs/classes/ReplaceRouterPathsService.html +0 -3
  172. package/docs/classes/ResetButtonComponent.html +0 -3
  173. package/docs/classes/SidenavComponentService.html +0 -5
  174. package/docs/classes/SignOutComponent.html +0 -4
  175. package/docs/classes/ToggleWindowSidenavButtonComponent.html +0 -5
  176. package/docs/classes/VersionComponent.html +0 -7
  177. package/docs/classes/WindowContainerSidenavComponent.html +0 -10
  178. package/docs/interfaces/ExternalApps.html +0 -8
  179. package/docs/interfaces/LogoConfig.html +0 -4
  180. package/esm2022/lib/app-url.service.mjs +0 -78
  181. package/esm2022/lib/authentication.service.mock.mjs +0 -13
  182. package/esm2022/lib/footer.directive.mjs +0 -40
  183. package/esm2022/lib/header/apps-button/apps-button.component.mjs +0 -46
  184. package/esm2022/lib/header/language-selector/language-selector.component.mjs +0 -35
  185. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -30
  186. package/esm2022/lib/header/reset-button/reset-button.component.mjs +0 -23
  187. package/esm2022/lib/header/settings-button/settings-button.component.mjs +0 -87
  188. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -26
  189. package/esm2022/lib/header/sign-out/sign-out.component.mjs +0 -23
  190. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +0 -45
  191. package/esm2022/lib/layout/layout.component.service.mjs +0 -77
  192. package/esm2022/lib/navigation/navigation.service.mjs +0 -145
  193. package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +0 -22
  194. package/esm2022/lib/navigation/replace-router-paths.service.mjs +0 -15
  195. package/esm2022/lib/sidenav/sidenav.component.service.mjs +0 -22
  196. package/esm2022/lib/sidenav/version/version.component.mjs +0 -28
  197. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +0 -30
  198. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +0 -54
  199. package/lib/app-url.service.d.ts +0 -29
  200. package/lib/authentication.service.mock.d.ts +0 -6
  201. package/lib/header/apps-button/apps-button.component.d.ts +0 -16
  202. package/lib/header/language-selector/language-selector.component.d.ts +0 -8
  203. package/lib/header/reset-button/reset-button.component.d.ts +0 -8
  204. package/lib/header/sign-out/sign-out.component.d.ts +0 -9
  205. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +0 -15
  206. package/lib/layout/layout.component.service.d.ts +0 -25
  207. package/lib/navigation/replace-router-paths.pipe.d.ts +0 -11
  208. package/lib/navigation/replace-router-paths.service.d.ts +0 -7
  209. package/lib/sidenav/sidenav.component.service.d.ts +0 -11
  210. package/lib/sidenav/version/version.component.d.ts +0 -14
  211. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +0 -9
  212. package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +0 -17
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [18.1.0-dev.1](https://gitlab.com/rxap/packages/compare/@rxap/layout@18.1.0-dev.0...@rxap/layout@18.1.0-dev.1) (2024-06-25)
7
+
8
+ ### Features
9
+
10
+ - support static external apps ([c005399](https://gitlab.com/rxap/packages/commit/c005399314a3d7131d4bee429fc9ce85f92d87d5))
11
+
12
+ # [18.1.0-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/layout@18.0.3-dev.1...@rxap/layout@18.1.0-dev.0) (2024-06-24)
13
+
14
+ ### Bug Fixes
15
+
16
+ - move language selector ([8cfbe0d](https://gitlab.com/rxap/packages/commit/8cfbe0ddc8417caa955dbe22dd5e85976149de51))
17
+
18
+ ### Features
19
+
20
+ - add signal ([8f9e868](https://gitlab.com/rxap/packages/commit/8f9e8680e17e1a21a74a157516928b4b871561f9))
21
+ - support custom settings components ([9349248](https://gitlab.com/rxap/packages/commit/9349248f0e64e314e4a1daffa4de835eb48c4d5c))
22
+ - support router link for app buttons ([51b7502](https://gitlab.com/rxap/packages/commit/51b75025338d76cbdbfbc2f9654181b47fef122f))
23
+
6
24
  ## [18.0.3-dev.1](https://gitlab.com/rxap/packages/compare/@rxap/layout@18.0.3-dev.0...@rxap/layout@18.0.3-dev.1) (2024-06-21)
7
25
 
8
26
  **Note:** Version bump only for package @rxap/layout
package/README.md CHANGED
@@ -8,6 +8,7 @@
8
8
  ![NPM](https://img.shields.io/npm/l/@rxap/layout)
9
9
 
10
10
  - [Installation](#installation)
11
+ - [Get started](#get-started)
11
12
  - [Generators](#generators)
12
13
 
13
14
  # Installation
@@ -18,12 +19,277 @@ yarn add @rxap/layout
18
19
  ```
19
20
  **Install peer dependencies:**
20
21
  ```bash
21
- yarn add @angular/animations@^18.0.1 @angular/cdk@^18.0.0 @angular/common@^18.0.1 @angular/core@^18.0.1 @angular/forms@^18.0.1 @angular/material@^18.0.0 @angular/router@^18.0.1 @rxap/authentication@^18.0.3-dev.0 @rxap/authorization@^18.0.3-dev.0 @rxap/browser-utilities@^1.1.4-dev.0 @rxap/config@^18.1.1-dev.0 @rxap/data-source@^18.1.1-dev.0 @rxap/directives@^18.0.3-dev.0 @rxap/environment@^18.0.3-dev.0 @rxap/icon@^18.0.3-dev.0 @rxap/material-directives@^18.0.3-dev.0 @rxap/ngx-changelog@^18.0.3-dev.0 @rxap/ngx-localize@^18.0.3-dev.0 @rxap/ngx-status-check@^18.0.3-dev.0 @rxap/ngx-theme@^18.0.3-dev.0 @rxap/ngx-user@^18.0.3-dev.0 @rxap/services@^18.0.3-dev.0 @rxap/utilities@^16.2.4-dev.0 rxjs@^7.8.1
22
+ yarn add @angular/animations@^18.0.1 @angular/cdk@^18.0.0 @angular/common@^18.0.1 @angular/core@^18.0.1 @angular/material@^18.0.0 @angular/router@^18.0.1 @rxap/browser-utilities@^1.1.4-dev.1 @rxap/config@^18.1.1-dev.2 @rxap/environment@^18.0.3-dev.2 @rxap/material-directives@^18.0.3-dev.1 @rxap/ngx-pub-sub@^18.0.3-dev.1 @rxap/ngx-theme@^18.0.3-dev.1 @rxap/ngx-user@^18.0.3-dev.1 @rxap/pattern@^1.1.5-dev.1 @rxap/utilities@^16.2.4-dev.1 rxjs@^7.8.1
22
23
  ```
23
24
  **Execute the init generator:**
24
25
  ```bash
25
26
  yarn nx g @rxap/layout:init
26
27
  ```
28
+ # Get started
29
+
30
+ ## Layout
31
+
32
+ Create a new file `layout.routes.ts` in the `app` folder. This file will contain all child routes that should be loaded within the layout component.
33
+
34
+ ```typescript
35
+ import { LayoutComponent, provideLayout } from '@rxap/layout';
36
+
37
+ const ROUTES: Route[] = [
38
+ {
39
+ path: '',
40
+ component: LayoutComponent,
41
+ children: [ ],
42
+ providers: [ provideLayout() ],
43
+ },
44
+ ];
45
+ ```
46
+
47
+ Import the layout routes into the `app.routes.ts` file.
48
+
49
+ ```typescript
50
+ export const appRoutes: Route[] = [
51
+ {
52
+ path: '',
53
+ loadChildren: () => import('./layout.routes'),
54
+ },
55
+ {
56
+ path: '**',
57
+ redirectTo: '',
58
+ },
59
+ ];
60
+ ```
61
+
62
+ ## Navigation
63
+
64
+ Create a new file `app.navigation.ts` in the `app` folder. This file will contain the navigation items that should be displayed in the layout component.
65
+
66
+ ```typescript
67
+ export const APP_NAVIGATION: () => NavigationWithInserts = () => [];
68
+ ```
69
+
70
+ Provide the app navigation in the layout routes:
71
+
72
+ ```typescript
73
+ import {
74
+ LayoutComponent,
75
+ ProvideNavigationConfig,
76
+ withNavigationService,
77
+ } from '@rxap/layout';
78
+ import { APP_NAVIGATION } from './app.navigation';
79
+
80
+ const ROUTES: Route[] = [
81
+ {
82
+ path: '',
83
+ component: LayoutComponent,
84
+ children: [ ],
85
+ providers: [
86
+ provideLayout(
87
+ withNavigationConfig(APP_NAVIGATION),
88
+ ),
89
+ ],
90
+ },
91
+ ];
92
+ ```
93
+
94
+ ### Navigation Item
95
+
96
+ A navigation item represents a single item in the navigation sidebar. Each item has the required properties `label` and `routerLink`. The `label` property is the text that should be displayed in the sidebar. The `routerLink` property is the path that should be navigated to when the item is clicked.
97
+
98
+ ```typescript
99
+ const item: NavigationItem = {
100
+ label: 'Home',
101
+ routerLink: '/',
102
+ };
103
+ ```
104
+
105
+ With the `children` property, a navigation item can have child items. The child items are displayed in a dropdown menu when the parent item is clicked.
106
+
107
+ ```typescript
108
+ const item: NavigationItem = {
109
+ label: 'Home',
110
+ routerLink: '/',
111
+ children: [
112
+ {
113
+ label: 'Child',
114
+ routerLink: '/child',
115
+ },
116
+ ],
117
+ };
118
+ ```
119
+
120
+ #### Icon Property
121
+
122
+ With the `icon` property, the item can be assigned an icon. The icon is displayed to the left of the label. If the navigation sidebar is collapsed, only the icon is displayed.
123
+
124
+ ```typescript
125
+ const item: NavigationItem = {
126
+ label: 'Home',
127
+ routerLink: '/',
128
+ icon: { icon: 'home' },
129
+ };
130
+ ```
131
+
132
+ #### Status Property
133
+
134
+ With the `status` property, a injectable token, class or function can be assigned to the item. The object must have the method `isVisible` which returns a boolean. If the method returns `false`, the item is not displayed in the navigation sidebar.
135
+
136
+ ```typescript
137
+ @Injectable()
138
+ class SetNavStatus {
139
+ isVisible(item: NavigationItem): boolean {
140
+ return false;
141
+ }
142
+ }
143
+
144
+ const item: NavigationItem = {
145
+ label: 'Home',
146
+ routerLink: '/',
147
+ status: SetNavStatus,
148
+ };
149
+ ```
150
+
151
+ ### Navigation Divider Item
152
+
153
+ A navigation divider item is a horizontal line that separates navigation items. It is used to group items in the navigation sidebar. It is required to set the property `divider` to `true`. With the optional property `title`, a title can be defined that is displayed below the divider.
154
+
155
+ ```typescript
156
+ const item: NavigationDividerItem = {
157
+ divider: true,
158
+ title: 'Group',
159
+ };
160
+ ```
161
+
162
+ ### Navigation Insert Item (WIP)
163
+
164
+ A navigation insert item is a placeholder for a navigation item that should be inserted into the navigation sidebar.
165
+ The item is used to define where a dynamic navigation should be inserted. The `insert` property is the key that is used
166
+ identify the insert item. The `insert` property is required.
167
+
168
+ ```typescript
169
+ const item: NavigationInsertItem = {
170
+ insert: 'insert-key',
171
+ };
172
+ ```
173
+
174
+ ## Header
175
+
176
+ The header is composed of the components from left to right: AppsButtonComponent, SettingsButtonComponent and UserProfileIconComponent.
177
+
178
+ ### Apps Button
179
+
180
+ The apps buttons allow for a navigation between different applications. To configure the apps button, the config path
181
+ `navigation.apps` must be set with an array of object with the property `title` and ether `routerLink` or `href`. If the
182
+ property `href` is set, the link is opened in a new tab. If the property `routerLink` the router is used to navigate.
183
+
184
+ ```json
185
+ {
186
+ "navigation": {
187
+ "apps": [
188
+ {
189
+ "title": "App 1",
190
+ "routerLink": ["/", "app1"]
191
+ },
192
+ {
193
+ "title": "App 2",
194
+ "href": "https://app2.com"
195
+ }
196
+ ]
197
+ }
198
+ }
199
+ ```
200
+
201
+ > If the application is in production mode, the current `localId` is appended to the url defined in the `href` property.
202
+
203
+ ### Settings Button Customization (WIP)
204
+
205
+ It is possible to add custom items to the settings menu. This custom item can be a component or a configuration object.
206
+
207
+ >
208
+
209
+ #### Configuration Object
210
+
211
+ The action function is called when the item is clicked. It is possible to use the `inject` function to inject services.
212
+
213
+ ```typescript
214
+ import {
215
+ LayoutComponent,
216
+ ProvideNavigationConfig,
217
+ withNavigationService,
218
+ } from '@rxap/layout';
219
+ import { APP_NAVIGATION } from './app.navigation';
220
+
221
+ const ROUTES: Route[] = [
222
+ {
223
+ path: '',
224
+ component: LayoutComponent,
225
+ children: [ ],
226
+ providers: [
227
+ provideLayout(
228
+ withNavigationConfig(APP_NAVIGATION),
229
+ withSettingsMenuItems(
230
+ {
231
+ label: 'Custom Item',
232
+ icon: { icon: 'home' },
233
+ action: () => inject(MatDialog).open(MyCustomDialogComponent),
234
+ }
235
+ )
236
+ ),
237
+ ],
238
+ },
239
+ ];
240
+ ```
241
+
242
+ #### Component
243
+
244
+ If a component is provided ensure the component template uses the `mat-menu-item` component:
245
+
246
+ ```angular17html
247
+ <button mat-menu-item>My Custom Item</button>
248
+ ```
249
+
250
+ ```typescript
251
+ import {
252
+ LayoutComponent,
253
+ ProvideNavigationConfig,
254
+ withNavigationService,
255
+ } from '@rxap/layout';
256
+ import { APP_NAVIGATION } from './app.navigation';
257
+
258
+ const ROUTES: Route[] = [
259
+ {
260
+ path: '',
261
+ component: LayoutComponent,
262
+ children: [ ],
263
+ providers: [
264
+ provideLayout(
265
+ withNavigationConfig(APP_NAVIGATION),
266
+ withSettingsMenuItems(
267
+ MyCustomMenuItemComponent
268
+ )
269
+ ),
270
+ ],
271
+ },
272
+ ];
273
+ ```
274
+
275
+ ### User Profile (WIP)
276
+
277
+ ...
278
+
279
+ ## Dynamic Footer
280
+
281
+ With the directive `rxapFooter` it is possible to define a dynamic footer. When the directive is used on a `<ng-template>` in a component,
282
+ that is rendered in the layout component, the template is rendered in the footer of the layout component.
283
+
284
+ ```angular17html
285
+ <mat-card>
286
+ ...
287
+ </mat-card>
288
+ <ng-template rxapFooter>
289
+ <button mat-button>A button in the layout footer</button>
290
+ </ng-template>
291
+ ```
292
+
27
293
  # Generators
28
294
 
29
295
  ## init
@@ -85,6 +85,22 @@
85
85
  <h1>Change Log</h1>
86
86
  <p>All notable changes to this project will be documented in this file.
87
87
  See <a href="https://conventionalcommits.org">Conventional Commits</a> for commit guidelines.</p>
88
+ <h1><a href="https://gitlab.com/rxap/packages/compare/@rxap/layout@18.1.0-dev.0...@rxap/layout@18.1.0-dev.1">18.1.0-dev.1</a> (2024-06-25)</h1>
89
+ <h3>Features</h3>
90
+ <ul>
91
+ <li>support static external apps (<a href="https://gitlab.com/rxap/packages/commit/c005399314a3d7131d4bee429fc9ce85f92d87d5">c005399</a>)</li>
92
+ </ul>
93
+ <h1><a href="https://gitlab.com/rxap/packages/compare/@rxap/layout@18.0.3-dev.1...@rxap/layout@18.1.0-dev.0">18.1.0-dev.0</a> (2024-06-24)</h1>
94
+ <h3>Bug Fixes</h3>
95
+ <ul>
96
+ <li>move language selector (<a href="https://gitlab.com/rxap/packages/commit/8cfbe0ddc8417caa955dbe22dd5e85976149de51">8cfbe0d</a>)</li>
97
+ </ul>
98
+ <h3>Features</h3>
99
+ <ul>
100
+ <li>add signal (<a href="https://gitlab.com/rxap/packages/commit/8f9e8680e17e1a21a74a157516928b4b871561f9">8f9e868</a>)</li>
101
+ <li>support custom settings components (<a href="https://gitlab.com/rxap/packages/commit/9349248f0e64e314e4a1daffa4de835eb48c4d5c">9349248</a>)</li>
102
+ <li>support router link for app buttons (<a href="https://gitlab.com/rxap/packages/commit/51b75025338d76cbdbfbc2f9654181b47fef122f">51b7502</a>)</li>
103
+ </ul>
88
104
  <h2><a href="https://gitlab.com/rxap/packages/compare/@rxap/layout@18.0.3-dev.0...@rxap/layout@18.0.3-dev.1">18.0.3-dev.1</a> (2024-06-21)</h2>
89
105
  <p><strong>Note:</strong> Version bump only for package @rxap/layout</p>
90
106
  <h2><a href="https://gitlab.com/rxap/packages/compare/@rxap/layout@18.0.2...@rxap/layout@18.0.3-dev.0">18.0.3-dev.0</a> (2024-06-20)</h2>