@rxap/layout 13.0.0 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/esm2020/lib/footer/footer.component.mjs +4 -4
  2. package/esm2020/lib/footer/footer.component.module.mjs +4 -6
  3. package/esm2020/lib/header/apps-button/apps-button.component.mjs +9 -9
  4. package/esm2020/lib/header/apps-button/apps-button.component.module.mjs +8 -10
  5. package/esm2020/lib/header/header.component.mjs +11 -11
  6. package/esm2020/lib/header/header.component.module.mjs +14 -16
  7. package/esm2020/lib/header/language-selector/language-selector.component.mjs +8 -8
  8. package/esm2020/lib/header/language-selector/language-selector.component.module.mjs +4 -6
  9. package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +4 -4
  10. package/esm2020/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +3 -5
  11. package/esm2020/lib/header/reset-button/reset-button.component.mjs +4 -4
  12. package/esm2020/lib/header/reset-button/reset-button.component.module.mjs +3 -5
  13. package/esm2020/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +5 -5
  14. package/esm2020/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.mjs +4 -6
  15. package/esm2020/lib/header/sign-out/sign-out.component.mjs +4 -4
  16. package/esm2020/lib/header/sign-out/sign-out.component.module.mjs +4 -6
  17. package/esm2020/lib/header/user-profile-icon/user-profile-icon.component.mjs +6 -6
  18. package/esm2020/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +6 -8
  19. package/esm2020/lib/layout/layout.component.mjs +9 -9
  20. package/esm2020/lib/layout/layout.component.module.mjs +11 -13
  21. package/esm2020/lib/navigation/navigation-item/navigation-item.component.mjs +2 -2
  22. package/esm2020/lib/navigation/navigation.component.mjs +5 -5
  23. package/esm2020/lib/navigation/navigation.component.module.mjs +20 -22
  24. package/esm2020/lib/sidenav/sidenav.component.mjs +8 -8
  25. package/esm2020/lib/sidenav/sidenav.component.module.mjs +7 -9
  26. package/esm2020/lib/sidenav/version/version.component.mjs +2 -2
  27. package/esm2020/lib/sidenav/version/version.component.module.mjs +3 -5
  28. package/esm2020/lib/sidenav-content/sidenav-content.component.mjs +2 -2
  29. package/esm2020/lib/sidenav-content/sidenav-content.component.module.mjs +3 -5
  30. package/esm2020/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +3 -3
  31. package/esm2020/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.mjs +4 -6
  32. package/esm2020/lib/window-container-sidenav/window-container-sidenav.component.mjs +1 -1
  33. package/esm2020/lib/window-container-sidenav/window-container-sidenav.component.module.mjs +4 -6
  34. package/fesm2015/rxap-layout.mjs +456 -488
  35. package/fesm2015/rxap-layout.mjs.map +1 -1
  36. package/fesm2020/rxap-layout.mjs +415 -447
  37. package/fesm2020/rxap-layout.mjs.map +1 -1
  38. package/lib/footer/footer.component.d.ts +1 -1
  39. package/lib/footer.directive.d.ts +1 -1
  40. package/lib/header/apps-button/apps-button.component.d.ts +1 -1
  41. package/lib/header/header.component.d.ts +1 -1
  42. package/lib/header/language-selector/language-selector.component.d.ts +1 -1
  43. package/lib/header/navigation-progress-bar/navigation-progress-bar.component.d.ts +1 -1
  44. package/lib/header/reset-button/reset-button.component.d.ts +1 -1
  45. package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +1 -1
  46. package/lib/header/sign-out/sign-out.component.d.ts +1 -1
  47. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +1 -1
  48. package/lib/layout/layout.component.d.ts +1 -1
  49. package/lib/navigation/navigation-item/navigation-item.component.d.ts +1 -1
  50. package/lib/navigation/navigation.component.d.ts +1 -1
  51. package/lib/navigation/replace-router-paths.pipe.d.ts +1 -1
  52. package/lib/sidenav/sidenav-footer.directive.d.ts +1 -1
  53. package/lib/sidenav/sidenav-header.directive.d.ts +1 -1
  54. package/lib/sidenav/sidenav.component.d.ts +1 -1
  55. package/lib/sidenav/version/version.component.d.ts +1 -1
  56. package/lib/sidenav-content/sidenav-content.component.d.ts +1 -1
  57. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +1 -1
  58. package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +1 -1
  59. package/package.json +22 -25
  60. package/rxap-layout.d.ts +0 -5
@@ -1,56 +1,56 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Component, ChangeDetectionStrategy, NgModule, Input, Injectable, Inject, Optional, TemplateRef, Directive, INJECTOR, ElementRef, Renderer2, ViewContainerRef, ViewEncapsulation, ViewChild, HostBinding, HostListener, ChangeDetectorRef, ContentChild, EventEmitter, Output, Pipe } from '@angular/core';
2
+ import { InjectionToken, Component, ChangeDetectionStrategy, NgModule, Inject, Input, Optional, Injectable, TemplateRef, Directive, INJECTOR, ElementRef, Renderer2, ViewContainerRef, ViewEncapsulation, ViewChild, HostBinding, HostListener, ChangeDetectorRef, ContentChild, EventEmitter, Output, Pipe } from '@angular/core';
3
3
  import * as i1 from '@rxap/services';
4
4
  import { HeaderService, ResetService, FooterService, WindowContainerSidenavService, VersionService } from '@rxap/services';
5
- import * as i2 from '@angular/common';
6
- import { CommonModule } from '@angular/common';
7
- import * as i3 from '@angular/material/toolbar';
5
+ import * as i2 from '@angular/material/toolbar';
8
6
  import { MatToolbarModule } from '@angular/material/toolbar';
7
+ import * as i2$1 from '@angular/common';
8
+ import { CommonModule } from '@angular/common';
9
9
  import * as i4 from '@angular/cdk/portal';
10
10
  import { PortalModule, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
11
11
  import { Subscription, BehaviorSubject, ReplaySubject, of, from, combineLatest } from 'rxjs';
12
12
  import { map, filter, tap, switchMap, catchError, startWith, delay, skip, distinctUntilChanged } from 'rxjs/operators';
13
- import * as i3$5 from '@angular/material/sidenav';
13
+ import * as i2$4 from '@angular/material/sidenav';
14
14
  import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
15
- import * as i6$1 from '@rxap/authentication';
15
+ import * as i3 from '@rxap/authentication';
16
16
  import { UserService, SignOutDirectiveModule } from '@rxap/authentication';
17
- import * as i2$1 from '@angular/flex-layout/extended';
18
- import * as i1$3 from '@angular/flex-layout/flex';
19
- import { __decorate, __metadata } from 'tslib';
20
- import { Required, DebounceCall, coerceBoolean } from '@rxap/utilities';
17
+ import * as i3$1 from '@angular/router';
18
+ import { Router, NavigationStart, NavigationEnd, NavigationCancel, RouterModule, RouterLinkActive } from '@angular/router';
21
19
  import * as i1$1 from '@angular/material/button';
22
20
  import { MatButtonModule } from '@angular/material/button';
23
- import * as i3$1 from '@angular/material/icon';
21
+ import * as i2$2 from '@angular/material/icon';
24
22
  import { MatIconModule } from '@angular/material/icon';
25
- import * as i1$2 from '@rxap/config';
26
- import { ConfigService } from '@rxap/config';
27
- import * as i3$2 from '@angular/material/form-field';
28
- import * as i4$1 from '@angular/material/select';
29
- import { MatSelectModule } from '@angular/material/select';
30
- import * as i5 from '@angular/forms';
31
- import { FormsModule } from '@angular/forms';
32
- import * as i6 from '@angular/material/core';
33
- import { MatRippleModule } from '@angular/material/core';
34
- import * as i3$3 from '@angular/cdk/overlay';
35
- import { OverlayModule, Overlay } from '@angular/cdk/overlay';
36
23
  import { isDefined } from '@rxap/utilities/rxjs';
37
- import * as i2$2 from '@angular/material/menu';
24
+ import * as i1$2 from '@angular/material/menu';
38
25
  import { MatMenuModule } from '@angular/material/menu';
39
- import * as i3$4 from '@rxap/directives';
26
+ import * as i1$3 from '@angular/flex-layout/flex';
27
+ import * as i5 from '@rxap/directives';
40
28
  import { AvatarBackgroundImageDirectiveModule, StopPropagationDirectiveModule } from '@rxap/directives';
41
- import * as i1$4 from '@angular/router';
42
- import { Router, NavigationStart, NavigationEnd, NavigationCancel, RouterModule, RouterLinkActive } from '@angular/router';
43
- import * as i2$3 from '@angular/material/progress-bar';
29
+ import * as i1$4 from '@angular/material/progress-bar';
44
30
  import { MatProgressBarModule } from '@angular/material/progress-bar';
31
+ import { __decorate, __metadata } from 'tslib';
32
+ import { Required, DebounceCall, coerceBoolean } from '@rxap/utilities';
33
+ import * as i5$1 from '@angular/flex-layout/extended';
34
+ import * as i1$5 from '@rxap/config';
35
+ import { ConfigService } from '@rxap/config';
36
+ import * as i3$2 from '@angular/cdk/overlay';
37
+ import { OverlayModule, Overlay } from '@angular/cdk/overlay';
38
+ import * as i2$3 from '@angular/material/form-field';
39
+ import * as i3$3 from '@angular/material/select';
40
+ import { MatSelectModule } from '@angular/material/select';
41
+ import * as i4$1 from '@angular/material/core';
42
+ import { MatRippleModule } from '@angular/material/core';
43
+ import * as i6 from '@angular/forms';
44
+ import { FormsModule } from '@angular/forms';
45
45
  import { FlexLayoutModule } from '@angular/flex-layout';
46
46
  import { MatGridListModule } from '@angular/material/grid-list';
47
- import * as i2$4 from '@angular/material/divider';
47
+ import * as i3$4 from '@angular/material/divider';
48
48
  import { MatDividerModule } from '@angular/material/divider';
49
49
  import { trigger, transition, style, animate } from '@angular/animations';
50
- import * as i6$2 from '@rxap/material-directives/icon';
50
+ import * as i5$2 from '@rxap/material-directives/icon';
51
51
  import { IconDirectiveModule } from '@rxap/material-directives/icon';
52
52
  import { ButtonComponentModule } from '@rxap/components';
53
- import * as i3$6 from '@angular/material/tooltip';
53
+ import * as i7 from '@angular/material/tooltip';
54
54
  import { MatTooltipModule } from '@angular/material/tooltip';
55
55
 
56
56
  const RXAP_NAVIGATION_CONFIG = new InjectionToken('rxap/layout/navigation-config');
@@ -96,21 +96,19 @@ FooterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FooterCompo
96
96
  i0.ɵɵpipe(1, "async");
97
97
  } if (rf & 2) {
98
98
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.footerService.portals$));
99
- } }, directives: [i2.NgIf, i3.MatToolbar, i2.NgForOf, i3.MatToolbarRow, i4.CdkPortalOutlet], pipes: [i2.AsyncPipe], styles: [""], changeDetection: 0 });
99
+ } }, dependencies: [i2.MatToolbar, i2.MatToolbarRow, i2$1.NgForOf, i2$1.NgIf, i4.CdkPortalOutlet, i2$1.AsyncPipe], changeDetection: 0 });
100
100
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooterComponent, [{
101
101
  type: Component,
102
- args: [{ selector: 'rxap-footer', changeDetection: ChangeDetectionStrategy.OnPush, 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: [""] }]
102
+ args: [{ selector: 'rxap-footer', changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
103
103
  }], function () { return [{ type: i1.FooterService }]; }, null); })();
104
104
 
105
105
  class FooterModule {
106
106
  }
107
107
  FooterModule.ɵfac = function FooterModule_Factory(t) { return new (t || FooterModule)(); };
108
108
  FooterModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: FooterModule });
109
- FooterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
110
- MatToolbarModule,
111
- CommonModule,
112
- PortalModule
113
- ]] });
109
+ FooterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatToolbarModule,
110
+ CommonModule,
111
+ PortalModule] });
114
112
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooterModule, [{
115
113
  type: NgModule,
116
114
  args: [{
@@ -127,6 +125,156 @@ FooterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
127
125
  CommonModule,
128
126
  PortalModule], exports: [FooterComponent] }); })();
129
127
 
128
+ class SignOutComponent {
129
+ constructor(router) {
130
+ this.router = router;
131
+ }
132
+ redirectToRoot() {
133
+ this.router.navigate(['/']);
134
+ }
135
+ }
136
+ SignOutComponent.ɵfac = function SignOutComponent_Factory(t) { return new (t || SignOutComponent)(i0.ɵɵdirectiveInject(Router)); };
137
+ SignOutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutComponent, selectors: [["rxap-sign-out"]], hostAttrs: [1, "rxap-sign-out"], decls: 3, vars: 0, consts: [["rxapSignOut", "", "mat-icon-button", "", 3, "successful"]], template: function SignOutComponent_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementStart(0, "button", 0);
139
+ i0.ɵɵlistener("successful", function SignOutComponent_Template_button_successful_0_listener() { return ctx.redirectToRoot(); });
140
+ i0.ɵɵelementStart(1, "mat-icon");
141
+ i0.ɵɵtext(2, "login");
142
+ i0.ɵɵelementEnd()();
143
+ } }, dependencies: [i1$1.MatButton, i2$2.MatIcon, i3.SignOutDirective], changeDetection: 0 });
144
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponent, [{
145
+ type: Component,
146
+ args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-sign-out' }, template: "<button\n rxapSignOut\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n>\n <mat-icon>login</mat-icon>\n</button>\n" }]
147
+ }], function () { return [{ type: i3$1.Router, decorators: [{
148
+ type: Inject,
149
+ args: [Router]
150
+ }] }]; }, null); })();
151
+
152
+ function UserProfileIconComponent_ng_template_5_button_0_Template(rf, ctx) { if (rf & 1) {
153
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
154
+ i0.ɵɵtext(2, "person");
155
+ i0.ɵɵelementEnd();
156
+ i0.ɵɵelementStart(3, "span");
157
+ i0.ɵɵtext(4);
158
+ i0.ɵɵelementEnd()();
159
+ } if (rf & 2) {
160
+ const user_r2 = i0.ɵɵnextContext().$implicit;
161
+ i0.ɵɵadvance(4);
162
+ i0.ɵɵtextInterpolate2("", user_r2.firstname, " ", user_r2.lastname, "");
163
+ } }
164
+ function UserProfileIconComponent_ng_template_5_button_1_Template(rf, ctx) { if (rf & 1) {
165
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
166
+ i0.ɵɵtext(2, "person");
167
+ i0.ɵɵelementEnd();
168
+ i0.ɵɵelementStart(3, "span");
169
+ i0.ɵɵtext(4);
170
+ i0.ɵɵelementEnd()();
171
+ } if (rf & 2) {
172
+ const user_r2 = i0.ɵɵnextContext().$implicit;
173
+ i0.ɵɵadvance(4);
174
+ i0.ɵɵtextInterpolate(user_r2.name);
175
+ } }
176
+ function UserProfileIconComponent_ng_template_5_button_2_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
178
+ i0.ɵɵtext(2, "account_circle");
179
+ i0.ɵɵelementEnd();
180
+ i0.ɵɵelementStart(3, "span");
181
+ i0.ɵɵtext(4);
182
+ i0.ɵɵelementEnd()();
183
+ } if (rf & 2) {
184
+ const user_r2 = i0.ɵɵnextContext().$implicit;
185
+ i0.ɵɵadvance(4);
186
+ i0.ɵɵtextInterpolate(user_r2.username);
187
+ } }
188
+ function UserProfileIconComponent_ng_template_5_button_3_Template(rf, ctx) { if (rf & 1) {
189
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
190
+ i0.ɵɵtext(2, "email");
191
+ i0.ɵɵelementEnd();
192
+ i0.ɵɵelementStart(3, "span");
193
+ i0.ɵɵtext(4);
194
+ i0.ɵɵelementEnd()();
195
+ } if (rf & 2) {
196
+ const user_r2 = i0.ɵɵnextContext().$implicit;
197
+ i0.ɵɵadvance(4);
198
+ i0.ɵɵtextInterpolate(user_r2.email);
199
+ } }
200
+ function UserProfileIconComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
201
+ i0.ɵɵtemplate(0, UserProfileIconComponent_ng_template_5_button_0_Template, 5, 2, "button", 4);
202
+ i0.ɵɵtemplate(1, UserProfileIconComponent_ng_template_5_button_1_Template, 5, 1, "button", 4);
203
+ i0.ɵɵtemplate(2, UserProfileIconComponent_ng_template_5_button_2_Template, 5, 1, "button", 4);
204
+ i0.ɵɵtemplate(3, UserProfileIconComponent_ng_template_5_button_3_Template, 5, 1, "button", 4);
205
+ } if (rf & 2) {
206
+ const user_r2 = ctx.$implicit;
207
+ i0.ɵɵproperty("ngIf", user_r2.firstname && user_r2.lastname);
208
+ i0.ɵɵadvance(1);
209
+ i0.ɵɵproperty("ngIf", user_r2.name);
210
+ i0.ɵɵadvance(1);
211
+ i0.ɵɵproperty("ngIf", user_r2.username);
212
+ i0.ɵɵadvance(1);
213
+ i0.ɵɵproperty("ngIf", user_r2.email);
214
+ } }
215
+ class UserProfileIconComponent {
216
+ constructor(userService) {
217
+ this.userService = userService;
218
+ this.userProfileUrl$ = this.userService.user$.pipe(isDefined(), map((user) => user.photoURL ?? user.avatarUrl));
219
+ this.userName$ = this.userService.user$.pipe(isDefined(), map((user) => user.name ??
220
+ (user.firstname || user.lastname
221
+ ? [user.firstname, user.lastname].join(' ').trim()
222
+ : null) ??
223
+ user.username));
224
+ }
225
+ }
226
+ UserProfileIconComponent.ɵfac = function UserProfileIconComponent_Factory(t) { return new (t || UserProfileIconComponent)(i0.ɵɵdirectiveInject(UserService)); };
227
+ UserProfileIconComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserProfileIconComponent, selectors: [["rxap-user-profile-icon"]], hostAttrs: [1, "rxap-user-profile-icon"], decls: 7, vars: 11, consts: [["fxLayout", "row", "fxLayoutAlign", "center center", 1, "profile-icon", 3, "matMenuTriggerFor", "rxapAvatarBackgroundImage", "name"], [3, "yPosition"], ["menu", "matMenu"], [3, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["mat-menu-item", ""]], template: function UserProfileIconComponent_Template(rf, ctx) { if (rf & 1) {
228
+ i0.ɵɵelement(0, "button", 0);
229
+ i0.ɵɵpipe(1, "async");
230
+ i0.ɵɵpipe(2, "async");
231
+ i0.ɵɵelementStart(3, "mat-menu", 1, 2);
232
+ i0.ɵɵtemplate(5, UserProfileIconComponent_ng_template_5_Template, 4, 4, "ng-template", 3);
233
+ i0.ɵɵpipe(6, "async");
234
+ i0.ɵɵelementEnd();
235
+ } if (rf & 2) {
236
+ const _r0 = i0.ɵɵreference(4);
237
+ let tmp_2_0;
238
+ i0.ɵɵproperty("matMenuTriggerFor", _r0)("rxapAvatarBackgroundImage", i0.ɵɵpipeBind1(1, 5, ctx.userProfileUrl$))("name", (tmp_2_0 = i0.ɵɵpipeBind1(2, 7, ctx.userName$)) !== null && tmp_2_0 !== undefined ? tmp_2_0 : "");
239
+ i0.ɵɵadvance(3);
240
+ i0.ɵɵproperty("yPosition", "below");
241
+ i0.ɵɵadvance(2);
242
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 9, ctx.userService.user$));
243
+ } }, dependencies: [i1$2.MatMenu, i1$2.MatMenuItem, i1$2.MatMenuTrigger, i2$2.MatIcon, i2$1.NgIf, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i5.AvatarBackgroundImageDirective, i2$1.AsyncPipe], styles: [".profile-icon[_ngcontent-%COMP%]{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon[_ngcontent-%COMP%]:hover{cursor:pointer}.profile-icon[_ngcontent-%COMP%]:focus{outline:none}"], changeDetection: 0 });
244
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponent, [{
245
+ type: Component,
246
+ args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-user-profile-icon' }, template: "<button [matMenuTriggerFor]=\"menu\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n [name]=\"(userName$ | async) ?? ''\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"] }]
247
+ }], function () { return [{ type: i3.UserService, decorators: [{
248
+ type: Inject,
249
+ args: [UserService]
250
+ }] }]; }, null); })();
251
+
252
+ function NavigationProgressBarComponent_mat_progress_bar_0_Template(rf, ctx) { if (rf & 1) {
253
+ i0.ɵɵelement(0, "mat-progress-bar", 1);
254
+ } }
255
+ class NavigationProgressBarComponent {
256
+ constructor(router) {
257
+ this.router = router;
258
+ this.navigating$ = this.router.events.pipe(filter(event => event instanceof NavigationStart ||
259
+ event instanceof NavigationEnd ||
260
+ event instanceof NavigationCancel), map(event => event instanceof NavigationStart));
261
+ }
262
+ }
263
+ NavigationProgressBarComponent.ɵfac = function NavigationProgressBarComponent_Factory(t) { return new (t || NavigationProgressBarComponent)(i0.ɵɵdirectiveInject(Router)); };
264
+ NavigationProgressBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationProgressBarComponent, selectors: [["rxap-navigation-progress-bar"]], hostAttrs: [1, "rxap-navigation-progress-bar"], decls: 2, vars: 3, consts: [["mode", "indeterminate", "color", "accent", 4, "ngIf"], ["mode", "indeterminate", "color", "accent"]], template: function NavigationProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
265
+ i0.ɵɵtemplate(0, NavigationProgressBarComponent_mat_progress_bar_0_Template, 1, 0, "mat-progress-bar", 0);
266
+ i0.ɵɵpipe(1, "async");
267
+ } if (rf & 2) {
268
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.navigating$));
269
+ } }, dependencies: [i1$4.MatProgressBar, i2$1.NgIf, i2$1.AsyncPipe], changeDetection: 0 });
270
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponent, [{
271
+ type: Component,
272
+ args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-navigation-progress-bar' }, template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n" }]
273
+ }], function () { return [{ type: i3$1.Router, decorators: [{
274
+ type: Inject,
275
+ args: [Router]
276
+ }] }]; }, null); })();
277
+
130
278
  function SidenavToggleButtonComponent_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
131
279
  i0.ɵɵelementStart(0, "mat-icon");
132
280
  i0.ɵɵtext(1, "menu");
@@ -151,120 +299,18 @@ SidenavToggleButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type
151
299
  i0.ɵɵproperty("ngIf", !ctx.sidenav.opened);
152
300
  i0.ɵɵadvance(1);
153
301
  i0.ɵɵproperty("ngIf", ctx.sidenav.opened);
154
- } }, directives: [i1$1.MatButton, i2.NgIf, i3$1.MatIcon], styles: [""], changeDetection: 0 });
302
+ } }, dependencies: [i2$2.MatIcon, i2$1.NgIf, i1$1.MatButton], changeDetection: 0 });
155
303
  __decorate([
156
304
  Required,
157
305
  __metadata("design:type", MatSidenav)
158
306
  ], SidenavToggleButtonComponent.prototype, "sidenav", void 0);
159
307
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavToggleButtonComponent, [{
160
308
  type: Component,
161
- args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-sidenav-toggle-button' }, template: "<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n", styles: [""] }]
309
+ args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-sidenav-toggle-button' }, template: "<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n" }]
162
310
  }], null, { sidenav: [{
163
311
  type: Input
164
312
  }] }); })();
165
313
 
166
- function LanguageSelectorComponent_ng_template_0_mat_option_3_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵelementStart(0, "mat-option", 4);
168
- i0.ɵɵtext(1);
169
- i0.ɵɵelementEnd();
170
- } if (rf & 2) {
171
- const item_r2 = ctx.$implicit;
172
- i0.ɵɵproperty("value", item_r2.key);
173
- i0.ɵɵadvance(1);
174
- i0.ɵɵtextInterpolate(item_r2.value);
175
- } }
176
- function LanguageSelectorComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
177
- const _r4 = i0.ɵɵgetCurrentView();
178
- i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 1)(2, "mat-select", 2);
179
- i0.ɵɵlistener("ngModelChange", function LanguageSelectorComponent_ng_template_0_Template_mat_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return ctx_r3.language.setLanguage($event); });
180
- i0.ɵɵtemplate(3, LanguageSelectorComponent_ng_template_0_mat_option_3_Template, 2, 2, "mat-option", 3);
181
- i0.ɵɵpipe(4, "keyvalue");
182
- i0.ɵɵelementEnd()()();
183
- } if (rf & 2) {
184
- const ctx_r0 = i0.ɵɵnextContext();
185
- i0.ɵɵadvance(2);
186
- i0.ɵɵproperty("ngModel", ctx_r0.language.selectedLanguage);
187
- i0.ɵɵadvance(1);
188
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(4, 2, ctx_r0.language.languages));
189
- } }
190
- const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = 'rxap__selected_language';
191
- const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = 'rxap__selected_language_last_change';
192
- class LanguageSelectorService {
193
- constructor(config) {
194
- this.config = config;
195
- this.languages = this.config.get('i18n.languages') ?? {};
196
- this.defaultLanguage =
197
- this.config.get('i18n.defaultLanguage') ??
198
- Object.keys(this.languages)[0] ??
199
- 'en';
200
- this.selectedLanguage =
201
- localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??
202
- this.defaultLanguage;
203
- }
204
- setLanguage(language) {
205
- if (language !== this.selectedLanguage) {
206
- this.redirect(language);
207
- }
208
- }
209
- autoRedirect() {
210
- if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {
211
- this.redirect(localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY));
212
- }
213
- }
214
- redirect(language) {
215
- const currentUrl = location.origin + location.pathname + location.search;
216
- const redirectUrl = location.origin +
217
- `/${language}` +
218
- location.pathname.replace(new RegExp(`^\/${this.selectedLanguage}`), '') +
219
- location.search;
220
- this.selectedLanguage = language;
221
- localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);
222
- if (currentUrl !== redirectUrl) {
223
- if (this.checkLastChange()) {
224
- location.replace(redirectUrl);
225
- }
226
- }
227
- else {
228
- console.log('Redirect not required');
229
- }
230
- }
231
- checkLastChange() {
232
- const lastChangeString = localStorage.getItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY);
233
- if (lastChangeString) {
234
- if (Date.now() - parseInt(lastChangeString, 10) < 1000) {
235
- return false;
236
- }
237
- }
238
- localStorage.setItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY, Date.now().toFixed(0));
239
- return true;
240
- }
241
- }
242
- LanguageSelectorService.ɵfac = function LanguageSelectorService_Factory(t) { return new (t || LanguageSelectorService)(i0.ɵɵinject(ConfigService)); };
243
- LanguageSelectorService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LanguageSelectorService, factory: LanguageSelectorService.ɵfac, providedIn: 'root' });
244
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorService, [{
245
- type: Injectable,
246
- args: [{ providedIn: 'root' }]
247
- }], function () { return [{ type: i1$2.ConfigService, decorators: [{
248
- type: Inject,
249
- args: [ConfigService]
250
- }] }]; }, null); })();
251
- class LanguageSelectorComponent {
252
- constructor(language) {
253
- this.language = language;
254
- }
255
- }
256
- LanguageSelectorComponent.ɵfac = function LanguageSelectorComponent_Factory(t) { return new (t || LanguageSelectorComponent)(i0.ɵɵdirectiveInject(LanguageSelectorService)); };
257
- LanguageSelectorComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LanguageSelectorComponent, selectors: [["rxap-language-selector"]], hostAttrs: [1, "rxap-language-selector"], decls: 2, vars: 3, consts: [[3, "ngIf"], ["appearance", "outline", 1, "language-selector"], [3, "ngModel", "ngModelChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"]], template: function LanguageSelectorComponent_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵtemplate(0, LanguageSelectorComponent_ng_template_0_Template, 5, 4, "ng-template", 0);
259
- i0.ɵɵpipe(1, "keyvalue");
260
- } if (rf & 2) {
261
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.language.languages).length);
262
- } }, directives: [i2.NgIf, i3$2.MatFormField, i4$1.MatSelect, i5.NgControlStatus, i5.NgModel, i2.NgForOf, i6.MatOption], pipes: [i2.KeyValuePipe], styles: [".language-selector[_ngcontent-%COMP%]{width:142px}.language-selector[_ngcontent-%COMP%] .mat-form-field-wrapper{padding-bottom:0}.language-selector[_ngcontent-%COMP%] .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector[_ngcontent-%COMP%] .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}"], changeDetection: 0 });
263
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponent, [{
264
- type: Component,
265
- args: [{ selector: 'rxap-language-selector', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-language-selector' }, template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".language-selector{width:142px}.language-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}\n"] }]
266
- }], function () { return [{ type: LanguageSelectorService }]; }, null); })();
267
-
268
314
  function AppsButtonComponent_ng_template_0_ng_template_4_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
269
315
  i0.ɵɵelementStart(0, "a", 9)(1, "span", 10);
270
316
  i0.ɵɵelement(2, "img", 11);
@@ -305,12 +351,12 @@ function AppsButtonComponent_ng_template_0_ng_template_4_Template(rf, ctx) { if
305
351
  function AppsButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
306
352
  const _r8 = i0.ɵɵgetCurrentView();
307
353
  i0.ɵɵelementStart(0, "button", 1, 2);
308
- i0.ɵɵlistener("click", function AppsButtonComponent_ng_template_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return ctx_r7.isOpen = !ctx_r7.isOpen; });
354
+ 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); });
309
355
  i0.ɵɵelementStart(2, "mat-icon");
310
356
  i0.ɵɵtext(3, "apps");
311
357
  i0.ɵɵelementEnd()();
312
358
  i0.ɵɵtemplate(4, AppsButtonComponent_ng_template_0_ng_template_4_Template, 3, 4, "ng-template", 3);
313
- i0.ɵɵlistener("overlayOutsideClick", function AppsButtonComponent_ng_template_0_Template_ng_template_overlayOutsideClick_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.isOpen = false; });
359
+ 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); });
314
360
  } if (rf & 2) {
315
361
  const _r1 = i0.ɵɵreference(1);
316
362
  const ctx_r0 = i0.ɵɵnextContext();
@@ -346,169 +392,121 @@ AppsButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AppsBut
346
392
  i0.ɵɵtemplate(0, AppsButtonComponent_ng_template_0_Template, 5, 2, "ng-template", 0);
347
393
  } if (rf & 2) {
348
394
  i0.ɵɵproperty("ngIf", ctx.grid && ctx.grid.length);
349
- } }, directives: [i2.NgIf, i1$1.MatButton, i3$3.CdkOverlayOrigin, i3$1.MatIcon, i3$3.CdkConnectedOverlay, i2$1.DefaultStyleDirective, i2.NgStyle, i2.NgForOf, i2$1.DefaultClassDirective, i2.NgClass, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultLayoutGapDirective], 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;top:6px;right:6px;left:6px;bottom:6px;text-align:center;text-decoration:none;color:#000}"], changeDetection: 0 });
395
+ } }, dependencies: [i1$1.MatButton, i2$2.MatIcon, i3$2.CdkConnectedOverlay, i3$2.CdkOverlayOrigin, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultLayoutAlignDirective, i5$1.DefaultClassDirective, i5$1.DefaultStyleDirective, i2$1.NgClass, i2$1.NgForOf, i2$1.NgIf, i2$1.NgStyle], 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 });
350
396
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppsButtonComponent, [{
351
397
  type: Component,
352
- args: [{ selector: 'rxap-apps-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-apps-button' }, 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;top:6px;right:6px;left:6px;bottom:6px;text-align:center;text-decoration:none;color:#000}\n"] }]
398
+ args: [{ selector: 'rxap-apps-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-apps-button' }, 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"] }]
353
399
  }], function () { return [{ type: undefined, decorators: [{
354
400
  type: Optional
355
401
  }, {
356
402
  type: Inject,
357
403
  args: [RXAP_LAYOUT_APPS_GRID]
358
- }] }, { type: i1$2.ConfigService, decorators: [{
404
+ }] }, { type: i1$5.ConfigService, decorators: [{
359
405
  type: Inject,
360
406
  args: [ConfigService]
361
407
  }] }]; }, null); })();
362
408
 
363
- function UserProfileIconComponent_ng_template_5_button_0_Template(rf, ctx) { if (rf & 1) {
364
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
365
- i0.ɵɵtext(2, "person");
366
- i0.ɵɵelementEnd();
367
- i0.ɵɵelementStart(3, "span");
368
- i0.ɵɵtext(4);
369
- i0.ɵɵelementEnd()();
370
- } if (rf & 2) {
371
- const user_r2 = i0.ɵɵnextContext().$implicit;
372
- i0.ɵɵadvance(4);
373
- i0.ɵɵtextInterpolate2("", user_r2.firstname, " ", user_r2.lastname, "");
374
- } }
375
- function UserProfileIconComponent_ng_template_5_button_1_Template(rf, ctx) { if (rf & 1) {
376
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
377
- i0.ɵɵtext(2, "person");
378
- i0.ɵɵelementEnd();
379
- i0.ɵɵelementStart(3, "span");
380
- i0.ɵɵtext(4);
381
- i0.ɵɵelementEnd()();
382
- } if (rf & 2) {
383
- const user_r2 = i0.ɵɵnextContext().$implicit;
384
- i0.ɵɵadvance(4);
385
- i0.ɵɵtextInterpolate(user_r2.name);
386
- } }
387
- function UserProfileIconComponent_ng_template_5_button_2_Template(rf, ctx) { if (rf & 1) {
388
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
389
- i0.ɵɵtext(2, "account_circle");
390
- i0.ɵɵelementEnd();
391
- i0.ɵɵelementStart(3, "span");
392
- i0.ɵɵtext(4);
393
- i0.ɵɵelementEnd()();
394
- } if (rf & 2) {
395
- const user_r2 = i0.ɵɵnextContext().$implicit;
396
- i0.ɵɵadvance(4);
397
- i0.ɵɵtextInterpolate(user_r2.username);
398
- } }
399
- function UserProfileIconComponent_ng_template_5_button_3_Template(rf, ctx) { if (rf & 1) {
400
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
401
- i0.ɵɵtext(2, "email");
409
+ function LanguageSelectorComponent_ng_template_0_mat_option_3_Template(rf, ctx) { if (rf & 1) {
410
+ i0.ɵɵelementStart(0, "mat-option", 4);
411
+ i0.ɵɵtext(1);
402
412
  i0.ɵɵelementEnd();
403
- i0.ɵɵelementStart(3, "span");
404
- i0.ɵɵtext(4);
405
- i0.ɵɵelementEnd()();
406
413
  } if (rf & 2) {
407
- const user_r2 = i0.ɵɵnextContext().$implicit;
408
- i0.ɵɵadvance(4);
409
- i0.ɵɵtextInterpolate(user_r2.email);
414
+ const item_r2 = ctx.$implicit;
415
+ i0.ɵɵproperty("value", item_r2.key);
416
+ i0.ɵɵadvance(1);
417
+ i0.ɵɵtextInterpolate(item_r2.value);
410
418
  } }
411
- function UserProfileIconComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
412
- i0.ɵɵtemplate(0, UserProfileIconComponent_ng_template_5_button_0_Template, 5, 2, "button", 4);
413
- i0.ɵɵtemplate(1, UserProfileIconComponent_ng_template_5_button_1_Template, 5, 1, "button", 4);
414
- i0.ɵɵtemplate(2, UserProfileIconComponent_ng_template_5_button_2_Template, 5, 1, "button", 4);
415
- i0.ɵɵtemplate(3, UserProfileIconComponent_ng_template_5_button_3_Template, 5, 1, "button", 4);
419
+ function LanguageSelectorComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
420
+ const _r4 = i0.ɵɵgetCurrentView();
421
+ i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 1)(2, "mat-select", 2);
422
+ i0.ɵɵlistener("ngModelChange", function LanguageSelectorComponent_ng_template_0_Template_mat_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.language.setLanguage($event)); });
423
+ i0.ɵɵtemplate(3, LanguageSelectorComponent_ng_template_0_mat_option_3_Template, 2, 2, "mat-option", 3);
424
+ i0.ɵɵpipe(4, "keyvalue");
425
+ i0.ɵɵelementEnd()()();
416
426
  } if (rf & 2) {
417
- const user_r2 = ctx.$implicit;
418
- i0.ɵɵproperty("ngIf", user_r2.firstname && user_r2.lastname);
419
- i0.ɵɵadvance(1);
420
- i0.ɵɵproperty("ngIf", user_r2.name);
421
- i0.ɵɵadvance(1);
422
- i0.ɵɵproperty("ngIf", user_r2.username);
427
+ const ctx_r0 = i0.ɵɵnextContext();
428
+ i0.ɵɵadvance(2);
429
+ i0.ɵɵproperty("ngModel", ctx_r0.language.selectedLanguage);
423
430
  i0.ɵɵadvance(1);
424
- i0.ɵɵproperty("ngIf", user_r2.email);
431
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(4, 2, ctx_r0.language.languages));
425
432
  } }
426
- class UserProfileIconComponent {
427
- constructor(userService) {
428
- this.userService = userService;
429
- this.userProfileUrl$ = this.userService.user$.pipe(isDefined(), map((user) => user.photoURL ?? user.avatarUrl));
430
- this.userName$ = this.userService.user$.pipe(isDefined(), map((user) => user.name ??
431
- (user.firstname || user.lastname
432
- ? [user.firstname, user.lastname].join(' ').trim()
433
- : null) ??
434
- user.username));
433
+ const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = 'rxap__selected_language';
434
+ const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = 'rxap__selected_language_last_change';
435
+ class LanguageSelectorService {
436
+ constructor(config) {
437
+ this.config = config;
438
+ this.languages = this.config.get('i18n.languages') ?? {};
439
+ this.defaultLanguage =
440
+ this.config.get('i18n.defaultLanguage') ??
441
+ Object.keys(this.languages)[0] ??
442
+ 'en';
443
+ this.selectedLanguage =
444
+ localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??
445
+ this.defaultLanguage;
435
446
  }
436
- }
437
- UserProfileIconComponent.ɵfac = function UserProfileIconComponent_Factory(t) { return new (t || UserProfileIconComponent)(i0.ɵɵdirectiveInject(UserService)); };
438
- UserProfileIconComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserProfileIconComponent, selectors: [["rxap-user-profile-icon"]], hostAttrs: [1, "rxap-user-profile-icon"], decls: 7, vars: 11, consts: [["fxLayout", "row", "fxLayoutAlign", "center center", 1, "profile-icon", 3, "matMenuTriggerFor", "rxapAvatarBackgroundImage", "name"], [3, "yPosition"], ["menu", "matMenu"], [3, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["mat-menu-item", ""]], template: function UserProfileIconComponent_Template(rf, ctx) { if (rf & 1) {
439
- i0.ɵɵelement(0, "button", 0);
440
- i0.ɵɵpipe(1, "async");
441
- i0.ɵɵpipe(2, "async");
442
- i0.ɵɵelementStart(3, "mat-menu", 1, 2);
443
- i0.ɵɵtemplate(5, UserProfileIconComponent_ng_template_5_Template, 4, 4, "ng-template", 3);
444
- i0.ɵɵpipe(6, "async");
445
- i0.ɵɵelementEnd();
446
- } if (rf & 2) {
447
- const _r0 = i0.ɵɵreference(4);
448
- let tmp_2_0;
449
- i0.ɵɵproperty("matMenuTriggerFor", _r0)("rxapAvatarBackgroundImage", i0.ɵɵpipeBind1(1, 5, ctx.userProfileUrl$))("name", (tmp_2_0 = i0.ɵɵpipeBind1(2, 7, ctx.userName$)) !== null && tmp_2_0 !== undefined ? tmp_2_0 : "");
450
- i0.ɵɵadvance(3);
451
- i0.ɵɵproperty("yPosition", "below");
452
- i0.ɵɵadvance(2);
453
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 9, ctx.userService.user$));
454
- } }, directives: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i2$2.MatMenuTrigger, i3$4.AvatarBackgroundImageDirective, i2$2.MatMenu, i2.NgIf, i2$2.MatMenuItem, i3$1.MatIcon], pipes: [i2.AsyncPipe], styles: [".profile-icon[_ngcontent-%COMP%]{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon[_ngcontent-%COMP%]:hover{cursor:pointer}.profile-icon[_ngcontent-%COMP%]:focus{outline:none}"], changeDetection: 0 });
455
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponent, [{
456
- type: Component,
457
- args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-user-profile-icon' }, template: "<button [matMenuTriggerFor]=\"menu\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n [name]=\"(userName$ | async) ?? ''\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"] }]
458
- }], function () { return [{ type: i6$1.UserService, decorators: [{
459
- type: Inject,
460
- args: [UserService]
461
- }] }]; }, null); })();
462
-
463
- class SignOutComponent {
464
- constructor(router) {
465
- this.router = router;
447
+ setLanguage(language) {
448
+ if (language !== this.selectedLanguage) {
449
+ this.redirect(language);
450
+ }
466
451
  }
467
- redirectToRoot() {
468
- this.router.navigate(['/']);
452
+ autoRedirect() {
453
+ if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {
454
+ this.redirect(localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY));
455
+ }
456
+ }
457
+ redirect(language) {
458
+ const currentUrl = location.origin + location.pathname + location.search;
459
+ const redirectUrl = location.origin +
460
+ `/${language}` +
461
+ location.pathname.replace(new RegExp(`^\/${this.selectedLanguage}`), '') +
462
+ location.search;
463
+ this.selectedLanguage = language;
464
+ localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);
465
+ if (currentUrl !== redirectUrl) {
466
+ if (this.checkLastChange()) {
467
+ location.replace(redirectUrl);
468
+ }
469
+ }
470
+ else {
471
+ console.log('Redirect not required');
472
+ }
473
+ }
474
+ checkLastChange() {
475
+ const lastChangeString = localStorage.getItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY);
476
+ if (lastChangeString) {
477
+ if (Date.now() - parseInt(lastChangeString, 10) < 1000) {
478
+ return false;
479
+ }
480
+ }
481
+ localStorage.setItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY, Date.now().toFixed(0));
482
+ return true;
469
483
  }
470
484
  }
471
- SignOutComponent.ɵfac = function SignOutComponent_Factory(t) { return new (t || SignOutComponent)(i0.ɵɵdirectiveInject(Router)); };
472
- SignOutComponentcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutComponent, selectors: [["rxap-sign-out"]], hostAttrs: [1, "rxap-sign-out"], decls: 3, vars: 0, consts: [["rxapSignOut", "", "mat-icon-button", "", 3, "successful"]], template: function SignOutComponent_Template(rf, ctx) { if (rf & 1) {
473
- i0.ɵɵelementStart(0, "button", 0);
474
- i0.ɵɵlistener("successful", function SignOutComponent_Template_button_successful_0_listener() { return ctx.redirectToRoot(); });
475
- i0.ɵɵelementStart(1, "mat-icon");
476
- i0.ɵɵtext(2, "login");
477
- i0.ɵɵelementEnd()();
478
- } }, directives: [i1$1.MatButton, i6$1.SignOutDirective, i3$1.MatIcon], styles: [""], changeDetection: 0 });
479
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponent, [{
480
- type: Component,
481
- args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-sign-out' }, template: "<button\n rxapSignOut\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n>\n <mat-icon>login</mat-icon>\n</button>\n", styles: [""] }]
482
- }], function () { return [{ type: i1$4.Router, decorators: [{
485
+ LanguageSelectorService.ɵfac = function LanguageSelectorService_Factory(t) { return new (t || LanguageSelectorService)(i0.ɵɵinject(ConfigService)); };
486
+ LanguageSelectorServiceprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LanguageSelectorService, factory: LanguageSelectorService.ɵfac, providedIn: 'root' });
487
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorService, [{
488
+ type: Injectable,
489
+ args: [{ providedIn: 'root' }]
490
+ }], function () { return [{ type: i1$5.ConfigService, decorators: [{
483
491
  type: Inject,
484
- args: [Router]
492
+ args: [ConfigService]
485
493
  }] }]; }, null); })();
486
-
487
- function NavigationProgressBarComponent_mat_progress_bar_0_Template(rf, ctx) { if (rf & 1) {
488
- i0.ɵɵelement(0, "mat-progress-bar", 1);
489
- } }
490
- class NavigationProgressBarComponent {
491
- constructor(router) {
492
- this.router = router;
493
- this.navigating$ = this.router.events.pipe(filter(event => event instanceof NavigationStart ||
494
- event instanceof NavigationEnd ||
495
- event instanceof NavigationCancel), map(event => event instanceof NavigationStart));
494
+ class LanguageSelectorComponent {
495
+ constructor(language) {
496
+ this.language = language;
496
497
  }
497
498
  }
498
- NavigationProgressBarComponent.ɵfac = function NavigationProgressBarComponent_Factory(t) { return new (t || NavigationProgressBarComponent)(i0.ɵɵdirectiveInject(Router)); };
499
- NavigationProgressBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationProgressBarComponent, selectors: [["rxap-navigation-progress-bar"]], hostAttrs: [1, "rxap-navigation-progress-bar"], decls: 2, vars: 3, consts: [["mode", "indeterminate", "color", "accent", 4, "ngIf"], ["mode", "indeterminate", "color", "accent"]], template: function NavigationProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
500
- i0.ɵɵtemplate(0, NavigationProgressBarComponent_mat_progress_bar_0_Template, 1, 0, "mat-progress-bar", 0);
501
- i0.ɵɵpipe(1, "async");
499
+ LanguageSelectorComponent.ɵfac = function LanguageSelectorComponent_Factory(t) { return new (t || LanguageSelectorComponent)(i0.ɵɵdirectiveInject(LanguageSelectorService)); };
500
+ LanguageSelectorComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LanguageSelectorComponent, selectors: [["rxap-language-selector"]], hostAttrs: [1, "rxap-language-selector"], decls: 2, vars: 3, consts: [[3, "ngIf"], ["appearance", "outline", 1, "language-selector"], [3, "ngModel", "ngModelChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"]], template: function LanguageSelectorComponent_Template(rf, ctx) { if (rf & 1) {
501
+ i0.ɵɵtemplate(0, LanguageSelectorComponent_ng_template_0_Template, 5, 4, "ng-template", 0);
502
+ i0.ɵɵpipe(1, "keyvalue");
502
503
  } if (rf & 2) {
503
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.navigating$));
504
- } }, directives: [i2.NgIf, i2$3.MatProgressBar], pipes: [i2.AsyncPipe], styles: [""], changeDetection: 0 });
505
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponent, [{
504
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.language.languages).length);
505
+ } }, dependencies: [i2$3.MatFormField, i3$3.MatSelect, i4$1.MatOption, i2$1.NgForOf, i2$1.NgIf, i6.NgControlStatus, i6.NgModel, i2$1.KeyValuePipe], styles: [".language-selector[_ngcontent-%COMP%]{width:142px}.language-selector[_ngcontent-%COMP%] .mat-form-field-wrapper{padding-bottom:0}.language-selector[_ngcontent-%COMP%] .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector[_ngcontent-%COMP%] .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}"], changeDetection: 0 });
506
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponent, [{
506
507
  type: Component,
507
- args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-navigation-progress-bar' }, template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n", styles: [""] }]
508
- }], function () { return [{ type: i1$4.Router, decorators: [{
509
- type: Inject,
510
- args: [Router]
511
- }] }]; }, null); })();
508
+ args: [{ selector: 'rxap-language-selector', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-language-selector' }, template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".language-selector{width:142px}.language-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}\n"] }]
509
+ }], function () { return [{ type: LanguageSelectorService }]; }, null); })();
512
510
 
513
511
  function HeaderComponent_mat_toolbar_row_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
514
512
  i0.ɵɵelementContainer(0);
@@ -592,7 +590,7 @@ HeaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderCompo
592
590
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(10, 6, ctx.hasUser$));
593
591
  i0.ɵɵadvance(2);
594
592
  i0.ɵɵproperty("ngIf", ctx.settingsMenuPanel);
595
- } }, directives: [i3.MatToolbar, i2$1.DefaultClassDirective, i2.NgClass, i2.NgForOf, i3.MatToolbarRow, i2.NgComponentOutlet, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultLayoutGapDirective, i2.NgIf, SidenavToggleButtonComponent, i1$3.DefaultFlexDirective, LanguageSelectorComponent, AppsButtonComponent, UserProfileIconComponent, i1$1.MatButton, i2$2.MatMenuTrigger, i3$1.MatIcon, SignOutComponent, NavigationProgressBarComponent], pipes: [i2.AsyncPipe], styles: [".content[_ngcontent-%COMP%]{width:100%;height:64px}"], changeDetection: 0 });
593
+ } }, dependencies: [i2.MatToolbar, i2.MatToolbarRow, SignOutComponent, UserProfileIconComponent, NavigationProgressBarComponent, SidenavToggleButtonComponent, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultFlexDirective, i5$1.DefaultClassDirective, i2$1.NgClass, i2$1.NgComponentOutlet, i2$1.NgForOf, i2$1.NgIf, i1$1.MatButton, i2$2.MatIcon, i1$2.MatMenuTrigger, AppsButtonComponent, LanguageSelectorComponent, i2$1.AsyncPipe], styles: [".content[_ngcontent-%COMP%]{width:100%;height:64px}"], changeDetection: 0 });
596
594
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HeaderComponent, [{
597
595
  type: Component,
598
596
  args: [{ selector: 'rxap-header', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -601,7 +599,7 @@ HeaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderCompo
601
599
  }], function () { return [{ type: i1.HeaderService, decorators: [{
602
600
  type: Inject,
603
601
  args: [HeaderService]
604
- }] }, { type: i6$1.UserService, decorators: [{
602
+ }] }, { type: i3.UserService, decorators: [{
605
603
  type: Inject,
606
604
  args: [UserService]
607
605
  }] }, { type: undefined, decorators: [{
@@ -621,11 +619,9 @@ class SignOutComponentModule {
621
619
  }
622
620
  SignOutComponentModule.ɵfac = function SignOutComponentModule_Factory(t) { return new (t || SignOutComponentModule)(); };
623
621
  SignOutComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SignOutComponentModule });
624
- SignOutComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
625
- MatButtonModule,
626
- MatIconModule,
627
- SignOutDirectiveModule,
628
- ]] });
622
+ SignOutComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatButtonModule,
623
+ MatIconModule,
624
+ SignOutDirectiveModule] });
629
625
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponentModule, [{
630
626
  type: NgModule,
631
627
  args: [{
@@ -646,13 +642,11 @@ class UserProfileIconComponentModule {
646
642
  }
647
643
  UserProfileIconComponentModule.ɵfac = function UserProfileIconComponentModule_Factory(t) { return new (t || UserProfileIconComponentModule)(); };
648
644
  UserProfileIconComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: UserProfileIconComponentModule });
649
- UserProfileIconComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
650
- MatMenuModule,
651
- MatIconModule,
652
- CommonModule,
653
- FlexLayoutModule,
654
- AvatarBackgroundImageDirectiveModule,
655
- ]] });
645
+ UserProfileIconComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatMenuModule,
646
+ MatIconModule,
647
+ CommonModule,
648
+ FlexLayoutModule,
649
+ AvatarBackgroundImageDirectiveModule] });
656
650
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponentModule, [{
657
651
  type: NgModule,
658
652
  args: [{
@@ -677,10 +671,8 @@ class NavigationProgressBarComponentModule {
677
671
  }
678
672
  NavigationProgressBarComponentModule.ɵfac = function NavigationProgressBarComponentModule_Factory(t) { return new (t || NavigationProgressBarComponentModule)(); };
679
673
  NavigationProgressBarComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NavigationProgressBarComponentModule });
680
- NavigationProgressBarComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
681
- MatProgressBarModule,
682
- CommonModule
683
- ]] });
674
+ NavigationProgressBarComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatProgressBarModule,
675
+ CommonModule] });
684
676
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponentModule, [{
685
677
  type: NgModule,
686
678
  args: [{
@@ -699,11 +691,9 @@ class SidenavToggleButtonComponentModule {
699
691
  }
700
692
  SidenavToggleButtonComponentModule.ɵfac = function SidenavToggleButtonComponentModule_Factory(t) { return new (t || SidenavToggleButtonComponentModule)(); };
701
693
  SidenavToggleButtonComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavToggleButtonComponentModule });
702
- SidenavToggleButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
703
- MatIconModule,
704
- CommonModule,
705
- MatButtonModule
706
- ]] });
694
+ SidenavToggleButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
695
+ CommonModule,
696
+ MatButtonModule] });
707
697
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavToggleButtonComponentModule, [{
708
698
  type: NgModule,
709
699
  args: [{
@@ -732,10 +722,10 @@ ResetButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResetB
732
722
  i0.ɵɵelementStart(1, "mat-icon");
733
723
  i0.ɵɵtext(2, "refresh");
734
724
  i0.ɵɵelementEnd()();
735
- } }, directives: [i1$1.MatButton, i3$1.MatIcon], styles: [""], changeDetection: 0 });
725
+ } }, dependencies: [i2$2.MatIcon, i1$1.MatButton], changeDetection: 0 });
736
726
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResetButtonComponent, [{
737
727
  type: Component,
738
- args: [{ selector: 'rxap-reset-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-reset-button' }, template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n", styles: [""] }]
728
+ args: [{ selector: 'rxap-reset-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-reset-button' }, template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n" }]
739
729
  }], function () { return [{ type: i1.ResetService, decorators: [{
740
730
  type: Inject,
741
731
  args: [ResetService]
@@ -745,10 +735,8 @@ class ResetButtonComponentModule {
745
735
  }
746
736
  ResetButtonComponentModule.ɵfac = function ResetButtonComponentModule_Factory(t) { return new (t || ResetButtonComponentModule)(); };
747
737
  ResetButtonComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ResetButtonComponentModule });
748
- ResetButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
749
- MatIconModule,
750
- MatButtonModule
751
- ]] });
738
+ ResetButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
739
+ MatButtonModule] });
752
740
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResetButtonComponentModule, [{
753
741
  type: NgModule,
754
742
  args: [{
@@ -767,15 +755,13 @@ class AppsButtonComponentModule {
767
755
  }
768
756
  AppsButtonComponentModule.ɵfac = function AppsButtonComponentModule_Factory(t) { return new (t || AppsButtonComponentModule)(); };
769
757
  AppsButtonComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AppsButtonComponentModule });
770
- AppsButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
771
- MatButtonModule,
772
- MatIconModule,
773
- MatGridListModule,
774
- OverlayModule,
775
- FlexLayoutModule,
776
- CommonModule,
777
- RouterModule
778
- ]] });
758
+ AppsButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatButtonModule,
759
+ MatIconModule,
760
+ MatGridListModule,
761
+ OverlayModule,
762
+ FlexLayoutModule,
763
+ CommonModule,
764
+ RouterModule] });
779
765
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppsButtonComponentModule, [{
780
766
  type: NgModule,
781
767
  args: [{
@@ -804,11 +790,9 @@ class LanguageSelectorComponentModule {
804
790
  }
805
791
  LanguageSelectorComponentModule.ɵfac = function LanguageSelectorComponentModule_Factory(t) { return new (t || LanguageSelectorComponentModule)(); };
806
792
  LanguageSelectorComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LanguageSelectorComponentModule });
807
- LanguageSelectorComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
808
- MatSelectModule,
809
- CommonModule,
810
- FormsModule
811
- ]] });
793
+ LanguageSelectorComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatSelectModule,
794
+ CommonModule,
795
+ FormsModule] });
812
796
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponentModule, [{
813
797
  type: NgModule,
814
798
  args: [{
@@ -829,21 +813,19 @@ class HeaderModule {
829
813
  }
830
814
  HeaderModule.ɵfac = function HeaderModule_Factory(t) { return new (t || HeaderModule)(); };
831
815
  HeaderModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: HeaderModule });
832
- HeaderModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
833
- MatToolbarModule,
834
- SignOutComponentModule,
835
- UserProfileIconComponentModule,
836
- NavigationProgressBarComponentModule,
837
- SidenavToggleButtonComponentModule,
838
- ResetButtonComponentModule,
839
- FlexLayoutModule,
840
- CommonModule,
841
- MatButtonModule,
842
- MatIconModule,
843
- MatMenuModule,
844
- AppsButtonComponentModule,
845
- LanguageSelectorComponentModule
846
- ]] });
816
+ HeaderModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatToolbarModule,
817
+ SignOutComponentModule,
818
+ UserProfileIconComponentModule,
819
+ NavigationProgressBarComponentModule,
820
+ SidenavToggleButtonComponentModule,
821
+ ResetButtonComponentModule,
822
+ FlexLayoutModule,
823
+ CommonModule,
824
+ MatButtonModule,
825
+ MatIconModule,
826
+ MatMenuModule,
827
+ AppsButtonComponentModule,
828
+ LanguageSelectorComponentModule] });
847
829
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HeaderModule, [{
848
830
  type: NgModule,
849
831
  args: [{
@@ -909,7 +891,7 @@ LayoutComponentService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: L
909
891
  }, {
910
892
  type: Inject,
911
893
  args: [RXAP_LOGO_CONFIG]
912
- }] }, { type: i1$2.ConfigService, decorators: [{
894
+ }] }, { type: i1$5.ConfigService, decorators: [{
913
895
  type: Inject,
914
896
  args: [ConfigService]
915
897
  }] }]; }, null); })();
@@ -958,12 +940,12 @@ class SidenavComponentService {
958
940
  this.collapsed$.next(!this.collapsed$.value);
959
941
  }
960
942
  }
961
- SidenavComponentService.ɵfac = function SidenavComponentService_Factory(t) { return new (t || SidenavComponentService)(i0.ɵɵinject(i1$2.ConfigService)); };
943
+ SidenavComponentService.ɵfac = function SidenavComponentService_Factory(t) { return new (t || SidenavComponentService)(i0.ɵɵinject(i1$5.ConfigService)); };
962
944
  SidenavComponentService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SidenavComponentService, factory: SidenavComponentService.ɵfac, providedIn: 'root' });
963
945
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavComponentService, [{
964
946
  type: Injectable,
965
947
  args: [{ providedIn: 'root' }]
966
- }], function () { return [{ type: i1$2.ConfigService }]; }, null); })();
948
+ }], function () { return [{ type: i1$5.ConfigService }]; }, null); })();
967
949
 
968
950
  function IsNavigationDividerItem(item) {
969
951
  return item && item.hasOwnProperty('divider') && item.divider;
@@ -1170,7 +1152,7 @@ function NavigationItemComponent_ng_template_7_li_2_Template(rf, ctx) { if (rf &
1170
1152
  function NavigationItemComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
1171
1153
  const _r12 = i0.ɵɵgetCurrentView();
1172
1154
  i0.ɵɵelementStart(0, "div", 8);
1173
- i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_7_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.lockeOverlay = true; })("mouseleave", function NavigationItemComponent_ng_template_7_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); ctx_r13.lockeOverlay = false; return ctx_r13.onMouseleave(); });
1155
+ i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_7_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.lockeOverlay = true); })("mouseleave", function NavigationItemComponent_ng_template_7_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); ctx_r13.lockeOverlay = false; return i0.ɵɵresetView(ctx_r13.onMouseleave()); });
1174
1156
  i0.ɵɵelementStart(1, "ul");
1175
1157
  i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
1176
1158
  i0.ɵɵelementEnd()();
@@ -1345,7 +1327,7 @@ __decorate([
1345
1327
  ]),
1346
1328
  ]),
1347
1329
  ], template: "<a [routerLink]=\"item.routerLink\"\n routerLinkActive=\"link-active\"\n [matTooltipDisabled]=\"!(sidenav.collapsed$ | async)\"\n [matTooltip]=\"item.label\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\" matRipple>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"!(sidenav.collapsed$ | async)\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul rxap-navigation\n *ngIf=\"routerLinkActive.isActive && !(sidenav.collapsed$ | async) && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div class=\"navigation-overlay-container mat-elevation-z1\"\n (mouseenter)=\"lockeOverlay = true\" (mouseleave)=\"lockeOverlay = false; onMouseleave()\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\" class=\"icon\"></mat-icon>\n <span class=\"label\">{{ asNavigationItem(child).label }}</span>\n </a>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [".rxap-navigation-item,.navigation-overlay-container{display:flex;flex-direction:column;min-height:48px}.rxap-navigation-item .navigation-link,.navigation-overlay-container .navigation-link{display:flex;flex-direction:row;align-items:center;text-decoration:none;height:48px}.rxap-navigation-item .navigation-link .icon,.navigation-overlay-container .navigation-link .icon{margin:0 16px}.rxap-navigation-item .navigation-link .label,.navigation-overlay-container .navigation-link .label{padding-right:12px}.rxap-navigation-item .navigation-link.navigation-level-1,.navigation-overlay-container .navigation-link.navigation-level-1{padding-left:52px}.rxap-navigation-item .navigation-link.navigation-level-1 .icon,.navigation-overlay-container .navigation-link.navigation-level-1 .icon{padding-left:0}.rxap-navigation-item .navigation-link.navigation-level-2,.navigation-overlay-container .navigation-link.navigation-level-2{padding-left:88px}.rxap-navigation-item .navigation-link.navigation-level-2 .icon,.navigation-overlay-container .navigation-link.navigation-level-2 .icon{padding-left:0}.navigation-overlay-container{padding:0 16px}.navigation-overlay-container ul{list-style-type:none;margin:0;padding:0}.navigation-overlay-container ul .navigation-link .label{padding-right:0}.navigation-overlay-container ul .navigation-link .icon{margin-left:0}\n"] }]
1348
- }], function () { return [{ type: i1$4.Router, decorators: [{
1330
+ }], function () { return [{ type: i3$1.Router, decorators: [{
1349
1331
  type: Inject,
1350
1332
  args: [Router]
1351
1333
  }] }, { type: SidenavComponentService, decorators: [{
@@ -1357,7 +1339,7 @@ __decorate([
1357
1339
  }] }, { type: i0.Renderer2, decorators: [{
1358
1340
  type: Inject,
1359
1341
  args: [Renderer2]
1360
- }] }, { type: i3$3.Overlay, decorators: [{
1342
+ }] }, { type: i3$2.Overlay, decorators: [{
1361
1343
  type: Inject,
1362
1344
  args: [Overlay]
1363
1345
  }] }, { type: i0.ViewContainerRef, decorators: [{
@@ -1473,7 +1455,7 @@ NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Navigat
1473
1455
  i0.ɵɵtemplate(0, NavigationComponent_ng_template_0_Template, 2, 2, "ng-template", 0);
1474
1456
  } if (rf & 2) {
1475
1457
  i0.ɵɵproperty("ngForOf", ctx.items);
1476
- } }, directives: [i2.NgForOf, i2.NgIf, i2$4.MatDivider, i1$3.DefaultFlexDirective, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, NavigationItemComponent], pipes: [i2.AsyncPipe], styles: [".rxap-navigation{list-style-type:none;padding:0}.rxap-navigation .divider-title{padding-left:18px;height:28px;align-content:center}\n"], encapsulation: 2, changeDetection: 0 });
1458
+ } }, dependencies: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultFlexDirective, i2$1.NgForOf, i2$1.NgIf, i3$4.MatDivider, NavigationItemComponent, i2$1.AsyncPipe], styles: [".rxap-navigation{list-style-type:none;padding:0}.rxap-navigation .divider-title{padding-left:18px;height:28px;align-content:center}\n"], encapsulation: 2, changeDetection: 0 });
1477
1459
  __decorate([
1478
1460
  Required,
1479
1461
  __metadata("design:type", Array)
@@ -1594,7 +1576,7 @@ SidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavCom
1594
1576
  i0.ɵɵproperty("fxHide", i0.ɵɵpipeBind1(14, 9, ctx.sidenav.collapsed$));
1595
1577
  i0.ɵɵadvance(3);
1596
1578
  i0.ɵɵproperty("ngIf", (tmp_4_0 = ctx.sidenavFooterDirective == null ? null : ctx.sidenavFooterDirective.template) !== null && tmp_4_0 !== undefined ? tmp_4_0 : null);
1597
- } }, directives: [i2$1.DefaultClassDirective, i2.NgClass, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i2.NgIf, i1$3.DefaultFlexDirective, i2$1.DefaultShowHideDirective, i2.NgTemplateOutlet, i2$4.MatDivider, NavigationComponent, i1$1.MatButton, i1$3.DefaultLayoutGapDirective, i3$1.MatIcon], pipes: [i2.AsyncPipe], styles: [".container[_ngcontent-%COMP%], .container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%]{height:100%}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{padding-bottom:12px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .footer[_ngcontent-%COMP%]{padding-top:12px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]{overflow-y:scroll;padding-top:12px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]::-webkit-scrollbar-track{border-radius:2px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:10px}.container[_ngcontent-%COMP%] .sidebar-toggle[_ngcontent-%COMP%]{min-height:48px}.container[_ngcontent-%COMP%] .sidebar-toggle[_ngcontent-%COMP%] .sidebar-toggle-inner[_ngcontent-%COMP%]{padding:0}.container[_ngcontent-%COMP%] .sidebar-toggle[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{transform:rotate(180deg)}.container[_ngcontent-%COMP%] .sidebar-toggle.collapsed[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{transform:initial}.container[_ngcontent-%COMP%] .sidebar-toggle.collapsed[_ngcontent-%COMP%] .sidebar-toggle-inner[_ngcontent-%COMP%]{justify-content:space-around!important}"], changeDetection: 0 });
1579
+ } }, dependencies: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultFlexDirective, i5$1.DefaultShowHideDirective, i5$1.DefaultClassDirective, NavigationComponent, i2$1.NgClass, i2$1.NgIf, i2$1.NgTemplateOutlet, i3$4.MatDivider, i2$2.MatIcon, i1$1.MatButton, i2$1.AsyncPipe], styles: [".container[_ngcontent-%COMP%], .container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%]{height:100%}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{padding-bottom:12px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .footer[_ngcontent-%COMP%]{padding-top:12px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]{overflow-y:scroll;padding-top:12px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]::-webkit-scrollbar-track{border-radius:2px}.container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%] .nav-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:10px}.container[_ngcontent-%COMP%] .sidebar-toggle[_ngcontent-%COMP%]{min-height:48px}.container[_ngcontent-%COMP%] .sidebar-toggle[_ngcontent-%COMP%] .sidebar-toggle-inner[_ngcontent-%COMP%]{padding:0}.container[_ngcontent-%COMP%] .sidebar-toggle[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{transform:rotate(180deg)}.container[_ngcontent-%COMP%] .sidebar-toggle.collapsed[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{transform:initial}.container[_ngcontent-%COMP%] .sidebar-toggle.collapsed[_ngcontent-%COMP%] .sidebar-toggle-inner[_ngcontent-%COMP%]{justify-content:space-around!important}"], changeDetection: 0 });
1598
1580
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavComponent, [{
1599
1581
  type: Component,
1600
1582
  args: [{ selector: 'rxap-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -1662,7 +1644,7 @@ SidenavContentComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sid
1662
1644
  i0.ɵɵelementEnd()();
1663
1645
  } if (rf & 2) {
1664
1646
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$1, i0.ɵɵpipeBind1(1, 2, ctx.sidenav.openedChange)))("ngStyle", i0.ɵɵpureFunction3(12, _c1$1, i0.ɵɵpipeBind1(2, 4, ctx.sccs.innerHeight$), i0.ɵɵpipeBind1(3, 6, ctx.sccs.marginTop$), i0.ɵɵpipeBind1(4, 8, ctx.sccs.marginBottom$)));
1665
- } }, directives: [i2.NgClass, i2.NgStyle, i1$4.RouterOutlet], pipes: [i2.AsyncPipe], styles: [".container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%]{padding:0;overflow:auto;height:100%}"], changeDetection: 0 });
1647
+ } }, dependencies: [i2$1.NgClass, i2$1.NgStyle, i3$1.RouterOutlet, i2$1.AsyncPipe], styles: [".container[_ngcontent-%COMP%] .inner[_ngcontent-%COMP%]{padding:0;overflow:auto;height:100%}"], changeDetection: 0 });
1666
1648
  __decorate([
1667
1649
  Required,
1668
1650
  __metadata("design:type", MatSidenav)
@@ -1674,51 +1656,6 @@ __decorate([
1674
1656
  type: Input
1675
1657
  }] }); })();
1676
1658
 
1677
- function ToggleWindowSidenavButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1678
- i0.ɵɵelementStart(0, "mat-icon");
1679
- i0.ɵɵtext(1, "keyboard_arrow_left");
1680
- i0.ɵɵelementEnd();
1681
- } }
1682
- function ToggleWindowSidenavButtonComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
1683
- i0.ɵɵelementStart(0, "mat-icon");
1684
- i0.ɵɵtext(1, "keyboard_arrow_right");
1685
- i0.ɵɵelementEnd();
1686
- } }
1687
- class ToggleWindowSidenavButtonComponent {
1688
- constructor() {
1689
- this.openWindowSidenav = false;
1690
- this.openWindowSidenavChange = new EventEmitter();
1691
- }
1692
- ngOnInit() {
1693
- }
1694
- toggle() {
1695
- this.openWindowSidenav = !this.openWindowSidenav;
1696
- this.openWindowSidenavChange.emit(this.openWindowSidenav);
1697
- }
1698
- }
1699
- ToggleWindowSidenavButtonComponent.ɵfac = function ToggleWindowSidenavButtonComponent_Factory(t) { return new (t || ToggleWindowSidenavButtonComponent)(); };
1700
- ToggleWindowSidenavButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToggleWindowSidenavButtonComponent, selectors: [["rxap-toggle-window-sidenav-button"]], hostAttrs: [1, "rxap-toggle-window-sidenav-button"], inputs: { openWindowSidenav: "openWindowSidenav" }, outputs: { openWindowSidenavChange: "openWindowSidenavChange" }, decls: 5, vars: 2, consts: [[1, "toggle-button"], ["mat-icon-button", "", 3, "click"], [3, "ngIfElse", "ngIf"], ["hide", ""]], template: function ToggleWindowSidenavButtonComponent_Template(rf, ctx) { if (rf & 1) {
1701
- i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
1702
- i0.ɵɵlistener("click", function ToggleWindowSidenavButtonComponent_Template_button_click_1_listener() { return ctx.toggle(); });
1703
- i0.ɵɵtemplate(2, ToggleWindowSidenavButtonComponent_ng_template_2_Template, 2, 0, "ng-template", 2);
1704
- i0.ɵɵtemplate(3, ToggleWindowSidenavButtonComponent_ng_template_3_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
1705
- i0.ɵɵelementEnd()();
1706
- } if (rf & 2) {
1707
- const _r1 = i0.ɵɵreference(4);
1708
- i0.ɵɵadvance(2);
1709
- i0.ɵɵproperty("ngIfElse", _r1)("ngIf", !ctx.openWindowSidenav);
1710
- } }, directives: [i1$1.MatButton, i2.NgIf, i3$1.MatIcon], styles: [".toggle-button[_ngcontent-%COMP%]{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:black}"], changeDetection: 0 });
1711
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonComponent, [{
1712
- type: Component,
1713
- args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
1714
- class: 'rxap-toggle-window-sidenav-button'
1715
- }, template: "<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".toggle-button{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:black}\n"] }]
1716
- }], function () { return []; }, { openWindowSidenav: [{
1717
- type: Input
1718
- }], openWindowSidenavChange: [{
1719
- type: Output
1720
- }] }); })();
1721
-
1722
1659
  function WindowContainerSidenavComponent_div_1_ng_template_1_Template(rf, ctx) { }
1723
1660
  function WindowContainerSidenavComponent_div_1_Template(rf, ctx) { if (rf & 1) {
1724
1661
  i0.ɵɵelementStart(0, "div", 2);
@@ -1773,7 +1710,7 @@ WindowContainerSidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
1773
1710
  } if (rf & 2) {
1774
1711
  i0.ɵɵadvance(1);
1775
1712
  i0.ɵɵproperty("ngForOf", ctx.portals.keys())("ngForTrackBy", ctx.trackBy);
1776
- } }, directives: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i2.NgForOf, i1$3.DefaultFlexDirective, i4.CdkPortalOutlet], styles: [".container[_ngcontent-%COMP%]{padding:8px}"], changeDetection: 0 });
1713
+ } }, dependencies: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultFlexDirective, i2$1.NgForOf, i4.CdkPortalOutlet], styles: [".container[_ngcontent-%COMP%]{padding:8px}"], changeDetection: 0 });
1777
1714
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavComponent, [{
1778
1715
  type: Component,
1779
1716
  args: [{ selector: 'rxap-window-container-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n", styles: [".container{padding:8px}\n"] }]
@@ -1782,6 +1719,51 @@ WindowContainerSidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
1782
1719
  args: [WindowContainerSidenavService]
1783
1720
  }] }]; }, null); })();
1784
1721
 
1722
+ function ToggleWindowSidenavButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1723
+ i0.ɵɵelementStart(0, "mat-icon");
1724
+ i0.ɵɵtext(1, "keyboard_arrow_left");
1725
+ i0.ɵɵelementEnd();
1726
+ } }
1727
+ function ToggleWindowSidenavButtonComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
1728
+ i0.ɵɵelementStart(0, "mat-icon");
1729
+ i0.ɵɵtext(1, "keyboard_arrow_right");
1730
+ i0.ɵɵelementEnd();
1731
+ } }
1732
+ class ToggleWindowSidenavButtonComponent {
1733
+ constructor() {
1734
+ this.openWindowSidenav = false;
1735
+ this.openWindowSidenavChange = new EventEmitter();
1736
+ }
1737
+ ngOnInit() {
1738
+ }
1739
+ toggle() {
1740
+ this.openWindowSidenav = !this.openWindowSidenav;
1741
+ this.openWindowSidenavChange.emit(this.openWindowSidenav);
1742
+ }
1743
+ }
1744
+ ToggleWindowSidenavButtonComponent.ɵfac = function ToggleWindowSidenavButtonComponent_Factory(t) { return new (t || ToggleWindowSidenavButtonComponent)(); };
1745
+ ToggleWindowSidenavButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToggleWindowSidenavButtonComponent, selectors: [["rxap-toggle-window-sidenav-button"]], hostAttrs: [1, "rxap-toggle-window-sidenav-button"], inputs: { openWindowSidenav: "openWindowSidenav" }, outputs: { openWindowSidenavChange: "openWindowSidenavChange" }, decls: 5, vars: 2, consts: [[1, "toggle-button"], ["mat-icon-button", "", 3, "click"], [3, "ngIfElse", "ngIf"], ["hide", ""]], template: function ToggleWindowSidenavButtonComponent_Template(rf, ctx) { if (rf & 1) {
1746
+ i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
1747
+ i0.ɵɵlistener("click", function ToggleWindowSidenavButtonComponent_Template_button_click_1_listener() { return ctx.toggle(); });
1748
+ i0.ɵɵtemplate(2, ToggleWindowSidenavButtonComponent_ng_template_2_Template, 2, 0, "ng-template", 2);
1749
+ i0.ɵɵtemplate(3, ToggleWindowSidenavButtonComponent_ng_template_3_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
1750
+ i0.ɵɵelementEnd()();
1751
+ } if (rf & 2) {
1752
+ const _r1 = i0.ɵɵreference(4);
1753
+ i0.ɵɵadvance(2);
1754
+ i0.ɵɵproperty("ngIfElse", _r1)("ngIf", !ctx.openWindowSidenav);
1755
+ } }, dependencies: [i1$1.MatButton, i2$2.MatIcon, i2$1.NgIf], styles: [".toggle-button[_ngcontent-%COMP%]{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:black}"], changeDetection: 0 });
1756
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonComponent, [{
1757
+ type: Component,
1758
+ args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
1759
+ class: 'rxap-toggle-window-sidenav-button'
1760
+ }, template: "<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".toggle-button{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:black}\n"] }]
1761
+ }], function () { return []; }, { openWindowSidenav: [{
1762
+ type: Input
1763
+ }], openWindowSidenavChange: [{
1764
+ type: Output
1765
+ }] }); })();
1766
+
1785
1767
  const _c0 = function () { return ["/"]; };
1786
1768
  function LayoutComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
1787
1769
  i0.ɵɵelement(0, "img", 9);
@@ -1836,7 +1818,7 @@ LayoutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayoutCompo
1836
1818
  i0.ɵɵproperty("openWindowSidenav", ctx.openWindowSidenav);
1837
1819
  i0.ɵɵadvance(1);
1838
1820
  i0.ɵɵproperty("fixedBottomGap", i0.ɵɵpipeBind1(14, 20, ctx.layoutComponentService.fixedBottomGap$))("fixedInViewport", true)("fixedTopGap", i0.ɵɵpipeBind1(15, 22, ctx.layoutComponentService.fixedTopGap$))("opened", ctx.openWindowSidenav);
1839
- } }, directives: [HeaderComponent, i3$5.MatSidenavContainer, i3$5.MatSidenav, SidenavComponent, SidenavHeaderDirective, i1$4.RouterLink, i3$5.MatSidenavContent, SidenavContentComponent, ToggleWindowSidenavButtonComponent, WindowContainerSidenavComponent, FooterComponent], pipes: [i2.AsyncPipe], styles: [".container[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]{height:100%}.sidenav[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto}.sidenav[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{padding:16px}.footer[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;z-index:100}.header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;z-index:100}"], changeDetection: 0 });
1821
+ } }, dependencies: [i2$4.MatSidenav, i2$4.MatSidenavContainer, i2$4.MatSidenavContent, FooterComponent, HeaderComponent, SidenavComponent, SidenavHeaderDirective, SidenavContentComponent, WindowContainerSidenavComponent, ToggleWindowSidenavButtonComponent, i3$1.RouterLink, i2$1.AsyncPipe], styles: [".container[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]{height:100%}.sidenav[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto}.sidenav[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{padding:16px}.footer[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;right:0;z-index:100}.header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;z-index:100}"], changeDetection: 0 });
1840
1822
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponent, [{
1841
1823
  type: Component,
1842
1824
  args: [{ selector: 'rxap-layout', changeDetection: ChangeDetectionStrategy.OnPush, template: "<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n", styles: [".container,.content{height:100%}.sidenav{display:flex;align-items:center;justify-content:center;width:auto}.sidenav .logo{padding:16px}.footer{position:fixed;bottom:0;left:0;right:0;z-index:100}.header{position:fixed;top:0;left:0;right:0;z-index:100}\n"] }]
@@ -1891,20 +1873,18 @@ class NavigationComponentModule {
1891
1873
  }
1892
1874
  NavigationComponentModule.ɵfac = function NavigationComponentModule_Factory(t) { return new (t || NavigationComponentModule)(); };
1893
1875
  NavigationComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NavigationComponentModule });
1894
- NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
1895
- MatIconModule,
1896
- MatButtonModule,
1897
- FlexLayoutModule,
1898
- RouterModule,
1899
- CommonModule,
1900
- IconDirectiveModule,
1901
- ButtonComponentModule,
1902
- MatRippleModule,
1903
- MatDividerModule,
1904
- StopPropagationDirectiveModule,
1905
- MatTooltipModule,
1906
- ReplaceRouterPathsPipeModule
1907
- ]] });
1876
+ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
1877
+ MatButtonModule,
1878
+ FlexLayoutModule,
1879
+ RouterModule,
1880
+ CommonModule,
1881
+ IconDirectiveModule,
1882
+ ButtonComponentModule,
1883
+ MatRippleModule,
1884
+ MatDividerModule,
1885
+ StopPropagationDirectiveModule,
1886
+ MatTooltipModule,
1887
+ ReplaceRouterPathsPipeModule] });
1908
1888
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationComponentModule, [{
1909
1889
  type: NgModule,
1910
1890
  args: [{
@@ -1938,20 +1918,18 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
1938
1918
  StopPropagationDirectiveModule,
1939
1919
  MatTooltipModule,
1940
1920
  ReplaceRouterPathsPipeModule], exports: [NavigationComponent] }); })();
1941
- i0.ɵɵsetComponentScope(NavigationItemComponent, [i1$4.RouterLinkWithHref, i1$4.RouterLinkActive, i6.MatRipple, i3$6.MatTooltip, i2.NgIf, i3$1.MatIcon, i6$2.IconDirective, NavigationComponent, i1$3.DefaultFlexDirective, i2.NgForOf], [i2.AsyncPipe]);
1921
+ i0.ɵɵsetComponentScope(NavigationItemComponent, [i2$2.MatIcon, i1$3.DefaultFlexDirective, i3$1.RouterLinkWithHref, i3$1.RouterLinkActive, i2$1.NgForOf, i2$1.NgIf, i5$2.IconDirective, i4$1.MatRipple, i7.MatTooltip, NavigationComponent], [i2$1.AsyncPipe]);
1942
1922
 
1943
1923
  class SidenavModule {
1944
1924
  }
1945
1925
  SidenavModule.ɵfac = function SidenavModule_Factory(t) { return new (t || SidenavModule)(); };
1946
1926
  SidenavModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavModule });
1947
- SidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
1948
- FlexLayoutModule,
1949
- NavigationComponentModule,
1950
- CommonModule,
1951
- MatDividerModule,
1952
- MatIconModule,
1953
- MatButtonModule
1954
- ]] });
1927
+ SidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
1928
+ NavigationComponentModule,
1929
+ CommonModule,
1930
+ MatDividerModule,
1931
+ MatIconModule,
1932
+ MatButtonModule] });
1955
1933
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavModule, [{
1956
1934
  type: NgModule,
1957
1935
  args: [{
@@ -1978,10 +1956,8 @@ class SidenavContentModule {
1978
1956
  }
1979
1957
  SidenavContentModule.ɵfac = function SidenavContentModule_Factory(t) { return new (t || SidenavContentModule)(); };
1980
1958
  SidenavContentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavContentModule });
1981
- SidenavContentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
1982
- CommonModule,
1983
- RouterModule
1984
- ]] });
1959
+ SidenavContentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
1960
+ RouterModule] });
1985
1961
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavContentModule, [{
1986
1962
  type: NgModule,
1987
1963
  args: [{
@@ -2000,11 +1976,9 @@ class WindowContainerSidenavModule {
2000
1976
  }
2001
1977
  WindowContainerSidenavModule.ɵfac = function WindowContainerSidenavModule_Factory(t) { return new (t || WindowContainerSidenavModule)(); };
2002
1978
  WindowContainerSidenavModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: WindowContainerSidenavModule });
2003
- WindowContainerSidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2004
- FlexLayoutModule,
2005
- CommonModule,
2006
- PortalModule,
2007
- ]] });
1979
+ WindowContainerSidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
1980
+ CommonModule,
1981
+ PortalModule] });
2008
1982
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavModule, [{
2009
1983
  type: NgModule,
2010
1984
  args: [{
@@ -2025,11 +1999,9 @@ class ToggleWindowSidenavButtonModule {
2025
1999
  }
2026
2000
  ToggleWindowSidenavButtonModule.ɵfac = function ToggleWindowSidenavButtonModule_Factory(t) { return new (t || ToggleWindowSidenavButtonModule)(); };
2027
2001
  ToggleWindowSidenavButtonModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ToggleWindowSidenavButtonModule });
2028
- ToggleWindowSidenavButtonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2029
- MatButtonModule,
2030
- MatIconModule,
2031
- CommonModule,
2032
- ]] });
2002
+ ToggleWindowSidenavButtonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatButtonModule,
2003
+ MatIconModule,
2004
+ CommonModule] });
2033
2005
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonModule, [{
2034
2006
  type: NgModule,
2035
2007
  args: [{
@@ -2061,18 +2033,16 @@ class LayoutModule {
2061
2033
  }
2062
2034
  LayoutModule.ɵfac = function LayoutModule_Factory(t) { return new (t || LayoutModule)(); };
2063
2035
  LayoutModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LayoutModule });
2064
- LayoutModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2065
- MatSidenavModule,
2066
- FooterModule,
2067
- HeaderModule,
2068
- CommonModule,
2069
- SidenavModule,
2070
- SidenavContentModule,
2071
- WindowContainerSidenavModule,
2072
- ToggleWindowSidenavButtonModule,
2073
- FlexLayoutModule,
2074
- RouterModule
2075
- ]] });
2036
+ LayoutModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatSidenavModule,
2037
+ FooterModule,
2038
+ HeaderModule,
2039
+ CommonModule,
2040
+ SidenavModule,
2041
+ SidenavContentModule,
2042
+ WindowContainerSidenavModule,
2043
+ ToggleWindowSidenavButtonModule,
2044
+ FlexLayoutModule,
2045
+ RouterModule] });
2076
2046
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutModule, [{
2077
2047
  type: NgModule,
2078
2048
  args: [{
@@ -2143,7 +2113,7 @@ VersionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VersionCom
2143
2113
  } if (rf & 2) {
2144
2114
  i0.ɵɵadvance(1);
2145
2115
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx.modules));
2146
- } }, directives: [i1$3.DefaultFlexDirective, i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultLayoutGapDirective, i2.NgForOf], pipes: [i2.KeyValuePipe], styles: [".version[_ngcontent-%COMP%]{width:100%;font-size:9px;padding:8px}.version[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{padding-bottom:12px;font-size:10px}"], changeDetection: 0 });
2116
+ } }, dependencies: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultLayoutAlignDirective, i1$3.DefaultFlexDirective, i2$1.NgForOf, i2$1.KeyValuePipe], styles: [".version[_ngcontent-%COMP%]{width:100%;font-size:9px;padding:8px}.version[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{padding-bottom:12px;font-size:10px}"], changeDetection: 0 });
2147
2117
  __decorate([
2148
2118
  Required,
2149
2119
  __metadata("design:type", Object)
@@ -2160,10 +2130,8 @@ class VersionComponentModule {
2160
2130
  }
2161
2131
  VersionComponentModule.ɵfac = function VersionComponentModule_Factory(t) { return new (t || VersionComponentModule)(); };
2162
2132
  VersionComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: VersionComponentModule });
2163
- VersionComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2164
- FlexLayoutModule,
2165
- CommonModule
2166
- ]] });
2133
+ VersionComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
2134
+ CommonModule] });
2167
2135
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VersionComponentModule, [{
2168
2136
  type: NgModule,
2169
2137
  args: [{