@rxap/layout 18.1.0-dev.0 → 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 (92) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/compodoc/changelog.html +5 -0
  4. package/compodoc/components/AppsButtonComponent.html +18 -6
  5. package/compodoc/dependencies.html +2 -2
  6. package/compodoc/index.html +1 -1
  7. package/compodoc/injectables/ExternalAppsService.html +77 -40
  8. package/compodoc/interfaces/ReleaseInfoModule.html +1 -1
  9. package/compodoc/interfaces/SettingsMenuItem.html +1 -1
  10. package/compodoc/js/search/search_index.js +2 -2
  11. package/compodoc/miscellaneous/functions.html +60 -0
  12. package/compodoc/miscellaneous/typealiases.html +3 -3
  13. package/compodoc/miscellaneous/variables.html +24 -1
  14. package/compodoc/properties.html +1 -1
  15. package/docs/assets/navigation.js +1 -1
  16. package/docs/assets/search.js +1 -1
  17. package/docs/classes/AppsButtonComponent.html +3 -3
  18. package/docs/classes/BaseLayoutComponent.html +1 -1
  19. package/docs/classes/DefaultHeaderComponent.html +2 -2
  20. package/docs/classes/ExternalAppsService.html +3 -2
  21. package/docs/classes/FooterComponent.html +2 -2
  22. package/docs/classes/FooterDirective.html +2 -2
  23. package/docs/classes/FooterService.html +6 -6
  24. package/docs/classes/HeaderComponent.html +2 -2
  25. package/docs/classes/HeaderDirective.html +2 -2
  26. package/docs/classes/HeaderService.html +6 -6
  27. package/docs/classes/LayoutComponent.html +2 -2
  28. package/docs/classes/LayoutService.html +2 -2
  29. package/docs/classes/LogoService.html +2 -2
  30. package/docs/classes/MinimalLayoutComponent.html +1 -1
  31. package/docs/classes/NavigationComponent.html +2 -2
  32. package/docs/classes/NavigationItemComponent.html +2 -2
  33. package/docs/classes/NavigationProgressBarComponent.html +2 -2
  34. package/docs/classes/NavigationService.html +3 -3
  35. package/docs/classes/ReleaseInfoComponent.html +2 -2
  36. package/docs/classes/SettingsButtonComponent.html +2 -2
  37. package/docs/classes/SidenavComponent.html +2 -2
  38. package/docs/classes/SidenavFooterDirective.html +2 -2
  39. package/docs/classes/SidenavHeaderDirective.html +2 -2
  40. package/docs/classes/SidenavToggleButtonComponent.html +2 -2
  41. package/docs/classes/UserProfileIconComponent.html +2 -2
  42. package/docs/documentation.json +1018 -859
  43. package/docs/functions/IsNavigationDividerItem.html +1 -1
  44. package/docs/functions/IsNavigationInsertItem.html +1 -1
  45. package/docs/functions/IsNavigationItem.html +1 -1
  46. package/docs/functions/provideLayout.html +1 -1
  47. package/docs/functions/widthDefaultHeaderComponent.html +1 -1
  48. package/docs/functions/withExternalApps.html +1 -0
  49. package/docs/functions/withFooterComponents.html +1 -1
  50. package/docs/functions/withHeaderComponents.html +1 -1
  51. package/docs/functions/withNavigationConfig.html +1 -1
  52. package/docs/functions/withNavigationInserts.html +1 -1
  53. package/docs/functions/withReleaseInfoModules.html +1 -1
  54. package/docs/functions/withSettingsMenuItems.html +1 -1
  55. package/docs/index.html +1 -1
  56. package/docs/interfaces/NavigationDividerItem.html +2 -2
  57. package/docs/interfaces/NavigationInsertItem.html +2 -2
  58. package/docs/interfaces/NavigationItem.html +2 -2
  59. package/docs/interfaces/NavigationStatus.html +2 -2
  60. package/docs/interfaces/ReleaseInfoModule.html +2 -2
  61. package/docs/interfaces/SettingsMenuItem.html +2 -2
  62. package/docs/modules.html +3 -1
  63. package/docs/types/ExternalApp.html +1 -0
  64. package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
  65. package/docs/types/Navigation.html +1 -1
  66. package/docs/types/NavigationWithInserts.html +1 -1
  67. package/docs/types/SettingsMenuItemComponent.html +1 -1
  68. package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
  69. package/docs/variables/RXAP_EXTERNAL_APP.html +1 -0
  70. package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -1
  71. package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -1
  72. package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -1
  73. package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -1
  74. package/docs/variables/RXAP_LOGO_CONFIG.html +1 -1
  75. package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -1
  76. package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -1
  77. package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -1
  78. package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -1
  79. package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -1
  80. package/esm2022/lib/default-header/apps-button/apps-button.component.mjs +5 -3
  81. package/esm2022/lib/external-apps.service.mjs +7 -5
  82. package/esm2022/lib/provide.mjs +9 -2
  83. package/esm2022/lib/tokens.mjs +2 -1
  84. package/esm2022/lib/types.mjs +1 -1
  85. package/fesm2022/rxap-layout.mjs +17 -6
  86. package/fesm2022/rxap-layout.mjs.map +1 -1
  87. package/lib/external-apps.service.d.ts +5 -4
  88. package/lib/provide.d.ts +2 -1
  89. package/lib/tokens.d.ts +1 -0
  90. package/lib/types.d.ts +1 -1
  91. package/package.json +7 -7
  92. package/docs/types/ExternalApps.html +0 -1
@@ -5,7 +5,7 @@ import { HeaderService } from './header.service';
5
5
  import { LayoutService } from './layout.service';
6
6
  import { LogoService } from './logo.service';
7
7
  import { NavigationService } from './navigation.service';
8
- import { RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, } from './tokens';
8
+ import { RXAP_EXTERNAL_APP, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, } from './tokens';
9
9
  export function provideLayout(...additionalProviders) {
10
10
  return [
11
11
  ExternalAppsService,
@@ -25,6 +25,13 @@ export function withNavigationConfig(config) {
25
25
  },
26
26
  ];
27
27
  }
28
+ export function withExternalApps(...apps) {
29
+ return apps.map(app => ({
30
+ provide: RXAP_EXTERNAL_APP,
31
+ useValue: app,
32
+ multi: true,
33
+ }));
34
+ }
28
35
  export function withNavigationInserts(inserts) {
29
36
  return [{
30
37
  provide: RXAP_NAVIGATION_CONFIG_INSERTS,
@@ -70,4 +77,4 @@ export function widthDefaultHeaderComponent() {
70
77
  useValue: DefaultHeaderComponent,
71
78
  };
72
79
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvcHJvdmlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLDhCQUE4QixFQUM5Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxHQUNsQyxNQUFNLFVBQVUsQ0FBQztBQU9sQixNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQUcsbUJBQStCO0lBQzlELE9BQU87UUFDTCxtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsYUFBYTtRQUNiLGFBQWE7UUFDYixHQUFHLG1CQUFtQjtLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBNkQ7SUFFN0QsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixRQUFRLEVBQUUsTUFBTTtTQUNqQjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQThDO0lBQ2xGLE9BQU8sQ0FBQztZQUNOLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFHLEtBQTBEO0lBQ2pHLE9BQU87UUFDTCxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQXFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUN4RztZQUNFLE9BQU8sRUFBRSxpQ0FBaUM7WUFDMUMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUNGLENBQUM7UUFDRixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQTRCLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUMxRjtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEdBQUcsTUFBMkI7SUFDbkUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDeEI7UUFDRSxPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFLElBQUk7S0FDWixDQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBeUM7SUFDNUUsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FDakM7UUFDRSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxVQUF5QztJQUM1RSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUNqQztRQUNFLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZmF1bHRIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtaGVhZGVyL2RlZmF1bHQtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHRlcm5hbEFwcHNTZXJ2aWNlIH0gZnJvbSAnLi9leHRlcm5hbC1hcHBzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9vdGVyU2VydmljZSB9IGZyb20gJy4vZm9vdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4vaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nb1NlcnZpY2UgfSBmcm9tICcuL2xvZ28uc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyB9IGZyb20gJy4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0nO1xuaW1wb3J0IHtcbiAgUlhBUF9GT09URVJfQ09NUE9ORU5ULFxuICBSWEFQX0hFQURFUl9DT01QT05FTlQsXG4gIFJYQVBfTkFWSUdBVElPTl9DT05GSUcsXG4gIFJYQVBfTkFWSUdBVElPTl9DT05GSUdfSU5TRVJUUyxcbiAgUlhBUF9SRUxFQVNFX0lORk9fTU9EVUxFLFxuICBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTSxcbiAgUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5ULFxufSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQge1xuICBSZWxlYXNlSW5mb01vZHVsZSxcbiAgU2V0dGluZ3NNZW51SXRlbSxcbiAgU2V0dGluZ3NNZW51SXRlbUNvbXBvbmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTGF5b3V0KC4uLmFkZGl0aW9uYWxQcm92aWRlcnM6IFByb3ZpZGVyW10pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICBFeHRlcm5hbEFwcHNTZXJ2aWNlLFxuICAgIExheW91dFNlcnZpY2UsXG4gICAgTG9nb1NlcnZpY2UsXG4gICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgSGVhZGVyU2VydmljZSxcbiAgICBGb290ZXJTZXJ2aWNlLFxuICAgIC4uLmFkZGl0aW9uYWxQcm92aWRlcnMsXG4gIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTmF2aWdhdGlvbkNvbmZpZyhcbiAgY29uZmlnOiBOYXZpZ2F0aW9uV2l0aEluc2VydHMgfCAoKCkgPT4gTmF2aWdhdGlvbldpdGhJbnNlcnRzKSxcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfTkFWSUdBVElPTl9DT05GSUcsXG4gICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgIH0sXG4gIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTmF2aWdhdGlvbkluc2VydHMoaW5zZXJ0czogUmVjb3JkPHN0cmluZywgTmF2aWdhdGlvbldpdGhJbnNlcnRzPik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW3tcbiAgICBwcm92aWRlOiBSWEFQX05BVklHQVRJT05fQ09ORklHX0lOU0VSVFMsXG4gICAgdXNlVmFsdWU6IGluc2VydHMsXG4gIH1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFNldHRpbmdzTWVudUl0ZW1zKC4uLml0ZW1zOiBBcnJheTxTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50IHwgU2V0dGluZ3NNZW51SXRlbT4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5pdGVtcy5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFNldHRpbmdzTWVudUl0ZW1Db21wb25lbnQgPT4gdHlwZW9mIGl0ZW0gPT09ICdmdW5jdGlvbicpLm1hcChjb21wb25lbnQgPT4gKFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTV9DT01QT05FTlQsXG4gICAgICAgIHVzZVZhbHVlOiBjb21wb25lbnQsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgfVxuICAgICkpLFxuICAgIC4uLml0ZW1zLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgU2V0dGluZ3NNZW51SXRlbSA9PiB0eXBlb2YgaXRlbSAhPT0gJ2Z1bmN0aW9uJykubWFwKGl0ZW0gPT4gKFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTSxcbiAgICAgICAgdXNlVmFsdWU6IGl0ZW0sXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgfVxuICAgICkpLFxuICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFJlbGVhc2VJbmZvTW9kdWxlcyguLi5tb2R1bGU6IFJlbGVhc2VJbmZvTW9kdWxlW10pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIG1vZHVsZS5tYXAoaXRlbSA9PiAoXG4gICAge1xuICAgICAgcHJvdmlkZTogUlhBUF9SRUxFQVNFX0lORk9fTU9EVUxFLFxuICAgICAgdXNlVmFsdWU6IGl0ZW0sXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gICkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEhlYWRlckNvbXBvbmVudHMoY29tcG9uZW50czogQXJyYXk8Q29tcG9uZW50VHlwZTx1bmtub3duPj4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIGNvbXBvbmVudHMubWFwKGNvbXBvbmVudCA9PiAoXG4gICAge1xuICAgICAgcHJvdmlkZTogUlhBUF9IRUFERVJfQ09NUE9ORU5ULFxuICAgICAgdXNlVmFsdWU6IGNvbXBvbmVudCxcbiAgICB9XG4gICkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEZvb3RlckNvbXBvbmVudHMoY29tcG9uZW50czogQXJyYXk8Q29tcG9uZW50VHlwZTx1bmtub3duPj4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIGNvbXBvbmVudHMubWFwKGNvbXBvbmVudCA9PiAoXG4gICAge1xuICAgICAgcHJvdmlkZTogUlhBUF9GT09URVJfQ09NUE9ORU5ULFxuICAgICAgdXNlVmFsdWU6IGNvbXBvbmVudCxcbiAgICB9XG4gICkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2lkdGhEZWZhdWx0SGVhZGVyQ29tcG9uZW50KCk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBSWEFQX0hFQURFUl9DT01QT05FTlQsXG4gICAgdXNlVmFsdWU6IERlZmF1bHRIZWFkZXJDb21wb25lbnQsXG4gIH07XG59XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvcHJvdmlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixpQ0FBaUMsR0FDbEMsTUFBTSxVQUFVLENBQUM7QUFRbEIsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFHLG1CQUErQjtJQUM5RCxPQUFPO1FBQ0wsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixhQUFhO1FBQ2IsR0FBRyxtQkFBbUI7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQTZEO0lBRTdELE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsUUFBUSxFQUFFLE1BQU07U0FDakI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFHLElBQW1CO0lBQ3JELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQ3JCO1FBQ0UsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixRQUFRLEVBQUUsR0FBRztRQUNiLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQThDO0lBQ2xGLE9BQU8sQ0FBQztZQUNOLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsUUFBUSxFQUFFLE9BQU87U0FDbEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFHLEtBQTBEO0lBQ2pHLE9BQU87UUFDTCxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQXFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUN4RztZQUNFLE9BQU8sRUFBRSxpQ0FBaUM7WUFDMUMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUNGLENBQUM7UUFDRixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQTRCLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUMxRjtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEdBQUcsTUFBMkI7SUFDbkUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDeEI7UUFDRSxPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLFFBQVEsRUFBRSxJQUFJO1FBQ2QsS0FBSyxFQUFFLElBQUk7S0FDWixDQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBeUM7SUFDNUUsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FDakM7UUFDRSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxVQUF5QztJQUM1RSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUNqQztRQUNFLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZmF1bHRIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtaGVhZGVyL2RlZmF1bHQtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHRlcm5hbEFwcHNTZXJ2aWNlIH0gZnJvbSAnLi9leHRlcm5hbC1hcHBzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9vdGVyU2VydmljZSB9IGZyb20gJy4vZm9vdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4vaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nb1NlcnZpY2UgfSBmcm9tICcuL2xvZ28uc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyB9IGZyb20gJy4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0nO1xuaW1wb3J0IHtcbiAgUlhBUF9FWFRFUk5BTF9BUFAsXG4gIFJYQVBfRk9PVEVSX0NPTVBPTkVOVCxcbiAgUlhBUF9IRUFERVJfQ09NUE9ORU5ULFxuICBSWEFQX05BVklHQVRJT05fQ09ORklHLFxuICBSWEFQX05BVklHQVRJT05fQ09ORklHX0lOU0VSVFMsXG4gIFJYQVBfUkVMRUFTRV9JTkZPX01PRFVMRSxcbiAgUlhBUF9TRVRUSU5HU19NRU5VX0lURU0sXG4gIFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNX0NPTVBPTkVOVCxcbn0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxBcHAsXG4gIFJlbGVhc2VJbmZvTW9kdWxlLFxuICBTZXR0aW5nc01lbnVJdGVtLFxuICBTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50LFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMYXlvdXQoLi4uYWRkaXRpb25hbFByb3ZpZGVyczogUHJvdmlkZXJbXSk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIEV4dGVybmFsQXBwc1NlcnZpY2UsXG4gICAgTGF5b3V0U2VydmljZSxcbiAgICBMb2dvU2VydmljZSxcbiAgICBOYXZpZ2F0aW9uU2VydmljZSxcbiAgICBIZWFkZXJTZXJ2aWNlLFxuICAgIEZvb3RlclNlcnZpY2UsXG4gICAgLi4uYWRkaXRpb25hbFByb3ZpZGVycyxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOYXZpZ2F0aW9uQ29uZmlnKFxuICBjb25maWc6IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyB8ICgoKSA9PiBOYXZpZ2F0aW9uV2l0aEluc2VydHMpLFxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUlhBUF9OQVZJR0FUSU9OX0NPTkZJRyxcbiAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgfSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhFeHRlcm5hbEFwcHMoLi4uYXBwczogRXh0ZXJuYWxBcHBbXSk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gYXBwcy5tYXAoYXBwID0+IChcbiAgICB7XG4gICAgICBwcm92aWRlOiBSWEFQX0VYVEVSTkFMX0FQUCxcbiAgICAgIHVzZVZhbHVlOiBhcHAsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gICkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aE5hdmlnYXRpb25JbnNlcnRzKGluc2VydHM6IFJlY29yZDxzdHJpbmcsIE5hdmlnYXRpb25XaXRoSW5zZXJ0cz4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFt7XG4gICAgcHJvdmlkZTogUlhBUF9OQVZJR0FUSU9OX0NPTkZJR19JTlNFUlRTLFxuICAgIHVzZVZhbHVlOiBpbnNlcnRzLFxuICB9XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTZXR0aW5nc01lbnVJdGVtcyguLi5pdGVtczogQXJyYXk8U2V0dGluZ3NNZW51SXRlbUNvbXBvbmVudCB8IFNldHRpbmdzTWVudUl0ZW0+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgLi4uaXRlbXMuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50ID0+IHR5cGVvZiBpdGVtID09PSAnZnVuY3Rpb24nKS5tYXAoY29tcG9uZW50ID0+IChcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5ULFxuICAgICAgICB1c2VWYWx1ZTogY29tcG9uZW50LFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH1cbiAgICApKSxcbiAgICAuLi5pdGVtcy5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFNldHRpbmdzTWVudUl0ZW0gPT4gdHlwZW9mIGl0ZW0gIT09ICdmdW5jdGlvbicpLm1hcChpdGVtID0+IChcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUlhBUF9TRVRUSU5HU19NRU5VX0lURU0sXG4gICAgICAgIHVzZVZhbHVlOiBpdGVtLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH1cbiAgICApKSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhSZWxlYXNlSW5mb01vZHVsZXMoLi4ubW9kdWxlOiBSZWxlYXNlSW5mb01vZHVsZVtdKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBtb2R1bGUubWFwKGl0ZW0gPT4gKFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfUkVMRUFTRV9JTkZPX01PRFVMRSxcbiAgICAgIHVzZVZhbHVlOiBpdGVtLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhIZWFkZXJDb21wb25lbnRzKGNvbXBvbmVudHM6IEFycmF5PENvbXBvbmVudFR5cGU8dW5rbm93bj4+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBjb21wb25lbnRzLm1hcChjb21wb25lbnQgPT4gKFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfSEVBREVSX0NPTVBPTkVOVCxcbiAgICAgIHVzZVZhbHVlOiBjb21wb25lbnQsXG4gICAgfVxuICApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhGb290ZXJDb21wb25lbnRzKGNvbXBvbmVudHM6IEFycmF5PENvbXBvbmVudFR5cGU8dW5rbm93bj4+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBjb21wb25lbnRzLm1hcChjb21wb25lbnQgPT4gKFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfRk9PVEVSX0NPTVBPTkVOVCxcbiAgICAgIHVzZVZhbHVlOiBjb21wb25lbnQsXG4gICAgfVxuICApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpZHRoRGVmYXVsdEhlYWRlckNvbXBvbmVudCgpOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogUlhBUF9IRUFERVJfQ09NUE9ORU5ULFxuICAgIHVzZVZhbHVlOiBEZWZhdWx0SGVhZGVyQ29tcG9uZW50LFxuICB9O1xufVxuIl19
@@ -10,7 +10,8 @@ export const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken('extract-usernam
10
10
  providedIn: 'root',
11
11
  factory: () => (profile) => (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
12
12
  });
13
+ export const RXAP_EXTERNAL_APP = new InjectionToken('rxap/layout/external-app');
13
14
  export const RXAP_RELEASE_INFO_MODULE = new InjectionToken('rxap/layout/release-info-module');
14
15
  export const RXAP_SETTINGS_MENU_ITEM_COMPONENT = new InjectionToken('rxap/layout/settings-menu-item-component');
15
16
  export const RXAP_SETTINGS_MENU_ITEM = new InjectionToken('rxap/layout/settings-menu-item');
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVkvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsK0JBQStCLENBQUMsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsdUNBQXVDLENBQUMsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsOEJBQThCLENBQUMsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsOEJBQThCLENBQUMsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBYSx5QkFBeUIsQ0FBQyxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXVELCtCQUErQixDQUFDLENBQUM7QUFDbEosTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzdELCtCQUErQixFQUMvQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsQ0FDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25FLElBQUksSUFBSTtDQUMzQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBb0IsaUNBQWlDLENBQUMsQ0FBQztBQUVqSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsMENBQTBDLENBQUMsQ0FBQztBQUUzSSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsZ0NBQWdDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dvQ29uZmlnIH0gZnJvbSAnQHJ4YXAvY29uZmlnJztcbmltcG9ydCB7IE1ldGhvZFdpdGhQYXJhbWV0ZXJzIH0gZnJvbSAnQHJ4YXAvcGF0dGVybic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uV2l0aEluc2VydHMgfSBmcm9tICcuL25hdmlnYXRpb24vbmF2aWdhdGlvbi1pdGVtJztcbmltcG9ydCB7XG4gIEV4dGVybmFsQXBwcyxcbiAgRXh0cmFjdFVzZXJuYW1lRnJvbVByb2ZpbGVGbixcbiAgUmVsZWFzZUluZm9Nb2R1bGUsXG4gIFNldHRpbmdzTWVudUl0ZW0sXG4gIFNldHRpbmdzTWVudUl0ZW1Db21wb25lbnQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgUlhBUF9OQVZJR0FUSU9OX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXZpZ2F0aW9uV2l0aEluc2VydHMgfCAoKCkgPT4gTmF2aWdhdGlvbldpdGhJbnNlcnRzKT4oXG4gICdyeGFwL2xheW91dC9uYXZpZ2F0aW9uLWNvbmZpZycpO1xuZXhwb3J0IGNvbnN0IFJYQVBfTkFWSUdBVElPTl9DT05GSUdfSU5TRVJUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBOYXZpZ2F0aW9uV2l0aEluc2VydHM+PihcbiAgJ3J4YXAvbGF5b3V0L25hdmlnYXRpb24tY29uZmlnLWluc2VydHMnKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfRk9PVEVSX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21wb25lbnRUeXBlPHVua25vd24+PigncnhhcC9sYXlvdXQvZm9vdGVyLWNvbXBvbmVudCcpO1xuZXhwb3J0IGNvbnN0IFJYQVBfSEVBREVSX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21wb25lbnRUeXBlPHVua25vd24+PigncnhhcC9sYXlvdXQvaGVhZGVyLWNvbXBvbmVudCcpO1xuZXhwb3J0IGNvbnN0IFJYQVBfTE9HT19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9nb0NvbmZpZz4oJ3J4YXAvbGF5b3V0L2xvZ28tY29uZmlnJyk7XG5leHBvcnQgY29uc3QgUlhBUF9MQVlPVVRfQVBQU19HUklEID0gbmV3IEluamVjdGlvblRva2VuKCdyeGFwL2xheW91dC9hcHBzLWdyaWQnKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfRVhURVJOQUxfQVBQX0ZJTFRFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZXRob2RXaXRoUGFyYW1ldGVyczxFeHRlcm5hbEFwcHNbXSwgRXh0ZXJuYWxBcHBzW10+PigncnhhcC9sYXlvdXQvYXBwLWNvbmZpZy1maWx0ZXInKTtcbmV4cG9ydCBjb25zdCBFWFRSQUNUX1VTRVJOQU1FX0ZST01fUFJPRklMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFeHRyYWN0VXNlcm5hbWVGcm9tUHJvZmlsZUZuPihcbiAgJ2V4dHJhY3QtdXNlcm5hbWUtZnJvbS1wcm9maWxlJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiAocHJvZmlsZTogYW55KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlID8gcHJvZmlsZS51c2VybmFtZSA/PyBwcm9maWxlLmVtYWlsID8/IHByb2ZpbGUubmFtZSA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApID8/IG51bGwsXG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgUlhBUF9SRUxFQVNFX0lORk9fTU9EVUxFID0gbmV3IEluamVjdGlvblRva2VuPFJlbGVhc2VJbmZvTW9kdWxlPigncnhhcC9sYXlvdXQvcmVsZWFzZS1pbmZvLW1vZHVsZScpO1xuXG5leHBvcnQgY29uc3QgUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPFNldHRpbmdzTWVudUl0ZW1Db21wb25lbnQ+KCdyeGFwL2xheW91dC9zZXR0aW5ncy1tZW51LWl0ZW0tY29tcG9uZW50Jyk7XG5cbmV4cG9ydCBjb25zdCBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZXR0aW5nc01lbnVJdGVtPigncnhhcC9sYXlvdXQvc2V0dGluZ3MtbWVudS1pdGVtJyk7XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVkvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsK0JBQStCLENBQUMsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsdUNBQXVDLENBQUMsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsOEJBQThCLENBQUMsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsOEJBQThCLENBQUMsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBYSx5QkFBeUIsQ0FBQyxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXFELCtCQUErQixDQUFDLENBQUM7QUFDaEosTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzdELCtCQUErQixFQUMvQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsQ0FDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25FLElBQUksSUFBSTtDQUMzQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBYywwQkFBMEIsQ0FBQyxDQUFDO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFvQixpQ0FBaUMsQ0FBQyxDQUFDO0FBRWpILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLElBQUksY0FBYyxDQUE0QiwwQ0FBMEMsQ0FBQyxDQUFDO0FBRTNJLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFtQixnQ0FBZ0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ29Db25maWcgfSBmcm9tICdAcnhhcC9jb25maWcnO1xuaW1wb3J0IHsgTWV0aG9kV2l0aFBhcmFtZXRlcnMgfSBmcm9tICdAcnhhcC9wYXR0ZXJuJztcbmltcG9ydCB7IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyB9IGZyb20gJy4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0nO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxBcHAsXG4gIEV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlRm4sXG4gIFJlbGVhc2VJbmZvTW9kdWxlLFxuICBTZXR0aW5nc01lbnVJdGVtLFxuICBTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50LFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFJYQVBfTkFWSUdBVElPTl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmF2aWdhdGlvbldpdGhJbnNlcnRzIHwgKCgpID0+IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyk+KFxuICAncnhhcC9sYXlvdXQvbmF2aWdhdGlvbi1jb25maWcnKTtcbmV4cG9ydCBjb25zdCBSWEFQX05BVklHQVRJT05fQ09ORklHX0lOU0VSVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVjb3JkPHN0cmluZywgTmF2aWdhdGlvbldpdGhJbnNlcnRzPj4oXG4gICdyeGFwL2xheW91dC9uYXZpZ2F0aW9uLWNvbmZpZy1pbnNlcnRzJyk7XG5cbmV4cG9ydCBjb25zdCBSWEFQX0ZPT1RFUl9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcG9uZW50VHlwZTx1bmtub3duPj4oJ3J4YXAvbGF5b3V0L2Zvb3Rlci1jb21wb25lbnQnKTtcbmV4cG9ydCBjb25zdCBSWEFQX0hFQURFUl9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcG9uZW50VHlwZTx1bmtub3duPj4oJ3J4YXAvbGF5b3V0L2hlYWRlci1jb21wb25lbnQnKTtcbmV4cG9ydCBjb25zdCBSWEFQX0xPR09fQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPExvZ29Db25maWc+KCdyeGFwL2xheW91dC9sb2dvLWNvbmZpZycpO1xuZXhwb3J0IGNvbnN0IFJYQVBfTEFZT1VUX0FQUFNfR1JJRCA9IG5ldyBJbmplY3Rpb25Ub2tlbigncnhhcC9sYXlvdXQvYXBwcy1ncmlkJyk7XG5cbmV4cG9ydCBjb25zdCBSWEFQX0VYVEVSTkFMX0FQUF9GSUxURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWV0aG9kV2l0aFBhcmFtZXRlcnM8RXh0ZXJuYWxBcHBbXSwgRXh0ZXJuYWxBcHBbXT4+KCdyeGFwL2xheW91dC9hcHAtY29uZmlnLWZpbHRlcicpO1xuZXhwb3J0IGNvbnN0IEVYVFJBQ1RfVVNFUk5BTUVfRlJPTV9QUk9GSUxFID0gbmV3IEluamVjdGlvblRva2VuPEV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlRm4+KFxuICAnZXh0cmFjdC11c2VybmFtZS1mcm9tLXByb2ZpbGUnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IChwcm9maWxlOiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUgPyBwcm9maWxlLnVzZXJuYW1lID8/IHByb2ZpbGUuZW1haWwgPz8gcHJvZmlsZS5uYW1lIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPz8gbnVsbCxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBSWEFQX0VYVEVSTkFMX0FQUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFeHRlcm5hbEFwcD4oJ3J4YXAvbGF5b3V0L2V4dGVybmFsLWFwcCcpO1xuXG5leHBvcnQgY29uc3QgUlhBUF9SRUxFQVNFX0lORk9fTU9EVUxFID0gbmV3IEluamVjdGlvblRva2VuPFJlbGVhc2VJbmZvTW9kdWxlPigncnhhcC9sYXlvdXQvcmVsZWFzZS1pbmZvLW1vZHVsZScpO1xuXG5leHBvcnQgY29uc3QgUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPFNldHRpbmdzTWVudUl0ZW1Db21wb25lbnQ+KCdyeGFwL2xheW91dC9zZXR0aW5ncy1tZW51LWl0ZW0tY29tcG9uZW50Jyk7XG5cbmV4cG9ydCBjb25zdCBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZXR0aW5nc01lbnVJdGVtPigncnhhcC9sYXlvdXQvc2V0dGluZ3MtbWVudS1pdGVtJyk7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBcHBzTmF2aWdhdGlvbkNvbmZpZyB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQgeyBJY29uQ29uZmlnIH0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcblxuXG5cbmV4cG9ydCB0eXBlIEV4dGVybmFsQXBwcyA9IEFwcHNOYXZpZ2F0aW9uQ29uZmlnO1xuZXhwb3J0IHR5cGUgRXh0cmFjdFVzZXJuYW1lRnJvbVByb2ZpbGVGbjxUID0gdW5rbm93bj4gPSAocHJvZmlsZTogVCkgPT4gc3RyaW5nIHwgbnVsbDtcbmV4cG9ydCBpbnRlcmZhY2UgUmVsZWFzZUluZm9Nb2R1bGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgaGFzaD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU2V0dGluZ3NNZW51SXRlbUNvbXBvbmVudCA9IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3NNZW51SXRlbSB7XG4gIGljb24/OiBJY29uQ29uZmlnO1xuICBsYWJlbDogc3RyaW5nO1xuICBhY3Rpb246ICgpID0+IGFueTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBcHBzTmF2aWdhdGlvbkNvbmZpZyB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQgeyBJY29uQ29uZmlnIH0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcblxuXG5cbmV4cG9ydCB0eXBlIEV4dGVybmFsQXBwID0gQXBwc05hdmlnYXRpb25Db25maWc7XG5leHBvcnQgdHlwZSBFeHRyYWN0VXNlcm5hbWVGcm9tUHJvZmlsZUZuPFQgPSB1bmtub3duPiA9IChwcm9maWxlOiBUKSA9PiBzdHJpbmcgfCBudWxsO1xuZXhwb3J0IGludGVyZmFjZSBSZWxlYXNlSW5mb01vZHVsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBoYXNoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50ID0gQ29tcG9uZW50VHlwZTx1bmtub3duPjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXR0aW5nc01lbnVJdGVtIHtcbiAgaWNvbj86IEljb25Db25maWc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGFjdGlvbjogKCkgPT4gYW55O1xufVxuIl19
@@ -79,6 +79,7 @@ const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken('extract-username-from-
79
79
  providedIn: 'root',
80
80
  factory: () => (profile) => (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
81
81
  });
82
+ const RXAP_EXTERNAL_APP = new InjectionToken('rxap/layout/external-app');
82
83
  const RXAP_RELEASE_INFO_MODULE = new InjectionToken('rxap/layout/release-info-module');
83
84
  const RXAP_SETTINGS_MENU_ITEM_COMPONENT = new InjectionToken('rxap/layout/settings-menu-item-component');
84
85
  const RXAP_SETTINGS_MENU_ITEM = new InjectionToken('rxap/layout/settings-menu-item');
@@ -967,6 +968,7 @@ class ExternalAppsService {
967
968
  this.localeId = inject(LOCALE_ID);
968
969
  this.environment = inject(RXAP_ENVIRONMENT);
969
970
  this.apps = this.config.get('navigation.apps', []);
971
+ this.externalApps = coerceArray(inject(RXAP_EXTERNAL_APP, { optional: true }));
970
972
  /**
971
973
  * The list of active apps that is processed by the getAppList method
972
974
  */
@@ -1020,9 +1022,10 @@ class ExternalAppsService {
1020
1022
  }
1021
1023
  }
1022
1024
  async getAppList() {
1023
- let appList = this
1024
- .apps
1025
- .filter(app => !app.hidden)
1025
+ let appList = [
1026
+ ...this.externalApps,
1027
+ ...this.apps,
1028
+ ].filter(app => !app.hidden)
1026
1029
  .map(app => structuredClone(app));
1027
1030
  appList.forEach(app => {
1028
1031
  if (app.href) {
@@ -1066,7 +1069,7 @@ class AppsButtonComponent {
1066
1069
  this.externalAppsService.getAppList();
1067
1070
  }
1068
1071
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AppsButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1069
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AppsButtonComponent, isStandalone: true, selector: "rxap-apps-button", ngImport: i0, template: "@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1072
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AppsButtonComponent, isStandalone: true, selector: "rxap-apps-button", ngImport: i0, template: "@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: IconDirective, selector: "mat-icon[rxapIcon]", inputs: ["rxapIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1070
1073
  }
1071
1074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AppsButtonComponent, decorators: [{
1072
1075
  type: Component,
@@ -1077,7 +1080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
1077
1080
  MatAnchor,
1078
1081
  MatIconButton,
1079
1082
  MatIcon,
1080
- ], template: "@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n" }]
1083
+ IconDirective,
1084
+ ], template: "@if (hasApps()) {\n <div class=\"flex flex-row items-center gap-8\">\n\n @if (isOpen()) {\n <div class=\"flex flex-row items-center gap-6 h-10\">\n\n @for (app of appList(); track app.label) {\n @if (app.href) {\n <a [href]=\"app.href\" [target]=\"app.target ?? '_self'\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else if (app.routerLink) {\n <a mat-stroked-button [routerLink]=\"app.routerLink\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </a>\n } @else {\n <button mat-stroked-button [disabled]=\"true\">\n <span class=\"flex flex-row items-center gap-4\">\n @if (app.icon) {\n <mat-icon [rxapIcon]=\"app.icon\"></mat-icon>\n }\n @if (app.image) {\n <img [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n }\n <span class=\"label grow-0\">{{ app.label }}</span>\n </span>\n </button>\n }\n }\n\n </div>\n }\n\n <button (click)=\"toggle()\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n </div>\n}\n" }]
1081
1085
  }] });
1082
1086
 
1083
1087
  class DefaultHeaderComponent {
@@ -1122,6 +1126,13 @@ function withNavigationConfig(config) {
1122
1126
  },
1123
1127
  ];
1124
1128
  }
1129
+ function withExternalApps(...apps) {
1130
+ return apps.map(app => ({
1131
+ provide: RXAP_EXTERNAL_APP,
1132
+ useValue: app,
1133
+ multi: true,
1134
+ }));
1135
+ }
1125
1136
  function withNavigationInserts(inserts) {
1126
1137
  return [{
1127
1138
  provide: RXAP_NAVIGATION_CONFIG_INSERTS,
@@ -1175,5 +1186,5 @@ function widthDefaultHeaderComponent() {
1175
1186
  * Generated bundle index. Do not edit.
1176
1187
  */
1177
1188
 
1178
- export { AppsButtonComponent, BaseLayoutComponent, DefaultHeaderComponent, EXTRACT_USERNAME_FROM_PROFILE, ExternalAppsService, FooterComponent, FooterDirective, FooterService, HeaderComponent, HeaderDirective, HeaderService, IsNavigationDividerItem, IsNavigationInsertItem, IsNavigationItem, LayoutComponent, LayoutService, LogoService, MinimalLayoutComponent, NavigationComponent, NavigationItemComponent, NavigationProgressBarComponent, NavigationService, RXAP_EXTERNAL_APP_FILTER, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_LAYOUT_APPS_GRID, RXAP_LOGO_CONFIG, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, ReleaseInfoComponent, SettingsButtonComponent, SidenavComponent, SidenavFooterDirective, SidenavHeaderDirective, SidenavToggleButtonComponent, UserProfileIconComponent, provideLayout, widthDefaultHeaderComponent, withFooterComponents, withHeaderComponents, withNavigationConfig, withNavigationInserts, withReleaseInfoModules, withSettingsMenuItems };
1189
+ export { AppsButtonComponent, BaseLayoutComponent, DefaultHeaderComponent, EXTRACT_USERNAME_FROM_PROFILE, ExternalAppsService, FooterComponent, FooterDirective, FooterService, HeaderComponent, HeaderDirective, HeaderService, IsNavigationDividerItem, IsNavigationInsertItem, IsNavigationItem, LayoutComponent, LayoutService, LogoService, MinimalLayoutComponent, NavigationComponent, NavigationItemComponent, NavigationProgressBarComponent, NavigationService, RXAP_EXTERNAL_APP, RXAP_EXTERNAL_APP_FILTER, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_LAYOUT_APPS_GRID, RXAP_LOGO_CONFIG, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, ReleaseInfoComponent, SettingsButtonComponent, SidenavComponent, SidenavFooterDirective, SidenavHeaderDirective, SidenavToggleButtonComponent, UserProfileIconComponent, provideLayout, widthDefaultHeaderComponent, withExternalApps, withFooterComponents, withHeaderComponents, withNavigationConfig, withNavigationInserts, withReleaseInfoModules, withSettingsMenuItems };
1179
1190
  //# sourceMappingURL=rxap-layout.mjs.map