@rxap/layout 19.0.0-dev.1 → 19.0.0-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.
Files changed (112) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/compodoc/changelog.html +91 -0
  4. package/compodoc/components/AppsButtonComponent.html +18 -23
  5. package/compodoc/components/BaseLayoutComponent.html +8 -13
  6. package/compodoc/components/DefaultHeaderComponent.html +76 -35
  7. package/compodoc/components/FooterComponent.html +7 -12
  8. package/compodoc/components/HeaderComponent.html +13 -18
  9. package/compodoc/components/LayoutComponent.html +29 -72
  10. package/compodoc/components/MinimalLayoutComponent.html +5 -10
  11. package/compodoc/components/NavigationComponent.html +31 -36
  12. package/compodoc/components/NavigationItemComponent.html +52 -51
  13. package/compodoc/components/NavigationProgressBarComponent.html +9 -14
  14. package/compodoc/components/ReleaseInfoComponent.html +11 -16
  15. package/compodoc/components/SettingsButtonComponent.html +64 -53
  16. package/compodoc/components/SidenavComponent.html +35 -40
  17. package/compodoc/components/SidenavToggleButtonComponent.html +11 -16
  18. package/compodoc/components/UserProfileIconComponent.html +18 -20
  19. package/compodoc/dependencies.html +23 -17
  20. package/compodoc/index.html +1 -1
  21. package/compodoc/injectables/DefaultHeaderService.html +585 -0
  22. package/compodoc/interfaces/NavigationDividerItem.html +1 -1
  23. package/compodoc/interfaces/NavigationInsertItem.html +1 -1
  24. package/compodoc/interfaces/NavigationItem.html +3 -3
  25. package/compodoc/interfaces/NavigationStatus.html +1 -1
  26. package/compodoc/interfaces/ReleaseInfoModule.html +2 -0
  27. package/compodoc/interfaces/SettingsMenuItem.html +2 -0
  28. package/compodoc/js/menu-wc.js +3 -0
  29. package/compodoc/js/menu-wc_es5.js +2 -2
  30. package/compodoc/js/search/search_index.js +2 -2
  31. package/compodoc/miscellaneous/functions.html +387 -6
  32. package/compodoc/miscellaneous/typealiases.html +19 -0
  33. package/compodoc/miscellaneous/variables.html +50 -1
  34. package/compodoc/overview.html +1 -1
  35. package/compodoc/properties.html +1 -1
  36. package/docs/assets/navigation.js +1 -1
  37. package/docs/assets/search.js +1 -1
  38. package/docs/classes/AppsButtonComponent.html +3 -3
  39. package/docs/classes/BaseLayoutComponent.html +1 -1
  40. package/docs/classes/DefaultHeaderComponent.html +5 -2
  41. package/docs/classes/DefaultHeaderService.html +16 -0
  42. package/docs/classes/ExternalAppsService.html +2 -2
  43. package/docs/classes/FooterComponent.html +2 -2
  44. package/docs/classes/FooterDirective.html +2 -2
  45. package/docs/classes/FooterService.html +6 -6
  46. package/docs/classes/HeaderComponent.html +2 -2
  47. package/docs/classes/HeaderDirective.html +2 -2
  48. package/docs/classes/HeaderService.html +6 -6
  49. package/docs/classes/LayoutComponent.html +2 -2
  50. package/docs/classes/LayoutService.html +2 -2
  51. package/docs/classes/LogoService.html +2 -2
  52. package/docs/classes/MinimalLayoutComponent.html +1 -1
  53. package/docs/classes/NavigationComponent.html +2 -2
  54. package/docs/classes/NavigationItemComponent.html +2 -2
  55. package/docs/classes/NavigationProgressBarComponent.html +2 -2
  56. package/docs/classes/NavigationService.html +3 -3
  57. package/docs/classes/ReleaseInfoComponent.html +2 -2
  58. package/docs/classes/SettingsButtonComponent.html +2 -2
  59. package/docs/classes/SidenavComponent.html +2 -2
  60. package/docs/classes/SidenavFooterDirective.html +2 -2
  61. package/docs/classes/SidenavHeaderDirective.html +2 -2
  62. package/docs/classes/SidenavToggleButtonComponent.html +2 -2
  63. package/docs/classes/UserProfileIconComponent.html +2 -2
  64. package/docs/documentation.json +2279 -1170
  65. package/docs/functions/IsNavigationDividerItem.html +1 -1
  66. package/docs/functions/IsNavigationInsertItem.html +1 -1
  67. package/docs/functions/IsNavigationItem.html +1 -1
  68. package/docs/functions/provideExternalApps.html +1 -1
  69. package/docs/functions/provideLayout.html +1 -1
  70. package/docs/functions/withDefaultHeaderComponent.html +1 -1
  71. package/docs/functions/withDefaultHeaderItems.html +1 -0
  72. package/docs/functions/withFooterComponents.html +1 -1
  73. package/docs/functions/withHeaderComponents.html +1 -1
  74. package/docs/functions/withNavigationConfig.html +1 -1
  75. package/docs/functions/withNavigationInserts.html +1 -1
  76. package/docs/functions/withReleaseInfoModules.html +1 -1
  77. package/docs/functions/withSettingsMenuItems.html +1 -1
  78. package/docs/functions/withUserProfileDataSource.html +1 -1
  79. package/docs/index.html +1 -1
  80. package/docs/interfaces/NavigationDividerItem.html +2 -2
  81. package/docs/interfaces/NavigationInsertItem.html +2 -2
  82. package/docs/interfaces/NavigationItem.html +2 -2
  83. package/docs/interfaces/NavigationStatus.html +2 -2
  84. package/docs/interfaces/ReleaseInfoModule.html +2 -2
  85. package/docs/interfaces/SettingsMenuItem.html +2 -2
  86. package/docs/modules.html +5 -1
  87. package/docs/types/DefaultHeaderItemComponent.html +1 -0
  88. package/docs/types/ExternalApp.html +1 -1
  89. package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
  90. package/docs/types/Navigation.html +1 -1
  91. package/docs/types/NavigationWithInserts.html +1 -1
  92. package/docs/types/SettingsMenuItemComponent.html +1 -1
  93. package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
  94. package/docs/variables/RXAP_DEFAULT_HEADER_ITEM_COMPONENT.html +1 -0
  95. package/docs/variables/RXAP_EXTERNAL_APP.html +1 -1
  96. package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -1
  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 -1
  104. package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -1
  105. package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -1
  106. package/docs/variables/RXAP_USER_PROFILE_DATA_SOURCE.html +1 -1
  107. package/package.json +35 -36
  108. package/src/migrations/18.0.0/add-seperate-external-apps-provider/__snapshots__/add-seperate-external-apps-provider.spec.ts.snap +22 -0
  109. package/src/migrations/18.0.0/add-theme-provider-to-app-config/__snapshots__/add-theme-provider-to-app-config.spec.ts.snap +18 -0
  110. package/src/migrations/18.0.0/add-user-theme-provider-to-layout-providers/__snapshots__/add-user-theme-provider-to-layout-providers.spec.ts.snap +51 -0
  111. package/src/migrations/18.0.0/add-with-user-profile-provider/__snapshots__/add-with-user-profile-provider.spec.ts.snap +53 -0
  112. package/theme.css +425 -1
@@ -149,10 +149,6 @@
149
149
  <td class="col-md-9"><code>rxap-settings-button</code></td>
150
150
  </tr>
151
151
 
152
- <tr>
153
- <td class="col-md-3">standalone</td>
154
- <td class="col-md-9"><code>true</code></td>
155
- </tr>
156
152
 
157
153
  <tr>
158
154
  <td class="col-md-3">imports</td>
@@ -164,6 +160,7 @@
164
160
  <code>MatMenuItem</code>
165
161
  <code>CdkPortalOutlet</code>
166
162
  <code>IconDirective</code>
163
+ <code>NgIf</code>
167
164
  </td>
168
165
  </tr>
169
166
 
@@ -311,8 +308,8 @@
311
308
 
312
309
  <tr>
313
310
  <td class="col-md-4">
314
- <div class="io-line">Defined in <a href="" data-line="109"
315
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:109</a></div>
311
+ <div class="io-line">Defined in <a href="" data-line="117"
312
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:117</a></div>
316
313
  </td>
317
314
  </tr>
318
315
 
@@ -378,8 +375,8 @@
378
375
 
379
376
  <tr>
380
377
  <td class="col-md-4">
381
- <div class="io-line">Defined in <a href="" data-line="73"
382
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:73</a></div>
378
+ <div class="io-line">Defined in <a href="" data-line="81"
379
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:81</a></div>
383
380
  </td>
384
381
  </tr>
385
382
 
@@ -445,8 +442,8 @@
445
442
 
446
443
  <tr>
447
444
  <td class="col-md-4">
448
- <div class="io-line">Defined in <a href="" data-line="97"
449
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:97</a></div>
445
+ <div class="io-line">Defined in <a href="" data-line="105"
446
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:105</a></div>
450
447
  </td>
451
448
  </tr>
452
449
 
@@ -512,8 +509,8 @@
512
509
 
513
510
  <tr>
514
511
  <td class="col-md-4">
515
- <div class="io-line">Defined in <a href="" data-line="85"
516
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:85</a></div>
512
+ <div class="io-line">Defined in <a href="" data-line="93"
513
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:93</a></div>
517
514
  </td>
518
515
  </tr>
519
516
 
@@ -579,8 +576,8 @@
579
576
 
580
577
  <tr>
581
578
  <td class="col-md-4">
582
- <div class="io-line">Defined in <a href="" data-line="77"
583
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:77</a></div>
579
+ <div class="io-line">Defined in <a href="" data-line="85"
580
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:85</a></div>
584
581
  </td>
585
582
  </tr>
586
583
 
@@ -616,8 +613,8 @@
616
613
 
617
614
  <tr>
618
615
  <td class="col-md-4">
619
- <div class="io-line">Defined in <a href="" data-line="101"
620
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:101</a></div>
616
+ <div class="io-line">Defined in <a href="" data-line="109"
617
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:109</a></div>
621
618
  </td>
622
619
  </tr>
623
620
 
@@ -653,8 +650,8 @@
653
650
 
654
651
  <tr>
655
652
  <td class="col-md-4">
656
- <div class="io-line">Defined in <a href="" data-line="89"
657
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:89</a></div>
653
+ <div class="io-line">Defined in <a href="" data-line="97"
654
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:97</a></div>
658
655
  </td>
659
656
  </tr>
660
657
 
@@ -690,8 +687,8 @@
690
687
 
691
688
  <tr>
692
689
  <td class="col-md-4">
693
- <div class="io-line">Defined in <a href="" data-line="81"
694
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:81</a></div>
690
+ <div class="io-line">Defined in <a href="" data-line="89"
691
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:89</a></div>
695
692
  </td>
696
693
  </tr>
697
694
 
@@ -757,8 +754,8 @@
757
754
 
758
755
  <tr>
759
756
  <td class="col-md-4">
760
- <div class="io-line">Defined in <a href="" data-line="105"
761
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:105</a></div>
757
+ <div class="io-line">Defined in <a href="" data-line="113"
758
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:113</a></div>
762
759
  </td>
763
760
  </tr>
764
761
 
@@ -824,8 +821,8 @@
824
821
 
825
822
  <tr>
826
823
  <td class="col-md-4">
827
- <div class="io-line">Defined in <a href="" data-line="93"
828
- class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:93</a></div>
824
+ <div class="io-line">Defined in <a href="" data-line="101"
825
+ class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:101</a></div>
829
826
  </td>
830
827
  </tr>
831
828
 
@@ -897,7 +894,7 @@
897
894
  </tr>
898
895
  <tr>
899
896
  <td class="col-md-4">
900
- <div class="io-line">Defined in <a href="" data-line="70" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:70</a></div>
897
+ <div class="io-line">Defined in <a href="" data-line="78" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:78</a></div>
901
898
  </td>
902
899
  </tr>
903
900
 
@@ -924,7 +921,7 @@
924
921
  </tr>
925
922
  <tr>
926
923
  <td class="col-md-4">
927
- <div class="io-line">Defined in <a href="" data-line="67" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:67</a></div>
924
+ <div class="io-line">Defined in <a href="" data-line="75" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:75</a></div>
928
925
  </td>
929
926
  </tr>
930
927
 
@@ -944,15 +941,21 @@
944
941
  </tr>
945
942
  <tr>
946
943
  <td class="col-md-4">
947
- <i>Default value : </i><code>signal(
944
+ <i>Type : </i> <code>Signal&lt;ComponentPortal[]&gt;</code>
945
+
946
+ </td>
947
+ </tr>
948
+ <tr>
949
+ <td class="col-md-4">
950
+ <i>Default value : </i><code>toSignal(from(Promise.all(
948
951
  coerceArray(inject(RXAP_SETTINGS_MENU_ITEM_COMPONENT, { optional: true }))
949
- .map(item &#x3D;&gt; new ComponentPortal(item, null, this.injector)),
950
- )</code>
952
+ .map(item &#x3D;&gt; IsFunction(item) ? item() : item),
953
+ )).pipe(map(items &#x3D;&gt; items.map(item &#x3D;&gt; new ComponentPortal(item, null, this.injector)))), { initialValue: [] })</code>
951
954
  </td>
952
955
  </tr>
953
956
  <tr>
954
957
  <td class="col-md-4">
955
- <div class="io-line">Defined in <a href="" data-line="54" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:54</a></div>
958
+ <div class="io-line">Defined in <a href="" data-line="62" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:62</a></div>
956
959
  </td>
957
960
  </tr>
958
961
 
@@ -977,7 +980,7 @@
977
980
  </tr>
978
981
  <tr>
979
982
  <td class="col-md-4">
980
- <div class="io-line">Defined in <a href="" data-line="59" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:59</a></div>
983
+ <div class="io-line">Defined in <a href="" data-line="67" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:67</a></div>
981
984
  </td>
982
985
  </tr>
983
986
 
@@ -1003,7 +1006,7 @@
1003
1006
  </tr>
1004
1007
  <tr>
1005
1008
  <td class="col-md-4">
1006
- <div class="io-line">Defined in <a href="" data-line="49" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:49</a></div>
1009
+ <div class="io-line">Defined in <a href="" data-line="57" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:57</a></div>
1007
1010
  </td>
1008
1011
  </tr>
1009
1012
 
@@ -1030,7 +1033,7 @@
1030
1033
  </tr>
1031
1034
  <tr>
1032
1035
  <td class="col-md-4">
1033
- <div class="io-line">Defined in <a href="" data-line="51" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:51</a></div>
1036
+ <div class="io-line">Defined in <a href="" data-line="59" class="link-to-prism">src/lib/default-header/settings-button/settings-button.component.ts:59</a></div>
1034
1037
  </td>
1035
1038
  </tr>
1036
1039
 
@@ -1047,14 +1050,17 @@
1047
1050
  CdkPortalOutlet,
1048
1051
  ComponentPortal,
1049
1052
  } from &#x27;@angular/cdk/portal&#x27;;
1053
+ import { NgIf } from &#x27;@angular/common&#x27;;
1050
1054
  import {
1051
1055
  Component,
1052
1056
  inject,
1053
1057
  Injector,
1054
1058
  isDevMode,
1055
1059
  runInInjectionContext,
1060
+ Signal,
1056
1061
  signal,
1057
1062
  } from &#x27;@angular/core&#x27;;
1063
+ import { toSignal } from &#x27;@angular/core/rxjs-interop&#x27;;
1058
1064
  import { MatIconButton } from &#x27;@angular/material/button&#x27;;
1059
1065
  import { MatIcon } from &#x27;@angular/material/icon&#x27;;
1060
1066
  import {
@@ -1064,10 +1070,15 @@ import {
1064
1070
  } from &#x27;@angular/material/menu&#x27;;
1065
1071
  import { IconDirective } from &#x27;@rxap/material-directives/icon&#x27;;
1066
1072
  import {
1067
- ThemeDensity,
1068
1073
  ThemeService,
1069
1074
  } from &#x27;@rxap/ngx-theme&#x27;;
1070
- import { coerceArray } from &#x27;@rxap/utilities&#x27;;
1075
+ import {
1076
+ coerceArray,
1077
+ IsFunction,
1078
+ ThemeDensity,
1079
+ } from &#x27;@rxap/utilities&#x27;;
1080
+ import { from } from &#x27;rxjs&#x27;;
1081
+ import { map } from &#x27;rxjs/operators&#x27;;
1071
1082
  import {
1072
1083
  RXAP_SETTINGS_MENU_ITEM,
1073
1084
  RXAP_SETTINGS_MENU_ITEM_COMPONENT,
@@ -1075,19 +1086,19 @@ import {
1075
1086
  import { SettingsMenuItem } from &#x27;../../types&#x27;;
1076
1087
 
1077
1088
  @Component({
1078
- selector: &#x27;rxap-settings-button&#x27;,
1079
- standalone: true,
1080
- templateUrl: &#x27;./settings-button.component.html&#x27;,
1081
- styleUrls: [ &#x27;./settings-button.component.scss&#x27; ],
1082
- imports: [
1083
- MatIconButton,
1084
- MatIcon,
1085
- MatMenu,
1086
- MatMenuTrigger,
1087
- MatMenuItem,
1088
- CdkPortalOutlet,
1089
- IconDirective,
1090
- ],
1089
+ selector: &#x27;rxap-settings-button&#x27;,
1090
+ templateUrl: &#x27;./settings-button.component.html&#x27;,
1091
+ styleUrls: [&#x27;./settings-button.component.scss&#x27;],
1092
+ imports: [
1093
+ MatIconButton,
1094
+ MatIcon,
1095
+ MatMenu,
1096
+ MatMenuTrigger,
1097
+ MatMenuItem,
1098
+ CdkPortalOutlet,
1099
+ IconDirective,
1100
+ NgIf,
1101
+ ]
1091
1102
  })
1092
1103
  export class SettingsButtonComponent {
1093
1104
 
@@ -1096,10 +1107,10 @@ export class SettingsButtonComponent {
1096
1107
  public readonly theme &#x3D; inject(ThemeService);
1097
1108
  private readonly injector &#x3D; inject(Injector);
1098
1109
 
1099
- customItemComponents &#x3D; signal(
1110
+ customItemComponents: Signal&lt;ComponentPortal&lt;unknown&gt;[]&gt; &#x3D; toSignal(from(Promise.all(
1100
1111
  coerceArray(inject(RXAP_SETTINGS_MENU_ITEM_COMPONENT, { optional: true }))
1101
- .map(item &#x3D;&gt; new ComponentPortal(item, null, this.injector)),
1102
- );
1112
+ .map(item &#x3D;&gt; IsFunction(item) ? item() : item),
1113
+ )).pipe(map(items &#x3D;&gt; items.map(item &#x3D;&gt; new ComponentPortal(item, null, this.injector)))), { initialValue: [] });
1103
1114
 
1104
1115
  customItems &#x3D; signal(coerceArray(inject(RXAP_SETTINGS_MENU_ITEM, { optional: true })));
1105
1116
 
@@ -1178,7 +1189,7 @@ export class SettingsButtonComponent {
1178
1189
  &lt;/button&gt;
1179
1190
  @for (item of customItems(); track item.label) {
1180
1191
  &lt;button (click)&#x3D;&quot;clickItem(item)&quot; mat-menu-item&gt;
1181
- &lt;mat-icon [rxapIcon]&#x3D;&quot;item.icon&quot;&gt;&lt;/mat-icon&gt;
1192
+ &lt;mat-icon *ngIf&#x3D;&quot;item.icon as icon&quot; [rxapIcon]&#x3D;&quot;icon&quot;&gt;&lt;/mat-icon&gt;
1182
1193
  &lt;span&gt;{{ item.label }}&lt;/span&gt;
1183
1194
  &lt;/button&gt;
1184
1195
  }
@@ -1280,7 +1291,7 @@ export class SettingsButtonComponent {
1280
1291
  <script src="../js/libs/htmlparser.js"></script>
1281
1292
  <script src="../js/libs/deep-iterator.js"></script>
1282
1293
  <script>
1283
- var COMPONENT_TEMPLATE = '<div><button [matMenuTriggerFor]="menu" mat-icon-button> <mat-icon svgIcon="cog"></mat-icon></button><mat-menu #menu="matMenu"> <button (click)="theme.toggleDarkTheme()" mat-menu-item> @if (theme.darkMode()) { <mat-icon svgIcon="brightness-2"></mat-icon> } @else { <mat-icon svgIcon="brightness-5"></mat-icon> } <span i18n>Mode</span> </button> <button [matMenuTriggerFor]="themeMenu" mat-menu-item> <mat-icon svgIcon="compare"></mat-icon> <span i18n>Theme</span> </button> @for (item of customItems(); track item.label) { <button (click)="clickItem(item)" mat-menu-item> <mat-icon [rxapIcon]="item.icon"></mat-icon> <span>{{ item.label }}</span> </button> } @for (item of customItemComponents(); track item) { <ng-template [cdkPortalOutlet]="item"></ng-template> }</mat-menu><mat-menu #themeMenu="matMenu" xPosition="before"> <button [matMenuTriggerFor]="themeDensityMenu" mat-menu-item> <mat-icon svgIcon="move-resize"></mat-icon> <span i18n>Density</span> </button> @if (availableTypographies?.length) { <button [matMenuTriggerFor]="themeFontMenu" mat-menu-item> <mat-icon svgIcon="format-font"></mat-icon> <span i18n>Font</span> </button> } @if (availableThemes?.length) { <button [matMenuTriggerFor]="themePresetMenu" mat-menu-item> <mat-icon svgIcon="shape-outline"></mat-icon> <span i18n>Preset</span> </button> }</mat-menu><mat-menu #themeDensityMenu="matMenu" xPosition="before"> <button (click)="setDensity(0)" (mouseenter)="previewDensity(0)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-l"></mat-icon> <span i18n>Normal</span> </button> <button (click)="setDensity(-1)" (mouseenter)="previewDensity(-1)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-m"></mat-icon> <span i18n>Dense</span> </button> <button (click)="setDensity(-2)" (mouseenter)="previewDensity(-2)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-s"></mat-icon> <span i18n>Very Dense</span> </button> <button (click)="setDensity(-3)" (mouseenter)="previewDensity(-3)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-xs"></mat-icon> <span i18n>Extreme Dense</span> </button></mat-menu><mat-menu #themeFontMenu="matMenu" xPosition="before"> @for (typographyName of availableTypographies ?? []; track typographyName) { <button (click)="setTypography(typographyName)" (mouseenter)="previewTypography(typographyName)" (mouseleave)="restoreTypography()" mat-menu-item> {{ typographyName }} </button> }</mat-menu><mat-menu #themePresetMenu="matMenu" xPosition="before"> @for (themeName of availableThemes ?? []; track themeName) { <button (click)="setTheme(themeName)" (mouseenter)="previewTheme(themeName)" (mouseleave)="restoreTheme()" mat-menu-item> {{ themeName }} </button> }</mat-menu></div>'
1294
+ var COMPONENT_TEMPLATE = '<div><button [matMenuTriggerFor]="menu" mat-icon-button> <mat-icon svgIcon="cog"></mat-icon></button><mat-menu #menu="matMenu"> <button (click)="theme.toggleDarkTheme()" mat-menu-item> @if (theme.darkMode()) { <mat-icon svgIcon="brightness-2"></mat-icon> } @else { <mat-icon svgIcon="brightness-5"></mat-icon> } <span i18n>Mode</span> </button> <button [matMenuTriggerFor]="themeMenu" mat-menu-item> <mat-icon svgIcon="compare"></mat-icon> <span i18n>Theme</span> </button> @for (item of customItems(); track item.label) { <button (click)="clickItem(item)" mat-menu-item> <mat-icon *ngIf="item.icon as icon" [rxapIcon]="icon"></mat-icon> <span>{{ item.label }}</span> </button> } @for (item of customItemComponents(); track item) { <ng-template [cdkPortalOutlet]="item"></ng-template> }</mat-menu><mat-menu #themeMenu="matMenu" xPosition="before"> <button [matMenuTriggerFor]="themeDensityMenu" mat-menu-item> <mat-icon svgIcon="move-resize"></mat-icon> <span i18n>Density</span> </button> @if (availableTypographies?.length) { <button [matMenuTriggerFor]="themeFontMenu" mat-menu-item> <mat-icon svgIcon="format-font"></mat-icon> <span i18n>Font</span> </button> } @if (availableThemes?.length) { <button [matMenuTriggerFor]="themePresetMenu" mat-menu-item> <mat-icon svgIcon="shape-outline"></mat-icon> <span i18n>Preset</span> </button> }</mat-menu><mat-menu #themeDensityMenu="matMenu" xPosition="before"> <button (click)="setDensity(0)" (mouseenter)="previewDensity(0)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-l"></mat-icon> <span i18n>Normal</span> </button> <button (click)="setDensity(-1)" (mouseenter)="previewDensity(-1)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-m"></mat-icon> <span i18n>Dense</span> </button> <button (click)="setDensity(-2)" (mouseenter)="previewDensity(-2)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-s"></mat-icon> <span i18n>Very Dense</span> </button> <button (click)="setDensity(-3)" (mouseenter)="previewDensity(-3)" (mouseleave)="restoreDensity()" mat-menu-item> <mat-icon svgIcon="size-xs"></mat-icon> <span i18n>Extreme Dense</span> </button></mat-menu><mat-menu #themeFontMenu="matMenu" xPosition="before"> @for (typographyName of availableTypographies ?? []; track typographyName) { <button (click)="setTypography(typographyName)" (mouseenter)="previewTypography(typographyName)" (mouseleave)="restoreTypography()" mat-menu-item> {{ typographyName }} </button> }</mat-menu><mat-menu #themePresetMenu="matMenu" xPosition="before"> @for (themeName of availableThemes ?? []; track themeName) { <button (click)="setTheme(themeName)" (mouseenter)="previewTheme(themeName)" (mouseleave)="restoreTheme()" mat-menu-item> {{ themeName }} </button> }</mat-menu></div>'
1284
1295
  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'}];
1285
1296
  var DIRECTIVES = [{'name': 'FooterDirective', 'selector': '[rxapFooter]'},{'name': 'HeaderDirective', 'selector': '[rxapHeader]'},{'name': 'SidenavFooterDirective', 'selector': '[rxapSidenavFooter]'},{'name': 'SidenavHeaderDirective', 'selector': '[rxapSidenavHeader]'}];
1286
1297
  var ACTUAL_COMPONENT = {'name': 'SettingsButtonComponent'};
@@ -153,10 +153,6 @@
153
153
  <td class="col-md-9"><code>rxap-sidenav</code></td>
154
154
  </tr>
155
155
 
156
- <tr>
157
- <td class="col-md-3">standalone</td>
158
- <td class="col-md-9"><code>true</code></td>
159
- </tr>
160
156
 
161
157
  <tr>
162
158
  <td class="col-md-3">imports</td>
@@ -329,8 +325,8 @@
329
325
 
330
326
  <tr>
331
327
  <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>
328
+ <div class="io-line">Defined in <a href="" data-line="82"
329
+ class="link-to-prism">src/lib/sidenav/sidenav.component.ts:82</a></div>
334
330
  </td>
335
331
  </tr>
336
332
 
@@ -368,8 +364,8 @@
368
364
 
369
365
  <tr>
370
366
  <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>
367
+ <div class="io-line">Defined in <a href="" data-line="77"
368
+ class="link-to-prism">src/lib/sidenav/sidenav.component.ts:77</a></div>
373
369
  </td>
374
370
  </tr>
375
371
 
@@ -405,8 +401,8 @@
405
401
 
406
402
  <tr>
407
403
  <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>
404
+ <div class="io-line">Defined in <a href="" data-line="73"
405
+ class="link-to-prism">src/lib/sidenav/sidenav.component.ts:73</a></div>
410
406
  </td>
411
407
  </tr>
412
408
 
@@ -454,7 +450,7 @@
454
450
  </tr>
455
451
  <tr>
456
452
  <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>
453
+ <div class="io-line">Defined in <a href="" data-line="68" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:68</a></div>
458
454
  </td>
459
455
  </tr>
460
456
 
@@ -487,7 +483,7 @@
487
483
  </tr>
488
484
  <tr>
489
485
  <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>
486
+ <div class="io-line">Defined in <a href="" data-line="67" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:67</a></div>
491
487
  </td>
492
488
  </tr>
493
489
 
@@ -520,7 +516,7 @@
520
516
  </tr>
521
517
  <tr>
522
518
  <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>
519
+ <div class="io-line">Defined in <a href="" data-line="63" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:63</a></div>
524
520
  </td>
525
521
  </tr>
526
522
 
@@ -553,7 +549,7 @@
553
549
  </tr>
554
550
  <tr>
555
551
  <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>
552
+ <div class="io-line">Defined in <a href="" data-line="65" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:65</a></div>
557
553
  </td>
558
554
  </tr>
559
555
 
@@ -586,7 +582,7 @@
586
582
  </tr>
587
583
  <tr>
588
584
  <td class="col-md-4">
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>
585
+ <div class="io-line">Defined in <a href="" data-line="64" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:64</a></div>
590
586
  </td>
591
587
  </tr>
592
588
 
@@ -619,7 +615,7 @@
619
615
  </tr>
620
616
  <tr>
621
617
  <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>
618
+ <div class="io-line">Defined in <a href="" data-line="69" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:69</a></div>
623
619
  </td>
624
620
  </tr>
625
621
 
@@ -652,7 +648,7 @@
652
648
  </tr>
653
649
  <tr>
654
650
  <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>
651
+ <div class="io-line">Defined in <a href="" data-line="66" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:66</a></div>
656
652
  </td>
657
653
  </tr>
658
654
 
@@ -679,7 +675,7 @@
679
675
  </tr>
680
676
  <tr>
681
677
  <td class="col-md-4">
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>
678
+ <div class="io-line">Defined in <a href="" data-line="70" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:70</a></div>
683
679
  </td>
684
680
  </tr>
685
681
 
@@ -706,7 +702,7 @@
706
702
  </tr>
707
703
  <tr>
708
704
  <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>
705
+ <div class="io-line">Defined in <a href="" data-line="71" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:71</a></div>
710
706
  </td>
711
707
  </tr>
712
708
 
@@ -739,7 +735,7 @@
739
735
  </tr>
740
736
  <tr>
741
737
  <td class="col-md-4">
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>
738
+ <div class="io-line">Defined in <a href="" data-line="62" class="link-to-prism">src/lib/sidenav/sidenav.component.ts:62</a></div>
743
739
  </td>
744
740
  </tr>
745
741
 
@@ -786,26 +782,25 @@ import { SidenavFooterDirective } from &#x27;./sidenav-footer.directive&#x27;;
786
782
  import { SidenavHeaderDirective } from &#x27;./sidenav-header.directive&#x27;;
787
783
 
788
784
  @Component({
789
- selector: &#x27;rxap-sidenav&#x27;,
790
- templateUrl: &#x27;./sidenav.component.html&#x27;,
791
- styleUrls: [ &#x27;./sidenav.component.scss&#x27; ],
792
- changeDetection: ChangeDetectionStrategy.OnPush,
793
- standalone: true,
794
- imports: [
795
- MatIcon,
796
- MatIconButton,
797
- MatSidenav,
798
- MatSidenavContainer,
799
- MatSidenavContent,
800
- NavigationComponent,
801
- NgIf,
802
- RouterOutlet,
803
- NgClass,
804
- NgStyle,
805
- MatDivider,
806
- NgTemplateOutlet,
807
- MatButton,
808
- ],
785
+ selector: &#x27;rxap-sidenav&#x27;,
786
+ templateUrl: &#x27;./sidenav.component.html&#x27;,
787
+ styleUrls: [&#x27;./sidenav.component.scss&#x27;],
788
+ changeDetection: ChangeDetectionStrategy.OnPush,
789
+ imports: [
790
+ MatIcon,
791
+ MatIconButton,
792
+ MatSidenav,
793
+ MatSidenavContainer,
794
+ MatSidenavContent,
795
+ NavigationComponent,
796
+ NgIf,
797
+ RouterOutlet,
798
+ NgClass,
799
+ NgStyle,
800
+ MatDivider,
801
+ NgTemplateOutlet,
802
+ MatButton,
803
+ ]
809
804
  })
810
805
  export class SidenavComponent {
811
806
 
@@ -153,10 +153,6 @@
153
153
  <td class="col-md-9"><code>rxap-sidenav-toggle-button</code></td>
154
154
  </tr>
155
155
 
156
- <tr>
157
- <td class="col-md-3">standalone</td>
158
- <td class="col-md-9"><code>true</code></td>
159
- </tr>
160
156
 
161
157
  <tr>
162
158
  <td class="col-md-3">imports</td>
@@ -266,8 +262,8 @@
266
262
 
267
263
  <tr>
268
264
  <td class="col-md-4">
269
- <div class="io-line">Defined in <a href="" data-line="28"
270
- class="link-to-prism">src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts:28</a></div>
265
+ <div class="io-line">Defined in <a href="" data-line="27"
266
+ class="link-to-prism">src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts:27</a></div>
271
267
  </td>
272
268
  </tr>
273
269
 
@@ -309,7 +305,7 @@
309
305
  </tr>
310
306
  <tr>
311
307
  <td class="col-md-4">
312
- <div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts:26</a></div>
308
+ <div class="io-line">Defined in <a href="" data-line="25" class="link-to-prism">src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts:25</a></div>
313
309
  </td>
314
310
  </tr>
315
311
 
@@ -333,15 +329,14 @@ import { MatIcon } from &#x27;@angular/material/icon&#x27;;
333
329
  import { LayoutService } from &#x27;../../layout.service&#x27;;
334
330
 
335
331
  @Component({
336
- selector: &#x27;rxap-sidenav-toggle-button&#x27;,
337
- templateUrl: &#x27;./sidenav-toggle-button.component.html&#x27;,
338
- styleUrls: [ &#x27;./sidenav-toggle-button.component.scss&#x27; ],
339
- changeDetection: ChangeDetectionStrategy.OnPush,
340
- standalone: true,
341
- imports: [
342
- MatIcon,
343
- MatIconButton,
344
- ],
332
+ selector: &#x27;rxap-sidenav-toggle-button&#x27;,
333
+ templateUrl: &#x27;./sidenav-toggle-button.component.html&#x27;,
334
+ styleUrls: [&#x27;./sidenav-toggle-button.component.scss&#x27;],
335
+ changeDetection: ChangeDetectionStrategy.OnPush,
336
+ imports: [
337
+ MatIcon,
338
+ MatIconButton,
339
+ ]
345
340
  })
346
341
  export class SidenavToggleButtonComponent {
347
342
 
@@ -153,10 +153,6 @@
153
153
  <td class="col-md-9"><code>rxap-user-profile-icon</code></td>
154
154
  </tr>
155
155
 
156
- <tr>
157
- <td class="col-md-3">standalone</td>
158
- <td class="col-md-9"><code>true</code></td>
159
- </tr>
160
156
 
161
157
  <tr>
162
158
  <td class="col-md-3">imports</td>
@@ -271,7 +267,7 @@
271
267
  </tr>
272
268
  <tr>
273
269
  <td class="col-md-2" colspan="2">
274
- <div class="io-line">Defined in <a href="" data-line="30" class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:30</a></div>
270
+ <div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:32</a></div>
275
271
  </td>
276
272
  </tr>
277
273
  </tbody>
@@ -307,8 +303,8 @@
307
303
 
308
304
  <tr>
309
305
  <td class="col-md-4">
310
- <div class="io-line">Defined in <a href="" data-line="40"
311
- class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:40</a></div>
306
+ <div class="io-line">Defined in <a href="" data-line="42"
307
+ class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:42</a></div>
312
308
  </td>
313
309
  </tr>
314
310
 
@@ -345,7 +341,7 @@
345
341
  </tr>
346
342
  <tr>
347
343
  <td class="col-md-4">
348
- <div class="io-line">Defined in <a href="" data-line="30" class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:30</a></div>
344
+ <div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:32</a></div>
349
345
  </td>
350
346
  </tr>
351
347
 
@@ -378,7 +374,7 @@
378
374
  </tr>
379
375
  <tr>
380
376
  <td class="col-md-4">
381
- <div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:32</a></div>
377
+ <div class="io-line">Defined in <a href="" data-line="34" class="link-to-prism">src/lib/default-header/user-profile-icon/user-profile-icon.component.ts:34</a></div>
382
378
  </td>
383
379
  </tr>
384
380
 
@@ -400,20 +396,22 @@
400
396
  } from &#x27;@angular/core&#x27;;
401
397
  import { MatIconModule } from &#x27;@angular/material/icon&#x27;;
402
398
  import { MatMenuModule } from &#x27;@angular/material/menu&#x27;;
403
- import { PubSubService } from &#x27;@rxap/ngx-pub-sub&#x27;;
399
+ import {
400
+ PubSubService,
401
+ RXAP_TOPICS,
402
+ } from &#x27;@rxap/ngx-pub-sub&#x27;;
404
403
  import { EXTRACT_USERNAME_FROM_PROFILE } from &#x27;../../tokens&#x27;;
405
404
  import { ExtractUsernameFromProfileFn } from &#x27;../../types&#x27;;
406
405
 
407
406
  @Component({
408
- selector: &#x27;rxap-user-profile-icon&#x27;,
409
- templateUrl: &#x27;./user-profile-icon.component.html&#x27;,
410
- styleUrls: [ &#x27;./user-profile-icon.component.scss&#x27; ],
411
- changeDetection: ChangeDetectionStrategy.OnPush,
412
- standalone: true,
413
- imports: [
414
- MatMenuModule,
415
- MatIconModule,
416
- ],
407
+ selector: &#x27;rxap-user-profile-icon&#x27;,
408
+ templateUrl: &#x27;./user-profile-icon.component.html&#x27;,
409
+ styleUrls: [&#x27;./user-profile-icon.component.scss&#x27;],
410
+ changeDetection: ChangeDetectionStrategy.OnPush,
411
+ imports: [
412
+ MatMenuModule,
413
+ MatIconModule,
414
+ ]
417
415
  })
418
416
  export class UserProfileIconComponent {
419
417
 
@@ -431,7 +429,7 @@ export class UserProfileIconComponent {
431
429
  });
432
430
 
433
431
  public logout() {
434
- this.pubSubService.publish(&#x27;authentication.logout&#x27;);
432
+ this.pubSubService.publish(RXAP_TOPICS.authentication.logout);
435
433
  }
436
434
 
437
435