@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 i6$1 from '@rxap/authentication';
13
+ import * as i3 from '@rxap/authentication';
14
14
  import { UserService, SignOutDirectiveModule } from '@rxap/authentication';
15
- import * as i2$1 from '@angular/flex-layout/extended';
16
- import * as i1$3 from '@angular/flex-layout/flex';
17
- import { __decorate, __metadata } from 'tslib';
18
- import * as i3$5 from '@angular/material/sidenav';
19
- import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
20
- import { Required, DebounceCall, coerceBoolean } from '@rxap/utilities';
15
+ import * as i3$1 from '@angular/router';
16
+ import { Router, NavigationStart, NavigationEnd, NavigationCancel, RouterModule, RouterLinkActive } from '@angular/router';
21
17
  import * as i1$1 from '@angular/material/button';
22
18
  import { MatButtonModule } from '@angular/material/button';
23
- import * as i3$1 from '@angular/material/icon';
19
+ import * as i2$2 from '@angular/material/icon';
24
20
  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
21
  import { isDefined } from '@rxap/utilities/rxjs';
37
- import * as i2$2 from '@angular/material/menu';
22
+ import * as i1$2 from '@angular/material/menu';
38
23
  import { MatMenuModule } from '@angular/material/menu';
39
- import * as i3$4 from '@rxap/directives';
24
+ import * as i1$3 from '@angular/flex-layout/flex';
25
+ import * as i5 from '@rxap/directives';
40
26
  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';
27
+ import * as i1$4 from '@angular/material/progress-bar';
44
28
  import { MatProgressBarModule } from '@angular/material/progress-bar';
29
+ import { __decorate, __metadata } from 'tslib';
30
+ import * as i2$4 from '@angular/material/sidenav';
31
+ import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
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');
@@ -108,11 +108,11 @@ FooterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FooterCompo
108
108
  if (rf & 2) {
109
109
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.footerService.portals$));
110
110
  }
111
- }, directives: [i2.NgIf, i3.MatToolbar, i2.NgForOf, i3.MatToolbarRow, i4.CdkPortalOutlet], pipes: [i2.AsyncPipe], styles: [""], changeDetection: 0 });
111
+ }, dependencies: [i2.MatToolbar, i2.MatToolbarRow, i2$1.NgForOf, i2$1.NgIf, i4.CdkPortalOutlet, i2$1.AsyncPipe], changeDetection: 0 });
112
112
  (function () {
113
113
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooterComponent, [{
114
114
  type: Component,
115
- 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: [""] }]
115
+ 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" }]
116
116
  }], function () { return [{ type: i1.FooterService }]; }, null);
117
117
  })();
118
118
 
@@ -120,11 +120,9 @@ class FooterModule {
120
120
  }
121
121
  FooterModule.ɵfac = function FooterModule_Factory(t) { return new (t || FooterModule)(); };
122
122
  FooterModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: FooterModule });
123
- FooterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
124
- MatToolbarModule,
125
- CommonModule,
126
- PortalModule
127
- ]] });
123
+ FooterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatToolbarModule,
124
+ CommonModule,
125
+ PortalModule] });
128
126
  (function () {
129
127
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FooterModule, [{
130
128
  type: NgModule,
@@ -145,164 +143,237 @@ FooterModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
145
143
  PortalModule], exports: [FooterComponent] });
146
144
  })();
147
145
 
148
- function SidenavToggleButtonComponent_mat_icon_1_Template(rf, ctx) {
149
- if (rf & 1) {
150
- i0.ɵɵelementStart(0, "mat-icon");
151
- i0.ɵɵtext(1, "menu");
152
- i0.ɵɵelementEnd();
146
+ class SignOutComponent {
147
+ constructor(router) {
148
+ this.router = router;
153
149
  }
154
- }
155
- function SidenavToggleButtonComponent_mat_icon_2_Template(rf, ctx) {
156
- if (rf & 1) {
157
- i0.ɵɵelementStart(0, "mat-icon");
158
- i0.ɵɵtext(1, "menu_open");
159
- i0.ɵɵelementEnd();
150
+ redirectToRoot() {
151
+ this.router.navigate(['/']);
160
152
  }
161
153
  }
162
- class SidenavToggleButtonComponent {
163
- }
164
- SidenavToggleButtonComponent.ɵfac = function SidenavToggleButtonComponent_Factory(t) { return new (t || SidenavToggleButtonComponent)(); };
165
- SidenavToggleButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavToggleButtonComponent, selectors: [["rxap-sidenav-toggle-button"]], hostAttrs: [1, "rxap-sidenav-toggle-button"], inputs: { sidenav: "sidenav" }, decls: 3, vars: 2, consts: [["mat-icon-button", "", 3, "click"], [4, "ngIf"]], template: function SidenavToggleButtonComponent_Template(rf, ctx) {
154
+ SignOutComponent.ɵfac = function SignOutComponent_Factory(t) { return new (t || SignOutComponent)(i0.ɵɵdirectiveInject(Router)); };
155
+ 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) {
166
156
  if (rf & 1) {
167
157
  i0.ɵɵelementStart(0, "button", 0);
168
- i0.ɵɵlistener("click", function SidenavToggleButtonComponent_Template_button_click_0_listener() { return ctx.sidenav.toggle(); });
169
- i0.ɵɵtemplate(1, SidenavToggleButtonComponent_mat_icon_1_Template, 2, 0, "mat-icon", 1);
170
- i0.ɵɵtemplate(2, SidenavToggleButtonComponent_mat_icon_2_Template, 2, 0, "mat-icon", 1);
171
- i0.ɵɵelementEnd();
172
- }
173
- if (rf & 2) {
174
- i0.ɵɵadvance(1);
175
- i0.ɵɵproperty("ngIf", !ctx.sidenav.opened);
176
- i0.ɵɵadvance(1);
177
- i0.ɵɵproperty("ngIf", ctx.sidenav.opened);
158
+ i0.ɵɵlistener("successful", function SignOutComponent_Template_button_successful_0_listener() { return ctx.redirectToRoot(); });
159
+ i0.ɵɵelementStart(1, "mat-icon");
160
+ i0.ɵɵtext(2, "login");
161
+ i0.ɵɵelementEnd()();
178
162
  }
179
- }, directives: [i1$1.MatButton, i2.NgIf, i3$1.MatIcon], styles: [""], changeDetection: 0 });
180
- __decorate([
181
- Required,
182
- __metadata("design:type", MatSidenav)
183
- ], SidenavToggleButtonComponent.prototype, "sidenav", void 0);
163
+ }, dependencies: [i1$1.MatButton, i2$2.MatIcon, i3.SignOutDirective], changeDetection: 0 });
184
164
  (function () {
185
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavToggleButtonComponent, [{
165
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponent, [{
186
166
  type: Component,
187
- 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: [""] }]
188
- }], null, { sidenav: [{
189
- type: Input
190
- }] });
167
+ 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" }]
168
+ }], function () {
169
+ return [{ type: i3$1.Router, decorators: [{
170
+ type: Inject,
171
+ args: [Router]
172
+ }] }];
173
+ }, null);
191
174
  })();
192
175
 
193
- function LanguageSelectorComponent_ng_template_0_mat_option_3_Template(rf, ctx) {
176
+ function UserProfileIconComponent_ng_template_5_button_0_Template(rf, ctx) {
194
177
  if (rf & 1) {
195
- i0.ɵɵelementStart(0, "mat-option", 4);
196
- i0.ɵɵtext(1);
178
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
179
+ i0.ɵɵtext(2, "person");
197
180
  i0.ɵɵelementEnd();
181
+ i0.ɵɵelementStart(3, "span");
182
+ i0.ɵɵtext(4);
183
+ i0.ɵɵelementEnd()();
198
184
  }
199
185
  if (rf & 2) {
200
- const item_r2 = ctx.$implicit;
201
- i0.ɵɵproperty("value", item_r2.key);
202
- i0.ɵɵadvance(1);
203
- i0.ɵɵtextInterpolate(item_r2.value);
186
+ const user_r2 = i0.ɵɵnextContext().$implicit;
187
+ i0.ɵɵadvance(4);
188
+ i0.ɵɵtextInterpolate2("", user_r2.firstname, " ", user_r2.lastname, "");
204
189
  }
205
190
  }
206
- function LanguageSelectorComponent_ng_template_0_Template(rf, ctx) {
191
+ function UserProfileIconComponent_ng_template_5_button_1_Template(rf, ctx) {
207
192
  if (rf & 1) {
208
- const _r4 = i0.ɵɵgetCurrentView();
209
- i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 1)(2, "mat-select", 2);
210
- 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); });
211
- i0.ɵɵtemplate(3, LanguageSelectorComponent_ng_template_0_mat_option_3_Template, 2, 2, "mat-option", 3);
212
- i0.ɵɵpipe(4, "keyvalue");
213
- i0.ɵɵelementEnd()()();
193
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
194
+ i0.ɵɵtext(2, "person");
195
+ i0.ɵɵelementEnd();
196
+ i0.ɵɵelementStart(3, "span");
197
+ i0.ɵɵtext(4);
198
+ i0.ɵɵelementEnd()();
214
199
  }
215
200
  if (rf & 2) {
216
- const ctx_r0 = i0.ɵɵnextContext();
217
- i0.ɵɵadvance(2);
218
- i0.ɵɵproperty("ngModel", ctx_r0.language.selectedLanguage);
219
- i0.ɵɵadvance(1);
220
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(4, 2, ctx_r0.language.languages));
201
+ const user_r2 = i0.ɵɵnextContext().$implicit;
202
+ i0.ɵɵadvance(4);
203
+ i0.ɵɵtextInterpolate(user_r2.name);
221
204
  }
222
205
  }
223
- const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = 'rxap__selected_language';
224
- const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = 'rxap__selected_language_last_change';
225
- class LanguageSelectorService {
226
- constructor(config) {
227
- var _a, _b, _c, _d;
228
- this.config = config;
229
- this.languages = (_a = this.config.get('i18n.languages')) !== null && _a !== void 0 ? _a : {};
230
- this.defaultLanguage =
231
- (_c = (_b = this.config.get('i18n.defaultLanguage')) !== null && _b !== void 0 ? _b : Object.keys(this.languages)[0]) !== null && _c !== void 0 ? _c : 'en';
232
- this.selectedLanguage =
233
- (_d = localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) !== null && _d !== void 0 ? _d : this.defaultLanguage;
206
+ function UserProfileIconComponent_ng_template_5_button_2_Template(rf, ctx) {
207
+ if (rf & 1) {
208
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
209
+ i0.ɵɵtext(2, "account_circle");
210
+ i0.ɵɵelementEnd();
211
+ i0.ɵɵelementStart(3, "span");
212
+ i0.ɵɵtext(4);
213
+ i0.ɵɵelementEnd()();
234
214
  }
235
- setLanguage(language) {
236
- if (language !== this.selectedLanguage) {
237
- this.redirect(language);
238
- }
215
+ if (rf & 2) {
216
+ const user_r2 = i0.ɵɵnextContext().$implicit;
217
+ i0.ɵɵadvance(4);
218
+ i0.ɵɵtextInterpolate(user_r2.username);
239
219
  }
240
- autoRedirect() {
241
- if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {
242
- this.redirect(localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY));
243
- }
220
+ }
221
+ function UserProfileIconComponent_ng_template_5_button_3_Template(rf, ctx) {
222
+ if (rf & 1) {
223
+ i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
224
+ i0.ɵɵtext(2, "email");
225
+ i0.ɵɵelementEnd();
226
+ i0.ɵɵelementStart(3, "span");
227
+ i0.ɵɵtext(4);
228
+ i0.ɵɵelementEnd()();
244
229
  }
245
- redirect(language) {
246
- const currentUrl = location.origin + location.pathname + location.search;
247
- const redirectUrl = location.origin +
248
- `/${language}` +
249
- location.pathname.replace(new RegExp(`^\/${this.selectedLanguage}`), '') +
250
- location.search;
251
- this.selectedLanguage = language;
252
- localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);
253
- if (currentUrl !== redirectUrl) {
254
- if (this.checkLastChange()) {
255
- location.replace(redirectUrl);
256
- }
230
+ if (rf & 2) {
231
+ const user_r2 = i0.ɵɵnextContext().$implicit;
232
+ i0.ɵɵadvance(4);
233
+ i0.ɵɵtextInterpolate(user_r2.email);
234
+ }
235
+ }
236
+ function UserProfileIconComponent_ng_template_5_Template(rf, ctx) {
237
+ if (rf & 1) {
238
+ i0.ɵɵtemplate(0, UserProfileIconComponent_ng_template_5_button_0_Template, 5, 2, "button", 4);
239
+ i0.ɵɵtemplate(1, UserProfileIconComponent_ng_template_5_button_1_Template, 5, 1, "button", 4);
240
+ i0.ɵɵtemplate(2, UserProfileIconComponent_ng_template_5_button_2_Template, 5, 1, "button", 4);
241
+ i0.ɵɵtemplate(3, UserProfileIconComponent_ng_template_5_button_3_Template, 5, 1, "button", 4);
242
+ }
243
+ if (rf & 2) {
244
+ const user_r2 = ctx.$implicit;
245
+ i0.ɵɵproperty("ngIf", user_r2.firstname && user_r2.lastname);
246
+ i0.ɵɵadvance(1);
247
+ i0.ɵɵproperty("ngIf", user_r2.name);
248
+ i0.ɵɵadvance(1);
249
+ i0.ɵɵproperty("ngIf", user_r2.username);
250
+ i0.ɵɵadvance(1);
251
+ i0.ɵɵproperty("ngIf", user_r2.email);
252
+ }
253
+ }
254
+ class UserProfileIconComponent {
255
+ constructor(userService) {
256
+ this.userService = userService;
257
+ this.userProfileUrl$ = this.userService.user$.pipe(isDefined(), map((user) => { var _a; return (_a = user.photoURL) !== null && _a !== void 0 ? _a : user.avatarUrl; }));
258
+ this.userName$ = this.userService.user$.pipe(isDefined(), map((user) => {
259
+ var _a, _b;
260
+ return (_b = (_a = user.name) !== null && _a !== void 0 ? _a : (user.firstname || user.lastname
261
+ ? [user.firstname, user.lastname].join(' ').trim()
262
+ : null)) !== null && _b !== void 0 ? _b : user.username;
263
+ }));
264
+ }
265
+ }
266
+ UserProfileIconComponent.ɵfac = function UserProfileIconComponent_Factory(t) { return new (t || UserProfileIconComponent)(i0.ɵɵdirectiveInject(UserService)); };
267
+ 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) {
268
+ if (rf & 1) {
269
+ i0.ɵɵelement(0, "button", 0);
270
+ i0.ɵɵpipe(1, "async");
271
+ i0.ɵɵpipe(2, "async");
272
+ i0.ɵɵelementStart(3, "mat-menu", 1, 2);
273
+ i0.ɵɵtemplate(5, UserProfileIconComponent_ng_template_5_Template, 4, 4, "ng-template", 3);
274
+ i0.ɵɵpipe(6, "async");
275
+ i0.ɵɵelementEnd();
257
276
  }
258
- else {
259
- console.log('Redirect not required');
277
+ if (rf & 2) {
278
+ const _r0 = i0.ɵɵreference(4);
279
+ let tmp_2_0;
280
+ 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 : "");
281
+ i0.ɵɵadvance(3);
282
+ i0.ɵɵproperty("yPosition", "below");
283
+ i0.ɵɵadvance(2);
284
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 9, ctx.userService.user$));
260
285
  }
286
+ }, 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 });
287
+ (function () {
288
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponent, [{
289
+ type: Component,
290
+ 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"] }]
291
+ }], function () {
292
+ return [{ type: i3.UserService, decorators: [{
293
+ type: Inject,
294
+ args: [UserService]
295
+ }] }];
296
+ }, null);
297
+ })();
298
+
299
+ function NavigationProgressBarComponent_mat_progress_bar_0_Template(rf, ctx) {
300
+ if (rf & 1) {
301
+ i0.ɵɵelement(0, "mat-progress-bar", 1);
261
302
  }
262
- checkLastChange() {
263
- const lastChangeString = localStorage.getItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY);
264
- if (lastChangeString) {
265
- if (Date.now() - parseInt(lastChangeString, 10) < 1000) {
266
- return false;
267
- }
268
- }
269
- localStorage.setItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY, Date.now().toFixed(0));
270
- return true;
303
+ }
304
+ class NavigationProgressBarComponent {
305
+ constructor(router) {
306
+ this.router = router;
307
+ this.navigating$ = this.router.events.pipe(filter(event => event instanceof NavigationStart ||
308
+ event instanceof NavigationEnd ||
309
+ event instanceof NavigationCancel), map(event => event instanceof NavigationStart));
271
310
  }
272
311
  }
273
- LanguageSelectorService.ɵfac = function LanguageSelectorService_Factory(t) { return new (t || LanguageSelectorService)(i0.ɵɵinject(ConfigService)); };
274
- LanguageSelectorServiceprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LanguageSelectorService, factory: LanguageSelectorService.ɵfac, providedIn: 'root' });
312
+ NavigationProgressBarComponent.ɵfac = function NavigationProgressBarComponent_Factory(t) { return new (t || NavigationProgressBarComponent)(i0.ɵɵdirectiveInject(Router)); };
313
+ NavigationProgressBarComponentcmp = /*@__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) {
314
+ if (rf & 1) {
315
+ i0.ɵɵtemplate(0, NavigationProgressBarComponent_mat_progress_bar_0_Template, 1, 0, "mat-progress-bar", 0);
316
+ i0.ɵɵpipe(1, "async");
317
+ }
318
+ if (rf & 2) {
319
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.navigating$));
320
+ }
321
+ }, dependencies: [i1$4.MatProgressBar, i2$1.NgIf, i2$1.AsyncPipe], changeDetection: 0 });
275
322
  (function () {
276
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorService, [{
277
- type: Injectable,
278
- args: [{ providedIn: 'root' }]
323
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponent, [{
324
+ type: Component,
325
+ 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" }]
279
326
  }], function () {
280
- return [{ type: i1$2.ConfigService, decorators: [{
327
+ return [{ type: i3$1.Router, decorators: [{
281
328
  type: Inject,
282
- args: [ConfigService]
329
+ args: [Router]
283
330
  }] }];
284
331
  }, null);
285
332
  })();
286
- class LanguageSelectorComponent {
287
- constructor(language) {
288
- this.language = language;
333
+
334
+ function SidenavToggleButtonComponent_mat_icon_1_Template(rf, ctx) {
335
+ if (rf & 1) {
336
+ i0.ɵɵelementStart(0, "mat-icon");
337
+ i0.ɵɵtext(1, "menu");
338
+ i0.ɵɵelementEnd();
289
339
  }
290
340
  }
291
- LanguageSelectorComponent.ɵfac = function LanguageSelectorComponent_Factory(t) { return new (t || LanguageSelectorComponent)(i0.ɵɵdirectiveInject(LanguageSelectorService)); };
292
- 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) {
341
+ function SidenavToggleButtonComponent_mat_icon_2_Template(rf, ctx) {
342
+ if (rf & 1) {
343
+ i0.ɵɵelementStart(0, "mat-icon");
344
+ i0.ɵɵtext(1, "menu_open");
345
+ i0.ɵɵelementEnd();
346
+ }
347
+ }
348
+ class SidenavToggleButtonComponent {
349
+ }
350
+ SidenavToggleButtonComponent.ɵfac = function SidenavToggleButtonComponent_Factory(t) { return new (t || SidenavToggleButtonComponent)(); };
351
+ SidenavToggleButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavToggleButtonComponent, selectors: [["rxap-sidenav-toggle-button"]], hostAttrs: [1, "rxap-sidenav-toggle-button"], inputs: { sidenav: "sidenav" }, decls: 3, vars: 2, consts: [["mat-icon-button", "", 3, "click"], [4, "ngIf"]], template: function SidenavToggleButtonComponent_Template(rf, ctx) {
293
352
  if (rf & 1) {
294
- i0.ɵɵtemplate(0, LanguageSelectorComponent_ng_template_0_Template, 5, 4, "ng-template", 0);
295
- i0.ɵɵpipe(1, "keyvalue");
353
+ i0.ɵɵelementStart(0, "button", 0);
354
+ i0.ɵɵlistener("click", function SidenavToggleButtonComponent_Template_button_click_0_listener() { return ctx.sidenav.toggle(); });
355
+ i0.ɵɵtemplate(1, SidenavToggleButtonComponent_mat_icon_1_Template, 2, 0, "mat-icon", 1);
356
+ i0.ɵɵtemplate(2, SidenavToggleButtonComponent_mat_icon_2_Template, 2, 0, "mat-icon", 1);
357
+ i0.ɵɵelementEnd();
296
358
  }
297
359
  if (rf & 2) {
298
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.language.languages).length);
360
+ i0.ɵɵadvance(1);
361
+ i0.ɵɵproperty("ngIf", !ctx.sidenav.opened);
362
+ i0.ɵɵadvance(1);
363
+ i0.ɵɵproperty("ngIf", ctx.sidenav.opened);
299
364
  }
300
- }, 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 });
365
+ }, dependencies: [i2$2.MatIcon, i2$1.NgIf, i1$1.MatButton], changeDetection: 0 });
366
+ __decorate([
367
+ Required,
368
+ __metadata("design:type", MatSidenav)
369
+ ], SidenavToggleButtonComponent.prototype, "sidenav", void 0);
301
370
  (function () {
302
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponent, [{
371
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavToggleButtonComponent, [{
303
372
  type: Component,
304
- 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"] }]
305
- }], function () { return [{ type: LanguageSelectorService }]; }, null);
373
+ 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" }]
374
+ }], null, { sidenav: [{
375
+ type: Input
376
+ }] });
306
377
  })();
307
378
 
308
379
  function AppsButtonComponent_ng_template_0_ng_template_4_li_2_a_1_Template(rf, ctx) {
@@ -355,12 +426,12 @@ function AppsButtonComponent_ng_template_0_Template(rf, ctx) {
355
426
  if (rf & 1) {
356
427
  const _r8 = i0.ɵɵgetCurrentView();
357
428
  i0.ɵɵelementStart(0, "button", 1, 2);
358
- 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; });
429
+ 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); });
359
430
  i0.ɵɵelementStart(2, "mat-icon");
360
431
  i0.ɵɵtext(3, "apps");
361
432
  i0.ɵɵelementEnd()();
362
433
  i0.ɵɵtemplate(4, AppsButtonComponent_ng_template_0_ng_template_4_Template, 3, 4, "ng-template", 3);
363
- 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; });
434
+ 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); });
364
435
  }
365
436
  if (rf & 2) {
366
437
  const _r1 = i0.ɵɵreference(1);
@@ -402,210 +473,137 @@ AppsButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AppsBut
402
473
  if (rf & 2) {
403
474
  i0.ɵɵproperty("ngIf", ctx.grid && ctx.grid.length);
404
475
  }
405
- }, 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 });
476
+ }, 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 });
406
477
  (function () {
407
478
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppsButtonComponent, [{
408
479
  type: Component,
409
- 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"] }]
480
+ 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"] }]
410
481
  }], function () {
411
482
  return [{ type: undefined, decorators: [{
412
483
  type: Optional
413
484
  }, {
414
485
  type: Inject,
415
486
  args: [RXAP_LAYOUT_APPS_GRID]
416
- }] }, { type: i1$2.ConfigService, decorators: [{
487
+ }] }, { type: i1$5.ConfigService, decorators: [{
417
488
  type: Inject,
418
489
  args: [ConfigService]
419
490
  }] }];
420
491
  }, null);
421
492
  })();
422
493
 
423
- function UserProfileIconComponent_ng_template_5_button_0_Template(rf, ctx) {
424
- if (rf & 1) {
425
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
426
- i0.ɵɵtext(2, "person");
427
- i0.ɵɵelementEnd();
428
- i0.ɵɵelementStart(3, "span");
429
- i0.ɵɵtext(4);
430
- i0.ɵɵelementEnd()();
431
- }
432
- if (rf & 2) {
433
- const user_r2 = i0.ɵɵnextContext().$implicit;
434
- i0.ɵɵadvance(4);
435
- i0.ɵɵtextInterpolate2("", user_r2.firstname, " ", user_r2.lastname, "");
436
- }
437
- }
438
- function UserProfileIconComponent_ng_template_5_button_1_Template(rf, ctx) {
439
- if (rf & 1) {
440
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
441
- i0.ɵɵtext(2, "person");
442
- i0.ɵɵelementEnd();
443
- i0.ɵɵelementStart(3, "span");
444
- i0.ɵɵtext(4);
445
- i0.ɵɵelementEnd()();
446
- }
447
- if (rf & 2) {
448
- const user_r2 = i0.ɵɵnextContext().$implicit;
449
- i0.ɵɵadvance(4);
450
- i0.ɵɵtextInterpolate(user_r2.name);
451
- }
452
- }
453
- function UserProfileIconComponent_ng_template_5_button_2_Template(rf, ctx) {
494
+ function LanguageSelectorComponent_ng_template_0_mat_option_3_Template(rf, ctx) {
454
495
  if (rf & 1) {
455
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
456
- i0.ɵɵtext(2, "account_circle");
496
+ i0.ɵɵelementStart(0, "mat-option", 4);
497
+ i0.ɵɵtext(1);
457
498
  i0.ɵɵelementEnd();
458
- i0.ɵɵelementStart(3, "span");
459
- i0.ɵɵtext(4);
460
- i0.ɵɵelementEnd()();
461
499
  }
462
500
  if (rf & 2) {
463
- const user_r2 = i0.ɵɵnextContext().$implicit;
464
- i0.ɵɵadvance(4);
465
- i0.ɵɵtextInterpolate(user_r2.username);
501
+ const item_r2 = ctx.$implicit;
502
+ i0.ɵɵproperty("value", item_r2.key);
503
+ i0.ɵɵadvance(1);
504
+ i0.ɵɵtextInterpolate(item_r2.value);
466
505
  }
467
506
  }
468
- function UserProfileIconComponent_ng_template_5_button_3_Template(rf, ctx) {
507
+ function LanguageSelectorComponent_ng_template_0_Template(rf, ctx) {
469
508
  if (rf & 1) {
470
- i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
471
- i0.ɵɵtext(2, "email");
472
- i0.ɵɵelementEnd();
473
- i0.ɵɵelementStart(3, "span");
474
- i0.ɵɵtext(4);
475
- i0.ɵɵelementEnd()();
509
+ const _r4 = i0.ɵɵgetCurrentView();
510
+ i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 1)(2, "mat-select", 2);
511
+ 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)); });
512
+ i0.ɵɵtemplate(3, LanguageSelectorComponent_ng_template_0_mat_option_3_Template, 2, 2, "mat-option", 3);
513
+ i0.ɵɵpipe(4, "keyvalue");
514
+ i0.ɵɵelementEnd()()();
476
515
  }
477
516
  if (rf & 2) {
478
- const user_r2 = i0.ɵɵnextContext().$implicit;
479
- i0.ɵɵadvance(4);
480
- i0.ɵɵtextInterpolate(user_r2.email);
517
+ const ctx_r0 = i0.ɵɵnextContext();
518
+ i0.ɵɵadvance(2);
519
+ i0.ɵɵproperty("ngModel", ctx_r0.language.selectedLanguage);
520
+ i0.ɵɵadvance(1);
521
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(4, 2, ctx_r0.language.languages));
481
522
  }
482
523
  }
483
- function UserProfileIconComponent_ng_template_5_Template(rf, ctx) {
484
- if (rf & 1) {
485
- i0.ɵɵtemplate(0, UserProfileIconComponent_ng_template_5_button_0_Template, 5, 2, "button", 4);
486
- i0.ɵɵtemplate(1, UserProfileIconComponent_ng_template_5_button_1_Template, 5, 1, "button", 4);
487
- i0.ɵɵtemplate(2, UserProfileIconComponent_ng_template_5_button_2_Template, 5, 1, "button", 4);
488
- i0.ɵɵtemplate(3, UserProfileIconComponent_ng_template_5_button_3_Template, 5, 1, "button", 4);
524
+ const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = 'rxap__selected_language';
525
+ const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = 'rxap__selected_language_last_change';
526
+ class LanguageSelectorService {
527
+ constructor(config) {
528
+ var _a, _b, _c, _d;
529
+ this.config = config;
530
+ this.languages = (_a = this.config.get('i18n.languages')) !== null && _a !== void 0 ? _a : {};
531
+ this.defaultLanguage =
532
+ (_c = (_b = this.config.get('i18n.defaultLanguage')) !== null && _b !== void 0 ? _b : Object.keys(this.languages)[0]) !== null && _c !== void 0 ? _c : 'en';
533
+ this.selectedLanguage =
534
+ (_d = localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) !== null && _d !== void 0 ? _d : this.defaultLanguage;
489
535
  }
490
- if (rf & 2) {
491
- const user_r2 = ctx.$implicit;
492
- i0.ɵɵproperty("ngIf", user_r2.firstname && user_r2.lastname);
493
- i0.ɵɵadvance(1);
494
- i0.ɵɵproperty("ngIf", user_r2.name);
495
- i0.ɵɵadvance(1);
496
- i0.ɵɵproperty("ngIf", user_r2.username);
497
- i0.ɵɵadvance(1);
498
- i0.ɵɵproperty("ngIf", user_r2.email);
536
+ setLanguage(language) {
537
+ if (language !== this.selectedLanguage) {
538
+ this.redirect(language);
539
+ }
499
540
  }
500
- }
501
- class UserProfileIconComponent {
502
- constructor(userService) {
503
- this.userService = userService;
504
- this.userProfileUrl$ = this.userService.user$.pipe(isDefined(), map((user) => { var _a; return (_a = user.photoURL) !== null && _a !== void 0 ? _a : user.avatarUrl; }));
505
- this.userName$ = this.userService.user$.pipe(isDefined(), map((user) => {
506
- var _a, _b;
507
- return (_b = (_a = user.name) !== null && _a !== void 0 ? _a : (user.firstname || user.lastname
508
- ? [user.firstname, user.lastname].join(' ').trim()
509
- : null)) !== null && _b !== void 0 ? _b : user.username;
510
- }));
541
+ autoRedirect() {
542
+ if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {
543
+ this.redirect(localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY));
544
+ }
511
545
  }
512
- }
513
- UserProfileIconComponent.ɵfac = function UserProfileIconComponent_Factory(t) { return new (t || UserProfileIconComponent)(i0.ɵɵdirectiveInject(UserService)); };
514
- 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) {
515
- if (rf & 1) {
516
- i0.ɵɵelement(0, "button", 0);
517
- i0.ɵɵpipe(1, "async");
518
- i0.ɵɵpipe(2, "async");
519
- i0.ɵɵelementStart(3, "mat-menu", 1, 2);
520
- i0.ɵɵtemplate(5, UserProfileIconComponent_ng_template_5_Template, 4, 4, "ng-template", 3);
521
- i0.ɵɵpipe(6, "async");
522
- i0.ɵɵelementEnd();
546
+ redirect(language) {
547
+ const currentUrl = location.origin + location.pathname + location.search;
548
+ const redirectUrl = location.origin +
549
+ `/${language}` +
550
+ location.pathname.replace(new RegExp(`^\/${this.selectedLanguage}`), '') +
551
+ location.search;
552
+ this.selectedLanguage = language;
553
+ localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);
554
+ if (currentUrl !== redirectUrl) {
555
+ if (this.checkLastChange()) {
556
+ location.replace(redirectUrl);
557
+ }
523
558
  }
524
- if (rf & 2) {
525
- const _r0 = i0.ɵɵreference(4);
526
- let tmp_2_0;
527
- 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 : "");
528
- i0.ɵɵadvance(3);
529
- i0.ɵɵproperty("yPosition", "below");
530
- i0.ɵɵadvance(2);
531
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 9, ctx.userService.user$));
559
+ else {
560
+ console.log('Redirect not required');
532
561
  }
533
- }, 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 });
534
- (function () {
535
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponent, [{
536
- type: Component,
537
- 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"] }]
538
- }], function () {
539
- return [{ type: i6$1.UserService, decorators: [{
540
- type: Inject,
541
- args: [UserService]
542
- }] }];
543
- }, null);
544
- })();
545
-
546
- class SignOutComponent {
547
- constructor(router) {
548
- this.router = router;
549
562
  }
550
- redirectToRoot() {
551
- this.router.navigate(['/']);
563
+ checkLastChange() {
564
+ const lastChangeString = localStorage.getItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY);
565
+ if (lastChangeString) {
566
+ if (Date.now() - parseInt(lastChangeString, 10) < 1000) {
567
+ return false;
568
+ }
569
+ }
570
+ localStorage.setItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY, Date.now().toFixed(0));
571
+ return true;
552
572
  }
553
573
  }
554
- SignOutComponent.ɵfac = function SignOutComponent_Factory(t) { return new (t || SignOutComponent)(i0.ɵɵdirectiveInject(Router)); };
555
- 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) {
556
- if (rf & 1) {
557
- i0.ɵɵelementStart(0, "button", 0);
558
- i0.ɵɵlistener("successful", function SignOutComponent_Template_button_successful_0_listener() { return ctx.redirectToRoot(); });
559
- i0.ɵɵelementStart(1, "mat-icon");
560
- i0.ɵɵtext(2, "login");
561
- i0.ɵɵelementEnd()();
562
- }
563
- }, directives: [i1$1.MatButton, i6$1.SignOutDirective, i3$1.MatIcon], styles: [""], changeDetection: 0 });
574
+ LanguageSelectorService.ɵfac = function LanguageSelectorService_Factory(t) { return new (t || LanguageSelectorService)(i0.ɵɵinject(ConfigService)); };
575
+ LanguageSelectorServiceprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LanguageSelectorService, factory: LanguageSelectorService.ɵfac, providedIn: 'root' });
564
576
  (function () {
565
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponent, [{
566
- type: Component,
567
- 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: [""] }]
577
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorService, [{
578
+ type: Injectable,
579
+ args: [{ providedIn: 'root' }]
568
580
  }], function () {
569
- return [{ type: i1$4.Router, decorators: [{
581
+ return [{ type: i1$5.ConfigService, decorators: [{
570
582
  type: Inject,
571
- args: [Router]
583
+ args: [ConfigService]
572
584
  }] }];
573
585
  }, null);
574
586
  })();
575
-
576
- function NavigationProgressBarComponent_mat_progress_bar_0_Template(rf, ctx) {
577
- if (rf & 1) {
578
- i0.ɵɵelement(0, "mat-progress-bar", 1);
579
- }
580
- }
581
- class NavigationProgressBarComponent {
582
- constructor(router) {
583
- this.router = router;
584
- this.navigating$ = this.router.events.pipe(filter(event => event instanceof NavigationStart ||
585
- event instanceof NavigationEnd ||
586
- event instanceof NavigationCancel), map(event => event instanceof NavigationStart));
587
+ class LanguageSelectorComponent {
588
+ constructor(language) {
589
+ this.language = language;
587
590
  }
588
591
  }
589
- NavigationProgressBarComponent.ɵfac = function NavigationProgressBarComponent_Factory(t) { return new (t || NavigationProgressBarComponent)(i0.ɵɵdirectiveInject(Router)); };
590
- 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) {
592
+ LanguageSelectorComponent.ɵfac = function LanguageSelectorComponent_Factory(t) { return new (t || LanguageSelectorComponent)(i0.ɵɵdirectiveInject(LanguageSelectorService)); };
593
+ 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) {
591
594
  if (rf & 1) {
592
- i0.ɵɵtemplate(0, NavigationProgressBarComponent_mat_progress_bar_0_Template, 1, 0, "mat-progress-bar", 0);
593
- i0.ɵɵpipe(1, "async");
595
+ i0.ɵɵtemplate(0, LanguageSelectorComponent_ng_template_0_Template, 5, 4, "ng-template", 0);
596
+ i0.ɵɵpipe(1, "keyvalue");
594
597
  }
595
598
  if (rf & 2) {
596
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.navigating$));
599
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.language.languages).length);
597
600
  }
598
- }, directives: [i2.NgIf, i2$3.MatProgressBar], pipes: [i2.AsyncPipe], styles: [""], changeDetection: 0 });
601
+ }, 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 });
599
602
  (function () {
600
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponent, [{
603
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponent, [{
601
604
  type: Component,
602
- 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: [""] }]
603
- }], function () {
604
- return [{ type: i1$4.Router, decorators: [{
605
- type: Inject,
606
- args: [Router]
607
- }] }];
608
- }, null);
605
+ 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"] }]
606
+ }], function () { return [{ type: LanguageSelectorService }]; }, null);
609
607
  })();
610
608
 
611
609
  function HeaderComponent_mat_toolbar_row_1_ng_container_1_Template(rf, ctx) {
@@ -706,7 +704,7 @@ HeaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderCompo
706
704
  i0.ɵɵadvance(2);
707
705
  i0.ɵɵproperty("ngIf", ctx.settingsMenuPanel);
708
706
  }
709
- }, 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 });
707
+ }, 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 });
710
708
  (function () {
711
709
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HeaderComponent, [{
712
710
  type: Component,
@@ -717,7 +715,7 @@ HeaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderCompo
717
715
  return [{ type: i1.HeaderService, decorators: [{
718
716
  type: Inject,
719
717
  args: [HeaderService]
720
- }] }, { type: i6$1.UserService, decorators: [{
718
+ }] }, { type: i3.UserService, decorators: [{
721
719
  type: Inject,
722
720
  args: [UserService]
723
721
  }] }, { type: undefined, decorators: [{
@@ -739,11 +737,9 @@ class SignOutComponentModule {
739
737
  }
740
738
  SignOutComponentModule.ɵfac = function SignOutComponentModule_Factory(t) { return new (t || SignOutComponentModule)(); };
741
739
  SignOutComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SignOutComponentModule });
742
- SignOutComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
743
- MatButtonModule,
744
- MatIconModule,
745
- SignOutDirectiveModule,
746
- ]] });
740
+ SignOutComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatButtonModule,
741
+ MatIconModule,
742
+ SignOutDirectiveModule] });
747
743
  (function () {
748
744
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponentModule, [{
749
745
  type: NgModule,
@@ -768,13 +764,11 @@ class UserProfileIconComponentModule {
768
764
  }
769
765
  UserProfileIconComponentModule.ɵfac = function UserProfileIconComponentModule_Factory(t) { return new (t || UserProfileIconComponentModule)(); };
770
766
  UserProfileIconComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: UserProfileIconComponentModule });
771
- UserProfileIconComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
772
- MatMenuModule,
773
- MatIconModule,
774
- CommonModule,
775
- FlexLayoutModule,
776
- AvatarBackgroundImageDirectiveModule,
777
- ]] });
767
+ UserProfileIconComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatMenuModule,
768
+ MatIconModule,
769
+ CommonModule,
770
+ FlexLayoutModule,
771
+ AvatarBackgroundImageDirectiveModule] });
778
772
  (function () {
779
773
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponentModule, [{
780
774
  type: NgModule,
@@ -803,10 +797,8 @@ class NavigationProgressBarComponentModule {
803
797
  }
804
798
  NavigationProgressBarComponentModule.ɵfac = function NavigationProgressBarComponentModule_Factory(t) { return new (t || NavigationProgressBarComponentModule)(); };
805
799
  NavigationProgressBarComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NavigationProgressBarComponentModule });
806
- NavigationProgressBarComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
807
- MatProgressBarModule,
808
- CommonModule
809
- ]] });
800
+ NavigationProgressBarComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatProgressBarModule,
801
+ CommonModule] });
810
802
  (function () {
811
803
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponentModule, [{
812
804
  type: NgModule,
@@ -829,11 +821,9 @@ class SidenavToggleButtonComponentModule {
829
821
  }
830
822
  SidenavToggleButtonComponentModule.ɵfac = function SidenavToggleButtonComponentModule_Factory(t) { return new (t || SidenavToggleButtonComponentModule)(); };
831
823
  SidenavToggleButtonComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavToggleButtonComponentModule });
832
- SidenavToggleButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
833
- MatIconModule,
834
- CommonModule,
835
- MatButtonModule
836
- ]] });
824
+ SidenavToggleButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
825
+ CommonModule,
826
+ MatButtonModule] });
837
827
  (function () {
838
828
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavToggleButtonComponentModule, [{
839
829
  type: NgModule,
@@ -868,11 +858,11 @@ ResetButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResetB
868
858
  i0.ɵɵtext(2, "refresh");
869
859
  i0.ɵɵelementEnd()();
870
860
  }
871
- }, directives: [i1$1.MatButton, i3$1.MatIcon], styles: [""], changeDetection: 0 });
861
+ }, dependencies: [i2$2.MatIcon, i1$1.MatButton], changeDetection: 0 });
872
862
  (function () {
873
863
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResetButtonComponent, [{
874
864
  type: Component,
875
- 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: [""] }]
865
+ 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" }]
876
866
  }], function () {
877
867
  return [{ type: i1.ResetService, decorators: [{
878
868
  type: Inject,
@@ -885,10 +875,8 @@ class ResetButtonComponentModule {
885
875
  }
886
876
  ResetButtonComponentModule.ɵfac = function ResetButtonComponentModule_Factory(t) { return new (t || ResetButtonComponentModule)(); };
887
877
  ResetButtonComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ResetButtonComponentModule });
888
- ResetButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
889
- MatIconModule,
890
- MatButtonModule
891
- ]] });
878
+ ResetButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
879
+ MatButtonModule] });
892
880
  (function () {
893
881
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResetButtonComponentModule, [{
894
882
  type: NgModule,
@@ -911,15 +899,13 @@ class AppsButtonComponentModule {
911
899
  }
912
900
  AppsButtonComponentModule.ɵfac = function AppsButtonComponentModule_Factory(t) { return new (t || AppsButtonComponentModule)(); };
913
901
  AppsButtonComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AppsButtonComponentModule });
914
- AppsButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
915
- MatButtonModule,
916
- MatIconModule,
917
- MatGridListModule,
918
- OverlayModule,
919
- FlexLayoutModule,
920
- CommonModule,
921
- RouterModule
922
- ]] });
902
+ AppsButtonComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatButtonModule,
903
+ MatIconModule,
904
+ MatGridListModule,
905
+ OverlayModule,
906
+ FlexLayoutModule,
907
+ CommonModule,
908
+ RouterModule] });
923
909
  (function () {
924
910
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppsButtonComponentModule, [{
925
911
  type: NgModule,
@@ -952,11 +938,9 @@ class LanguageSelectorComponentModule {
952
938
  }
953
939
  LanguageSelectorComponentModule.ɵfac = function LanguageSelectorComponentModule_Factory(t) { return new (t || LanguageSelectorComponentModule)(); };
954
940
  LanguageSelectorComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LanguageSelectorComponentModule });
955
- LanguageSelectorComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
956
- MatSelectModule,
957
- CommonModule,
958
- FormsModule
959
- ]] });
941
+ LanguageSelectorComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatSelectModule,
942
+ CommonModule,
943
+ FormsModule] });
960
944
  (function () {
961
945
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponentModule, [{
962
946
  type: NgModule,
@@ -981,21 +965,19 @@ class HeaderModule {
981
965
  }
982
966
  HeaderModule.ɵfac = function HeaderModule_Factory(t) { return new (t || HeaderModule)(); };
983
967
  HeaderModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: HeaderModule });
984
- HeaderModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
985
- MatToolbarModule,
986
- SignOutComponentModule,
987
- UserProfileIconComponentModule,
988
- NavigationProgressBarComponentModule,
989
- SidenavToggleButtonComponentModule,
990
- ResetButtonComponentModule,
991
- FlexLayoutModule,
992
- CommonModule,
993
- MatButtonModule,
994
- MatIconModule,
995
- MatMenuModule,
996
- AppsButtonComponentModule,
997
- LanguageSelectorComponentModule
998
- ]] });
968
+ HeaderModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatToolbarModule,
969
+ SignOutComponentModule,
970
+ UserProfileIconComponentModule,
971
+ NavigationProgressBarComponentModule,
972
+ SidenavToggleButtonComponentModule,
973
+ ResetButtonComponentModule,
974
+ FlexLayoutModule,
975
+ CommonModule,
976
+ MatButtonModule,
977
+ MatIconModule,
978
+ MatMenuModule,
979
+ AppsButtonComponentModule,
980
+ LanguageSelectorComponentModule] });
999
981
  (function () {
1000
982
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HeaderModule, [{
1001
983
  type: NgModule,
@@ -1067,7 +1049,7 @@ LayoutComponentService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: L
1067
1049
  }, {
1068
1050
  type: Inject,
1069
1051
  args: [RXAP_LOGO_CONFIG]
1070
- }] }, { type: i1$2.ConfigService, decorators: [{
1052
+ }] }, { type: i1$5.ConfigService, decorators: [{
1071
1053
  type: Inject,
1072
1054
  args: [ConfigService]
1073
1055
  }] }];
@@ -1126,13 +1108,13 @@ class SidenavComponentService {
1126
1108
  this.collapsed$.next(!this.collapsed$.value);
1127
1109
  }
1128
1110
  }
1129
- SidenavComponentService.ɵfac = function SidenavComponentService_Factory(t) { return new (t || SidenavComponentService)(i0.ɵɵinject(i1$2.ConfigService)); };
1111
+ SidenavComponentService.ɵfac = function SidenavComponentService_Factory(t) { return new (t || SidenavComponentService)(i0.ɵɵinject(i1$5.ConfigService)); };
1130
1112
  SidenavComponentService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SidenavComponentService, factory: SidenavComponentService.ɵfac, providedIn: 'root' });
1131
1113
  (function () {
1132
1114
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavComponentService, [{
1133
1115
  type: Injectable,
1134
1116
  args: [{ providedIn: 'root' }]
1135
- }], function () { return [{ type: i1$2.ConfigService }]; }, null);
1117
+ }], function () { return [{ type: i1$5.ConfigService }]; }, null);
1136
1118
  })();
1137
1119
 
1138
1120
  function IsNavigationDividerItem(item) {
@@ -1359,7 +1341,7 @@ function NavigationItemComponent_ng_template_7_Template(rf, ctx) {
1359
1341
  if (rf & 1) {
1360
1342
  const _r12 = i0.ɵɵgetCurrentView();
1361
1343
  i0.ɵɵelementStart(0, "div", 8);
1362
- 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(); });
1344
+ 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()); });
1363
1345
  i0.ɵɵelementStart(1, "ul");
1364
1346
  i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
1365
1347
  i0.ɵɵelementEnd()();
@@ -1550,7 +1532,7 @@ __decorate([
1550
1532
  ]),
1551
1533
  ], 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"] }]
1552
1534
  }], function () {
1553
- return [{ type: i1$4.Router, decorators: [{
1535
+ return [{ type: i3$1.Router, decorators: [{
1554
1536
  type: Inject,
1555
1537
  args: [Router]
1556
1538
  }] }, { type: SidenavComponentService, decorators: [{
@@ -1562,7 +1544,7 @@ __decorate([
1562
1544
  }] }, { type: i0.Renderer2, decorators: [{
1563
1545
  type: Inject,
1564
1546
  args: [Renderer2]
1565
- }] }, { type: i3$3.Overlay, decorators: [{
1547
+ }] }, { type: i3$2.Overlay, decorators: [{
1566
1548
  type: Inject,
1567
1549
  args: [Overlay]
1568
1550
  }] }, { type: i0.ViewContainerRef, decorators: [{
@@ -1701,7 +1683,7 @@ NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Navigat
1701
1683
  if (rf & 2) {
1702
1684
  i0.ɵɵproperty("ngForOf", ctx.items);
1703
1685
  }
1704
- }, 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 });
1686
+ }, 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 });
1705
1687
  __decorate([
1706
1688
  Required,
1707
1689
  __metadata("design:type", Array)
@@ -1846,7 +1828,7 @@ SidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SidenavCom
1846
1828
  i0.ɵɵadvance(3);
1847
1829
  i0.ɵɵproperty("ngIf", (tmp_4_0 = ctx.sidenavFooterDirective == null ? null : ctx.sidenavFooterDirective.template) !== null && tmp_4_0 !== undefined ? tmp_4_0 : null);
1848
1830
  }
1849
- }, 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 });
1831
+ }, 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 });
1850
1832
  (function () {
1851
1833
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavComponent, [{
1852
1834
  type: Component,
@@ -1923,7 +1905,7 @@ SidenavContentComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sid
1923
1905
  if (rf & 2) {
1924
1906
  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$)));
1925
1907
  }
1926
- }, 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 });
1908
+ }, 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 });
1927
1909
  __decorate([
1928
1910
  Required,
1929
1911
  __metadata("design:type", MatSidenav)
@@ -1937,60 +1919,6 @@ __decorate([
1937
1919
  }] });
1938
1920
  })();
1939
1921
 
1940
- function ToggleWindowSidenavButtonComponent_ng_template_2_Template(rf, ctx) {
1941
- if (rf & 1) {
1942
- i0.ɵɵelementStart(0, "mat-icon");
1943
- i0.ɵɵtext(1, "keyboard_arrow_left");
1944
- i0.ɵɵelementEnd();
1945
- }
1946
- }
1947
- function ToggleWindowSidenavButtonComponent_ng_template_3_Template(rf, ctx) {
1948
- if (rf & 1) {
1949
- i0.ɵɵelementStart(0, "mat-icon");
1950
- i0.ɵɵtext(1, "keyboard_arrow_right");
1951
- i0.ɵɵelementEnd();
1952
- }
1953
- }
1954
- class ToggleWindowSidenavButtonComponent {
1955
- constructor() {
1956
- this.openWindowSidenav = false;
1957
- this.openWindowSidenavChange = new EventEmitter();
1958
- }
1959
- ngOnInit() {
1960
- }
1961
- toggle() {
1962
- this.openWindowSidenav = !this.openWindowSidenav;
1963
- this.openWindowSidenavChange.emit(this.openWindowSidenav);
1964
- }
1965
- }
1966
- ToggleWindowSidenavButtonComponent.ɵfac = function ToggleWindowSidenavButtonComponent_Factory(t) { return new (t || ToggleWindowSidenavButtonComponent)(); };
1967
- 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) {
1968
- if (rf & 1) {
1969
- i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
1970
- i0.ɵɵlistener("click", function ToggleWindowSidenavButtonComponent_Template_button_click_1_listener() { return ctx.toggle(); });
1971
- i0.ɵɵtemplate(2, ToggleWindowSidenavButtonComponent_ng_template_2_Template, 2, 0, "ng-template", 2);
1972
- i0.ɵɵtemplate(3, ToggleWindowSidenavButtonComponent_ng_template_3_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
1973
- i0.ɵɵelementEnd()();
1974
- }
1975
- if (rf & 2) {
1976
- const _r1 = i0.ɵɵreference(4);
1977
- i0.ɵɵadvance(2);
1978
- i0.ɵɵproperty("ngIfElse", _r1)("ngIf", !ctx.openWindowSidenav);
1979
- }
1980
- }, 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 });
1981
- (function () {
1982
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonComponent, [{
1983
- type: Component,
1984
- args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
1985
- class: 'rxap-toggle-window-sidenav-button'
1986
- }, 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"] }]
1987
- }], function () { return []; }, { openWindowSidenav: [{
1988
- type: Input
1989
- }], openWindowSidenavChange: [{
1990
- type: Output
1991
- }] });
1992
- })();
1993
-
1994
1922
  function WindowContainerSidenavComponent_div_1_ng_template_1_Template(rf, ctx) { }
1995
1923
  function WindowContainerSidenavComponent_div_1_Template(rf, ctx) {
1996
1924
  if (rf & 1) {
@@ -2051,7 +1979,7 @@ WindowContainerSidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
2051
1979
  i0.ɵɵadvance(1);
2052
1980
  i0.ɵɵproperty("ngForOf", ctx.portals.keys())("ngForTrackBy", ctx.trackBy);
2053
1981
  }
2054
- }, directives: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i2.NgForOf, i1$3.DefaultFlexDirective, i4.CdkPortalOutlet], styles: [".container[_ngcontent-%COMP%]{padding:8px}"], changeDetection: 0 });
1982
+ }, dependencies: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultFlexDirective, i2$1.NgForOf, i4.CdkPortalOutlet], styles: [".container[_ngcontent-%COMP%]{padding:8px}"], changeDetection: 0 });
2055
1983
  (function () {
2056
1984
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavComponent, [{
2057
1985
  type: Component,
@@ -2064,6 +1992,60 @@ WindowContainerSidenavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
2064
1992
  }, null);
2065
1993
  })();
2066
1994
 
1995
+ function ToggleWindowSidenavButtonComponent_ng_template_2_Template(rf, ctx) {
1996
+ if (rf & 1) {
1997
+ i0.ɵɵelementStart(0, "mat-icon");
1998
+ i0.ɵɵtext(1, "keyboard_arrow_left");
1999
+ i0.ɵɵelementEnd();
2000
+ }
2001
+ }
2002
+ function ToggleWindowSidenavButtonComponent_ng_template_3_Template(rf, ctx) {
2003
+ if (rf & 1) {
2004
+ i0.ɵɵelementStart(0, "mat-icon");
2005
+ i0.ɵɵtext(1, "keyboard_arrow_right");
2006
+ i0.ɵɵelementEnd();
2007
+ }
2008
+ }
2009
+ class ToggleWindowSidenavButtonComponent {
2010
+ constructor() {
2011
+ this.openWindowSidenav = false;
2012
+ this.openWindowSidenavChange = new EventEmitter();
2013
+ }
2014
+ ngOnInit() {
2015
+ }
2016
+ toggle() {
2017
+ this.openWindowSidenav = !this.openWindowSidenav;
2018
+ this.openWindowSidenavChange.emit(this.openWindowSidenav);
2019
+ }
2020
+ }
2021
+ ToggleWindowSidenavButtonComponent.ɵfac = function ToggleWindowSidenavButtonComponent_Factory(t) { return new (t || ToggleWindowSidenavButtonComponent)(); };
2022
+ 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) {
2023
+ if (rf & 1) {
2024
+ i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
2025
+ i0.ɵɵlistener("click", function ToggleWindowSidenavButtonComponent_Template_button_click_1_listener() { return ctx.toggle(); });
2026
+ i0.ɵɵtemplate(2, ToggleWindowSidenavButtonComponent_ng_template_2_Template, 2, 0, "ng-template", 2);
2027
+ i0.ɵɵtemplate(3, ToggleWindowSidenavButtonComponent_ng_template_3_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
2028
+ i0.ɵɵelementEnd()();
2029
+ }
2030
+ if (rf & 2) {
2031
+ const _r1 = i0.ɵɵreference(4);
2032
+ i0.ɵɵadvance(2);
2033
+ i0.ɵɵproperty("ngIfElse", _r1)("ngIf", !ctx.openWindowSidenav);
2034
+ }
2035
+ }, 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 });
2036
+ (function () {
2037
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonComponent, [{
2038
+ type: Component,
2039
+ args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
2040
+ class: 'rxap-toggle-window-sidenav-button'
2041
+ }, 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"] }]
2042
+ }], function () { return []; }, { openWindowSidenav: [{
2043
+ type: Input
2044
+ }], openWindowSidenavChange: [{
2045
+ type: Output
2046
+ }] });
2047
+ })();
2048
+
2067
2049
  const _c0 = function () { return ["/"]; };
2068
2050
  function LayoutComponent_ng_template_8_Template(rf, ctx) {
2069
2051
  if (rf & 1) {
@@ -2127,7 +2109,7 @@ LayoutComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayoutCompo
2127
2109
  i0.ɵɵadvance(1);
2128
2110
  i0.ɵɵproperty("fixedBottomGap", i0.ɵɵpipeBind1(14, 20, ctx.layoutComponentService.fixedBottomGap$))("fixedInViewport", true)("fixedTopGap", i0.ɵɵpipeBind1(15, 22, ctx.layoutComponentService.fixedTopGap$))("opened", ctx.openWindowSidenav);
2129
2111
  }
2130
- }, 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 });
2112
+ }, 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 });
2131
2113
  (function () {
2132
2114
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponent, [{
2133
2115
  type: Component,
@@ -2190,20 +2172,18 @@ class NavigationComponentModule {
2190
2172
  }
2191
2173
  NavigationComponentModule.ɵfac = function NavigationComponentModule_Factory(t) { return new (t || NavigationComponentModule)(); };
2192
2174
  NavigationComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NavigationComponentModule });
2193
- NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2194
- MatIconModule,
2195
- MatButtonModule,
2196
- FlexLayoutModule,
2197
- RouterModule,
2198
- CommonModule,
2199
- IconDirectiveModule,
2200
- ButtonComponentModule,
2201
- MatRippleModule,
2202
- MatDividerModule,
2203
- StopPropagationDirectiveModule,
2204
- MatTooltipModule,
2205
- ReplaceRouterPathsPipeModule
2206
- ]] });
2175
+ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
2176
+ MatButtonModule,
2177
+ FlexLayoutModule,
2178
+ RouterModule,
2179
+ CommonModule,
2180
+ IconDirectiveModule,
2181
+ ButtonComponentModule,
2182
+ MatRippleModule,
2183
+ MatDividerModule,
2184
+ StopPropagationDirectiveModule,
2185
+ MatTooltipModule,
2186
+ ReplaceRouterPathsPipeModule] });
2207
2187
  (function () {
2208
2188
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationComponentModule, [{
2209
2189
  type: NgModule,
@@ -2241,20 +2221,18 @@ NavigationComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports:
2241
2221
  MatTooltipModule,
2242
2222
  ReplaceRouterPathsPipeModule], exports: [NavigationComponent] });
2243
2223
  })();
2244
- 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]);
2224
+ 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]);
2245
2225
 
2246
2226
  class SidenavModule {
2247
2227
  }
2248
2228
  SidenavModule.ɵfac = function SidenavModule_Factory(t) { return new (t || SidenavModule)(); };
2249
2229
  SidenavModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavModule });
2250
- SidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2251
- FlexLayoutModule,
2252
- NavigationComponentModule,
2253
- CommonModule,
2254
- MatDividerModule,
2255
- MatIconModule,
2256
- MatButtonModule
2257
- ]] });
2230
+ SidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
2231
+ NavigationComponentModule,
2232
+ CommonModule,
2233
+ MatDividerModule,
2234
+ MatIconModule,
2235
+ MatButtonModule] });
2258
2236
  (function () {
2259
2237
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavModule, [{
2260
2238
  type: NgModule,
@@ -2285,10 +2263,8 @@ class SidenavContentModule {
2285
2263
  }
2286
2264
  SidenavContentModule.ɵfac = function SidenavContentModule_Factory(t) { return new (t || SidenavContentModule)(); };
2287
2265
  SidenavContentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavContentModule });
2288
- SidenavContentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2289
- CommonModule,
2290
- RouterModule
2291
- ]] });
2266
+ SidenavContentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
2267
+ RouterModule] });
2292
2268
  (function () {
2293
2269
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavContentModule, [{
2294
2270
  type: NgModule,
@@ -2311,11 +2287,9 @@ class WindowContainerSidenavModule {
2311
2287
  }
2312
2288
  WindowContainerSidenavModule.ɵfac = function WindowContainerSidenavModule_Factory(t) { return new (t || WindowContainerSidenavModule)(); };
2313
2289
  WindowContainerSidenavModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: WindowContainerSidenavModule });
2314
- WindowContainerSidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2315
- FlexLayoutModule,
2316
- CommonModule,
2317
- PortalModule,
2318
- ]] });
2290
+ WindowContainerSidenavModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
2291
+ CommonModule,
2292
+ PortalModule] });
2319
2293
  (function () {
2320
2294
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavModule, [{
2321
2295
  type: NgModule,
@@ -2340,11 +2314,9 @@ class ToggleWindowSidenavButtonModule {
2340
2314
  }
2341
2315
  ToggleWindowSidenavButtonModule.ɵfac = function ToggleWindowSidenavButtonModule_Factory(t) { return new (t || ToggleWindowSidenavButtonModule)(); };
2342
2316
  ToggleWindowSidenavButtonModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ToggleWindowSidenavButtonModule });
2343
- ToggleWindowSidenavButtonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2344
- MatButtonModule,
2345
- MatIconModule,
2346
- CommonModule,
2347
- ]] });
2317
+ ToggleWindowSidenavButtonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatButtonModule,
2318
+ MatIconModule,
2319
+ CommonModule] });
2348
2320
  (function () {
2349
2321
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonModule, [{
2350
2322
  type: NgModule,
@@ -2380,18 +2352,16 @@ class LayoutModule {
2380
2352
  }
2381
2353
  LayoutModule.ɵfac = function LayoutModule_Factory(t) { return new (t || LayoutModule)(); };
2382
2354
  LayoutModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LayoutModule });
2383
- LayoutModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2384
- MatSidenavModule,
2385
- FooterModule,
2386
- HeaderModule,
2387
- CommonModule,
2388
- SidenavModule,
2389
- SidenavContentModule,
2390
- WindowContainerSidenavModule,
2391
- ToggleWindowSidenavButtonModule,
2392
- FlexLayoutModule,
2393
- RouterModule
2394
- ]] });
2355
+ LayoutModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatSidenavModule,
2356
+ FooterModule,
2357
+ HeaderModule,
2358
+ CommonModule,
2359
+ SidenavModule,
2360
+ SidenavContentModule,
2361
+ WindowContainerSidenavModule,
2362
+ ToggleWindowSidenavButtonModule,
2363
+ FlexLayoutModule,
2364
+ RouterModule] });
2395
2365
  (function () {
2396
2366
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutModule, [{
2397
2367
  type: NgModule,
@@ -2473,7 +2443,7 @@ VersionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VersionCom
2473
2443
  i0.ɵɵadvance(1);
2474
2444
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx.modules));
2475
2445
  }
2476
- }, 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 });
2446
+ }, 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 });
2477
2447
  __decorate([
2478
2448
  Required,
2479
2449
  __metadata("design:type", Object)
@@ -2494,10 +2464,8 @@ class VersionComponentModule {
2494
2464
  }
2495
2465
  VersionComponentModule.ɵfac = function VersionComponentModule_Factory(t) { return new (t || VersionComponentModule)(); };
2496
2466
  VersionComponentModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: VersionComponentModule });
2497
- VersionComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
2498
- FlexLayoutModule,
2499
- CommonModule
2500
- ]] });
2467
+ VersionComponentModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
2468
+ CommonModule] });
2501
2469
  (function () {
2502
2470
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VersionComponentModule, [{
2503
2471
  type: NgModule,