@rxap/layout 16.0.0-dev.2 → 16.0.0-dev.21

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 (75) hide show
  1. package/CHANGELOG.md +442 -0
  2. package/LICENSE +621 -21
  3. package/LICENSE.md +621 -0
  4. package/README.md +7 -22
  5. package/esm2022/index.mjs +5 -6
  6. package/esm2022/lib/app-url.service.mjs +64 -0
  7. package/esm2022/lib/footer/footer.component.mjs +10 -41
  8. package/esm2022/lib/footer.directive.mjs +21 -22
  9. package/esm2022/lib/header/apps-button/apps-button.component.mjs +40 -120
  10. package/esm2022/lib/header/header.component.mjs +64 -141
  11. package/esm2022/lib/header/language-selector/language-selector.component.mjs +22 -115
  12. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +19 -24
  13. package/esm2022/lib/header/reset-button/reset-button.component.mjs +12 -19
  14. package/esm2022/lib/header/settings-button/settings-button.component.mjs +46 -0
  15. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +16 -39
  16. package/esm2022/lib/header/sign-out/sign-out.component.mjs +17 -28
  17. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +32 -117
  18. package/esm2022/lib/i18n-check.guard.mjs +30 -0
  19. package/esm2022/lib/i18n.service.mjs +36 -0
  20. package/esm2022/lib/language-selector.service.mjs +34 -0
  21. package/esm2022/lib/layout/layout.component.mjs +61 -91
  22. package/esm2022/lib/layout/layout.component.service.mjs +21 -22
  23. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +116 -264
  24. package/esm2022/lib/navigation/navigation-item.mjs +4 -4
  25. package/esm2022/lib/navigation/navigation.component.mjs +46 -106
  26. package/esm2022/lib/navigation/navigation.service.mjs +28 -27
  27. package/esm2022/lib/navigation/replace-router-paths.service.mjs +9 -10
  28. package/esm2022/lib/sidenav/sidenav-footer.directive.mjs +15 -16
  29. package/esm2022/lib/sidenav/sidenav-header.directive.mjs +15 -16
  30. package/esm2022/lib/sidenav/sidenav.component.mjs +29 -121
  31. package/esm2022/lib/sidenav/sidenav.component.service.mjs +8 -9
  32. package/esm2022/lib/sidenav/version/version.component.mjs +14 -48
  33. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +15 -38
  34. package/esm2022/lib/tokens.mjs +1 -1
  35. package/esm2022/lib/types.mjs +1 -1
  36. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +14 -33
  37. package/esm2022/rxap-layout.mjs +1 -1
  38. package/fesm2022/rxap-layout.mjs +824 -1534
  39. package/fesm2022/rxap-layout.mjs.map +1 -1
  40. package/index.d.ts +4 -3
  41. package/lib/app-url.service.d.ts +26 -0
  42. package/lib/footer.directive.d.ts +1 -1
  43. package/lib/header/apps-button/apps-button.component.d.ts +12 -20
  44. package/lib/header/header.component.d.ts +7 -12
  45. package/lib/header/language-selector/language-selector.component.d.ts +1 -16
  46. package/lib/header/settings-button/settings-button.component.d.ts +19 -0
  47. package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +1 -1
  48. package/lib/header/sign-out/sign-out.component.d.ts +4 -4
  49. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +11 -7
  50. package/lib/i18n-check.guard.d.ts +11 -0
  51. package/lib/i18n.service.d.ts +12 -0
  52. package/lib/language-selector.service.d.ts +15 -0
  53. package/lib/layout/layout.component.d.ts +9 -4
  54. package/lib/navigation/navigation-item/navigation-item.component.d.ts +11 -18
  55. package/lib/navigation/navigation-item.d.ts +1 -1
  56. package/lib/navigation/navigation.component.d.ts +6 -6
  57. package/lib/navigation/navigation.service.d.ts +1 -1
  58. package/lib/sidenav/version/version.component.d.ts +2 -2
  59. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +2 -4
  60. package/lib/types.d.ts +3 -2
  61. package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +1 -1
  62. package/package.json +101 -66
  63. package/theme.css +1 -0
  64. package/collection.json +0 -10
  65. package/esm2022/lib/layout/layout.component.module.mjs +0 -32
  66. package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +0 -46
  67. package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +0 -37
  68. package/lib/layout/layout.component.module.d.ts +0 -10
  69. package/lib/sidenav-content/sidenav-content.component.d.ts +0 -12
  70. package/lib/sidenav-content/sidenav-content.component.service.d.ts +0 -15
  71. package/migration.json +0 -4
  72. package/src/schematics/ng-add/index.d.ts +0 -2
  73. package/src/schematics/ng-add/index.js +0 -8
  74. package/src/schematics/ng-add/index.js.map +0 -1
  75. package/src/schematics/ng-add/schema.json +0 -7
package/esm2022/index.mjs CHANGED
@@ -12,7 +12,6 @@ export * from './lib/header/navigation-progress-bar/navigation-progress-bar.comp
12
12
  export * from './lib/header/apps-button/apps-button.component';
13
13
  // endregion
14
14
  // region layout
15
- export * from './lib/layout/layout.component.module';
16
15
  export * from './lib/layout/layout.component';
17
16
  export * from './lib/layout/layout.component.service';
18
17
  // endregion
@@ -30,10 +29,6 @@ export * from './lib/sidenav/sidenav-footer.directive';
30
29
  export * from './lib/sidenav/sidenav.component.service';
31
30
  export * from './lib/sidenav/version/version.component';
32
31
  // endregion
33
- // region sidenav content
34
- export * from './lib/sidenav-content/sidenav-content.component.service';
35
- export * from './lib/sidenav-content/sidenav-content.component';
36
- // endregion
37
32
  // region toggle window sidenav button
38
33
  export * from './lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component';
39
34
  // endregion
@@ -42,4 +37,8 @@ export * from './lib/window-container-sidenav/window-container-sidenav.component
42
37
  // endregion
43
38
  export * from './lib/footer.directive';
44
39
  export * from './lib/types';
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFFN0IsZ0JBQWdCO0FBR2hCLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsWUFBWTtBQUVaLGdCQUFnQjtBQUdoQixjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyw0REFBNEQsQ0FBQztBQUUzRSxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsY0FBYyx3RUFBd0UsQ0FBQztBQUd2RixjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELFlBQVk7QUFFWixnQkFBZ0I7QUFFaEIsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsWUFBWTtBQUVaLG9CQUFvQjtBQUVwQixjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNERBQTRELENBQUM7QUFFM0UsWUFBWTtBQUVaLGlCQUFpQjtBQUdqQixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFHeEQsWUFBWTtBQUVaLHlCQUF5QjtBQUV6QixjQUFjLHlEQUF5RCxDQUFDO0FBRXhFLGNBQWMsaURBQWlELENBQUM7QUFFaEUsWUFBWTtBQUVaLHNDQUFzQztBQUd0QyxjQUFjLDJFQUEyRSxDQUFDO0FBRTFGLFlBQVk7QUFFWixrQ0FBa0M7QUFFbEMsY0FBYyxtRUFBbUUsQ0FBQztBQUdsRixZQUFZO0FBRVosY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5cbi8vIHJlZ2lvbiBmb290ZXJcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gaGVhZGVyXG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL3VzZXItcHJvZmlsZS1pY29uL3VzZXItcHJvZmlsZS1pY29uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9yZXNldC1idXR0b24vcmVzZXQtYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9zaWRlbmF2LXRvZ2dsZS1idXR0b24vc2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9hcHBzLWJ1dHRvbi9hcHBzLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIGxheW91dFxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQuc2VydmljZSc7XG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gbmF2aWdhdGlvblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL3JlcGxhY2Utcm91dGVyLXBhdGhzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi1pdGVtL25hdmlnYXRpb24taXRlbS5jb21wb25lbnQnO1xuXG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIHNpZGVuYXZcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZGVuYXYvc2lkZW5hdi1oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZGVuYXYvc2lkZW5hdi1mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaWRlbmF2L3ZlcnNpb24vdmVyc2lvbi5jb21wb25lbnQnO1xuXG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gc2lkZW5hdiBjb250ZW50XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZGVuYXYtY29udGVudC9zaWRlbmF2LWNvbnRlbnQuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaWRlbmF2LWNvbnRlbnQvc2lkZW5hdi1jb250ZW50LmNvbXBvbmVudCc7XG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gdG9nZ2xlIHdpbmRvdyBzaWRlbmF2IGJ1dHRvblxuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24vdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIHdpbmRvdyBjb250YWluZXIgc2lkZW5hdlxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYvd2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudCc7XG5cblxuLy8gZW5kcmVnaW9uXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvb3Rlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuIl19
40
+ export * from './lib/i18n-check.guard';
41
+ export * from './lib/i18n.service';
42
+ export * from './lib/language-selector.service';
43
+ export * from './lib/app-url.service';
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFFN0IsZ0JBQWdCO0FBR2hCLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsWUFBWTtBQUVaLGdCQUFnQjtBQUdoQixjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyw0REFBNEQsQ0FBQztBQUUzRSxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsY0FBYyx3RUFBd0UsQ0FBQztBQUd2RixjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELFlBQVk7QUFFWixnQkFBZ0I7QUFFaEIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELFlBQVk7QUFFWixvQkFBb0I7QUFFcEIsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDREQUE0RCxDQUFDO0FBRTNFLFlBQVk7QUFFWixpQkFBaUI7QUFHakIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBR3hELFlBQVk7QUFFWixzQ0FBc0M7QUFHdEMsY0FBYywyRUFBMkUsQ0FBQztBQUUxRixZQUFZO0FBRVosa0NBQWtDO0FBRWxDLGNBQWMsbUVBQW1FLENBQUM7QUFHbEYsWUFBWTtBQUVaLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5cbi8vIHJlZ2lvbiBmb290ZXJcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gaGVhZGVyXG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL3VzZXItcHJvZmlsZS1pY29uL3VzZXItcHJvZmlsZS1pY29uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9yZXNldC1idXR0b24vcmVzZXQtYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9zaWRlbmF2LXRvZ2dsZS1idXR0b24vc2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWRlci9hcHBzLWJ1dHRvbi9hcHBzLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vLyBlbmRyZWdpb25cblxuLy8gcmVnaW9uIGxheW91dFxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlJztcblxuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiBuYXZpZ2F0aW9uXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24vcmVwbGFjZS1yb3V0ZXItcGF0aHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gc2lkZW5hdlxuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZW5hdi9zaWRlbmF2LWhlYWRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZW5hdi9zaWRlbmF2LWZvb3Rlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NpZGVuYXYvdmVyc2lvbi92ZXJzaW9uLmNvbXBvbmVudCc7XG5cblxuLy8gZW5kcmVnaW9uXG5cbi8vIHJlZ2lvbiB0b2dnbGUgd2luZG93IHNpZGVuYXYgYnV0dG9uXG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi90b2dnbGUtd2luZG93LXNpZGVuYXYtYnV0dG9uLmNvbXBvbmVudCc7XG5cbi8vIGVuZHJlZ2lvblxuXG4vLyByZWdpb24gd2luZG93IGNvbnRhaW5lciBzaWRlbmF2XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpbmRvdy1jb250YWluZXItc2lkZW5hdi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYuY29tcG9uZW50JztcblxuXG4vLyBlbmRyZWdpb25cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9vdGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pMThuLWNoZWNrLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2kxOG4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW5ndWFnZS1zZWxlY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcC11cmwuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { Inject, Injectable, LOCALE_ID, } from '@angular/core';
2
+ import { RxapUserProfileService } from '@rxap/authentication';
3
+ import { ClickOnLink } from '@rxap/browser-utilities';
4
+ import { ConfigService } from '@rxap/config';
5
+ import { JoinPath } from '@rxap/utilities';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@rxap/config";
8
+ import * as i2 from "@rxap/authentication";
9
+ export class AppUrlService {
10
+ constructor(config, localeId, userProfileService) {
11
+ this.config = config;
12
+ this.localeId = localeId;
13
+ this.userProfileService = userProfileService;
14
+ this._apps = this.config.get('navigation.apps', []);
15
+ }
16
+ getApp(appId) {
17
+ return this._apps.find(app => app.id === appId) ?? null;
18
+ }
19
+ getAppUrl(appId, path) {
20
+ const app = this.getApp(appId);
21
+ if (app) {
22
+ const prefix = this.getPathPrefix();
23
+ return JoinPath(app.href, prefix, path);
24
+ }
25
+ return null;
26
+ }
27
+ navigate(appId, path) {
28
+ const url = this.getAppUrl(appId, path);
29
+ if (url) {
30
+ ClickOnLink(url);
31
+ }
32
+ }
33
+ async getAppList() {
34
+ const roles = await this.userProfileService.getRoleList();
35
+ return this._apps.filter(app => !app.hidden)
36
+ .map(app => ({
37
+ ...app,
38
+ href: JoinPath(app.href, this.getPathPrefix()),
39
+ }))
40
+ .filter(app => !app.permissions ||
41
+ !app.permissions.length ||
42
+ app.permissions.every(permission => roles.includes(permission)));
43
+ }
44
+ getPathPrefix() {
45
+ switch (this.localeId) {
46
+ case 'de-DE':
47
+ return 'de';
48
+ case 'en-US':
49
+ return 'en';
50
+ default:
51
+ return 'de';
52
+ }
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppUrlService, deps: [{ token: i1.ConfigService }, { token: LOCALE_ID }, { token: i2.RxapUserProfileService }], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppUrlService, providedIn: 'root' }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppUrlService, decorators: [{
58
+ type: Injectable,
59
+ args: [{ providedIn: 'root' }]
60
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [LOCALE_ID]
63
+ }] }, { type: i2.RxapUserProfileService }]; } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXVybC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9hcHAtdXJsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQWEzQyxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUNtQixNQUFxQixFQUVyQixRQUFnQixFQUNoQixrQkFBMEM7UUFIMUMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUVyQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBd0I7UUFFM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzFELENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVk7UUFFMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixJQUFJLEdBQUcsRUFBRTtZQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDO0lBRWQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUV6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4QyxJQUFJLEdBQUcsRUFBRTtZQUNQLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjtJQUVILENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2FBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDWCxHQUFHLEdBQUc7WUFDTixJQUFJLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQy9DLENBQUMsQ0FBQzthQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVc7WUFDN0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07WUFDdkIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8sYUFBYTtRQUNuQixRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFFckIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDO1lBRWQsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDO1lBRWQ7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FFZjtJQUNILENBQUM7OEdBakVVLGFBQWEsK0NBTWQsU0FBUztrSEFOUixhQUFhLGNBREEsTUFBTTs7MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFPN0IsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBMT0NBTEVfSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnhhcFVzZXJQcm9maWxlU2VydmljZSB9IGZyb20gJ0ByeGFwL2F1dGhlbnRpY2F0aW9uJztcbmltcG9ydCB7IENsaWNrT25MaW5rIH0gZnJvbSAnQHJ4YXAvYnJvd3Nlci11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQgeyBKb2luUGF0aCB9IGZyb20gJ0ByeGFwL3V0aWxpdGllcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxBcHBzIHtcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGhyZWY6IHN0cmluZztcbiAgZW1wdHk/OiBmYWxzZTtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgaWQ/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBcHBVcmxTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9hcHBzOiBBcnJheTxFeHRlcm5hbEFwcHM+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIEBJbmplY3QoTE9DQUxFX0lEKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQcm9maWxlU2VydmljZTogUnhhcFVzZXJQcm9maWxlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5fYXBwcyA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5hcHBzJywgW10pO1xuICB9XG5cbiAgcHVibGljIGdldEFwcChhcHBJZDogc3RyaW5nKTogRXh0ZXJuYWxBcHBzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FwcHMuZmluZChhcHAgPT4gYXBwLmlkID09PSBhcHBJZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBcHBVcmwoYXBwSWQ6IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG5cbiAgICBjb25zdCBhcHAgPSB0aGlzLmdldEFwcChhcHBJZCk7XG5cbiAgICBpZiAoYXBwKSB7XG4gICAgICBjb25zdCBwcmVmaXggPSB0aGlzLmdldFBhdGhQcmVmaXgoKTtcbiAgICAgIHJldHVybiBKb2luUGF0aChhcHAuaHJlZiwgcHJlZml4LCBwYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcblxuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlKGFwcElkOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRBcHBVcmwoYXBwSWQsIHBhdGgpO1xuXG4gICAgaWYgKHVybCkge1xuICAgICAgQ2xpY2tPbkxpbmsodXJsKTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcHBMaXN0KCk6IFByb21pc2U8QXJyYXk8RXh0ZXJuYWxBcHBzPj4ge1xuICAgIGNvbnN0IHJvbGVzID0gYXdhaXQgdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UuZ2V0Um9sZUxpc3QoKTtcbiAgICByZXR1cm4gdGhpcy5fYXBwcy5maWx0ZXIoYXBwID0+ICFhcHAuaGlkZGVuKVxuICAgICAgICAgICAgICAgLm1hcChhcHAgPT4gKHtcbiAgICAgICAgICAgICAgICAgLi4uYXBwLFxuICAgICAgICAgICAgICAgICBocmVmOiBKb2luUGF0aChhcHAuaHJlZiwgdGhpcy5nZXRQYXRoUHJlZml4KCkpLFxuICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAuZmlsdGVyKGFwcCA9PiAhYXBwLnBlcm1pc3Npb25zIHx8XG4gICAgICAgICAgICAgICAgICFhcHAucGVybWlzc2lvbnMubGVuZ3RoIHx8XG4gICAgICAgICAgICAgICAgIGFwcC5wZXJtaXNzaW9ucy5ldmVyeShwZXJtaXNzaW9uID0+IHJvbGVzLmluY2x1ZGVzKHBlcm1pc3Npb24pKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGhQcmVmaXgoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMubG9jYWxlSWQpIHtcblxuICAgICAgY2FzZSAnZGUtREUnOlxuICAgICAgICByZXR1cm4gJ2RlJztcblxuICAgICAgY2FzZSAnZW4tVVMnOlxuICAgICAgICByZXR1cm4gJ2VuJztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdkZSc7XG5cbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,52 +1,21 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
2
  import { FooterService } from '@rxap/services';
3
3
  import { PortalModule } from '@angular/cdk/portal';
4
4
  import { MatToolbarModule } from '@angular/material/toolbar';
5
- import { NgIf, NgFor, AsyncPipe } from '@angular/common';
5
+ import { AsyncPipe, NgFor, NgIf, } from '@angular/common';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@rxap/services";
8
8
  import * as i2 from "@angular/material/toolbar";
9
9
  import * as i3 from "@angular/cdk/portal";
10
- function FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_ng_template_1_Template(rf, ctx) { }
11
- function FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "mat-toolbar-row");
13
- i0.ɵɵtemplate(1, FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_ng_template_1_Template, 0, 0, "ng-template", 4);
14
- i0.ɵɵelementEnd();
15
- } if (rf & 2) {
16
- const portal_r4 = ctx.$implicit;
17
- i0.ɵɵadvance(1);
18
- i0.ɵɵproperty("cdkPortalOutlet", portal_r4);
19
- } }
20
- function FooterComponent_ng_template_0_mat_toolbar_0_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "mat-toolbar", 2);
22
- i0.ɵɵtemplate(1, FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_Template, 2, 1, "mat-toolbar-row", 3);
23
- i0.ɵɵelementEnd();
24
- } if (rf & 2) {
25
- const portals_r1 = i0.ɵɵnextContext().$implicit;
26
- i0.ɵɵadvance(1);
27
- i0.ɵɵproperty("ngForOf", portals_r1);
28
- } }
29
- function FooterComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵtemplate(0, FooterComponent_ng_template_0_mat_toolbar_0_Template, 2, 1, "mat-toolbar", 1);
31
- } if (rf & 2) {
32
- const portals_r1 = ctx.$implicit;
33
- i0.ɵɵproperty("ngIf", portals_r1.length);
34
- } }
35
- class FooterComponent {
10
+ export class FooterComponent {
36
11
  constructor(footerService) {
37
12
  this.footerService = footerService;
38
13
  }
39
- static { this.ɵfac = function FooterComponent_Factory(t) { return new (t || FooterComponent)(i0.ɵɵdirectiveInject(i1.FooterService)); }; }
40
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FooterComponent, selectors: [["rxap-footer"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 2, vars: 3, consts: [[3, "ngIf"], ["class", "footer mat-elevation-z1", 4, "ngIf"], [1, "footer", "mat-elevation-z1"], [4, "ngFor", "ngForOf"], [3, "cdkPortalOutlet"]], template: function FooterComponent_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵtemplate(0, FooterComponent_ng_template_0_Template, 1, 1, "ng-template", 0);
42
- i0.ɵɵpipe(1, "async");
43
- } if (rf & 2) {
44
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.footerService.portals$));
45
- } }, dependencies: [NgIf, MatToolbarModule, i2.MatToolbar, i2.MatToolbarRow, NgFor, PortalModule, i3.CdkPortalOutlet, AsyncPipe], changeDetection: 0 }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterComponent, deps: [{ token: i1.FooterService }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: FooterComponent, isStandalone: true, selector: "rxap-footer", ngImport: i0, template: "<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i2.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
16
  }
47
- export { FooterComponent };
48
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooterComponent, [{
49
- type: Component,
50
- args: [{ selector: 'rxap-footer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatToolbarModule, NgFor, PortalModule, AsyncPipe], template: "<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n" }]
51
- }], function () { return [{ type: i1.FooterService }]; }, null); })();
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztJQ1RyQix1Q0FBZ0Q7SUFDOUMsOEhBQXNEO0lBQ3hELGlCQUFrQjs7O0lBREgsZUFBMEI7SUFBMUIsMkNBQTBCOzs7SUFGM0Msc0NBQW9FO0lBQ2xFLG9IQUVrQjtJQUNwQixpQkFBYzs7O0lBSHdCLGVBQVU7SUFBVixvQ0FBVTs7O0lBRGhELDhGQUljOzs7SUFKQSx3Q0FBb0I7O0FEWXBDLE1BUWEsZUFBZTtJQUUxQixZQUNrQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUMzQyxDQUFDO2dGQUpPLGVBQWU7b0VBQWYsZUFBZTtZQ3JCNUIsZ0ZBTWM7OztZQU5ELHVFQUF1Qzs0QkRtQi9CLElBQUksRUFBRSxnQkFBZ0IsbUNBQUUsS0FBSyxFQUFFLFlBQVksc0JBQUUsU0FBUzs7U0FFOUQsZUFBZTt1RkFBZixlQUFlO2NBUjNCLFNBQVM7MkJBQ1MsYUFBYSxtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLGNBQzlCLElBQUksV0FDSixDQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXJTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQge1xuICBOZ0lmLFxuICBOZ0ZvcixcbiAgQXN5bmNQaXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogICAgICAgICdyeGFwLWZvb3RlcicsXG4gIHRlbXBsYXRlVXJsOiAgICAgJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiAgICAgICBbICcuL2Zvb3Rlci5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6ICAgICAgdHJ1ZSxcbiAgaW1wb3J0czogICAgICAgICBbIE5nSWYsIE1hdFRvb2xiYXJNb2R1bGUsIE5nRm9yLCBQb3J0YWxNb2R1bGUsIEFzeW5jUGlwZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZvb3RlckNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGZvb3RlclNlcnZpY2U6IEZvb3RlclNlcnZpY2VcbiAgKSB7fVxuXG59XG4iLCI8bmctdGVtcGxhdGUgW25nSWZdPVwiZm9vdGVyU2VydmljZS5wb3J0YWxzJCB8IGFzeW5jXCIgbGV0LXBvcnRhbHM+XG4gIDxtYXQtdG9vbGJhciAqbmdJZj1cInBvcnRhbHMubGVuZ3RoXCIgY2xhc3M9XCJmb290ZXIgbWF0LWVsZXZhdGlvbi16MVwiPlxuICAgIDxtYXQtdG9vbGJhci1yb3cgKm5nRm9yPVwibGV0IHBvcnRhbCBvZiBwb3J0YWxzXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbWF0LXRvb2xiYXItcm93PlxuICA8L21hdC10b29sYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'rxap-footer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatToolbarModule, NgFor, PortalModule, AsyncPipe], template: "<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n" }]
20
+ }], ctorParameters: function () { return [{ type: i1.FooterService }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFVekIsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDa0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFFOUMsQ0FBQzs4R0FMVSxlQUFlO2tHQUFmLGVBQWUsdUVDckI1QixxVUFPQSwwRERZYSxJQUFJLDRGQUFFLGdCQUFnQiwwUEFBRSxLQUFLLGtIQUFFLFlBQVksNkxBQUUsU0FBUzs7MkZBRXRELGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9vdGVyU2VydmljZSB9IGZyb20gJ0ByeGFwL3NlcnZpY2VzJztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0ZvcixcbiAgTmdJZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2Zvb3Rlci5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgTmdJZiwgTWF0VG9vbGJhck1vZHVsZSwgTmdGb3IsIFBvcnRhbE1vZHVsZSwgQXN5bmNQaXBlIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvb3RlckNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGZvb3RlclNlcnZpY2U6IEZvb3RlclNlcnZpY2UsXG4gICkge1xuICB9XG5cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJmb290ZXJTZXJ2aWNlLnBvcnRhbHMkIHwgYXN5bmNcIiBsZXQtcG9ydGFscz5cbiAgPG1hdC10b29sYmFyICpuZ0lmPVwicG9ydGFscy5sZW5ndGhcIiBjbGFzcz1cImZvb3RlciBtYXQtZWxldmF0aW9uLXoxXCI+XG4gICAgPG1hdC10b29sYmFyLXJvdyAqbmdGb3I9XCJsZXQgcG9ydGFsIG9mIHBvcnRhbHNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtdG9vbGJhci1yb3c+XG4gIDwvbWF0LXRvb2xiYXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,9 +1,9 @@
1
- import { Directive, TemplateRef, ViewContainerRef, Inject } from '@angular/core';
1
+ import { Directive, Inject, TemplateRef, ViewContainerRef, } from '@angular/core';
2
2
  import { FooterService } from '@rxap/services';
3
3
  import { TemplatePortal } from '@angular/cdk/portal';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@rxap/services";
6
- class FooterDirective {
6
+ export class FooterDirective {
7
7
  constructor(footerService, template, viewContainerRef) {
8
8
  this.footerService = footerService;
9
9
  this.template = template;
@@ -18,24 +18,23 @@ class FooterDirective {
18
18
  this.footerService.removePortal(this._portal);
19
19
  }
20
20
  }
21
- static { this.ɵfac = function FooterDirective_Factory(t) { return new (t || FooterDirective)(i0.ɵɵdirectiveInject(FooterService), i0.ɵɵdirectiveInject(TemplateRef), i0.ɵɵdirectiveInject(ViewContainerRef)); }; }
22
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FooterDirective, selectors: [["", "rxapFooter", ""]], standalone: true }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterDirective, deps: [{ token: FooterService }, { token: TemplateRef }, { token: ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: FooterDirective, isStandalone: true, selector: "[rxapFooter]", ngImport: i0 }); }
23
23
  }
24
- export { FooterDirective };
25
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooterDirective, [{
26
- type: Directive,
27
- args: [{
28
- selector: '[rxapFooter]',
29
- standalone: true
30
- }]
31
- }], function () { return [{ type: i1.FooterService, decorators: [{
32
- type: Inject,
33
- args: [FooterService]
34
- }] }, { type: i0.TemplateRef, decorators: [{
35
- type: Inject,
36
- args: [TemplateRef]
37
- }] }, { type: i0.ViewContainerRef, decorators: [{
38
- type: Inject,
39
- args: [ViewContainerRef]
40
- }] }]; }, null); })();
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvZm9vdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUVyRCxNQUlhLGVBQWU7SUFHMUIsWUFFbUIsYUFBNEIsRUFFNUIsUUFBMkIsRUFFM0IsZ0JBQWtDO1FBSmxDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRTVCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBRTNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDbEQsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxDQUMvQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztnRkF4QlUsZUFBZSx1QkFJaEIsYUFBYSx3QkFFYixXQUFXLHdCQUVYLGdCQUFnQjtvRUFSZixlQUFlOztTQUFmLGVBQWU7dUZBQWYsZUFBZTtjQUozQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFJLGNBQWM7Z0JBQzFCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCOztzQkFLSSxNQUFNO3VCQUFDLGFBQWE7O3NCQUVwQixNQUFNO3VCQUFDLFdBQVc7O3NCQUVsQixNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXJTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAgICdbcnhhcEZvb3Rlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEZvb3RlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfcG9ydGFsPzogVGVtcGxhdGVQb3J0YWw8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGb290ZXJTZXJ2aWNlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9vdGVyU2VydmljZTogRm9vdGVyU2VydmljZSxcbiAgICBASW5qZWN0KFRlbXBsYXRlUmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+LFxuICAgIEBJbmplY3QoVmlld0NvbnRhaW5lclJlZilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWw8dm9pZD4oXG4gICAgICB0aGlzLnRlbXBsYXRlLFxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmXG4gICAgKTtcbiAgICB0aGlzLmZvb3RlclNlcnZpY2UucHVzaFBvcnRhbCh0aGlzLl9wb3J0YWwpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9wb3J0YWwpIHtcbiAgICAgIHRoaXMuZm9vdGVyU2VydmljZS5yZW1vdmVQb3J0YWwodGhpcy5fcG9ydGFsKTtcbiAgICB9XG4gIH1cbn1cblxuXG4iXX0=
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ selector: '[rxapFooter]',
28
+ standalone: true,
29
+ }]
30
+ }], ctorParameters: function () { return [{ type: i1.FooterService, decorators: [{
31
+ type: Inject,
32
+ args: [FooterService]
33
+ }] }, { type: i0.TemplateRef, decorators: [{
34
+ type: Inject,
35
+ args: [TemplateRef]
36
+ }] }, { type: i0.ViewContainerRef, decorators: [{
37
+ type: Inject,
38
+ args: [ViewContainerRef]
39
+ }] }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvZm9vdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFHTixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU1yRCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUVtQixhQUE0QixFQUU1QixRQUEyQixFQUUzQixnQkFBa0M7UUFKbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFNUIsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFFM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUVyRCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQy9CLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDOzhHQXpCVSxlQUFlLGtCQUloQixhQUFhLGFBRWIsV0FBVyxhQUVYLGdCQUFnQjtrR0FSZixlQUFlOzsyRkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUtJLE1BQU07MkJBQUMsYUFBYTs7MEJBRXBCLE1BQU07MkJBQUMsV0FBVzs7MEJBRWxCLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXJTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3J4YXBGb290ZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9wb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbDx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZvb3RlclNlcnZpY2UpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb290ZXJTZXJ2aWNlOiBGb290ZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoVGVtcGxhdGVSZWYpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD4sXG4gICAgQEluamVjdChWaWV3Q29udGFpbmVyUmVmKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsPHZvaWQ+KFxuICAgICAgdGhpcy50ZW1wbGF0ZSxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICAgIHRoaXMuZm9vdGVyU2VydmljZS5wdXNoUG9ydGFsKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX3BvcnRhbCkge1xuICAgICAgdGhpcy5mb290ZXJTZXJ2aWNlLnJlbW92ZVBvcnRhbCh0aGlzLl9wb3J0YWwpO1xuICAgIH1cbiAgfVxufVxuXG5cbiJdfQ==
@@ -1,128 +1,48 @@
1
- import { Component, ChangeDetectionStrategy, Inject, Optional } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Inject, Optional, signal, } from '@angular/core';
2
2
  import { RXAP_LAYOUT_APPS_GRID } from '../../tokens';
3
- import { ConfigService } from '@rxap/config';
4
- import { FlexModule } from '@angular/flex-layout/flex';
5
- import { ExtendedModule } from '@angular/flex-layout/extended';
6
3
  import { MatIconModule } from '@angular/material/icon';
7
- import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
8
4
  import { MatButtonModule } from '@angular/material/button';
9
- import { NgIf, NgStyle, NgFor, NgClass } from '@angular/common';
5
+ import { FlexModule } from '@angular/flex-layout/flex';
6
+ import { NgFor, NgIf, NgOptimizedImage, } from '@angular/common';
7
+ import { AppUrlService, } from '../../app-url.service';
8
+ import { RxapAuthenticationService } from '@rxap/authentication';
9
+ import { switchMap, } from 'rxjs';
10
+ import { filter, tap, } from 'rxjs/operators';
10
11
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/material/button";
12
- import * as i2 from "@angular/material/icon";
13
- import * as i3 from "@angular/flex-layout/extended";
14
- import * as i4 from "@angular/flex-layout/flex";
15
- import * as i5 from "@rxap/config";
16
- function AppsButtonComponent_ng_template_0_ng_template_4_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
17
- i0.ɵɵelementStart(0, "a", 9)(1, "span", 10);
18
- i0.ɵɵelement(2, "img", 11);
19
- i0.ɵɵelementStart(3, "span");
20
- i0.ɵɵtext(4);
21
- i0.ɵɵelementEnd()()();
22
- } if (rf & 2) {
23
- const item_r4 = i0.ɵɵnextContext().$implicit;
24
- i0.ɵɵproperty("href", item_r4.href, i0.ɵɵsanitizeUrl);
25
- i0.ɵɵadvance(2);
26
- i0.ɵɵproperty("src", item_r4.image, i0.ɵɵsanitizeUrl);
27
- i0.ɵɵadvance(2);
28
- i0.ɵɵtextInterpolate(item_r4.label);
29
- } }
30
- const _c0 = function (a0) { return { empty: a0 }; };
31
- function AppsButtonComponent_ng_template_0_ng_template_4_li_2_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelementStart(0, "li", 7);
33
- i0.ɵɵtemplate(1, AppsButtonComponent_ng_template_0_ng_template_4_li_2_a_1_Template, 5, 3, "a", 8);
34
- i0.ɵɵelementEnd();
35
- } if (rf & 2) {
36
- const item_r4 = ctx.$implicit;
37
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0, item_r4.empty));
38
- i0.ɵɵadvance(1);
39
- i0.ɵɵproperty("ngIf", !item_r4.empty);
40
- } }
41
- const _c1 = function (a0) { return { columns: a0 }; };
42
- function AppsButtonComponent_ng_template_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
43
- i0.ɵɵelementStart(0, "div", 4)(1, "ul", 5);
44
- i0.ɵɵtemplate(2, AppsButtonComponent_ng_template_0_ng_template_4_li_2_Template, 2, 4, "li", 6);
45
- i0.ɵɵelementEnd()();
46
- } if (rf & 2) {
47
- const ctx_r2 = i0.ɵɵnextContext(2);
48
- i0.ɵɵadvance(1);
49
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c1, ctx_r2.columns));
50
- i0.ɵɵadvance(1);
51
- i0.ɵɵproperty("ngForOf", ctx_r2.gridWithPadding);
52
- } }
53
- function AppsButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
54
- const _r8 = i0.ɵɵgetCurrentView();
55
- i0.ɵɵelementStart(0, "button", 1, 2);
56
- i0.ɵɵlistener("click", function AppsButtonComponent_ng_template_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.isOpen = !ctx_r7.isOpen); });
57
- i0.ɵɵelementStart(2, "mat-icon");
58
- i0.ɵɵtext(3, "apps");
59
- i0.ɵɵelementEnd()();
60
- i0.ɵɵtemplate(4, AppsButtonComponent_ng_template_0_ng_template_4_Template, 3, 4, "ng-template", 3);
61
- i0.ɵɵlistener("overlayOutsideClick", function AppsButtonComponent_ng_template_0_Template_ng_template_overlayOutsideClick_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.isOpen = false); });
62
- } if (rf & 2) {
63
- const _r1 = i0.ɵɵreference(1);
64
- const ctx_r0 = i0.ɵɵnextContext();
65
- i0.ɵɵadvance(4);
66
- i0.ɵɵproperty("cdkConnectedOverlayOpen", ctx_r0.isOpen)("cdkConnectedOverlayOrigin", _r1);
67
- } }
68
- class AppsButtonComponent {
69
- get gridWithPadding() {
70
- const gridWithPadding = this.grid.slice();
71
- while (gridWithPadding.length % this.columns !== 0) {
72
- gridWithPadding.push({ empty: true });
73
- }
74
- return gridWithPadding;
12
+ import * as i1 from "../../app-url.service";
13
+ import * as i2 from "@rxap/authentication";
14
+ import * as i3 from "@angular/material/button";
15
+ import * as i4 from "@angular/material/icon";
16
+ export class AppsButtonComponent {
17
+ constructor(grid, appUrlService, authenticationService) {
18
+ this.appUrlService = appUrlService;
19
+ this.authenticationService = authenticationService;
20
+ this.isOpen = false;
21
+ this.appList = signal([]);
75
22
  }
76
- get columns() {
77
- if (this.grid.length < 4) {
78
- return 1;
79
- }
80
- if (this.grid.length < 6) {
81
- return 2;
82
- }
83
- return 3;
23
+ ngOnInit() {
24
+ this._subscription = this.authenticationService.isAuthenticated$.pipe(filter(Boolean), switchMap(() => this.appUrlService.getAppList()), tap((apps) => this.appList.set(apps))).subscribe();
84
25
  }
85
- constructor(grid, config) {
86
- this.config = config;
87
- this.isOpen = false;
88
- this.grid = [];
89
- this.grid = grid ?? this.config.get('navigation.apps') ?? [];
26
+ ngOnDestroy() {
27
+ this._subscription?.unsubscribe();
90
28
  }
91
- static { this.ɵfac = function AppsButtonComponent_Factory(t) { return new (t || AppsButtonComponent)(i0.ɵɵdirectiveInject(RXAP_LAYOUT_APPS_GRID, 8), i0.ɵɵdirectiveInject(ConfigService)); }; }
92
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AppsButtonComponent, selectors: [["rxap-apps-button"]], hostAttrs: [1, "rxap-apps-button"], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [[3, "ngIf"], ["cdkOverlayOrigin", "", "mat-icon-button", "", 3, "click"], ["trigger", "cdkOverlayOrigin"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayOpen", "cdkConnectedOverlayOrigin", "overlayOutsideClick"], [1, "grid-container"], [1, "grid", 3, "ngStyle"], [3, "ngClass", 4, "ngFor", "ngForOf"], [3, "ngClass"], [3, "href", 4, "ngIf"], [3, "href"], ["fxLayout", "column", "fxLayoutAlign", "start center", "fxLayoutGap", "12px"], ["width", "53px", 3, "src"]], template: function AppsButtonComponent_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵtemplate(0, AppsButtonComponent_ng_template_0_Template, 5, 2, "ng-template", 0);
94
- } if (rf & 2) {
95
- i0.ɵɵproperty("ngIf", ctx.grid && ctx.grid.length);
96
- } }, dependencies: [NgIf,
97
- MatButtonModule, i1.MatIconButton, CdkOverlayOrigin,
98
- MatIconModule, i2.MatIcon, CdkConnectedOverlay,
99
- ExtendedModule, i3.DefaultClassDirective, i3.DefaultStyleDirective, NgStyle,
100
- NgFor,
101
- NgClass,
102
- FlexModule, i4.DefaultLayoutDirective, i4.DefaultLayoutGapDirective, i4.DefaultLayoutAlignDirective], styles: [".grid-container[_ngcontent-%COMP%]{padding:8px;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 1px 2px #3c40434d,0 2px 6px 2px #3c404326}.grid[_ngcontent-%COMP%]{list-style-type:none;margin:0;padding:0}.grid[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{border-radius:8px;padding:6px;height:84px;width:84px;transition-delay:0s;transition-duration:.2s;transition-property:tramsform;transition-timing-function:cubic-bezier(.333,0,0,1);position:relative}.grid[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{position:absolute;inset:6px;text-align:center;text-decoration:none;color:#000}"], changeDetection: 0 }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppsButtonComponent, deps: [{ token: RXAP_LAYOUT_APPS_GRID, optional: true }, { token: i1.AppUrlService }, { token: i2.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: AppsButtonComponent, isStandalone: true, selector: "rxap-apps-button", ngImport: i0, template: "<div *ngIf=\"appList()?.length\" class=\"flex flex-row items-center gap-8\">\n\n <div *ngIf=\"isOpen\" class=\"flex flex-row items-center gap-6\">\n\n <div *ngFor=\"let app of appList()\" class=\"h-10\">\n <a [href]=\"app.href\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n <img *ngIf=\"app.image\" [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n <span class=\"label grow-0\">{{app.label}}</span>\n </span>\n </a>\n </div>\n\n </div>\n\n <button (click)=\"isOpen = !isOpen\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
31
  }
104
- export { AppsButtonComponent };
105
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppsButtonComponent, [{
106
- type: Component,
107
- args: [{ selector: 'rxap-apps-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-apps-button' }, standalone: true, imports: [
108
- NgIf,
109
- MatButtonModule,
110
- CdkOverlayOrigin,
111
- MatIconModule,
112
- CdkConnectedOverlay,
113
- ExtendedModule,
114
- NgStyle,
115
- NgFor,
116
- NgClass,
117
- FlexModule
118
- ], template: "<ng-template [ngIf]=\"grid && grid.length\">\n <button #trigger=\"cdkOverlayOrigin\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n <ng-template (overlayOutsideClick)=\"isOpen = false\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n cdkConnectedOverlay>\n\n <div class=\"grid-container\">\n\n <ul [ngStyle]=\"{ columns: columns }\" class=\"grid\">\n <li *ngFor=\"let item of gridWithPadding\" [ngClass]=\"{ empty: item.empty }\">\n <a *ngIf=\"!item.empty\" [href]=\"item.href\">\n\n <span fxLayout=\"column\" fxLayoutAlign=\"start center\" fxLayoutGap=\"12px\">\n <img [src]=\"item.image\" width=\"53px\">\n <span>{{item.label}}</span>\n </span>\n\n </a>\n </li>\n </ul>\n\n </div>\n\n </ng-template>\n</ng-template>\n", styles: [".grid-container{padding:8px;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 1px 2px #3c40434d,0 2px 6px 2px #3c404326}.grid{list-style-type:none;margin:0;padding:0}.grid li{border-radius:8px;padding:6px;height:84px;width:84px;transition-delay:0s;transition-duration:.2s;transition-property:tramsform;transition-timing-function:cubic-bezier(.333,0,0,1);position:relative}.grid li a{position:absolute;inset:6px;text-align:center;text-decoration:none;color:#000}\n"] }]
119
- }], function () { return [{ type: undefined, decorators: [{
120
- type: Optional
121
- }, {
122
- type: Inject,
123
- args: [RXAP_LAYOUT_APPS_GRID]
124
- }] }, { type: i5.ConfigService, decorators: [{
125
- type: Inject,
126
- args: [ConfigService]
127
- }] }]; }, null); })();
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvYXBwcy1idXR0b24vYXBwcy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvYXBwcy1idXR0b24vYXBwcy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNwQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsSUFBSSxFQUNKLE9BQU8sRUFDUCxLQUFLLEVBQ0wsT0FBTyxFQUNSLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0lDUGYsNEJBQTBDLGVBQUE7SUFHMUMsMEJBQXFDO0lBQ3JDLDRCQUFNO0lBQUEsWUFBYztJQUFBLGlCQUFPLEVBQUEsRUFBQTs7O0lBSkoscURBQWtCO0lBR3BDLGVBQWtCO0lBQWxCLHFEQUFrQjtJQUNqQixlQUFjO0lBQWQsbUNBQWM7Ozs7SUFMdEIsNkJBQTJFO0lBQ3pFLGlHQU9JO0lBQ04saUJBQUs7OztJQVRvQyxtRUFBaUM7SUFDcEUsZUFBaUI7SUFBakIscUNBQWlCOzs7O0lBSjNCLDhCQUE0QixZQUFBO0lBR3hCLDhGQVNLO0lBQ1AsaUJBQUssRUFBQTs7O0lBWEQsZUFBZ0M7SUFBaEMsb0VBQWdDO0lBQ2IsZUFBa0I7SUFBbEIsZ0RBQWtCOzs7O0lBWjdDLG9DQUFnRztJQUE1RCwwTkFBMEI7SUFDNUQsZ0NBQVU7SUFBQSxvQkFBSTtJQUFBLGlCQUFXLEVBQUE7SUFHM0Isa0dBc0JjO0lBdEJELHdPQUFnQyxLQUFLLEtBQUM7Ozs7SUFDdEMsZUFBa0M7SUFBbEMsdURBQWtDLGtDQUFBOztBRCtCakQsTUFvQmEsbUJBQW1CO0lBQzlCLElBQVcsZUFBZTtRQUd4QixNQUFNLGVBQWUsR0FDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixPQUFPLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUU7WUFDbEQsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUtELFlBR0UsSUFBUyxFQUVRLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFSakMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFNBQUksR0FBOEIsRUFBRSxDQUFDO1FBUzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7b0ZBakNVLG1CQUFtQix1QkEyQnBCLHFCQUFxQiwyQkFFckIsYUFBYTtvRUE3QlosbUJBQW1CO1lDekRoQyxvRkE0QmM7O1lBNUJELGtEQUE0Qjs0QkQ2Q3JDLElBQUk7WUFDSixlQUFlLG9CQUNmLGdCQUFnQjtZQUNoQixhQUFhLGNBQ2IsbUJBQW1CO1lBQ25CLGNBQWMsc0RBQ2QsT0FBTztZQUNQLEtBQUs7WUFDTCxPQUFPO1lBQ1AsVUFBVTs7U0FHRCxtQkFBbUI7dUZBQW5CLG1CQUFtQjtjQXBCL0IsU0FBUzsyQkFDUyxrQkFBa0IsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sUUFDOUIsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsY0FDN0IsSUFBSSxXQUNaO29CQUNQLElBQUk7b0JBQ0osZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLE9BQU87b0JBQ1AsS0FBSztvQkFDTCxPQUFPO29CQUNQLFVBQVU7aUJBQ1g7O3NCQTRCRSxRQUFROztzQkFDUixNQUFNO3VCQUFDLHFCQUFxQjs7c0JBRTVCLE1BQU07dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEluamVjdCxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSWEFQX0xBWU9VVF9BUFBTX0dSSUQgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQvZmxleCc7XG5pbXBvcnQgeyBFeHRlbmRlZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0L2V4dGVuZGVkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7XG4gIENka092ZXJsYXlPcmlnaW4sXG4gIENka0Nvbm5lY3RlZE92ZXJsYXlcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7XG4gIE5nSWYsXG4gIE5nU3R5bGUsXG4gIE5nRm9yLFxuICBOZ0NsYXNzXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwc0J1dHRvbkdyaWRJdGVtIHtcbiAgaW1hZ2U6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBlbXB0eT86IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtcHR5QXBwc0J1dHRvbkdyaWRJdGVtIHtcbiAgZW1wdHk6IHRydWU7XG4gIGhyZWY/OiB1bmRlZmluZWQ7XG4gIGxhYmVsPzogdW5kZWZpbmVkO1xuICBpbWFnZT86IHVuZGVmaW5lZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAgICAgICAgJ3J4YXAtYXBwcy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogICAgICcuL2FwcHMtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiAgICAgICBbICcuL2FwcHMtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogICAgICAgICAgICB7IGNsYXNzOiAncnhhcC1hcHBzLWJ1dHRvbicgfSxcbiAgc3RhbmRhbG9uZTogICAgICB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgRXh0ZW5kZWRNb2R1bGUsXG4gICAgTmdTdHlsZSxcbiAgICBOZ0ZvcixcbiAgICBOZ0NsYXNzLFxuICAgIEZsZXhNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBzQnV0dG9uQ29tcG9uZW50IHtcbiAgcHVibGljIGdldCBncmlkV2l0aFBhZGRpbmcoKTogQXJyYXk8XG4gICAgQXBwc0J1dHRvbkdyaWRJdGVtIHwgRW1wdHlBcHBzQnV0dG9uR3JpZEl0ZW1cbiAgPiB7XG4gICAgY29uc3QgZ3JpZFdpdGhQYWRkaW5nOiBBcnJheTxBcHBzQnV0dG9uR3JpZEl0ZW0gfCBFbXB0eUFwcHNCdXR0b25HcmlkSXRlbT4gPVxuICAgICAgdGhpcy5ncmlkLnNsaWNlKCk7XG4gICAgd2hpbGUgKGdyaWRXaXRoUGFkZGluZy5sZW5ndGggJSB0aGlzLmNvbHVtbnMgIT09IDApIHtcbiAgICAgIGdyaWRXaXRoUGFkZGluZy5wdXNoKHsgZW1wdHk6IHRydWUgfSk7XG4gICAgfVxuICAgIHJldHVybiBncmlkV2l0aFBhZGRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZC5sZW5ndGggPCA0KSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JpZC5sZW5ndGggPCA2KSB7XG4gICAgICByZXR1cm4gMjtcbiAgICB9XG4gICAgcmV0dXJuIDM7XG4gIH1cblxuICBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XG4gIHB1YmxpYyBncmlkOiBBcnJheTxBcHBzQnV0dG9uR3JpZEl0ZW0+ID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFJYQVBfTEFZT1VUX0FQUFNfR1JJRClcbiAgICBncmlkOiBhbnksXG4gICAgQEluamVjdChDb25maWdTZXJ2aWNlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZ3JpZCA9IGdyaWQgPz8gdGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLmFwcHMnKSA/PyBbXTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyaWQgJiYgZ3JpZC5sZW5ndGhcIj5cbiAgPGJ1dHRvbiAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIiAoY2xpY2spPVwiaXNPcGVuID0gIWlzT3BlblwiIGNka092ZXJsYXlPcmlnaW4gbWF0LWljb24tYnV0dG9uPlxuICAgIDxtYXQtaWNvbj5hcHBzPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPG5nLXRlbXBsYXRlIChvdmVybGF5T3V0c2lkZUNsaWNrKT1cImlzT3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW5cIlxuICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gICAgICAgICAgICAgICBjZGtDb25uZWN0ZWRPdmVybGF5PlxuXG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCI+XG5cbiAgICAgIDx1bCBbbmdTdHlsZV09XCJ7IGNvbHVtbnM6IGNvbHVtbnMgfVwiIGNsYXNzPVwiZ3JpZFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JpZFdpdGhQYWRkaW5nXCIgW25nQ2xhc3NdPVwieyBlbXB0eTogaXRlbS5lbXB0eSB9XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCIhaXRlbS5lbXB0eVwiIFtocmVmXT1cIml0ZW0uaHJlZlwiPlxuXG4gICAgICAgIDxzcGFuIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMTJweFwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmltYWdlXCIgd2lkdGg9XCI1M3B4XCI+XG4gICAgICAgICAgPHNwYW4+e3tpdGVtLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG5cbiAgICA8L2Rpdj5cblxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppsButtonComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'rxap-apps-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
35
+ NgIf,
36
+ FlexModule,
37
+ NgFor,
38
+ MatButtonModule,
39
+ MatIconModule,
40
+ NgOptimizedImage,
41
+ ], template: "<div *ngIf=\"appList()?.length\" class=\"flex flex-row items-center gap-8\">\n\n <div *ngIf=\"isOpen\" class=\"flex flex-row items-center gap-6\">\n\n <div *ngFor=\"let app of appList()\" class=\"h-10\">\n <a [href]=\"app.href\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n <img *ngIf=\"app.image\" [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n <span class=\"label grow-0\">{{app.label}}</span>\n </span>\n </a>\n </div>\n\n </div>\n\n <button (click)=\"isOpen = !isOpen\" mat-icon-button>\n <mat-icon svgIcon=\"apps\"></mat-icon>\n </button>\n\n</div>\n" }]
42
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
43
+ type: Optional
44
+ }, {
45
+ type: Inject,
46
+ args: [RXAP_LAYOUT_APPS_GRID]
47
+ }] }, { type: i1.AppUrlService }, { type: i2.RxapAuthenticationService }]; } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvYXBwcy1idXR0b24vYXBwcy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvYXBwcy1idXR0b24vYXBwcy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUdOLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxLQUFLLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixHQUNqQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxhQUFhLEdBRWQsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBRUwsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBaUJ4QixNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBR0ksSUFBUyxFQUNNLGFBQTRCLEVBQzVCLHFCQUFnRDtRQURoRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBWDVELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFTixZQUFPLEdBQUcsTUFBTSxDQUFzQixFQUFFLENBQUMsQ0FBQztJQVV2RCxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDbkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdEMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0F6QlUsbUJBQW1CLGtCQVNwQixxQkFBcUI7a0dBVHBCLG1CQUFtQiw0RUMvQ2hDLDBwQkFvQkEsMEREbUJJLElBQUksNEZBQ0osVUFBVSwrQkFDVixLQUFLLGtIQUNMLGVBQWUsb2FBQ2YsYUFBYSxvTEFDYixnQkFBZ0I7OzJGQUdQLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixVQUFVO3dCQUNWLEtBQUs7d0JBQ0wsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakI7OzBCQVVFLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSWEFQX0xBWU9VVF9BUFBTX0dSSUQgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dC9mbGV4JztcbmltcG9ydCB7XG4gIE5nRm9yLFxuICBOZ0lmLFxuICBOZ09wdGltaXplZEltYWdlLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXBwVXJsU2VydmljZSxcbiAgRXh0ZXJuYWxBcHBzLFxufSBmcm9tICcuLi8uLi9hcHAtdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0ByeGFwL2F1dGhlbnRpY2F0aW9uJztcbmltcG9ydCB7XG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtYXBwcy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwcy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vYXBwcy1idXR0b24uY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBGbGV4TW9kdWxlLFxuICAgIE5nRm9yLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwcHNCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXBwTGlzdCA9IHNpZ25hbDxBcnJheTxFeHRlcm5hbEFwcHM+PihbXSk7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChSWEFQX0xBWU9VVF9BUFBTX0dSSUQpXG4gICAgICBncmlkOiBhbnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBVcmxTZXJ2aWNlOiBBcHBVcmxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBSeGFwQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJC5waXBlKFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYXBwVXJsU2VydmljZS5nZXRBcHBMaXN0KCkpLFxuICAgICAgdGFwKChhcHBzKSA9PiB0aGlzLmFwcExpc3Quc2V0KGFwcHMpKSxcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJhcHBMaXN0KCk/Lmxlbmd0aFwiIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNlwiPlxuXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYXBwIG9mIGFwcExpc3QoKVwiIGNsYXNzPVwiaC0xMFwiPlxuICAgICAgPGEgW2hyZWZdPVwiYXBwLmhyZWZcIiBtYXQtc3Ryb2tlZC1idXR0b24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwiYXBwLmltYWdlXCIgW2FsdF09XCJhcHAubGFiZWxcIiBbbmdTcmNdPVwiYXBwLmltYWdlXCIgaGVpZ2h0PVwiNDBcIiB3aWR0aD1cIjQwXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBncm93LTBcIj57e2FwcC5sYWJlbH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiaXNPcGVuID0gIWlzT3BlblwiIG1hdC1pY29uLWJ1dHRvbj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImFwcHNcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuPC9kaXY+XG4iXX0=