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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +280 -1
  3. package/compodoc/changelog.html +13 -0
  4. package/compodoc/components/AppsButtonComponent.html +185 -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 +11 -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 +183 -1
  26. package/compodoc/injectables/ExternalAppsService.html +1274 -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 +544 -1
  38. package/compodoc/miscellaneous/typealiases.html +40 -2
  39. package/compodoc/miscellaneous/variables.html +100 -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 +18 -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 +8546 -8346
  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/withFooterComponents.html +1 -0
  77. package/docs/functions/withHeaderComponents.html +1 -0
  78. package/docs/functions/withNavigationConfig.html +1 -0
  79. package/docs/functions/withNavigationInserts.html +1 -0
  80. package/docs/functions/withReleaseInfoModules.html +1 -0
  81. package/docs/functions/withSettingsMenuItems.html +1 -0
  82. package/docs/index.html +74 -2
  83. package/docs/interfaces/NavigationDividerItem.html +2 -2
  84. package/docs/interfaces/NavigationInsertItem.html +2 -2
  85. package/docs/interfaces/NavigationItem.html +2 -2
  86. package/docs/interfaces/NavigationStatus.html +2 -2
  87. package/docs/interfaces/ReleaseInfoModule.html +4 -0
  88. package/docs/interfaces/SettingsMenuItem.html +4 -0
  89. package/docs/modules.html +29 -17
  90. package/docs/types/ExternalApps.html +1 -0
  91. package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
  92. package/docs/types/Navigation.html +1 -1
  93. package/docs/types/NavigationWithInserts.html +1 -1
  94. package/docs/types/SettingsMenuItemComponent.html +1 -0
  95. package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
  96. package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -0
  97. package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -1
  98. package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -1
  99. package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -1
  100. package/docs/variables/RXAP_LOGO_CONFIG.html +1 -1
  101. package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -1
  102. package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -1
  103. package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -0
  104. package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -0
  105. package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -0
  106. package/esm2022/index.mjs +35 -40
  107. package/esm2022/lib/base-layout/base-layout.component.mjs +16 -0
  108. package/esm2022/lib/default-header/apps-button/apps-button.component.mjs +38 -0
  109. package/esm2022/lib/default-header/default-header.component.mjs +32 -0
  110. package/esm2022/lib/default-header/settings-button/settings-button.component.mjs +73 -0
  111. package/esm2022/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +24 -0
  112. package/esm2022/lib/default-header/user-profile-icon/user-profile-icon.component.mjs +35 -0
  113. package/esm2022/lib/external-apps.service.mjs +97 -0
  114. package/esm2022/lib/footer/footer.component.mjs +13 -13
  115. package/esm2022/lib/footer/footer.directive.mjs +30 -0
  116. package/esm2022/lib/footer.service.mjs +58 -0
  117. package/esm2022/lib/header/header.component.mjs +17 -65
  118. package/esm2022/lib/header/header.directive.mjs +30 -0
  119. package/esm2022/lib/header.service.mjs +60 -0
  120. package/esm2022/lib/layout/layout.component.mjs +33 -47
  121. package/esm2022/lib/layout.service.mjs +93 -0
  122. package/esm2022/lib/logo.service.mjs +23 -0
  123. package/esm2022/lib/minimal-layout/minimal-layout.component.mjs +14 -0
  124. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +30 -64
  125. package/esm2022/lib/navigation/navigation.component.mjs +22 -48
  126. package/esm2022/lib/navigation-progress-bar/navigation-progress-bar.component.mjs +23 -0
  127. package/esm2022/lib/navigation.service.mjs +141 -0
  128. package/esm2022/lib/provide.mjs +73 -0
  129. package/esm2022/lib/release-info/release-info.component.mjs +28 -0
  130. package/esm2022/lib/sidenav/sidenav.component.mjs +50 -33
  131. package/esm2022/lib/tokens.mjs +9 -1
  132. package/esm2022/lib/types.mjs +1 -1
  133. package/fesm2022/rxap-layout.mjs +845 -833
  134. package/fesm2022/rxap-layout.mjs.map +1 -1
  135. package/index.d.ts +18 -19
  136. package/lib/base-layout/base-layout.component.d.ts +5 -0
  137. package/lib/default-header/apps-button/apps-button.component.d.ts +15 -0
  138. package/lib/default-header/default-header.component.d.ts +11 -0
  139. package/lib/{header → default-header}/settings-button/settings-button.component.d.ts +6 -14
  140. package/lib/{header → default-header}/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +3 -5
  141. package/lib/default-header/user-profile-icon/user-profile-icon.component.d.ts +10 -0
  142. package/lib/external-apps.service.d.ts +25 -0
  143. package/lib/footer/footer.component.d.ts +3 -3
  144. package/lib/{footer.directive.d.ts → footer/footer.directive.d.ts} +2 -4
  145. package/lib/footer.service.d.ts +32 -0
  146. package/lib/header/header.component.d.ts +6 -12
  147. package/lib/header/header.directive.d.ts +12 -0
  148. package/lib/header.service.d.ts +34 -0
  149. package/lib/layout/layout.component.d.ts +4 -17
  150. package/lib/layout.service.d.ts +26 -0
  151. package/lib/logo.service.d.ts +10 -0
  152. package/lib/minimal-layout/minimal-layout.component.d.ts +5 -0
  153. package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -18
  154. package/lib/navigation/navigation.component.d.ts +10 -15
  155. package/lib/{header/navigation-progress-bar → navigation-progress-bar}/navigation-progress-bar.component.d.ts +1 -3
  156. package/lib/{navigation/navigation.service.d.ts → navigation.service.d.ts} +4 -5
  157. package/lib/provide.d.ts +12 -0
  158. package/lib/release-info/release-info.component.d.ts +9 -0
  159. package/lib/sidenav/sidenav.component.d.ts +18 -6
  160. package/lib/tokens.d.ts +11 -3
  161. package/lib/types.d.ts +15 -4
  162. package/package.json +32 -66
  163. package/theme.css +1 -1
  164. package/docs/classes/AppUrlService.html +0 -13
  165. package/docs/classes/AuthenticationServiceMock.html +0 -3
  166. package/docs/classes/LanguageSelectorComponent.html +0 -3
  167. package/docs/classes/LayoutComponentService.html +0 -15
  168. package/docs/classes/ReplaceRouterPathsPipe.html +0 -4
  169. package/docs/classes/ReplaceRouterPathsService.html +0 -3
  170. package/docs/classes/ResetButtonComponent.html +0 -3
  171. package/docs/classes/SidenavComponentService.html +0 -5
  172. package/docs/classes/SignOutComponent.html +0 -4
  173. package/docs/classes/ToggleWindowSidenavButtonComponent.html +0 -5
  174. package/docs/classes/VersionComponent.html +0 -7
  175. package/docs/classes/WindowContainerSidenavComponent.html +0 -10
  176. package/docs/interfaces/ExternalApps.html +0 -8
  177. package/docs/interfaces/LogoConfig.html +0 -4
  178. package/esm2022/lib/app-url.service.mjs +0 -78
  179. package/esm2022/lib/authentication.service.mock.mjs +0 -13
  180. package/esm2022/lib/footer.directive.mjs +0 -40
  181. package/esm2022/lib/header/apps-button/apps-button.component.mjs +0 -46
  182. package/esm2022/lib/header/language-selector/language-selector.component.mjs +0 -35
  183. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -30
  184. package/esm2022/lib/header/reset-button/reset-button.component.mjs +0 -23
  185. package/esm2022/lib/header/settings-button/settings-button.component.mjs +0 -87
  186. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -26
  187. package/esm2022/lib/header/sign-out/sign-out.component.mjs +0 -23
  188. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +0 -45
  189. package/esm2022/lib/layout/layout.component.service.mjs +0 -77
  190. package/esm2022/lib/navigation/navigation.service.mjs +0 -145
  191. package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +0 -22
  192. package/esm2022/lib/navigation/replace-router-paths.service.mjs +0 -15
  193. package/esm2022/lib/sidenav/sidenav.component.service.mjs +0 -22
  194. package/esm2022/lib/sidenav/version/version.component.mjs +0 -28
  195. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +0 -30
  196. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +0 -54
  197. package/lib/app-url.service.d.ts +0 -29
  198. package/lib/authentication.service.mock.d.ts +0 -6
  199. package/lib/header/apps-button/apps-button.component.d.ts +0 -16
  200. package/lib/header/language-selector/language-selector.component.d.ts +0 -8
  201. package/lib/header/reset-button/reset-button.component.d.ts +0 -8
  202. package/lib/header/sign-out/sign-out.component.d.ts +0 -9
  203. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +0 -15
  204. package/lib/layout/layout.component.service.d.ts +0 -25
  205. package/lib/navigation/replace-router-paths.pipe.d.ts +0 -11
  206. package/lib/navigation/replace-router-paths.service.d.ts +0 -7
  207. package/lib/sidenav/sidenav.component.service.d.ts +0 -11
  208. package/lib/sidenav/version/version.component.d.ts +0 -14
  209. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +0 -9
  210. package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +0 -17
@@ -142,10 +142,6 @@
142
142
 
143
143
 
144
144
 
145
- <tr>
146
- <td class="col-md-3">host</td>
147
- <td class="col-md-9"><code>{<br>}</code></td>
148
- </tr>
149
145
 
150
146
 
151
147
 
@@ -165,14 +161,19 @@
165
161
  <tr>
166
162
  <td class="col-md-3">imports</td>
167
163
  <td class="col-md-9">
168
- <code>NgClass</code>
164
+ <code>MatIcon</code>
165
+ <code>MatIconButton</code>
166
+ <code>MatSidenav</code>
167
+ <code>MatSidenavContainer</code>
168
+ <code>MatSidenavContent</code>
169
+ <code><a href="../components/NavigationComponent.html" target="_self" >NavigationComponent</a></code>
169
170
  <code>NgIf</code>
171
+ <code>RouterOutlet</code>
172
+ <code>NgClass</code>
173
+ <code>NgStyle</code>
174
+ <code>MatDivider</code>
170
175
  <code>NgTemplateOutlet</code>
171
- <code>MatDividerModule</code>
172
- <code><a href="../components/NavigationComponent.html" target="_self" >NavigationComponent</a></code>
173
- <code>MatButtonModule</code>
174
- <code>MatIconModule</code>
175
- <code>AsyncPipe</code>
176
+ <code>MatButton</code>
176
177
  </td>
177
178
  </tr>
178
179
 
@@ -214,20 +215,76 @@
214
215
  <li>
215
216
  <span class="modifier">Public</span>
216
217
  <span class="modifier">Readonly</span>
217
- <a href="#sidenav" >sidenav</a>
218
+ <a href="#collapsable" >collapsable</a>
219
+ </li>
220
+ <li>
221
+ <span class="modifier">Public</span>
222
+ <span class="modifier">Readonly</span>
223
+ <a href="#collapsed" >collapsed</a>
224
+ </li>
225
+ <li>
226
+ <span class="modifier">Public</span>
227
+ <span class="modifier">Readonly</span>
228
+ <a href="#fixedBottomGap" >fixedBottomGap</a>
229
+ </li>
230
+ <li>
231
+ <span class="modifier">Public</span>
232
+ <span class="modifier">Readonly</span>
233
+ <a href="#fixedInViewport" >fixedInViewport</a>
234
+ </li>
235
+ <li>
236
+ <span class="modifier">Public</span>
237
+ <span class="modifier">Readonly</span>
238
+ <a href="#fixedTopGap" >fixedTopGap</a>
239
+ </li>
240
+ <li>
241
+ <span class="modifier">Public</span>
242
+ <span class="modifier">Readonly</span>
243
+ <a href="#opened" >opened</a>
244
+ </li>
245
+ <li>
246
+ <span class="modifier">Public</span>
247
+ <span class="modifier">Readonly</span>
248
+ <a href="#pinned" >pinned</a>
218
249
  </li>
219
250
  <li>
220
- <span class="modifier"></span>
221
251
  <span class="modifier">Public</span>
222
- <span class="modifier">Optional</span>
252
+ <span class="modifier">Readonly</span>
223
253
  <a href="#sidenavFooterDirective" >sidenavFooterDirective</a>
224
254
  </li>
225
255
  <li>
226
- <span class="modifier"></span>
227
256
  <span class="modifier">Public</span>
228
- <span class="modifier">Optional</span>
257
+ <span class="modifier">Readonly</span>
229
258
  <a href="#sidenavHeaderDirective" >sidenavHeaderDirective</a>
230
259
  </li>
260
+ <li>
261
+ <span class="modifier">Public</span>
262
+ <span class="modifier">Readonly</span>
263
+ <a href="#sidenavMode" >sidenavMode</a>
264
+ </li>
265
+ </ul>
266
+ </td>
267
+ </tr>
268
+
269
+ <tr>
270
+ <td class="col-md-4">
271
+ <h6><b>Methods</b></h6>
272
+ </td>
273
+ </tr>
274
+ <tr>
275
+ <td class="col-md-4">
276
+ <ul class="index-list">
277
+ <li>
278
+ <span class="modifier">Async</span>
279
+ <a href="#closeSidenav" >closeSidenav</a>
280
+ </li>
281
+ <li>
282
+ <span class="modifier">Async</span>
283
+ <a href="#openSidenav" >openSidenav</a>
284
+ </li>
285
+ <li>
286
+ <a href="#togglePinned" >togglePinned</a>
287
+ </li>
231
288
  </ul>
232
289
  </td>
233
290
  </tr>
@@ -236,92 +293,300 @@
236
293
 
237
294
 
238
295
 
296
+ </tbody>
297
+ </table>
298
+ </section>
299
+
300
+
301
+
302
+
303
+
304
+
305
+ <section data-compodoc="block-methods">
306
+
307
+ <h3 id="methods">
308
+ Methods
309
+ </h3>
310
+ <table class="table table-sm table-bordered">
311
+ <tbody>
312
+ <tr>
313
+ <td class="col-md-4">
314
+ <a name="closeSidenav"></a>
315
+ <span class="name">
316
+ <span class="modifier">Async</span>
317
+ <span ><b>closeSidenav</b></span>
318
+ <a href="#closeSidenav"><span class="icon ion-ios-link"></span></a>
319
+ </span>
320
+ </td>
321
+ </tr>
322
+ <tr>
323
+ <td class="col-md-4">
324
+ <span class="modifier-icon icon ion-ios-reset"></span>
325
+ <code>closeSidenav()</code>
326
+ </td>
327
+ </tr>
328
+
329
+
330
+ <tr>
331
+ <td class="col-md-4">
332
+ <div class="io-line">Defined in <a href="" data-line="83"
333
+ class="link-to-prism">src/lib/sidenav/sidenav.component.ts:83</a></div>
334
+ </td>
335
+ </tr>
336
+
337
+
338
+ <tr>
339
+ <td class="col-md-4">
340
+
341
+ <div class="io-description">
342
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
343
+
344
+ </div>
345
+ </td>
346
+ </tr>
347
+ </tbody>
348
+ </table>
349
+ <table class="table table-sm table-bordered">
350
+ <tbody>
351
+ <tr>
352
+ <td class="col-md-4">
353
+ <a name="openSidenav"></a>
354
+ <span class="name">
355
+ <span class="modifier">Async</span>
356
+ <span ><b>openSidenav</b></span>
357
+ <a href="#openSidenav"><span class="icon ion-ios-link"></span></a>
358
+ </span>
359
+ </td>
360
+ </tr>
361
+ <tr>
362
+ <td class="col-md-4">
363
+ <span class="modifier-icon icon ion-ios-reset"></span>
364
+ <code>openSidenav()</code>
365
+ </td>
366
+ </tr>
367
+
368
+
369
+ <tr>
370
+ <td class="col-md-4">
371
+ <div class="io-line">Defined in <a href="" data-line="78"
372
+ class="link-to-prism">src/lib/sidenav/sidenav.component.ts:78</a></div>
373
+ </td>
374
+ </tr>
375
+
376
+
377
+ <tr>
378
+ <td class="col-md-4">
379
+
380
+ <div class="io-description">
381
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
382
+
383
+ </div>
384
+ </td>
385
+ </tr>
386
+ </tbody>
387
+ </table>
388
+ <table class="table table-sm table-bordered">
389
+ <tbody>
390
+ <tr>
391
+ <td class="col-md-4">
392
+ <a name="togglePinned"></a>
393
+ <span class="name">
394
+ <span ><b>togglePinned</b></span>
395
+ <a href="#togglePinned"><span class="icon ion-ios-link"></span></a>
396
+ </span>
397
+ </td>
398
+ </tr>
399
+ <tr>
400
+ <td class="col-md-4">
401
+ <code>togglePinned()</code>
402
+ </td>
403
+ </tr>
404
+
405
+
406
+ <tr>
407
+ <td class="col-md-4">
408
+ <div class="io-line">Defined in <a href="" data-line="74"
409
+ class="link-to-prism">src/lib/sidenav/sidenav.component.ts:74</a></div>
410
+ </td>
411
+ </tr>
412
+
413
+
414
+ <tr>
415
+ <td class="col-md-4">
416
+
417
+ <div class="io-description">
418
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
239
419
 
420
+ </div>
421
+ </td>
422
+ </tr>
240
423
  </tbody>
241
424
  </table>
242
425
  </section>
426
+ <section data-compodoc="block-properties">
427
+
428
+ <h3 id="inputs">
429
+ Properties
430
+ </h3>
431
+ <table class="table table-sm table-bordered">
432
+ <tbody>
433
+ <tr>
434
+ <td class="col-md-4">
435
+ <a name="collapsable"></a>
436
+ <span class="name">
437
+ <span class="modifier">Public</span>
438
+ <span class="modifier">Readonly</span>
439
+ <span ><b>collapsable</b></span>
440
+ <a href="#collapsable"><span class="icon ion-ios-link"></span></a>
441
+ </span>
442
+ </td>
443
+ </tr>
444
+ <tr>
445
+ <td class="col-md-4">
446
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
243
447
 
244
- <section data-compodoc="block-constructor">
245
- <h3 id="constructor">Constructor</h3>
246
- <table class="table table-sm table-bordered">
247
- <tbody>
448
+ </td>
449
+ </tr>
248
450
  <tr>
249
451
  <td class="col-md-4">
250
- <code>constructor(sidenav: <a href="../injectables/SidenavComponentService.html" target="_self">SidenavComponentService</a>)</code>
452
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.collapsable())</code>
251
453
  </td>
252
454
  </tr>
253
- <tr>
254
- <td class="col-md-4">
255
- <div class="io-line">Defined in <a href="" data-line="47" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:47</a></div>
256
- </td>
257
- </tr>
455
+ <tr>
456
+ <td class="col-md-4">
457
+ <div class="io-line">Defined in <a href="" data-line="69" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:69</a></div>
458
+ </td>
459
+ </tr>
460
+
258
461
 
462
+ </tbody>
463
+ </table>
464
+ <table class="table table-sm table-bordered">
465
+ <tbody>
466
+ <tr>
467
+ <td class="col-md-4">
468
+ <a name="collapsed"></a>
469
+ <span class="name">
470
+ <span class="modifier">Public</span>
471
+ <span class="modifier">Readonly</span>
472
+ <span ><b>collapsed</b></span>
473
+ <a href="#collapsed"><span class="icon ion-ios-link"></span></a>
474
+ </span>
475
+ </td>
476
+ </tr>
259
477
  <tr>
260
478
  <td class="col-md-4">
261
- <div>
262
- <b>Parameters :</b>
263
- <table class="params">
264
- <thead>
265
- <tr>
266
- <td>Name</td>
267
- <td>Type</td>
268
- <td>Optional</td>
269
- </tr>
270
- </thead>
271
- <tbody>
272
- <tr>
273
- <td>sidenav</td>
274
-
275
- <td>
276
- <code><a href="../injectables/SidenavComponentService.html" target="_self" >SidenavComponentService</a></code>
277
- </td>
278
-
279
- <td>
280
- No
281
- </td>
282
-
283
- </tr>
284
- </tbody>
285
- </table>
286
- </div>
479
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
480
+
287
481
  </td>
288
482
  </tr>
289
- </tbody>
290
- </table>
291
- </section>
483
+ <tr>
484
+ <td class="col-md-4">
485
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.collapsed())</code>
486
+ </td>
487
+ </tr>
488
+ <tr>
489
+ <td class="col-md-4">
490
+ <div class="io-line">Defined in <a href="" data-line="68" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:68</a></div>
491
+ </td>
492
+ </tr>
292
493
 
293
494
 
495
+ </tbody>
496
+ </table>
497
+ <table class="table table-sm table-bordered">
498
+ <tbody>
499
+ <tr>
500
+ <td class="col-md-4">
501
+ <a name="fixedBottomGap"></a>
502
+ <span class="name">
503
+ <span class="modifier">Public</span>
504
+ <span class="modifier">Readonly</span>
505
+ <span ><b>fixedBottomGap</b></span>
506
+ <a href="#fixedBottomGap"><span class="icon ion-ios-link"></span></a>
507
+ </span>
508
+ </td>
509
+ </tr>
510
+ <tr>
511
+ <td class="col-md-4">
512
+ <i>Type : </i> <code>Signal&lt;number&gt;</code>
294
513
 
514
+ </td>
515
+ </tr>
516
+ <tr>
517
+ <td class="col-md-4">
518
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.fixedBottomGap())</code>
519
+ </td>
520
+ </tr>
521
+ <tr>
522
+ <td class="col-md-4">
523
+ <div class="io-line">Defined in <a href="" data-line="64" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:64</a></div>
524
+ </td>
525
+ </tr>
295
526
 
296
527
 
528
+ </tbody>
529
+ </table>
530
+ <table class="table table-sm table-bordered">
531
+ <tbody>
532
+ <tr>
533
+ <td class="col-md-4">
534
+ <a name="fixedInViewport"></a>
535
+ <span class="name">
536
+ <span class="modifier">Public</span>
537
+ <span class="modifier">Readonly</span>
538
+ <span ><b>fixedInViewport</b></span>
539
+ <a href="#fixedInViewport"><span class="icon ion-ios-link"></span></a>
540
+ </span>
541
+ </td>
542
+ </tr>
543
+ <tr>
544
+ <td class="col-md-4">
545
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
297
546
 
298
- <section data-compodoc="block-properties">
299
-
300
- <h3 id="inputs">
301
- Properties
302
- </h3>
547
+ </td>
548
+ </tr>
549
+ <tr>
550
+ <td class="col-md-4">
551
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.fixedInViewport())</code>
552
+ </td>
553
+ </tr>
554
+ <tr>
555
+ <td class="col-md-4">
556
+ <div class="io-line">Defined in <a href="" data-line="66" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:66</a></div>
557
+ </td>
558
+ </tr>
559
+
560
+
561
+ </tbody>
562
+ </table>
303
563
  <table class="table table-sm table-bordered">
304
564
  <tbody>
305
565
  <tr>
306
566
  <td class="col-md-4">
307
- <a name="sidenav"></a>
567
+ <a name="fixedTopGap"></a>
308
568
  <span class="name">
309
569
  <span class="modifier">Public</span>
310
570
  <span class="modifier">Readonly</span>
311
- <span ><b>sidenav</b></span>
312
- <a href="#sidenav"><span class="icon ion-ios-link"></span></a>
571
+ <span ><b>fixedTopGap</b></span>
572
+ <a href="#fixedTopGap"><span class="icon ion-ios-link"></span></a>
313
573
  </span>
314
574
  </td>
315
575
  </tr>
316
576
  <tr>
317
577
  <td class="col-md-4">
318
- <i>Type : </i> <code><a href="../injectables/SidenavComponentService.html" target="_self" >SidenavComponentService</a></code>
578
+ <i>Type : </i> <code>Signal&lt;number&gt;</code>
319
579
 
320
580
  </td>
581
+ </tr>
582
+ <tr>
583
+ <td class="col-md-4">
584
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.fixedTopGap())</code>
585
+ </td>
321
586
  </tr>
322
587
  <tr>
323
588
  <td class="col-md-4">
324
- <div class="io-line">Defined in <a href="" data-line="49" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:49</a></div>
589
+ <div class="io-line">Defined in <a href="" data-line="65" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:65</a></div>
325
590
  </td>
326
591
  </tr>
327
592
 
@@ -332,34 +597,89 @@
332
597
  <tbody>
333
598
  <tr>
334
599
  <td class="col-md-4">
335
- <a name="sidenavFooterDirective"></a>
600
+ <a name="opened"></a>
336
601
  <span class="name">
337
- <span class="modifier"></span>
338
602
  <span class="modifier">Public</span>
339
- <span class="modifier">Optional</span>
340
- <span ><b>sidenavFooterDirective</b></span>
341
- <a href="#sidenavFooterDirective"><span class="icon ion-ios-link"></span></a>
603
+ <span class="modifier">Readonly</span>
604
+ <span ><b>opened</b></span>
605
+ <a href="#opened"><span class="icon ion-ios-link"></span></a>
606
+ </span>
607
+ </td>
608
+ </tr>
609
+ <tr>
610
+ <td class="col-md-4">
611
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
612
+
613
+ </td>
614
+ </tr>
615
+ <tr>
616
+ <td class="col-md-4">
617
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.opened())</code>
618
+ </td>
619
+ </tr>
620
+ <tr>
621
+ <td class="col-md-4">
622
+ <div class="io-line">Defined in <a href="" data-line="70" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:70</a></div>
623
+ </td>
624
+ </tr>
625
+
626
+
627
+ </tbody>
628
+ </table>
629
+ <table class="table table-sm table-bordered">
630
+ <tbody>
631
+ <tr>
632
+ <td class="col-md-4">
633
+ <a name="pinned"></a>
634
+ <span class="name">
635
+ <span class="modifier">Public</span>
636
+ <span class="modifier">Readonly</span>
637
+ <span ><b>pinned</b></span>
638
+ <a href="#pinned"><span class="icon ion-ios-link"></span></a>
342
639
  </span>
343
640
  </td>
344
641
  </tr>
345
642
  <tr>
346
643
  <td class="col-md-4">
347
- <i>Type : </i> <code><a href="../directives/SidenavFooterDirective.html" target="_self" >SidenavFooterDirective</a></code>
644
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
348
645
 
349
646
  </td>
350
647
  </tr>
351
648
  <tr>
352
649
  <td class="col-md-4">
353
- <b>Decorators : </b>
354
- <br />
355
- <code>
356
- @ContentChild(SidenavFooterDirective)<br />
357
- </code>
650
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.pinned())</code>
651
+ </td>
652
+ </tr>
653
+ <tr>
654
+ <td class="col-md-4">
655
+ <div class="io-line">Defined in <a href="" data-line="67" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:67</a></div>
656
+ </td>
657
+ </tr>
658
+
659
+
660
+ </tbody>
661
+ </table>
662
+ <table class="table table-sm table-bordered">
663
+ <tbody>
664
+ <tr>
665
+ <td class="col-md-4">
666
+ <a name="sidenavFooterDirective"></a>
667
+ <span class="name">
668
+ <span class="modifier">Public</span>
669
+ <span class="modifier">Readonly</span>
670
+ <span ><b>sidenavFooterDirective</b></span>
671
+ <a href="#sidenavFooterDirective"><span class="icon ion-ios-link"></span></a>
672
+ </span>
673
+ </td>
674
+ </tr>
675
+ <tr>
676
+ <td class="col-md-4">
677
+ <i>Default value : </i><code>contentChild(SidenavFooterDirective)</code>
358
678
  </td>
359
679
  </tr>
360
680
  <tr>
361
681
  <td class="col-md-4">
362
- <div class="io-line">Defined in <a href="" data-line="44" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:44</a></div>
682
+ <div class="io-line">Defined in <a href="" data-line="71" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:71</a></div>
363
683
  </td>
364
684
  </tr>
365
685
 
@@ -372,9 +692,8 @@
372
692
  <td class="col-md-4">
373
693
  <a name="sidenavHeaderDirective"></a>
374
694
  <span class="name">
375
- <span class="modifier"></span>
376
695
  <span class="modifier">Public</span>
377
- <span class="modifier">Optional</span>
696
+ <span class="modifier">Readonly</span>
378
697
  <span ><b>sidenavHeaderDirective</b></span>
379
698
  <a href="#sidenavHeaderDirective"><span class="icon ion-ios-link"></span></a>
380
699
  </span>
@@ -382,22 +701,45 @@
382
701
  </tr>
383
702
  <tr>
384
703
  <td class="col-md-4">
385
- <i>Type : </i> <code><a href="../directives/SidenavHeaderDirective.html" target="_self" >SidenavHeaderDirective</a></code>
704
+ <i>Default value : </i><code>contentChild(SidenavHeaderDirective)</code>
705
+ </td>
706
+ </tr>
707
+ <tr>
708
+ <td class="col-md-4">
709
+ <div class="io-line">Defined in <a href="" data-line="72" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:72</a></div>
710
+ </td>
711
+ </tr>
712
+
713
+
714
+ </tbody>
715
+ </table>
716
+ <table class="table table-sm table-bordered">
717
+ <tbody>
718
+ <tr>
719
+ <td class="col-md-4">
720
+ <a name="sidenavMode"></a>
721
+ <span class="name">
722
+ <span class="modifier">Public</span>
723
+ <span class="modifier">Readonly</span>
724
+ <span ><b>sidenavMode</b></span>
725
+ <a href="#sidenavMode"><span class="icon ion-ios-link"></span></a>
726
+ </span>
727
+ </td>
728
+ </tr>
729
+ <tr>
730
+ <td class="col-md-4">
731
+ <i>Type : </i> <code>Signal&lt;MatDrawerMode&gt;</code>
386
732
 
387
733
  </td>
388
734
  </tr>
389
735
  <tr>
390
736
  <td class="col-md-4">
391
- <b>Decorators : </b>
392
- <br />
393
- <code>
394
- @ContentChild(SidenavHeaderDirective)<br />
395
- </code>
737
+ <i>Default value : </i><code>computed(() &#x3D;&gt; this.layoutService.mode())</code>
396
738
  </td>
397
739
  </tr>
398
740
  <tr>
399
741
  <td class="col-md-4">
400
- <div class="io-line">Defined in <a href="" data-line="47" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:47</a></div>
742
+ <div class="io-line">Defined in <a href="" data-line="63" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:63</a></div>
401
743
  </td>
402
744
  </tr>
403
745
 
@@ -411,54 +753,90 @@
411
753
 
412
754
  <div class="tab-pane fade tab-source-code" id="source">
413
755
  <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
756
+ NgClass,
757
+ NgIf,
758
+ NgStyle,
759
+ NgTemplateOutlet,
760
+ } from &#x27;@angular/common&#x27;;
761
+ import {
414
762
  ChangeDetectionStrategy,
415
763
  Component,
416
- ContentChild,
764
+ computed,
765
+ contentChild,
766
+ inject,
767
+ Signal,
768
+ viewChild,
417
769
  } from &#x27;@angular/core&#x27;;
770
+ import {
771
+ MatButton,
772
+ MatIconButton,
773
+ } from &#x27;@angular/material/button&#x27;;
774
+ import { MatDivider } from &#x27;@angular/material/divider&#x27;;
775
+ import { MatIcon } from &#x27;@angular/material/icon&#x27;;
776
+ import {
777
+ MatDrawerMode,
778
+ MatSidenav,
779
+ MatSidenavContainer,
780
+ MatSidenavContent,
781
+ } from &#x27;@angular/material/sidenav&#x27;;
782
+ import { RouterOutlet } from &#x27;@angular/router&#x27;;
783
+ import { LayoutService } from &#x27;../layout.service&#x27;;
784
+ import { NavigationComponent } from &#x27;../navigation/navigation.component&#x27;;
418
785
  import { SidenavFooterDirective } from &#x27;./sidenav-footer.directive&#x27;;
419
786
  import { SidenavHeaderDirective } from &#x27;./sidenav-header.directive&#x27;;
420
- import { SidenavComponentService } from &#x27;./sidenav.component.service&#x27;;
421
- import { MatIconModule } from &#x27;@angular/material/icon&#x27;;
422
- import { MatButtonModule } from &#x27;@angular/material/button&#x27;;
423
- import { NavigationComponent } from &#x27;../navigation/navigation.component&#x27;;
424
- import { MatDividerModule } from &#x27;@angular/material/divider&#x27;;
425
- import {
426
- AsyncPipe,
427
- NgClass,
428
- NgIf,
429
- NgTemplateOutlet,
430
- } from &#x27;@angular/common&#x27;;
431
787
 
432
788
  @Component({
433
789
  selector: &#x27;rxap-sidenav&#x27;,
434
790
  templateUrl: &#x27;./sidenav.component.html&#x27;,
435
791
  styleUrls: [ &#x27;./sidenav.component.scss&#x27; ],
436
792
  changeDetection: ChangeDetectionStrategy.OnPush,
437
- // eslint-disable-next-line @angular-eslint/no-host-metadata-property
438
- host: {
439
- class: &#x27;rxap-layout-sidenav&#x27;,
440
- },
441
793
  standalone: true,
442
794
  imports: [
443
- NgClass,
795
+ MatIcon,
796
+ MatIconButton,
797
+ MatSidenav,
798
+ MatSidenavContainer,
799
+ MatSidenavContent,
800
+ NavigationComponent,
444
801
  NgIf,
802
+ RouterOutlet,
803
+ NgClass,
804
+ NgStyle,
805
+ MatDivider,
445
806
  NgTemplateOutlet,
446
- MatDividerModule,
447
- NavigationComponent,
448
- MatButtonModule,
449
- MatIconModule,
450
- AsyncPipe,
807
+ MatButton,
451
808
  ],
452
809
  })
453
810
  export class SidenavComponent {
454
811
 
455
- @ContentChild(SidenavFooterDirective)
456
- public sidenavFooterDirective?: SidenavFooterDirective;
812
+ private readonly layoutService &#x3D; inject(LayoutService);
813
+
814
+
815
+ private readonly sidenav &#x3D; viewChild(MatSidenav);
457
816
 
458
- @ContentChild(SidenavHeaderDirective)
459
- public sidenavHeaderDirective?: SidenavHeaderDirective;
817
+ public readonly sidenavMode: Signal&lt;MatDrawerMode&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.mode());
818
+ public readonly fixedBottomGap: Signal&lt;number&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.fixedBottomGap());
819
+ public readonly fixedTopGap: Signal&lt;number&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.fixedTopGap());
820
+ public readonly fixedInViewport: Signal&lt;boolean&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.fixedInViewport());
821
+ public readonly pinned: Signal&lt;boolean&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.pinned());
822
+ public readonly collapsed: Signal&lt;boolean&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.collapsed());
823
+ public readonly collapsable: Signal&lt;boolean&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.collapsable());
824
+ public readonly opened: Signal&lt;boolean&gt; &#x3D; computed(() &#x3D;&gt; this.layoutService.opened());
825
+ public readonly sidenavFooterDirective &#x3D; contentChild(SidenavFooterDirective);
826
+ public readonly sidenavHeaderDirective &#x3D; contentChild(SidenavHeaderDirective);
460
827
 
461
- constructor(public readonly sidenav: SidenavComponentService) {
828
+ togglePinned() {
829
+ this.layoutService.togglePinned();
830
+ }
831
+
832
+ async openSidenav() {
833
+ await this.sidenav()?.open();
834
+ this.layoutService.openSidenav();
835
+ }
836
+
837
+ async closeSidenav() {
838
+ await this.sidenav()?.close();
839
+ this.layoutService.closeSidenav();
462
840
  }
463
841
 
464
842
  }
@@ -466,34 +844,59 @@ export class SidenavComponent {
466
844
  </div>
467
845
 
468
846
  <div class="tab-pane fade " id="templateData">
469
- <pre class="line-numbers"><code class="language-html">&lt;div [ngClass]&#x3D;&quot;{ &#x27;collapsed&#x27;: sidenav.collapsed$ | async }&quot; class&#x3D;&quot;rxap-container&quot;&gt;
470
- &lt;div class&#x3D;&quot;inner flex flex-col justify-between items-stretch&quot;&gt;
471
- &lt;ng-template [ngIf]&#x3D;&quot;sidenavHeaderDirective?.template&quot;&gt;
472
- &lt;div [ngClass]&#x3D;&quot;{ hidden: sidenav.collapsed$ | async }&quot; class&#x3D;&quot;header grow-0&quot;&gt;
473
- &lt;ng-container *ngTemplateOutlet&#x3D;&quot;sidenavHeaderDirective?.template ?? null&quot;&gt;&lt;/ng-container&gt;
847
+ <pre class="line-numbers"><code class="language-html">&lt;mat-sidenav-container [ngStyle]&#x3D;&quot;{
848
+ &#x27;padding-top.px&#x27;: fixedTopGap(),
849
+ &#x27;padding-bottom.px&#x27;: fixedBottomGap(),
850
+ }&quot; class&#x3D;&quot;h-full&quot;&gt;
851
+ &lt;mat-sidenav
852
+ [fixedBottomGap]&#x3D;&quot;fixedBottomGap()&quot;
853
+ [fixedInViewport]&#x3D;&quot;fixedInViewport()&quot;
854
+ [fixedTopGap]&#x3D;&quot;fixedTopGap()&quot;
855
+ [mode]&#x3D;&quot;sidenavMode()&quot;
856
+ [ngClass]&#x3D;&quot;{ collapsable: collapsable() }&quot;
857
+ [opened]&#x3D;&quot;opened()&quot;
858
+ &gt;
859
+ &lt;div (mouseleave)&#x3D;&quot;collapsable() &amp;&amp; !pinned() &amp;&amp; closeSidenav()&quot;
860
+ class&#x3D;&quot;h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch&quot;&gt;
861
+
862
+ &lt;div (click)&#x3D;&quot;togglePinned()&quot; *ngIf&#x3D;&quot;collapsable()&quot;
863
+ class&#x3D;&quot;pl-2 self-stretch grow-0 flex flex-row justify-between items-center&quot;&gt;
864
+ &lt;span class&#x3D;&quot;text-lg&quot; i18n&gt;Navigation&lt;/span&gt;
865
+ &lt;div class&#x3D;&quot;flex flex-row items-center justify-center&quot; style&#x3D;&quot;width: 64px&quot;&gt;
866
+ &lt;button mat-icon-button&gt;
867
+ &lt;mat-icon *ngIf&#x3D;&quot;!pinned()&quot;&gt;radio_button_unchecked&lt;/mat-icon&gt;
868
+ &lt;mat-icon *ngIf&#x3D;&quot;pinned()&quot;&gt;radio_button_checked&lt;/mat-icon&gt;
869
+ &lt;/button&gt;
870
+ &lt;/div&gt;
474
871
  &lt;/div&gt;
475
- &lt;mat-divider [ngClass]&#x3D;&quot;{ hidden: sidenav.collapsed$ | async }&quot; class&#x3D;&quot;grow-0&quot;&gt;&lt;/mat-divider&gt;
476
- &lt;/ng-template&gt;
477
- &lt;div class&#x3D;&quot;nav-container grow&quot;&gt;
478
- &lt;ul class&#x3D;&quot;flex flex-col&quot; root rxap-navigation&gt;&lt;/ul&gt;
872
+
873
+ @if (sidenavHeaderDirective()?.template; as template) {
874
+ &lt;div [ngClass]&#x3D;&quot;{ hidden: collapsed() }&quot; class&#x3D;&quot;header grow-0&quot;&gt;
875
+ &lt;ng-container *ngTemplateOutlet&#x3D;&quot;template&quot;&gt;&lt;/ng-container&gt;
876
+ &lt;/div&gt;
877
+ &lt;mat-divider [ngClass]&#x3D;&quot;{ hidden: collapsed() }&quot; class&#x3D;&quot;grow-0&quot;&gt;&lt;/mat-divider&gt;
878
+ }
879
+
880
+ &lt;ul
881
+ (mouseenter)&#x3D;&quot;collapsable() &amp;&amp; !pinned() &amp;&amp; openSidenav()&quot;
882
+ class&#x3D;&quot;grow self-stretch&quot;
883
+ [root]&#x3D;&quot;true&quot;
884
+ rxap-navigation
885
+ &gt;
886
+ &lt;/ul&gt;
887
+
888
+ @if (sidenavFooterDirective()?.template; as template) {
889
+ &lt;mat-divider [ngClass]&#x3D;&quot;{ hidden: collapsed() }&quot; class&#x3D;&quot;grow-0&quot;&gt;&lt;/mat-divider&gt;
890
+ &lt;div [ngClass]&#x3D;&quot;{ hidden: collapsed() }&quot; class&#x3D;&quot;footer grow-0&quot;&gt;
891
+ &lt;ng-container *ngTemplateOutlet&#x3D;&quot;template&quot;&gt;&lt;/ng-container&gt;
892
+ &lt;/div&gt;
893
+ }
479
894
  &lt;/div&gt;
480
- &lt;mat-divider class&#x3D;&quot;grow-0&quot;&gt;&lt;/mat-divider&gt;
481
- &lt;button (click)&#x3D;&quot;sidenav.toggleNavigationCollapse()&quot; [ngClass]&#x3D;&quot;{ &#x27;collapsed&#x27;: sidenav.collapsed$ | async }&quot;
482
- class&#x3D;&quot;sidebar-toggle grow-0&quot;
483
- mat-button&gt;
484
- &lt;span class&#x3D;&quot;sidebar-toggle-inner flex flex-row items-center gap-4&quot;&gt;
485
- &lt;mat-icon class&#x3D;&quot;arrow grow-0&quot;&gt;double_arrow&lt;/mat-icon&gt;
486
- &lt;span [ngClass]&#x3D;&quot;{ hidden: sidenav.collapsed$ | async }&quot; class&#x3D;&quot;label grow-0&quot; i18n&gt;Collapse sidebar&lt;/span&gt;
487
- &lt;/span&gt;
488
- &lt;/button&gt;
489
- &lt;ng-template [ngIf]&#x3D;&quot;sidenavFooterDirective?.template ?? null&quot;&gt;
490
- &lt;mat-divider [ngClass]&#x3D;&quot;{ hidden: sidenav.collapsed$ | async }&quot; class&#x3D;&quot;grow-0&quot;&gt;&lt;/mat-divider&gt;
491
- &lt;div [ngClass]&#x3D;&quot;{ hidden: sidenav.collapsed$ | async }&quot; class&#x3D;&quot;footer grow-0&quot;&gt;
492
- &lt;ng-container *ngTemplateOutlet&#x3D;&quot;sidenavFooterDirective?.template ?? null&quot;&gt;&lt;/ng-container&gt;
493
- &lt;/div&gt;
494
- &lt;/ng-template&gt;
495
- &lt;/div&gt;
496
- &lt;/div&gt;
895
+ &lt;/mat-sidenav&gt;
896
+ &lt;mat-sidenav-content [ngClass]&#x3D;&quot;{ &#x27;ml-16&#x27;: collapsable() }&quot; class&#x3D;&quot;p-4&quot;&gt;
897
+ &lt;ng-content&gt;&lt;/ng-content&gt;
898
+ &lt;/mat-sidenav-content&gt;
899
+ &lt;/mat-sidenav-container&gt;
497
900
  </code></pre>
498
901
  </div>
499
902
 
@@ -501,7 +904,28 @@ export class SidenavComponent {
501
904
  <p class="comment">
502
905
  <code>./sidenav.component.scss</code>
503
906
  </p>
504
- <pre class="line-numbers"><code class="language-scss">.rxap-container {
907
+ <pre class="line-numbers"><code class="language-scss">:host {
908
+ .collapsable {
909
+
910
+ &amp;:not(.mat-drawer-opened) {
911
+ transform: translateX(calc(-100% + 64px)) !important;
912
+ visibility: visible !important;
913
+ box-shadow: inherit !important;
914
+ transition-property: transform;
915
+ transition-delay: 250ms;
916
+ display: flex;
917
+ border-right: solid 1px rgba(0, 0, 0, .12);
918
+ }
919
+
920
+ ::ng-deep .mat-drawer-inner-container::-webkit-scrollbar {
921
+ display: none; /* Chrome, Safari, Opera*/
922
+ }
923
+
924
+ }
925
+ }
926
+
927
+
928
+ .rxap-container {
505
929
  height: 100%;
506
930
 
507
931
  .inner {
@@ -592,9 +1016,9 @@ export class SidenavComponent {
592
1016
  <script src="../js/libs/htmlparser.js"></script>
593
1017
  <script src="../js/libs/deep-iterator.js"></script>
594
1018
  <script>
595
- var COMPONENT_TEMPLATE = '<div><div [ngClass]="{ \'collapsed\': sidenav.collapsed$ | async }" class="rxap-container"> <div class="inner flex flex-col justify-between items-stretch"> <ng-template [ngIf]="sidenavHeaderDirective?.template"> <div [ngClass]="{ hidden: sidenav.collapsed$ | async }" class="header grow-0"> <ng-container *ngTemplateOutlet="sidenavHeaderDirective?.template ?? null"></ng-container> </div> <mat-divider [ngClass]="{ hidden: sidenav.collapsed$ | async }" class="grow-0"></mat-divider> </ng-template> <div class="nav-container grow"> <ul class="flex flex-col" root rxap-navigation></ul> </div> <mat-divider class="grow-0"></mat-divider> <button (click)="sidenav.toggleNavigationCollapse()" [ngClass]="{ \'collapsed\': sidenav.collapsed$ | async }" class="sidebar-toggle grow-0" mat-button> <span class="sidebar-toggle-inner flex flex-row items-center gap-4"> <mat-icon class="arrow grow-0">double_arrow</mat-icon> <span [ngClass]="{ hidden: sidenav.collapsed$ | async }" class="label grow-0" i18n>Collapse sidebar</span> </span> </button> <ng-template [ngIf]="sidenavFooterDirective?.template ?? null"> <mat-divider [ngClass]="{ hidden: sidenav.collapsed$ | async }" class="grow-0"></mat-divider> <div [ngClass]="{ hidden: sidenav.collapsed$ | async }" class="footer grow-0"> <ng-container *ngTemplateOutlet="sidenavFooterDirective?.template ?? null"></ng-container> </div> </ng-template> </div></div></div>'
596
- var COMPONENTS = [{'name': 'AppsButtonComponent', 'selector': 'rxap-apps-button'},{'name': 'FooterComponent', 'selector': 'rxap-footer'},{'name': 'HeaderComponent', 'selector': 'rxap-header'},{'name': 'LanguageSelectorComponent', 'selector': 'rxap-language-selector'},{'name': 'LayoutComponent', 'selector': 'rxap-layout'},{'name': 'NavigationComponent', 'selector': 'ul[rxap-navigation]'},{'name': 'NavigationItemComponent', 'selector': 'li[rxap-navigation-item]'},{'name': 'NavigationProgressBarComponent', 'selector': 'rxap-navigation-progress-bar'},{'name': 'ResetButtonComponent', 'selector': 'rxap-reset-button'},{'name': 'SettingsButtonComponent', 'selector': 'rxap-settings-button'},{'name': 'SidenavComponent', 'selector': 'rxap-sidenav'},{'name': 'SidenavToggleButtonComponent', 'selector': 'rxap-sidenav-toggle-button'},{'name': 'SignOutComponent', 'selector': 'rxap-sign-out'},{'name': 'ToggleWindowSidenavButtonComponent', 'selector': 'rxap-toggle-window-sidenav-button'},{'name': 'UserProfileIconComponent', 'selector': 'rxap-user-profile-icon'},{'name': 'VersionComponent', 'selector': 'rxap-version'},{'name': 'WindowContainerSidenavComponent', 'selector': 'rxap-window-container-sidenav'}];
597
- var DIRECTIVES = [{'name': 'FooterDirective', 'selector': '[rxapFooter]'},{'name': 'SidenavFooterDirective', 'selector': '[rxapSidenavFooter]'},{'name': 'SidenavHeaderDirective', 'selector': '[rxapSidenavHeader]'}];
1019
+ var COMPONENT_TEMPLATE = '<div><mat-sidenav-container [ngStyle]="{ \'padding-top.px\': fixedTopGap(), \'padding-bottom.px\': fixedBottomGap(), }" class="h-full"> <mat-sidenav [fixedBottomGap]="fixedBottomGap()" [fixedInViewport]="fixedInViewport()" [fixedTopGap]="fixedTopGap()" [mode]="sidenavMode()" [ngClass]="{ collapsable: collapsable() }" [opened]="opened()" > <div (mouseleave)="collapsable() && !pinned() && closeSidenav()" class="h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch"> <div (click)="togglePinned()" *ngIf="collapsable()" class="pl-2 self-stretch grow-0 flex flex-row justify-between items-center"> <span class="text-lg" i18n>Navigation</span> <div class="flex flex-row items-center justify-center" style="width: 64px"> <button mat-icon-button> <mat-icon *ngIf="!pinned()">radio_button_unchecked</mat-icon> <mat-icon *ngIf="pinned()">radio_button_checked</mat-icon> </button> </div> </div> @if (sidenavHeaderDirective()?.template; as template) { <div [ngClass]="{ hidden: collapsed() }" class="header grow-0"> <ng-container *ngTemplateOutlet="template"></ng-container> </div> <mat-divider [ngClass]="{ hidden: collapsed() }" class="grow-0"></mat-divider> } <ul (mouseenter)="collapsable() && !pinned() && openSidenav()" class="grow self-stretch" [root]="true" rxap-navigation > </ul> @if (sidenavFooterDirective()?.template; as template) { <mat-divider [ngClass]="{ hidden: collapsed() }" class="grow-0"></mat-divider> <div [ngClass]="{ hidden: collapsed() }" class="footer grow-0"> <ng-container *ngTemplateOutlet="template"></ng-container> </div> } </div> </mat-sidenav> <mat-sidenav-content [ngClass]="{ \'ml-16\': collapsable() }" class="p-4"> <ng-content></ng-content> </mat-sidenav-content></mat-sidenav-container></div>'
1020
+ var COMPONENTS = [{'name': 'AppsButtonComponent', 'selector': 'rxap-apps-button'},{'name': 'BaseLayoutComponent', 'selector': 'rxap-base-layout'},{'name': 'DefaultHeaderComponent', 'selector': 'rxap-default-header'},{'name': 'FooterComponent', 'selector': 'rxap-footer'},{'name': 'HeaderComponent', 'selector': 'rxap-header'},{'name': 'LayoutComponent', 'selector': 'rxap-layout'},{'name': 'MinimalLayoutComponent', 'selector': 'rxap-minimal-layout'},{'name': 'NavigationComponent', 'selector': 'ul[rxap-navigation]'},{'name': 'NavigationItemComponent', 'selector': 'li[rxap-navigation-item]'},{'name': 'NavigationProgressBarComponent', 'selector': 'rxap-navigation-progress-bar'},{'name': 'ReleaseInfoComponent', 'selector': 'rxap-release-info'},{'name': 'SettingsButtonComponent', 'selector': 'rxap-settings-button'},{'name': 'SidenavComponent', 'selector': 'rxap-sidenav'},{'name': 'SidenavToggleButtonComponent', 'selector': 'rxap-sidenav-toggle-button'},{'name': 'UserProfileIconComponent', 'selector': 'rxap-user-profile-icon'}];
1021
+ var DIRECTIVES = [{'name': 'FooterDirective', 'selector': '[rxapFooter]'},{'name': 'HeaderDirective', 'selector': '[rxapHeader]'},{'name': 'SidenavFooterDirective', 'selector': '[rxapSidenavFooter]'},{'name': 'SidenavHeaderDirective', 'selector': '[rxapSidenavHeader]'}];
598
1022
  var ACTUAL_COMPONENT = {'name': 'SidenavComponent'};
599
1023
  </script>
600
1024
  <script src="../js/tree.js"></script>