@rxap/layout 16.0.0-dev.1 → 16.0.0-dev.10
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.
- package/CHANGELOG.md +378 -0
- package/LICENSE +621 -21
- package/LICENSE.md +621 -0
- package/README.md +7 -22
- package/esm2022/index.mjs +5 -20
- package/esm2022/lib/app-url.service.mjs +64 -0
- package/esm2022/lib/footer/footer.component.mjs +13 -42
- package/esm2022/lib/footer.directive.mjs +21 -35
- package/esm2022/lib/header/apps-button/apps-button.component.mjs +42 -101
- package/esm2022/lib/header/header.component.mjs +66 -108
- package/esm2022/lib/header/language-selector/language-selector.component.mjs +30 -108
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +22 -26
- package/esm2022/lib/header/reset-button/reset-button.component.mjs +16 -21
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +20 -36
- package/esm2022/lib/header/sign-out/sign-out.component.mjs +19 -28
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +39 -109
- package/esm2022/lib/i18n-check.guard.mjs +34 -0
- package/esm2022/lib/i18n.service.mjs +36 -0
- package/esm2022/lib/language-selector.service.mjs +34 -0
- package/esm2022/lib/layout/layout.component.mjs +58 -72
- package/esm2022/lib/layout/layout.component.service.mjs +21 -22
- package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +120 -234
- package/esm2022/lib/navigation/navigation-item.mjs +4 -4
- package/esm2022/lib/navigation/navigation.component.mjs +47 -91
- package/esm2022/lib/navigation/navigation.service.mjs +28 -27
- package/esm2022/lib/navigation/replace-router-paths.service.mjs +9 -10
- package/esm2022/lib/sidenav/sidenav-footer.directive.mjs +15 -15
- package/esm2022/lib/sidenav/sidenav-header.directive.mjs +15 -15
- package/esm2022/lib/sidenav/sidenav.component.mjs +40 -112
- package/esm2022/lib/sidenav/sidenav.component.service.mjs +8 -9
- package/esm2022/lib/sidenav/version/version.component.mjs +17 -44
- package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +19 -40
- package/esm2022/lib/tokens.mjs +1 -1
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +18 -36
- package/esm2022/rxap-layout.mjs +1 -1
- package/fesm2022/rxap-layout.mjs +761 -1845
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/index.d.ts +4 -17
- package/lib/app-url.service.d.ts +26 -0
- package/lib/footer/footer.component.d.ts +1 -1
- package/lib/footer.directive.d.ts +2 -7
- package/lib/header/apps-button/apps-button.component.d.ts +13 -21
- package/lib/header/header.component.d.ts +8 -11
- package/lib/header/language-selector/language-selector.component.d.ts +2 -17
- package/lib/header/navigation-progress-bar/navigation-progress-bar.component.d.ts +1 -1
- package/lib/header/reset-button/reset-button.component.d.ts +1 -1
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +1 -1
- package/lib/header/sign-out/sign-out.component.d.ts +5 -5
- package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +12 -8
- package/lib/i18n-check.guard.d.ts +14 -0
- package/lib/i18n.service.d.ts +12 -0
- package/lib/language-selector.service.d.ts +15 -0
- package/lib/layout/layout.component.d.ts +8 -4
- package/lib/navigation/navigation-item/navigation-item.component.d.ts +11 -18
- package/lib/navigation/navigation-item.d.ts +1 -1
- package/lib/navigation/navigation.component.d.ts +6 -6
- package/lib/navigation/navigation.service.d.ts +1 -1
- package/lib/sidenav/sidenav-footer.directive.d.ts +1 -1
- package/lib/sidenav/sidenav-header.directive.d.ts +1 -1
- package/lib/sidenav/sidenav.component.d.ts +1 -1
- package/lib/sidenav/version/version.component.d.ts +3 -3
- package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +3 -5
- package/lib/types.d.ts +3 -2
- package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +2 -2
- package/package.json +90 -67
- package/theme.css +1 -0
- package/collection.json +0 -10
- package/esm2022/lib/footer/footer.component.module.mjs +0 -30
- package/esm2022/lib/header/apps-button/apps-button.component.module.mjs +0 -46
- package/esm2022/lib/header/header.component.module.mjs +0 -70
- package/esm2022/lib/header/language-selector/language-selector.component.module.mjs +0 -30
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.mjs +0 -26
- package/esm2022/lib/header/reset-button/reset-button.component.module.mjs +0 -26
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.mjs +0 -30
- package/esm2022/lib/header/sign-out/sign-out.component.module.mjs +0 -30
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.module.mjs +0 -38
- package/esm2022/lib/layout/layout.component.module.mjs +0 -70
- package/esm2022/lib/navigation/navigation.component.module.mjs +0 -71
- package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +0 -36
- package/esm2022/lib/sidenav/sidenav.component.module.mjs +0 -44
- package/esm2022/lib/sidenav/version/version.component.module.mjs +0 -26
- package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +0 -46
- package/esm2022/lib/sidenav-content/sidenav-content.component.module.mjs +0 -26
- package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +0 -37
- package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.mjs +0 -30
- package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.module.mjs +0 -30
- package/lib/footer/footer.component.module.d.ts +0 -10
- package/lib/header/apps-button/apps-button.component.module.d.ts +0 -14
- package/lib/header/header.component.module.d.ts +0 -20
- package/lib/header/language-selector/language-selector.component.module.d.ts +0 -10
- package/lib/header/navigation-progress-bar/navigation-progress-bar.component.module.d.ts +0 -9
- package/lib/header/reset-button/reset-button.component.module.d.ts +0 -9
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.module.d.ts +0 -10
- package/lib/header/sign-out/sign-out.component.module.d.ts +0 -10
- package/lib/header/user-profile-icon/user-profile-icon.component.module.d.ts +0 -12
- package/lib/layout/layout.component.module.d.ts +0 -20
- package/lib/navigation/navigation.component.module.d.ts +0 -19
- package/lib/navigation/replace-router-paths.pipe.d.ts +0 -16
- package/lib/sidenav/sidenav.component.module.d.ts +0 -15
- package/lib/sidenav/version/version.component.module.d.ts +0 -9
- package/lib/sidenav-content/sidenav-content.component.d.ts +0 -12
- package/lib/sidenav-content/sidenav-content.component.module.d.ts +0 -9
- package/lib/sidenav-content/sidenav-content.component.service.d.ts +0 -15
- package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.module.d.ts +0 -10
- package/lib/window-container-sidenav/window-container-sidenav.component.module.d.ts +0 -10
- package/migration.json +0 -4
- package/src/schematics/ng-add/index.d.ts +0 -2
- package/src/schematics/ng-add/index.js +0 -8
- package/src/schematics/ng-add/index.js.map +0 -1
- package/src/schematics/ng-add/schema.json +0 -7
package/fesm2022/rxap-layout.mjs
CHANGED
|
@@ -1,57 +1,55 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Component, ChangeDetectionStrategy,
|
|
2
|
+
import { InjectionToken, Component, ChangeDetectionStrategy, LOCALE_ID, Injectable, Inject, signal, Optional, isDevMode, Input, ElementRef, Renderer2, ViewContainerRef, ViewEncapsulation, forwardRef, ViewChild, HostBinding, INJECTOR, ChangeDetectorRef, TemplateRef, Directive, ContentChild, EventEmitter, Output } from '@angular/core';
|
|
3
3
|
import * as i1 from '@rxap/services';
|
|
4
|
-
import { HeaderService, ResetService,
|
|
4
|
+
import { HeaderService, ResetService, VersionService, WindowContainerSidenavService, FooterService } from '@rxap/services';
|
|
5
|
+
import * as i3 from '@angular/cdk/portal';
|
|
6
|
+
import { PortalModule, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
5
7
|
import * as i2 from '@angular/material/toolbar';
|
|
6
8
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { PortalModule, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
|
11
|
-
import { Subscription, BehaviorSubject, ReplaySubject, of, from, combineLatest } from 'rxjs';
|
|
12
|
-
import { map, filter, tap, switchMap, catchError, startWith, delay, skip, distinctUntilChanged } from 'rxjs/operators';
|
|
9
|
+
import { NgIf, NgFor, AsyncPipe, KeyValuePipe, NgOptimizedImage, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
10
|
+
import { filter as filter$1, switchMap as switchMap$1, Subscription, BehaviorSubject, debounceTime, ReplaySubject, of, from, combineLatest } from 'rxjs';
|
|
11
|
+
import { filter, map, switchMap, tap, startWith, catchError } from 'rxjs/operators';
|
|
13
12
|
import * as i2$4 from '@angular/material/sidenav';
|
|
14
13
|
import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
|
|
15
|
-
import * as
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
import * as
|
|
20
|
-
import {
|
|
21
|
-
import * as
|
|
14
|
+
import * as i4 from '@angular/material/core';
|
|
15
|
+
import { MatOptionModule, MatRippleModule } from '@angular/material/core';
|
|
16
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
17
|
+
import { DataSourceCollectionDirective } from '@rxap/data-source/directive';
|
|
18
|
+
import * as i5 from '@angular/forms';
|
|
19
|
+
import { FormsModule } from '@angular/forms';
|
|
20
|
+
import * as i3$1 from '@angular/material/select';
|
|
21
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
22
|
+
import { StopPropagationDirective } from '@rxap/directives';
|
|
23
|
+
import * as i2$1 from '@angular/material/form-field';
|
|
24
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
25
|
+
import * as i1$2 from '@rxap/config';
|
|
26
|
+
import { ConfigService } from '@rxap/config';
|
|
27
|
+
import * as i1$1 from '@rxap/authentication';
|
|
28
|
+
import * as i2$3 from '@angular/material/icon';
|
|
22
29
|
import { MatIconModule } from '@angular/material/icon';
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import * as
|
|
28
|
-
import {
|
|
29
|
-
import * as i1$
|
|
30
|
-
import {
|
|
30
|
+
import * as i3$2 from '@angular/material/menu';
|
|
31
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
32
|
+
import * as i3$3 from '@angular/material/button';
|
|
33
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
34
|
+
import * as i2$2 from '@angular/router';
|
|
35
|
+
import { NavigationStart, NavigationEnd, NavigationCancel, Router, RouterLinkActive, RouterLink, RouterOutlet } from '@angular/router';
|
|
36
|
+
import * as i1$3 from '@angular/material/progress-bar';
|
|
37
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
38
|
+
import * as i1$4 from '@angular/flex-layout/flex';
|
|
39
|
+
import { FlexModule } from '@angular/flex-layout/flex';
|
|
40
|
+
import { JoinPath, Required, coerceBoolean } from '@rxap/utilities';
|
|
41
|
+
import { ClickOnLink } from '@rxap/browser-utilities';
|
|
31
42
|
import { __decorate, __metadata } from 'tslib';
|
|
32
|
-
import {
|
|
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/legacy-form-field';
|
|
39
|
-
import * as i3$3 from '@angular/material/legacy-select';
|
|
40
|
-
import { MatLegacySelectModule } from '@angular/material/legacy-select';
|
|
41
|
-
import * as i4$1 from '@angular/material/legacy-core';
|
|
42
|
-
import * as i6 from '@angular/forms';
|
|
43
|
-
import { FormsModule } from '@angular/forms';
|
|
43
|
+
import { DetermineReleaseName, RXAP_ENVIRONMENT } from '@rxap/environment';
|
|
44
44
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
45
|
-
import {
|
|
45
|
+
import { trigger, transition, style, animate } from '@angular/animations';
|
|
46
|
+
import * as i6 from '@angular/cdk/overlay';
|
|
47
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
46
48
|
import * as i3$4 from '@angular/material/divider';
|
|
47
49
|
import { MatDividerModule } from '@angular/material/divider';
|
|
48
|
-
import {
|
|
49
|
-
import * as
|
|
50
|
-
import {
|
|
51
|
-
import * as i6$1 from '@angular/material/core';
|
|
52
|
-
import { MatRippleModule } from '@angular/material/core';
|
|
53
|
-
import * as i7 from '@angular/material/legacy-tooltip';
|
|
54
|
-
import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip';
|
|
50
|
+
import { IconDirective } from '@rxap/material-directives/icon';
|
|
51
|
+
import * as i2$5 from '@angular/flex-layout/extended';
|
|
52
|
+
import { ExtendedModule } from '@angular/flex-layout/extended';
|
|
55
53
|
|
|
56
54
|
const RXAP_NAVIGATION_CONFIG = new InjectionToken('rxap/layout/navigation-config');
|
|
57
55
|
const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken('rxap/layout/navigation-config-inserts');
|
|
@@ -60,198 +58,99 @@ const RXAP_HEADER_COMPONENT = new InjectionToken('rxap/layout/header-component')
|
|
|
60
58
|
const RXAP_LOGO_CONFIG = new InjectionToken('rxap/layout/logo-config');
|
|
61
59
|
const RXAP_LAYOUT_APPS_GRID = new InjectionToken('rxap/layout/apps-grid');
|
|
62
60
|
|
|
63
|
-
function FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_ng_template_1_Template(rf, ctx) { }
|
|
64
|
-
function FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
-
i0.ɵɵelementStart(0, "mat-toolbar-row");
|
|
66
|
-
i0.ɵɵtemplate(1, FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_ng_template_1_Template, 0, 0, "ng-template", 4);
|
|
67
|
-
i0.ɵɵelementEnd();
|
|
68
|
-
} if (rf & 2) {
|
|
69
|
-
const portal_r4 = ctx.$implicit;
|
|
70
|
-
i0.ɵɵadvance(1);
|
|
71
|
-
i0.ɵɵproperty("cdkPortalOutlet", portal_r4);
|
|
72
|
-
} }
|
|
73
|
-
function FooterComponent_ng_template_0_mat_toolbar_0_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
-
i0.ɵɵelementStart(0, "mat-toolbar", 2);
|
|
75
|
-
i0.ɵɵtemplate(1, FooterComponent_ng_template_0_mat_toolbar_0_mat_toolbar_row_1_Template, 2, 1, "mat-toolbar-row", 3);
|
|
76
|
-
i0.ɵɵelementEnd();
|
|
77
|
-
} if (rf & 2) {
|
|
78
|
-
const portals_r1 = i0.ɵɵnextContext().$implicit;
|
|
79
|
-
i0.ɵɵadvance(1);
|
|
80
|
-
i0.ɵɵproperty("ngForOf", portals_r1);
|
|
81
|
-
} }
|
|
82
|
-
function FooterComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
-
i0.ɵɵtemplate(0, FooterComponent_ng_template_0_mat_toolbar_0_Template, 2, 1, "mat-toolbar", 1);
|
|
84
|
-
} if (rf & 2) {
|
|
85
|
-
const portals_r1 = ctx.$implicit;
|
|
86
|
-
i0.ɵɵproperty("ngIf", portals_r1.length);
|
|
87
|
-
} }
|
|
88
61
|
class FooterComponent {
|
|
89
62
|
constructor(footerService) {
|
|
90
63
|
this.footerService = footerService;
|
|
91
64
|
}
|
|
92
|
-
static { this.ɵfac =
|
|
93
|
-
static { this.ɵcmp =
|
|
94
|
-
i0.ɵɵtemplate(0, FooterComponent_ng_template_0_Template, 1, 1, "ng-template", 0);
|
|
95
|
-
i0.ɵɵpipe(1, "async");
|
|
96
|
-
} if (rf & 2) {
|
|
97
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.footerService.portals$));
|
|
98
|
-
} }, dependencies: [i2.MatToolbar, i2.MatToolbarRow, i2$1.NgForOf, i2$1.NgIf, i4.CdkPortalOutlet, i2$1.AsyncPipe], changeDetection: 0 }); }
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterComponent, deps: [{ token: i1.FooterService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: FooterComponent, isStandalone: true, selector: "rxap-footer", ngImport: i0, template: "<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i2.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
99
67
|
}
|
|
100
|
-
(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'rxap-footer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatToolbarModule, NgFor, PortalModule, AsyncPipe], template: "<ng-template [ngIf]=\"footerService.portals$ | async\" let-portals>\n <mat-toolbar *ngIf=\"portals.length\" class=\"footer mat-elevation-z1\">\n <mat-toolbar-row *ngFor=\"let portal of portals\">\n <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n </mat-toolbar-row>\n </mat-toolbar>\n</ng-template>\n" }]
|
|
71
|
+
}], ctorParameters: function () { return [{ type: i1.FooterService }]; } });
|
|
104
72
|
|
|
105
|
-
class
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
73
|
+
class I18nService {
|
|
74
|
+
constructor(localId, userProfileService) {
|
|
75
|
+
this.localId = localId;
|
|
76
|
+
this.userProfileService = userProfileService;
|
|
77
|
+
this.currentLanguage = this.localId.replace(/-[A-Z]+$/, '');
|
|
78
|
+
}
|
|
79
|
+
async setLanguage(language) {
|
|
80
|
+
await this.userProfileService.setLanguage(language);
|
|
81
|
+
this.redirect(language);
|
|
82
|
+
}
|
|
83
|
+
redirect(next, current = this.currentLanguage) {
|
|
84
|
+
if (current === next) {
|
|
85
|
+
console.warn('[I18nService] redirect not required - language unchanged');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const redirectUrl = location.origin +
|
|
89
|
+
location.pathname.replace(new RegExp(`^/${current}`), `/${next}`) +
|
|
90
|
+
location.search;
|
|
91
|
+
console.log('[I18nService] redirect to: ' + redirectUrl);
|
|
92
|
+
location.replace(redirectUrl);
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nService, deps: [{ token: LOCALE_ID }, { token: i1$1.RxapUserProfileService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
95
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
111
96
|
}
|
|
112
|
-
(
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
PortalModule
|
|
120
|
-
],
|
|
121
|
-
exports: [FooterComponent]
|
|
122
|
-
}]
|
|
123
|
-
}], null, null); })();
|
|
124
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FooterModule, { declarations: [FooterComponent], imports: [MatToolbarModule,
|
|
125
|
-
CommonModule,
|
|
126
|
-
PortalModule], exports: [FooterComponent] }); })();
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nService, decorators: [{
|
|
98
|
+
type: Injectable,
|
|
99
|
+
args: [{ providedIn: 'root' }]
|
|
100
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
101
|
+
type: Inject,
|
|
102
|
+
args: [LOCALE_ID]
|
|
103
|
+
}] }, { type: i1$1.RxapUserProfileService }]; } });
|
|
127
104
|
|
|
128
|
-
class
|
|
129
|
-
constructor(
|
|
130
|
-
this.
|
|
105
|
+
class LanguageSelectorService {
|
|
106
|
+
constructor(config, localId, i18nService) {
|
|
107
|
+
this.config = config;
|
|
108
|
+
this.localId = localId;
|
|
109
|
+
this.i18nService = i18nService;
|
|
110
|
+
this.languages = this.config.get('i18n.languages') ?? {};
|
|
111
|
+
this.defaultLanguage =
|
|
112
|
+
this.config.get('i18n.defaultLanguage') ??
|
|
113
|
+
Object.keys(this.languages)[0] ??
|
|
114
|
+
'en';
|
|
115
|
+
this.selectedLanguage = this.i18nService.currentLanguage;
|
|
131
116
|
}
|
|
132
|
-
|
|
133
|
-
this.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
i0.ɵɵelementStart(1, "mat-icon");
|
|
140
|
-
i0.ɵɵtext(2, "login");
|
|
141
|
-
i0.ɵɵelementEnd()();
|
|
142
|
-
} }, dependencies: [i1$1.MatLegacyButton, i2$2.MatIcon, i3.SignOutDirective], changeDetection: 0 }); }
|
|
117
|
+
async setLanguage(language) {
|
|
118
|
+
if (language !== this.i18nService.currentLanguage) {
|
|
119
|
+
await this.i18nService.setLanguage(language);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, deps: [{ token: i1$2.ConfigService }, { token: LOCALE_ID }, { token: I18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
123
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, providedIn: 'root' }); }
|
|
143
124
|
}
|
|
144
|
-
(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, decorators: [{
|
|
126
|
+
type: Injectable,
|
|
127
|
+
args: [{ providedIn: 'root' }]
|
|
128
|
+
}], ctorParameters: function () { return [{ type: i1$2.ConfigService }, { type: undefined, decorators: [{
|
|
129
|
+
type: Inject,
|
|
130
|
+
args: [LOCALE_ID]
|
|
131
|
+
}] }, { type: I18nService }]; } });
|
|
151
132
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
i0.ɵɵ
|
|
157
|
-
i0.ɵɵ
|
|
158
|
-
i0.ɵɵelementEnd()();
|
|
159
|
-
} if (rf & 2) {
|
|
160
|
-
const user_r2 = i0.ɵɵnextContext().$implicit;
|
|
161
|
-
i0.ɵɵadvance(4);
|
|
162
|
-
i0.ɵɵtextInterpolate2("", user_r2.firstname, " ", user_r2.lastname, "");
|
|
163
|
-
} }
|
|
164
|
-
function UserProfileIconComponent_ng_template_5_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
165
|
-
i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
|
|
166
|
-
i0.ɵɵtext(2, "person");
|
|
167
|
-
i0.ɵɵelementEnd();
|
|
168
|
-
i0.ɵɵelementStart(3, "span");
|
|
169
|
-
i0.ɵɵtext(4);
|
|
170
|
-
i0.ɵɵelementEnd()();
|
|
171
|
-
} if (rf & 2) {
|
|
172
|
-
const user_r2 = i0.ɵɵnextContext().$implicit;
|
|
173
|
-
i0.ɵɵadvance(4);
|
|
174
|
-
i0.ɵɵtextInterpolate(user_r2.name);
|
|
175
|
-
} }
|
|
176
|
-
function UserProfileIconComponent_ng_template_5_button_2_Template(rf, ctx) { if (rf & 1) {
|
|
177
|
-
i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
|
|
178
|
-
i0.ɵɵtext(2, "account_circle");
|
|
179
|
-
i0.ɵɵelementEnd();
|
|
180
|
-
i0.ɵɵelementStart(3, "span");
|
|
181
|
-
i0.ɵɵtext(4);
|
|
182
|
-
i0.ɵɵelementEnd()();
|
|
183
|
-
} if (rf & 2) {
|
|
184
|
-
const user_r2 = i0.ɵɵnextContext().$implicit;
|
|
185
|
-
i0.ɵɵadvance(4);
|
|
186
|
-
i0.ɵɵtextInterpolate(user_r2.username);
|
|
187
|
-
} }
|
|
188
|
-
function UserProfileIconComponent_ng_template_5_button_3_Template(rf, ctx) { if (rf & 1) {
|
|
189
|
-
i0.ɵɵelementStart(0, "button", 5)(1, "mat-icon");
|
|
190
|
-
i0.ɵɵtext(2, "email");
|
|
191
|
-
i0.ɵɵelementEnd();
|
|
192
|
-
i0.ɵɵelementStart(3, "span");
|
|
193
|
-
i0.ɵɵtext(4);
|
|
194
|
-
i0.ɵɵelementEnd()();
|
|
195
|
-
} if (rf & 2) {
|
|
196
|
-
const user_r2 = i0.ɵɵnextContext().$implicit;
|
|
197
|
-
i0.ɵɵadvance(4);
|
|
198
|
-
i0.ɵɵtextInterpolate(user_r2.email);
|
|
199
|
-
} }
|
|
200
|
-
function UserProfileIconComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
-
i0.ɵɵtemplate(0, UserProfileIconComponent_ng_template_5_button_0_Template, 5, 2, "button", 4);
|
|
202
|
-
i0.ɵɵtemplate(1, UserProfileIconComponent_ng_template_5_button_1_Template, 5, 1, "button", 4);
|
|
203
|
-
i0.ɵɵtemplate(2, UserProfileIconComponent_ng_template_5_button_2_Template, 5, 1, "button", 4);
|
|
204
|
-
i0.ɵɵtemplate(3, UserProfileIconComponent_ng_template_5_button_3_Template, 5, 1, "button", 4);
|
|
205
|
-
} if (rf & 2) {
|
|
206
|
-
const user_r2 = ctx.$implicit;
|
|
207
|
-
i0.ɵɵproperty("ngIf", user_r2.firstname && user_r2.lastname);
|
|
208
|
-
i0.ɵɵadvance(1);
|
|
209
|
-
i0.ɵɵproperty("ngIf", user_r2.name);
|
|
210
|
-
i0.ɵɵadvance(1);
|
|
211
|
-
i0.ɵɵproperty("ngIf", user_r2.username);
|
|
212
|
-
i0.ɵɵadvance(1);
|
|
213
|
-
i0.ɵɵproperty("ngIf", user_r2.email);
|
|
214
|
-
} }
|
|
215
|
-
class UserProfileIconComponent {
|
|
216
|
-
constructor(userService) {
|
|
217
|
-
this.userService = userService;
|
|
218
|
-
this.userProfileUrl$ = this.userService.user$.pipe(isDefined(), map((user) => user.photoURL ?? user.avatarUrl));
|
|
219
|
-
this.userName$ = this.userService.user$.pipe(isDefined(), map((user) => user.name ??
|
|
220
|
-
(user.firstname || user.lastname
|
|
221
|
-
? [user.firstname, user.lastname].join(' ').trim()
|
|
222
|
-
: null) ??
|
|
223
|
-
user.username));
|
|
224
|
-
}
|
|
225
|
-
static { this.ɵfac = function UserProfileIconComponent_Factory(t) { return new (t || UserProfileIconComponent)(i0.ɵɵdirectiveInject(UserService)); }; }
|
|
226
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserProfileIconComponent, selectors: [["rxap-user-profile-icon"]], hostAttrs: [1, "rxap-user-profile-icon"], decls: 7, vars: 11, consts: [["fxLayout", "row", "fxLayoutAlign", "center center", 1, "profile-icon", 3, "matMenuTriggerFor", "rxapAvatarBackgroundImage", "name"], [3, "yPosition"], ["menu", "matMenu"], [3, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["mat-menu-item", ""]], template: function UserProfileIconComponent_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
-
i0.ɵɵelement(0, "button", 0);
|
|
228
|
-
i0.ɵɵpipe(1, "async");
|
|
229
|
-
i0.ɵɵpipe(2, "async");
|
|
230
|
-
i0.ɵɵelementStart(3, "mat-menu", 1, 2);
|
|
231
|
-
i0.ɵɵtemplate(5, UserProfileIconComponent_ng_template_5_Template, 4, 4, "ng-template", 3);
|
|
232
|
-
i0.ɵɵpipe(6, "async");
|
|
233
|
-
i0.ɵɵelementEnd();
|
|
234
|
-
} if (rf & 2) {
|
|
235
|
-
const _r0 = i0.ɵɵreference(4);
|
|
236
|
-
let tmp_2_0;
|
|
237
|
-
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 : "");
|
|
238
|
-
i0.ɵɵadvance(3);
|
|
239
|
-
i0.ɵɵproperty("yPosition", "below");
|
|
240
|
-
i0.ɵɵadvance(2);
|
|
241
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 9, ctx.userService.user$));
|
|
242
|
-
} }, dependencies: [i1$2.MatLegacyMenu, i1$2.MatLegacyMenuItem, i1$2.MatLegacyMenuTrigger, 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 }); }
|
|
133
|
+
class LanguageSelectorComponent {
|
|
134
|
+
constructor(language) {
|
|
135
|
+
this.language = language;
|
|
136
|
+
}
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: LanguageSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
138
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: LanguageSelectorComponent, isStandalone: true, selector: "rxap-language-selector", ngImport: i0, template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\" rxapStopPropagation>\n <mat-label i18n>Select Language</mat-label>\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:calc(100% - 32px);margin:0 16px}.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"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: StopPropagationDirective, selector: "[rxapStopPropagation]" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
243
139
|
}
|
|
244
|
-
(
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorComponent, decorators: [{
|
|
141
|
+
type: Component,
|
|
142
|
+
args: [{ selector: 'rxap-language-selector', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
143
|
+
NgIf,
|
|
144
|
+
MatFormFieldModule,
|
|
145
|
+
StopPropagationDirective,
|
|
146
|
+
MatSelectModule,
|
|
147
|
+
FormsModule,
|
|
148
|
+
NgFor,
|
|
149
|
+
MatOptionModule,
|
|
150
|
+
KeyValuePipe,
|
|
151
|
+
], template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\" rxapStopPropagation>\n <mat-label i18n>Select Language</mat-label>\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:calc(100% - 32px);margin:0 16px}.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"] }]
|
|
152
|
+
}], ctorParameters: function () { return [{ type: LanguageSelectorService }]; } });
|
|
251
153
|
|
|
252
|
-
function NavigationProgressBarComponent_mat_progress_bar_0_Template(rf, ctx) { if (rf & 1) {
|
|
253
|
-
i0.ɵɵelement(0, "mat-progress-bar", 1);
|
|
254
|
-
} }
|
|
255
154
|
class NavigationProgressBarComponent {
|
|
256
155
|
constructor(router) {
|
|
257
156
|
this.router = router;
|
|
@@ -259,296 +158,148 @@ class NavigationProgressBarComponent {
|
|
|
259
158
|
event instanceof NavigationEnd ||
|
|
260
159
|
event instanceof NavigationCancel), map(event => event instanceof NavigationStart));
|
|
261
160
|
}
|
|
262
|
-
static { this.ɵfac =
|
|
263
|
-
static { this.ɵcmp =
|
|
264
|
-
i0.ɵɵtemplate(0, NavigationProgressBarComponent_mat_progress_bar_0_Template, 1, 0, "mat-progress-bar", 0);
|
|
265
|
-
i0.ɵɵpipe(1, "async");
|
|
266
|
-
} if (rf & 2) {
|
|
267
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.navigating$));
|
|
268
|
-
} }, dependencies: [i1$4.MatLegacyProgressBar, i2$1.NgIf, i2$1.AsyncPipe], changeDetection: 0 }); }
|
|
269
|
-
}
|
|
270
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationProgressBarComponent, [{
|
|
271
|
-
type: Component,
|
|
272
|
-
args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-navigation-progress-bar' }, template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n mode=\"indeterminate\"\n color=\"accent\"\n></mat-progress-bar>\n" }]
|
|
273
|
-
}], function () { return [{ type: i3$1.Router, decorators: [{
|
|
274
|
-
type: Inject,
|
|
275
|
-
args: [Router]
|
|
276
|
-
}] }]; }, null); })();
|
|
277
|
-
|
|
278
|
-
function SidenavToggleButtonComponent_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
|
|
279
|
-
i0.ɵɵelementStart(0, "mat-icon");
|
|
280
|
-
i0.ɵɵtext(1, "menu");
|
|
281
|
-
i0.ɵɵelementEnd();
|
|
282
|
-
} }
|
|
283
|
-
function SidenavToggleButtonComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
|
|
284
|
-
i0.ɵɵelementStart(0, "mat-icon");
|
|
285
|
-
i0.ɵɵtext(1, "menu_open");
|
|
286
|
-
i0.ɵɵelementEnd();
|
|
287
|
-
} }
|
|
288
|
-
class SidenavToggleButtonComponent {
|
|
289
|
-
static { this.ɵfac = function SidenavToggleButtonComponent_Factory(t) { return new (t || SidenavToggleButtonComponent)(); }; }
|
|
290
|
-
static { this.ɵ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) { if (rf & 1) {
|
|
291
|
-
i0.ɵɵelementStart(0, "button", 0);
|
|
292
|
-
i0.ɵɵlistener("click", function SidenavToggleButtonComponent_Template_button_click_0_listener() { return ctx.sidenav.toggle(); });
|
|
293
|
-
i0.ɵɵtemplate(1, SidenavToggleButtonComponent_mat_icon_1_Template, 2, 0, "mat-icon", 1);
|
|
294
|
-
i0.ɵɵtemplate(2, SidenavToggleButtonComponent_mat_icon_2_Template, 2, 0, "mat-icon", 1);
|
|
295
|
-
i0.ɵɵelementEnd();
|
|
296
|
-
} if (rf & 2) {
|
|
297
|
-
i0.ɵɵadvance(1);
|
|
298
|
-
i0.ɵɵproperty("ngIf", !ctx.sidenav.opened);
|
|
299
|
-
i0.ɵɵadvance(1);
|
|
300
|
-
i0.ɵɵproperty("ngIf", ctx.sidenav.opened);
|
|
301
|
-
} }, dependencies: [i2$2.MatIcon, i2$1.NgIf, i1$1.MatLegacyButton], changeDetection: 0 }); }
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationProgressBarComponent, deps: [{ token: Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: NavigationProgressBarComponent, isStandalone: true, selector: "rxap-navigation-progress-bar", ngImport: i0, template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n color=\"accent\"\n mode=\"indeterminate\"\n></mat-progress-bar>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1$3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
302
163
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationProgressBarComponent, decorators: [{
|
|
165
|
+
type: Component,
|
|
166
|
+
args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
167
|
+
NgIf,
|
|
168
|
+
MatProgressBarModule,
|
|
169
|
+
AsyncPipe,
|
|
170
|
+
], template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n color=\"accent\"\n mode=\"indeterminate\"\n></mat-progress-bar>\n" }]
|
|
171
|
+
}], ctorParameters: function () { return [{ type: i2$2.Router, decorators: [{
|
|
172
|
+
type: Inject,
|
|
173
|
+
args: [Router]
|
|
174
|
+
}] }]; } });
|
|
313
175
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
i0.ɵɵelementEnd()()();
|
|
320
|
-
} if (rf & 2) {
|
|
321
|
-
const item_r4 = i0.ɵɵnextContext().$implicit;
|
|
322
|
-
i0.ɵɵproperty("href", item_r4.href, i0.ɵɵsanitizeUrl);
|
|
323
|
-
i0.ɵɵadvance(2);
|
|
324
|
-
i0.ɵɵproperty("src", item_r4.image, i0.ɵɵsanitizeUrl);
|
|
325
|
-
i0.ɵɵadvance(2);
|
|
326
|
-
i0.ɵɵtextInterpolate(item_r4.label);
|
|
327
|
-
} }
|
|
328
|
-
const _c0$5 = function (a0) { return { empty: a0 }; };
|
|
329
|
-
function AppsButtonComponent_ng_template_0_ng_template_4_li_2_Template(rf, ctx) { if (rf & 1) {
|
|
330
|
-
i0.ɵɵelementStart(0, "li", 7);
|
|
331
|
-
i0.ɵɵtemplate(1, AppsButtonComponent_ng_template_0_ng_template_4_li_2_a_1_Template, 5, 3, "a", 8);
|
|
332
|
-
i0.ɵɵelementEnd();
|
|
333
|
-
} if (rf & 2) {
|
|
334
|
-
const item_r4 = ctx.$implicit;
|
|
335
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0$5, item_r4.empty));
|
|
336
|
-
i0.ɵɵadvance(1);
|
|
337
|
-
i0.ɵɵproperty("ngIf", !item_r4.empty);
|
|
338
|
-
} }
|
|
339
|
-
const _c1$4 = function (a0) { return { columns: a0 }; };
|
|
340
|
-
function AppsButtonComponent_ng_template_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
341
|
-
i0.ɵɵelementStart(0, "div", 4)(1, "ul", 5);
|
|
342
|
-
i0.ɵɵtemplate(2, AppsButtonComponent_ng_template_0_ng_template_4_li_2_Template, 2, 4, "li", 6);
|
|
343
|
-
i0.ɵɵelementEnd()();
|
|
344
|
-
} if (rf & 2) {
|
|
345
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
346
|
-
i0.ɵɵadvance(1);
|
|
347
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c1$4, ctx_r2.columns));
|
|
348
|
-
i0.ɵɵadvance(1);
|
|
349
|
-
i0.ɵɵproperty("ngForOf", ctx_r2.gridWithPadding);
|
|
350
|
-
} }
|
|
351
|
-
function AppsButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
352
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
|
353
|
-
i0.ɵɵelementStart(0, "button", 1, 2);
|
|
354
|
-
i0.ɵɵlistener("click", function AppsButtonComponent_ng_template_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.isOpen = !ctx_r7.isOpen); });
|
|
355
|
-
i0.ɵɵelementStart(2, "mat-icon");
|
|
356
|
-
i0.ɵɵtext(3, "apps");
|
|
357
|
-
i0.ɵɵelementEnd()();
|
|
358
|
-
i0.ɵɵtemplate(4, AppsButtonComponent_ng_template_0_ng_template_4_Template, 3, 4, "ng-template", 3);
|
|
359
|
-
i0.ɵɵlistener("overlayOutsideClick", function AppsButtonComponent_ng_template_0_Template_ng_template_overlayOutsideClick_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.isOpen = false); });
|
|
360
|
-
} if (rf & 2) {
|
|
361
|
-
const _r1 = i0.ɵɵreference(1);
|
|
362
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
363
|
-
i0.ɵɵadvance(4);
|
|
364
|
-
i0.ɵɵproperty("cdkConnectedOverlayOpen", ctx_r0.isOpen)("cdkConnectedOverlayOrigin", _r1);
|
|
365
|
-
} }
|
|
366
|
-
class AppsButtonComponent {
|
|
367
|
-
get gridWithPadding() {
|
|
368
|
-
const gridWithPadding = this.grid.slice();
|
|
369
|
-
while (gridWithPadding.length % this.columns !== 0) {
|
|
370
|
-
gridWithPadding.push({ empty: true });
|
|
371
|
-
}
|
|
372
|
-
return gridWithPadding;
|
|
176
|
+
class UserProfileIconComponent {
|
|
177
|
+
constructor(userProfileService, authenticationService) {
|
|
178
|
+
this.userProfileService = userProfileService;
|
|
179
|
+
this.authenticationService = authenticationService;
|
|
180
|
+
this.username = signal(null);
|
|
373
181
|
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
return 1;
|
|
377
|
-
}
|
|
378
|
-
if (this.grid.length < 6) {
|
|
379
|
-
return 2;
|
|
380
|
-
}
|
|
381
|
-
return 3;
|
|
182
|
+
ngOnInit() {
|
|
183
|
+
this._subscription = this.authenticationService.isAuthenticated$.pipe(filter$1(Boolean), switchMap(() => this.userProfileService.getProfile()), filter$1(Boolean), tap((user) => this.username.set(user.username ?? null))).subscribe();
|
|
382
184
|
}
|
|
383
|
-
|
|
384
|
-
this.
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
}
|
|
389
|
-
static { this.ɵfac =
|
|
390
|
-
static { this.ɵcmp =
|
|
391
|
-
i0.ɵɵtemplate(0, AppsButtonComponent_ng_template_0_Template, 5, 2, "ng-template", 0);
|
|
392
|
-
} if (rf & 2) {
|
|
393
|
-
i0.ɵɵproperty("ngIf", ctx.grid && ctx.grid.length);
|
|
394
|
-
} }, dependencies: [i1$1.MatLegacyButton, 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 }); }
|
|
185
|
+
ngOnDestroy() {
|
|
186
|
+
this._subscription?.unsubscribe();
|
|
187
|
+
}
|
|
188
|
+
async logout() {
|
|
189
|
+
await this.authenticationService.signOut();
|
|
190
|
+
}
|
|
191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, deps: [{ token: i1$1.RxapUserProfileService }, { token: i1$1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: UserProfileIconComponent, isStandalone: true, selector: "rxap-user-profile-icon", ngImport: i0, template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n <mat-icon class=\"avatar-icon\">account_circle</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <button mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{username()}}</span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <mat-icon>login</mat-icon>\n <span i18n>Logout</span>\n </button>\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 .avatar-icon{width:32px;height:32px;font-size:32px}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1$4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
395
193
|
}
|
|
396
|
-
(
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
args: [ConfigService]
|
|
407
|
-
}] }]; }, null); })();
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, decorators: [{
|
|
195
|
+
type: Component,
|
|
196
|
+
args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
197
|
+
FlexModule,
|
|
198
|
+
MatMenuModule,
|
|
199
|
+
MatIconModule,
|
|
200
|
+
NgIf,
|
|
201
|
+
AsyncPipe,
|
|
202
|
+
], template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n <mat-icon class=\"avatar-icon\">account_circle</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <button mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{username()}}</span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <mat-icon>login</mat-icon>\n <span i18n>Logout</span>\n </button>\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 .avatar-icon{width:32px;height:32px;font-size:32px}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"] }]
|
|
203
|
+
}], ctorParameters: function () { return [{ type: i1$1.RxapUserProfileService }, { type: i1$1.RxapAuthenticationService }]; } });
|
|
408
204
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
i0.ɵɵtext(1);
|
|
412
|
-
i0.ɵɵelementEnd();
|
|
413
|
-
} if (rf & 2) {
|
|
414
|
-
const item_r2 = ctx.$implicit;
|
|
415
|
-
i0.ɵɵproperty("value", item_r2.key);
|
|
416
|
-
i0.ɵɵadvance(1);
|
|
417
|
-
i0.ɵɵtextInterpolate(item_r2.value);
|
|
418
|
-
} }
|
|
419
|
-
function LanguageSelectorComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
420
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
|
421
|
-
i0.ɵɵelementStart(0, "div")(1, "mat-form-field", 1)(2, "mat-select", 2);
|
|
422
|
-
i0.ɵɵlistener("ngModelChange", function LanguageSelectorComponent_ng_template_0_Template_mat_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.language.setLanguage($event)); });
|
|
423
|
-
i0.ɵɵtemplate(3, LanguageSelectorComponent_ng_template_0_mat_option_3_Template, 2, 2, "mat-option", 3);
|
|
424
|
-
i0.ɵɵpipe(4, "keyvalue");
|
|
425
|
-
i0.ɵɵelementEnd()()();
|
|
426
|
-
} if (rf & 2) {
|
|
427
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
428
|
-
i0.ɵɵadvance(2);
|
|
429
|
-
i0.ɵɵproperty("ngModel", ctx_r0.language.selectedLanguage);
|
|
430
|
-
i0.ɵɵadvance(1);
|
|
431
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(4, 2, ctx_r0.language.languages));
|
|
432
|
-
} }
|
|
433
|
-
const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = 'rxap__selected_language';
|
|
434
|
-
const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = 'rxap__selected_language_last_change';
|
|
435
|
-
class LanguageSelectorService {
|
|
436
|
-
constructor(config) {
|
|
205
|
+
class AppUrlService {
|
|
206
|
+
constructor(config, localeId, userProfileService) {
|
|
437
207
|
this.config = config;
|
|
438
|
-
this.
|
|
439
|
-
this.
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
this.
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
208
|
+
this.localeId = localeId;
|
|
209
|
+
this.userProfileService = userProfileService;
|
|
210
|
+
this._apps = this.config.get('navigation.apps') ?? [];
|
|
211
|
+
}
|
|
212
|
+
getApp(appId) {
|
|
213
|
+
return this._apps.find(app => app.id === appId) ?? null;
|
|
214
|
+
}
|
|
215
|
+
getAppUrl(appId, path) {
|
|
216
|
+
const app = this.getApp(appId);
|
|
217
|
+
if (app) {
|
|
218
|
+
const prefix = this.getPathPrefix();
|
|
219
|
+
return JoinPath(app.href, prefix, path);
|
|
450
220
|
}
|
|
221
|
+
return null;
|
|
451
222
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
223
|
+
navigate(appId, path) {
|
|
224
|
+
const url = this.getAppUrl(appId, path);
|
|
225
|
+
if (url) {
|
|
226
|
+
ClickOnLink(url);
|
|
455
227
|
}
|
|
456
228
|
}
|
|
457
|
-
|
|
458
|
-
const
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
if (lastChangeString) {
|
|
477
|
-
if (Date.now() - parseInt(lastChangeString, 10) < 1000) {
|
|
478
|
-
return false;
|
|
479
|
-
}
|
|
229
|
+
async getAppList() {
|
|
230
|
+
const roles = await this.userProfileService.getRoleList();
|
|
231
|
+
return this._apps.filter(app => !app.hidden)
|
|
232
|
+
.map(app => ({
|
|
233
|
+
...app,
|
|
234
|
+
href: JoinPath(app.href, this.getPathPrefix()),
|
|
235
|
+
}))
|
|
236
|
+
.filter(app => !app.permissions ||
|
|
237
|
+
!app.permissions.length ||
|
|
238
|
+
app.permissions.every(permission => roles.includes(permission)));
|
|
239
|
+
}
|
|
240
|
+
getPathPrefix() {
|
|
241
|
+
switch (this.localeId) {
|
|
242
|
+
case 'de-DE':
|
|
243
|
+
return 'de';
|
|
244
|
+
case 'en-US':
|
|
245
|
+
return 'en';
|
|
246
|
+
default:
|
|
247
|
+
return 'de';
|
|
480
248
|
}
|
|
481
|
-
localStorage.setItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY, Date.now().toFixed(0));
|
|
482
|
-
return true;
|
|
483
249
|
}
|
|
484
|
-
static { this.ɵfac =
|
|
485
|
-
static { this.ɵprov =
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppUrlService, deps: [{ token: i1$2.ConfigService }, { token: LOCALE_ID }, { token: i1$1.RxapUserProfileService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
251
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppUrlService, providedIn: 'root' }); }
|
|
486
252
|
}
|
|
487
|
-
(
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppUrlService, decorators: [{
|
|
254
|
+
type: Injectable,
|
|
255
|
+
args: [{ providedIn: 'root' }]
|
|
256
|
+
}], ctorParameters: function () { return [{ type: i1$2.ConfigService }, { type: undefined, decorators: [{
|
|
257
|
+
type: Inject,
|
|
258
|
+
args: [LOCALE_ID]
|
|
259
|
+
}] }, { type: i1$1.RxapUserProfileService }]; } });
|
|
260
|
+
|
|
261
|
+
class AppsButtonComponent {
|
|
262
|
+
constructor(grid, appUrlService, authenticationService) {
|
|
263
|
+
this.appUrlService = appUrlService;
|
|
264
|
+
this.authenticationService = authenticationService;
|
|
265
|
+
this.isOpen = false;
|
|
266
|
+
this.appList = signal([]);
|
|
267
|
+
}
|
|
268
|
+
ngOnInit() {
|
|
269
|
+
this._subscription = this.authenticationService.isAuthenticated$.pipe(filter(Boolean), switchMap$1(() => this.appUrlService.getAppList()), tap((apps) => this.appList.set(apps))).subscribe();
|
|
270
|
+
}
|
|
271
|
+
ngOnDestroy() {
|
|
272
|
+
this._subscription?.unsubscribe();
|
|
497
273
|
}
|
|
498
|
-
static { this.ɵfac =
|
|
499
|
-
static { this.ɵcmp =
|
|
500
|
-
i0.ɵɵtemplate(0, LanguageSelectorComponent_ng_template_0_Template, 5, 4, "ng-template", 0);
|
|
501
|
-
i0.ɵɵpipe(1, "keyvalue");
|
|
502
|
-
} if (rf & 2) {
|
|
503
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 1, ctx.language.languages).length);
|
|
504
|
-
} }, dependencies: [i2$3.MatLegacyFormField, i3$3.MatLegacySelect, i4$1.MatLegacyOption, 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 }); }
|
|
274
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppsButtonComponent, deps: [{ token: RXAP_LAYOUT_APPS_GRID, optional: true }, { token: AppUrlService }, { token: i1$1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
275
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: AppsButtonComponent, isStandalone: true, selector: "rxap-apps-button", ngImport: i0, template: "<div *ngIf=\"appList()?.length\" class=\"flex flex-row items-center gap-8\">\n\n <div *ngIf=\"isOpen\" class=\"flex flex-row items-center gap-6\">\n\n <div *ngFor=\"let app of appList()\" class=\"h-10\">\n <a [href]=\"app.href\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n <img *ngIf=\"app.image\" [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n <span class=\"label grow-0\">{{app.label}}</span>\n </span>\n </a>\n </div>\n\n </div>\n\n <button (click)=\"isOpen = !isOpen\" mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
505
276
|
}
|
|
506
|
-
(
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: AppsButtonComponent, decorators: [{
|
|
278
|
+
type: Component,
|
|
279
|
+
args: [{ selector: 'rxap-apps-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
280
|
+
NgIf,
|
|
281
|
+
FlexModule,
|
|
282
|
+
NgFor,
|
|
283
|
+
MatButtonModule,
|
|
284
|
+
MatIconModule,
|
|
285
|
+
NgOptimizedImage,
|
|
286
|
+
], template: "<div *ngIf=\"appList()?.length\" class=\"flex flex-row items-center gap-8\">\n\n <div *ngIf=\"isOpen\" class=\"flex flex-row items-center gap-6\">\n\n <div *ngFor=\"let app of appList()\" class=\"h-10\">\n <a [href]=\"app.href\" mat-stroked-button>\n <span class=\"flex flex-row items-center gap-4\">\n <img *ngIf=\"app.image\" [alt]=\"app.label\" [ngSrc]=\"app.image\" height=\"40\" width=\"40\">\n <span class=\"label grow-0\">{{app.label}}</span>\n </span>\n </a>\n </div>\n\n </div>\n\n <button (click)=\"isOpen = !isOpen\" mat-icon-button>\n <mat-icon>apps</mat-icon>\n </button>\n\n</div>\n" }]
|
|
287
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
288
|
+
type: Optional
|
|
289
|
+
}, {
|
|
290
|
+
type: Inject,
|
|
291
|
+
args: [RXAP_LAYOUT_APPS_GRID]
|
|
292
|
+
}] }, { type: AppUrlService }, { type: i1$1.RxapAuthenticationService }]; } });
|
|
510
293
|
|
|
511
|
-
function HeaderComponent_mat_toolbar_row_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
512
|
-
i0.ɵɵelementContainer(0);
|
|
513
|
-
} }
|
|
514
|
-
function HeaderComponent_mat_toolbar_row_1_Template(rf, ctx) { if (rf & 1) {
|
|
515
|
-
i0.ɵɵelementStart(0, "mat-toolbar-row");
|
|
516
|
-
i0.ɵɵtemplate(1, HeaderComponent_mat_toolbar_row_1_ng_container_1_Template, 1, 0, "ng-container", 7);
|
|
517
|
-
i0.ɵɵelementEnd();
|
|
518
|
-
} if (rf & 2) {
|
|
519
|
-
const headerComponent_r4 = ctx.$implicit;
|
|
520
|
-
i0.ɵɵadvance(1);
|
|
521
|
-
i0.ɵɵproperty("ngComponentOutlet", headerComponent_r4);
|
|
522
|
-
} }
|
|
523
|
-
function HeaderComponent_rxap_sidenav_toggle_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
524
|
-
i0.ɵɵelement(0, "rxap-sidenav-toggle-button", 8);
|
|
525
|
-
} if (rf & 2) {
|
|
526
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
527
|
-
i0.ɵɵproperty("sidenav", ctx_r1.sidenav);
|
|
528
|
-
} }
|
|
529
|
-
function HeaderComponent_rxap_user_profile_icon_9_Template(rf, ctx) { if (rf & 1) {
|
|
530
|
-
i0.ɵɵelement(0, "rxap-user-profile-icon", 5);
|
|
531
|
-
} }
|
|
532
|
-
function HeaderComponent_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
533
|
-
i0.ɵɵelementStart(0, "div", 5)(1, "button", 9)(2, "mat-icon");
|
|
534
|
-
i0.ɵɵtext(3, "settings");
|
|
535
|
-
i0.ɵɵelementEnd()()();
|
|
536
|
-
} if (rf & 2) {
|
|
537
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
538
|
-
i0.ɵɵadvance(1);
|
|
539
|
-
i0.ɵɵproperty("matMenuTriggerFor", ctx_r3.settingsMenuPanel);
|
|
540
|
-
} }
|
|
541
|
-
const _c0$4 = function (a0) { return { open: a0 }; };
|
|
542
|
-
const _c1$3 = ["*"];
|
|
543
294
|
class HeaderComponent {
|
|
544
|
-
constructor(headerComponentService,
|
|
295
|
+
constructor(headerComponentService, headerComponent, theme) {
|
|
545
296
|
this.headerComponentService = headerComponentService;
|
|
546
|
-
this.userService = userService;
|
|
547
297
|
this.headerComponent = headerComponent;
|
|
298
|
+
this.theme = theme;
|
|
548
299
|
this.components = [];
|
|
549
300
|
this.subscriptions = new Subscription();
|
|
550
301
|
this.color = 'primary';
|
|
551
|
-
this.
|
|
302
|
+
this.isDevMode = isDevMode();
|
|
552
303
|
}
|
|
553
304
|
ngOnInit() {
|
|
554
305
|
this.updateComponents();
|
|
@@ -562,305 +313,93 @@ class HeaderComponent {
|
|
|
562
313
|
ngOnDestroy() {
|
|
563
314
|
this.subscriptions.unsubscribe();
|
|
564
315
|
}
|
|
565
|
-
static { this.ɵfac =
|
|
566
|
-
static { this.ɵcmp =
|
|
567
|
-
i0.ɵɵprojectionDef();
|
|
568
|
-
i0.ɵɵelementStart(0, "mat-toolbar", 0);
|
|
569
|
-
i0.ɵɵtemplate(1, HeaderComponent_mat_toolbar_row_1_Template, 2, 1, "mat-toolbar-row", 1);
|
|
570
|
-
i0.ɵɵelementStart(2, "mat-toolbar-row")(3, "div", 2);
|
|
571
|
-
i0.ɵɵtemplate(4, HeaderComponent_rxap_sidenav_toggle_button_4_Template, 1, 1, "rxap-sidenav-toggle-button", 3);
|
|
572
|
-
i0.ɵɵelementStart(5, "div", 4);
|
|
573
|
-
i0.ɵɵprojection(6);
|
|
574
|
-
i0.ɵɵelementEnd();
|
|
575
|
-
i0.ɵɵelement(7, "rxap-language-selector", 5)(8, "rxap-apps-button", 5);
|
|
576
|
-
i0.ɵɵtemplate(9, HeaderComponent_rxap_user_profile_icon_9_Template, 1, 0, "rxap-user-profile-icon", 6);
|
|
577
|
-
i0.ɵɵpipe(10, "async");
|
|
578
|
-
i0.ɵɵtemplate(11, HeaderComponent_div_11_Template, 4, 1, "div", 6);
|
|
579
|
-
i0.ɵɵelement(12, "rxap-sign-out", 5);
|
|
580
|
-
i0.ɵɵelementEnd()()();
|
|
581
|
-
i0.ɵɵelement(13, "rxap-navigation-progress-bar");
|
|
582
|
-
} if (rf & 2) {
|
|
583
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0$4, ctx.sidenav == null ? null : ctx.sidenav.opened))("color", ctx.color);
|
|
584
|
-
i0.ɵɵadvance(1);
|
|
585
|
-
i0.ɵɵproperty("ngForOf", ctx.components);
|
|
586
|
-
i0.ɵɵadvance(3);
|
|
587
|
-
i0.ɵɵproperty("ngIf", ctx.sidenav);
|
|
588
|
-
i0.ɵɵadvance(5);
|
|
589
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(10, 6, ctx.hasUser$));
|
|
590
|
-
i0.ɵɵadvance(2);
|
|
591
|
-
i0.ɵɵproperty("ngIf", ctx.settingsMenuPanel);
|
|
592
|
-
} }, 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.MatLegacyButton, i2$2.MatIcon, i1$2.MatLegacyMenuTrigger, AppsButtonComponent, LanguageSelectorComponent, i2$1.AsyncPipe], styles: [".content[_ngcontent-%COMP%]{width:100%;height:64px}"], changeDetection: 0 }); }
|
|
593
|
-
}
|
|
594
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HeaderComponent, [{
|
|
595
|
-
type: Component,
|
|
596
|
-
args: [{ selector: 'rxap-header', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
597
|
-
class: 'rxap-layout-header',
|
|
598
|
-
}, template: "<mat-toolbar [ngClass]=\"{ open: sidenav?.opened }\" [color]=\"color\" class=\"mat-elevation-z3\">\n <mat-toolbar-row *ngFor=\"let headerComponent of components\">\n <ng-container *ngComponentOutlet=\"headerComponent\"></ng-container>\n </mat-toolbar-row>\n <mat-toolbar-row>\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n fxLayoutGap=\"16px\"\n class=\"content\"\n >\n <rxap-sidenav-toggle-button *ngIf=\"sidenav\" fxFlex=\"nogrow\" [sidenav]=\"sidenav\"></rxap-sidenav-toggle-button>\n <div fxFlex=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-language-selector fxFlex=\"nogrow\"></rxap-language-selector>\n <rxap-apps-button fxFlex=\"nogrow\"></rxap-apps-button>\n <rxap-user-profile-icon *ngIf=\"hasUser$ | async\" fxFlex=\"nogrow\"></rxap-user-profile-icon>\n <div fxFlex=\"nogrow\" *ngIf=\"settingsMenuPanel\">\n <button mat-icon-button [matMenuTriggerFor]=\"settingsMenuPanel\">\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-sign-out fxFlex=\"nogrow\"></rxap-sign-out>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n", styles: [".content{width:100%;height:64px}\n"] }]
|
|
599
|
-
}], function () { return [{ type: i1.HeaderService, decorators: [{
|
|
600
|
-
type: Inject,
|
|
601
|
-
args: [HeaderService]
|
|
602
|
-
}] }, { type: i3.UserService, decorators: [{
|
|
603
|
-
type: Inject,
|
|
604
|
-
args: [UserService]
|
|
605
|
-
}] }, { type: undefined, decorators: [{
|
|
606
|
-
type: Optional
|
|
607
|
-
}, {
|
|
608
|
-
type: Inject,
|
|
609
|
-
args: [RXAP_HEADER_COMPONENT]
|
|
610
|
-
}] }]; }, { sidenav: [{
|
|
611
|
-
type: Input
|
|
612
|
-
}], color: [{
|
|
613
|
-
type: Input
|
|
614
|
-
}], settingsMenuPanel: [{
|
|
615
|
-
type: Input
|
|
616
|
-
}] }); })();
|
|
617
|
-
|
|
618
|
-
class SignOutComponentModule {
|
|
619
|
-
static { this.ɵfac = function SignOutComponentModule_Factory(t) { return new (t || SignOutComponentModule)(); }; }
|
|
620
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SignOutComponentModule }); }
|
|
621
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatLegacyButtonModule,
|
|
622
|
-
MatIconModule,
|
|
623
|
-
SignOutDirectiveModule] }); }
|
|
624
|
-
}
|
|
625
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutComponentModule, [{
|
|
626
|
-
type: NgModule,
|
|
627
|
-
args: [{
|
|
628
|
-
declarations: [SignOutComponent],
|
|
629
|
-
imports: [
|
|
630
|
-
MatLegacyButtonModule,
|
|
631
|
-
MatIconModule,
|
|
632
|
-
SignOutDirectiveModule,
|
|
633
|
-
],
|
|
634
|
-
exports: [SignOutComponent]
|
|
635
|
-
}]
|
|
636
|
-
}], null, null); })();
|
|
637
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SignOutComponentModule, { declarations: [SignOutComponent], imports: [MatLegacyButtonModule,
|
|
638
|
-
MatIconModule,
|
|
639
|
-
SignOutDirectiveModule], exports: [SignOutComponent] }); })();
|
|
640
|
-
|
|
641
|
-
class UserProfileIconComponentModule {
|
|
642
|
-
static { this.ɵfac = function UserProfileIconComponentModule_Factory(t) { return new (t || UserProfileIconComponentModule)(); }; }
|
|
643
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: UserProfileIconComponentModule }); }
|
|
644
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatLegacyMenuModule,
|
|
645
|
-
MatIconModule,
|
|
646
|
-
CommonModule,
|
|
647
|
-
FlexLayoutModule,
|
|
648
|
-
AvatarBackgroundImageDirectiveModule] }); }
|
|
649
|
-
}
|
|
650
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileIconComponentModule, [{
|
|
651
|
-
type: NgModule,
|
|
652
|
-
args: [{
|
|
653
|
-
declarations: [UserProfileIconComponent],
|
|
654
|
-
imports: [
|
|
655
|
-
MatLegacyMenuModule,
|
|
656
|
-
MatIconModule,
|
|
657
|
-
CommonModule,
|
|
658
|
-
FlexLayoutModule,
|
|
659
|
-
AvatarBackgroundImageDirectiveModule,
|
|
660
|
-
],
|
|
661
|
-
exports: [UserProfileIconComponent]
|
|
662
|
-
}]
|
|
663
|
-
}], null, null); })();
|
|
664
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(UserProfileIconComponentModule, { declarations: [UserProfileIconComponent], imports: [MatLegacyMenuModule,
|
|
665
|
-
MatIconModule,
|
|
666
|
-
CommonModule,
|
|
667
|
-
FlexLayoutModule,
|
|
668
|
-
AvatarBackgroundImageDirectiveModule], exports: [UserProfileIconComponent] }); })();
|
|
669
|
-
|
|
670
|
-
class NavigationProgressBarComponentModule {
|
|
671
|
-
static { this.ɵfac = function NavigationProgressBarComponentModule_Factory(t) { return new (t || NavigationProgressBarComponentModule)(); }; }
|
|
672
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NavigationProgressBarComponentModule }); }
|
|
673
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatLegacyProgressBarModule,
|
|
674
|
-
CommonModule] }); }
|
|
316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HeaderComponent, deps: [{ token: HeaderService }, { token: RXAP_HEADER_COMPONENT, optional: true }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
317
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: HeaderComponent, isStandalone: true, selector: "rxap-header", inputs: { sidenav: "sidenav", color: "color" }, ngImport: i0, template: "<mat-toolbar [color]=\"color\" [ngClass]=\"{ open: sidenav?.opened }\" class=\"mat-elevation-z3 header\">\n <div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n <div class=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <div class=\"grow-0\">\n <button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-user-profile-icon class=\"grow-0\"></rxap-user-profile-icon>\n </div>\n</mat-toolbar>\n\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n <mat-icon *ngIf=\"theme.darkMode\">brightness_2</mat-icon>\n <mat-icon *ngIf=\"!theme.darkMode\">brightness_5</mat-icon>\n <span i18n>Mode</span>\n </button>\n <rxap-language-selector *ngIf=\"!isDevMode\"></rxap-language-selector>\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LanguageSelectorComponent, selector: "rxap-language-selector" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: NavigationProgressBarComponent, selector: "rxap-navigation-progress-bar" }, { kind: "component", type: UserProfileIconComponent, selector: "rxap-user-profile-icon" }, { kind: "component", type: AppsButtonComponent, selector: "rxap-apps-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
675
318
|
}
|
|
676
|
-
(
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
320
|
+
type: Component,
|
|
321
|
+
args: [{ selector: 'rxap-header', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
322
|
+
MatToolbarModule,
|
|
323
|
+
NgClass,
|
|
324
|
+
NgIf,
|
|
325
|
+
MatButtonModule,
|
|
326
|
+
MatMenuModule,
|
|
327
|
+
MatIconModule,
|
|
328
|
+
LanguageSelectorComponent,
|
|
329
|
+
MatFormFieldModule,
|
|
330
|
+
StopPropagationDirective,
|
|
331
|
+
MatSelectModule,
|
|
332
|
+
FormsModule,
|
|
333
|
+
MatOptionModule,
|
|
334
|
+
DataSourceCollectionDirective,
|
|
335
|
+
MatSlideToggleModule,
|
|
336
|
+
AsyncPipe,
|
|
337
|
+
NavigationProgressBarComponent,
|
|
338
|
+
UserProfileIconComponent,
|
|
339
|
+
AppsButtonComponent,
|
|
340
|
+
], template: "<mat-toolbar [color]=\"color\" [ngClass]=\"{ open: sidenav?.opened }\" class=\"mat-elevation-z3 header\">\n <div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n <div class=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <div class=\"grow-0\">\n <button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon>settings</mat-icon>\n </button>\n </div>\n <rxap-user-profile-icon class=\"grow-0\"></rxap-user-profile-icon>\n </div>\n</mat-toolbar>\n\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n <mat-icon *ngIf=\"theme.darkMode\">brightness_2</mat-icon>\n <mat-icon *ngIf=\"!theme.darkMode\">brightness_5</mat-icon>\n <span i18n>Mode</span>\n </button>\n <rxap-language-selector *ngIf=\"!isDevMode\"></rxap-language-selector>\n</mat-menu>\n" }]
|
|
341
|
+
}], ctorParameters: function () { return [{ type: i1.HeaderService, decorators: [{
|
|
342
|
+
type: Inject,
|
|
343
|
+
args: [HeaderService]
|
|
344
|
+
}] }, { type: undefined, decorators: [{
|
|
345
|
+
type: Optional
|
|
346
|
+
}, {
|
|
347
|
+
type: Inject,
|
|
348
|
+
args: [RXAP_HEADER_COMPONENT]
|
|
349
|
+
}] }, { type: i1.ThemeService }]; }, propDecorators: { sidenav: [{
|
|
350
|
+
type: Input
|
|
351
|
+
}], color: [{
|
|
352
|
+
type: Input
|
|
353
|
+
}] } });
|
|
689
354
|
|
|
690
|
-
class
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
355
|
+
class SignOutComponent {
|
|
356
|
+
constructor(authenticationService) {
|
|
357
|
+
this.authenticationService = authenticationService;
|
|
358
|
+
}
|
|
359
|
+
async logout() {
|
|
360
|
+
await this.authenticationService.signOut();
|
|
361
|
+
}
|
|
362
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, deps: [{ token: i1$1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
363
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SignOutComponent, isStandalone: true, selector: "rxap-sign-out", ngImport: i0, template: "<button\n mat-icon-button\n (click)=\"logout()\"\n>\n <mat-icon>login</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
696
364
|
}
|
|
697
|
-
(
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
imports: [
|
|
702
|
-
MatIconModule,
|
|
703
|
-
CommonModule,
|
|
704
|
-
MatLegacyButtonModule
|
|
705
|
-
],
|
|
706
|
-
exports: [SidenavToggleButtonComponent]
|
|
707
|
-
}]
|
|
708
|
-
}], null, null); })();
|
|
709
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SidenavToggleButtonComponentModule, { declarations: [SidenavToggleButtonComponent], imports: [MatIconModule,
|
|
710
|
-
CommonModule,
|
|
711
|
-
MatLegacyButtonModule], exports: [SidenavToggleButtonComponent] }); })();
|
|
365
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, decorators: [{
|
|
366
|
+
type: Component,
|
|
367
|
+
args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule], template: "<button\n mat-icon-button\n (click)=\"logout()\"\n>\n <mat-icon>login</mat-icon>\n</button>\n" }]
|
|
368
|
+
}], ctorParameters: function () { return [{ type: i1$1.RxapAuthenticationService }]; } });
|
|
712
369
|
|
|
713
370
|
class ResetButtonComponent {
|
|
714
371
|
constructor(resetService) {
|
|
715
372
|
this.resetService = resetService;
|
|
716
373
|
}
|
|
717
|
-
static { this.ɵfac =
|
|
718
|
-
static { this.ɵcmp =
|
|
719
|
-
i0.ɵɵelementStart(0, "button", 0);
|
|
720
|
-
i0.ɵɵlistener("click", function ResetButtonComponent_Template_button_click_0_listener() { return ctx.resetService.resetAll(); });
|
|
721
|
-
i0.ɵɵelementStart(1, "mat-icon");
|
|
722
|
-
i0.ɵɵtext(2, "refresh");
|
|
723
|
-
i0.ɵɵelementEnd()();
|
|
724
|
-
} }, dependencies: [i2$2.MatIcon, i1$1.MatLegacyButton], changeDetection: 0 }); }
|
|
725
|
-
}
|
|
726
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResetButtonComponent, [{
|
|
727
|
-
type: Component,
|
|
728
|
-
args: [{ selector: 'rxap-reset-button', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'rxap-reset-button' }, template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n" }]
|
|
729
|
-
}], function () { return [{ type: i1.ResetService, decorators: [{
|
|
730
|
-
type: Inject,
|
|
731
|
-
args: [ResetService]
|
|
732
|
-
}] }]; }, null); })();
|
|
733
|
-
|
|
734
|
-
class ResetButtonComponentModule {
|
|
735
|
-
static { this.ɵfac = function ResetButtonComponentModule_Factory(t) { return new (t || ResetButtonComponentModule)(); }; }
|
|
736
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ResetButtonComponentModule }); }
|
|
737
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
|
|
738
|
-
MatLegacyButtonModule] }); }
|
|
374
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ResetButtonComponent, deps: [{ token: ResetService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
375
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: ResetButtonComponent, isStandalone: true, selector: "rxap-reset-button", ngImport: i0, template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
739
376
|
}
|
|
740
|
-
(
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
],
|
|
748
|
-
exports: [ResetButtonComponent]
|
|
749
|
-
}]
|
|
750
|
-
}], null, null); })();
|
|
751
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ResetButtonComponentModule, { declarations: [ResetButtonComponent], imports: [MatIconModule,
|
|
752
|
-
MatLegacyButtonModule], exports: [ResetButtonComponent] }); })();
|
|
377
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ResetButtonComponent, decorators: [{
|
|
378
|
+
type: Component,
|
|
379
|
+
args: [{ selector: 'rxap-reset-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule], template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon>refresh</mat-icon>\n</button>\n" }]
|
|
380
|
+
}], ctorParameters: function () { return [{ type: i1.ResetService, decorators: [{
|
|
381
|
+
type: Inject,
|
|
382
|
+
args: [ResetService]
|
|
383
|
+
}] }]; } });
|
|
753
384
|
|
|
754
|
-
class
|
|
755
|
-
static { this.ɵfac =
|
|
756
|
-
static { this.ɵ
|
|
757
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatLegacyButtonModule,
|
|
758
|
-
MatIconModule,
|
|
759
|
-
MatGridListModule,
|
|
760
|
-
OverlayModule,
|
|
761
|
-
FlexLayoutModule,
|
|
762
|
-
CommonModule,
|
|
763
|
-
RouterModule] }); }
|
|
764
|
-
}
|
|
765
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AppsButtonComponentModule, [{
|
|
766
|
-
type: NgModule,
|
|
767
|
-
args: [{
|
|
768
|
-
declarations: [AppsButtonComponent],
|
|
769
|
-
imports: [
|
|
770
|
-
MatLegacyButtonModule,
|
|
771
|
-
MatIconModule,
|
|
772
|
-
MatGridListModule,
|
|
773
|
-
OverlayModule,
|
|
774
|
-
FlexLayoutModule,
|
|
775
|
-
CommonModule,
|
|
776
|
-
RouterModule
|
|
777
|
-
],
|
|
778
|
-
exports: [AppsButtonComponent]
|
|
779
|
-
}]
|
|
780
|
-
}], null, null); })();
|
|
781
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AppsButtonComponentModule, { declarations: [AppsButtonComponent], imports: [MatLegacyButtonModule,
|
|
782
|
-
MatIconModule,
|
|
783
|
-
MatGridListModule,
|
|
784
|
-
OverlayModule,
|
|
785
|
-
FlexLayoutModule,
|
|
786
|
-
CommonModule,
|
|
787
|
-
RouterModule], exports: [AppsButtonComponent] }); })();
|
|
788
|
-
|
|
789
|
-
class LanguageSelectorComponentModule {
|
|
790
|
-
static { this.ɵfac = function LanguageSelectorComponentModule_Factory(t) { return new (t || LanguageSelectorComponentModule)(); }; }
|
|
791
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LanguageSelectorComponentModule }); }
|
|
792
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatLegacySelectModule,
|
|
793
|
-
CommonModule,
|
|
794
|
-
FormsModule] }); }
|
|
795
|
-
}
|
|
796
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LanguageSelectorComponentModule, [{
|
|
797
|
-
type: NgModule,
|
|
798
|
-
args: [{
|
|
799
|
-
declarations: [LanguageSelectorComponent],
|
|
800
|
-
imports: [
|
|
801
|
-
MatLegacySelectModule,
|
|
802
|
-
CommonModule,
|
|
803
|
-
FormsModule
|
|
804
|
-
],
|
|
805
|
-
exports: [LanguageSelectorComponent]
|
|
806
|
-
}]
|
|
807
|
-
}], null, null); })();
|
|
808
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LanguageSelectorComponentModule, { declarations: [LanguageSelectorComponent], imports: [MatLegacySelectModule,
|
|
809
|
-
CommonModule,
|
|
810
|
-
FormsModule], exports: [LanguageSelectorComponent] }); })();
|
|
811
|
-
|
|
812
|
-
class HeaderModule {
|
|
813
|
-
static { this.ɵfac = function HeaderModule_Factory(t) { return new (t || HeaderModule)(); }; }
|
|
814
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: HeaderModule }); }
|
|
815
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatToolbarModule,
|
|
816
|
-
SignOutComponentModule,
|
|
817
|
-
UserProfileIconComponentModule,
|
|
818
|
-
NavigationProgressBarComponentModule,
|
|
819
|
-
SidenavToggleButtonComponentModule,
|
|
820
|
-
ResetButtonComponentModule,
|
|
821
|
-
FlexLayoutModule,
|
|
822
|
-
CommonModule,
|
|
823
|
-
MatLegacyButtonModule,
|
|
824
|
-
MatIconModule,
|
|
825
|
-
MatLegacyMenuModule,
|
|
826
|
-
AppsButtonComponentModule,
|
|
827
|
-
LanguageSelectorComponentModule] }); }
|
|
385
|
+
class SidenavToggleButtonComponent {
|
|
386
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
387
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SidenavToggleButtonComponent, isStandalone: true, selector: "rxap-sidenav-toggle-button", inputs: { sidenav: "sidenav" }, ngImport: i0, 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: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
828
388
|
}
|
|
829
|
-
(
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
MatIconModule,
|
|
844
|
-
MatLegacyMenuModule,
|
|
845
|
-
AppsButtonComponentModule,
|
|
846
|
-
LanguageSelectorComponentModule
|
|
847
|
-
],
|
|
848
|
-
exports: [HeaderComponent]
|
|
849
|
-
}]
|
|
850
|
-
}], null, null); })();
|
|
851
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(HeaderModule, { declarations: [HeaderComponent], imports: [MatToolbarModule,
|
|
852
|
-
SignOutComponentModule,
|
|
853
|
-
UserProfileIconComponentModule,
|
|
854
|
-
NavigationProgressBarComponentModule,
|
|
855
|
-
SidenavToggleButtonComponentModule,
|
|
856
|
-
ResetButtonComponentModule,
|
|
857
|
-
FlexLayoutModule,
|
|
858
|
-
CommonModule,
|
|
859
|
-
MatLegacyButtonModule,
|
|
860
|
-
MatIconModule,
|
|
861
|
-
MatLegacyMenuModule,
|
|
862
|
-
AppsButtonComponentModule,
|
|
863
|
-
LanguageSelectorComponentModule], exports: [HeaderComponent] }); })();
|
|
389
|
+
__decorate([
|
|
390
|
+
Required,
|
|
391
|
+
__metadata("design:type", MatSidenav)
|
|
392
|
+
], SidenavToggleButtonComponent.prototype, "sidenav", void 0);
|
|
393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavToggleButtonComponent, decorators: [{
|
|
394
|
+
type: Component,
|
|
395
|
+
args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
396
|
+
MatButtonModule,
|
|
397
|
+
NgIf,
|
|
398
|
+
MatIconModule,
|
|
399
|
+
], 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" }]
|
|
400
|
+
}], propDecorators: { sidenav: [{
|
|
401
|
+
type: Input
|
|
402
|
+
}] } });
|
|
864
403
|
|
|
865
404
|
class LayoutComponentService {
|
|
866
405
|
constructor(footerComponentService, headerComponentService, logoConfig = null, config) {
|
|
@@ -877,58 +416,24 @@ class LayoutComponentService {
|
|
|
877
416
|
this.headerComponentService.update$.pipe(tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))).subscribe();
|
|
878
417
|
this.logo = logoConfig ?? {
|
|
879
418
|
src: '/assets/logo.png',
|
|
880
|
-
width:
|
|
419
|
+
width: 192,
|
|
881
420
|
};
|
|
882
421
|
}
|
|
883
|
-
static { this.ɵfac =
|
|
884
|
-
static { this.ɵprov =
|
|
885
|
-
}
|
|
886
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponentService, [{
|
|
887
|
-
type: Injectable,
|
|
888
|
-
args: [{ providedIn: 'root' }]
|
|
889
|
-
}], function () { return [{ type: i1.FooterService }, { type: i1.HeaderService }, { type: undefined, decorators: [{
|
|
890
|
-
type: Optional
|
|
891
|
-
}, {
|
|
892
|
-
type: Inject,
|
|
893
|
-
args: [RXAP_LOGO_CONFIG]
|
|
894
|
-
}] }, { type: i1$5.ConfigService, decorators: [{
|
|
895
|
-
type: Inject,
|
|
896
|
-
args: [ConfigService]
|
|
897
|
-
}] }]; }, null); })();
|
|
898
|
-
|
|
899
|
-
class SidenavFooterDirective {
|
|
900
|
-
constructor(template) {
|
|
901
|
-
this.template = template;
|
|
902
|
-
}
|
|
903
|
-
static { this.ɵfac = function SidenavFooterDirective_Factory(t) { return new (t || SidenavFooterDirective)(i0.ɵɵdirectiveInject(TemplateRef)); }; }
|
|
904
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SidenavFooterDirective, selectors: [["", "rxapSidenavFooter", ""]] }); }
|
|
422
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponentService, deps: [{ token: i1.FooterService }, { token: i1.HeaderService }, { token: RXAP_LOGO_CONFIG, optional: true }, { token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
423
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponentService, providedIn: 'root' }); }
|
|
905
424
|
}
|
|
906
|
-
(
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
this.template = template;
|
|
919
|
-
}
|
|
920
|
-
static { this.ɵfac = function SidenavHeaderDirective_Factory(t) { return new (t || SidenavHeaderDirective)(i0.ɵɵdirectiveInject(TemplateRef)); }; }
|
|
921
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SidenavHeaderDirective, selectors: [["", "rxapSidenavHeader", ""]] }); }
|
|
922
|
-
}
|
|
923
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavHeaderDirective, [{
|
|
924
|
-
type: Directive,
|
|
925
|
-
args: [{
|
|
926
|
-
selector: '[rxapSidenavHeader]',
|
|
927
|
-
}]
|
|
928
|
-
}], function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
929
|
-
type: Inject,
|
|
930
|
-
args: [TemplateRef]
|
|
931
|
-
}] }]; }, null); })();
|
|
425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponentService, decorators: [{
|
|
426
|
+
type: Injectable,
|
|
427
|
+
args: [{ providedIn: 'root' }]
|
|
428
|
+
}], ctorParameters: function () { return [{ type: i1.FooterService }, { type: i1.HeaderService }, { type: undefined, decorators: [{
|
|
429
|
+
type: Optional
|
|
430
|
+
}, {
|
|
431
|
+
type: Inject,
|
|
432
|
+
args: [RXAP_LOGO_CONFIG]
|
|
433
|
+
}] }, { type: i1$2.ConfigService, decorators: [{
|
|
434
|
+
type: Inject,
|
|
435
|
+
args: [ConfigService]
|
|
436
|
+
}] }]; } });
|
|
932
437
|
|
|
933
438
|
class SidenavComponentService {
|
|
934
439
|
constructor(config) {
|
|
@@ -939,22 +444,173 @@ class SidenavComponentService {
|
|
|
939
444
|
toggleNavigationCollapse() {
|
|
940
445
|
this.collapsed$.next(!this.collapsed$.value);
|
|
941
446
|
}
|
|
942
|
-
static { this.ɵfac =
|
|
943
|
-
static { this.ɵprov =
|
|
447
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavComponentService, deps: [{ token: i1$2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
448
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavComponentService, providedIn: 'root' }); }
|
|
449
|
+
}
|
|
450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavComponentService, decorators: [{
|
|
451
|
+
type: Injectable,
|
|
452
|
+
args: [{ providedIn: 'root' }]
|
|
453
|
+
}], ctorParameters: function () { return [{ type: i1$2.ConfigService }]; } });
|
|
454
|
+
|
|
455
|
+
class NavigationItemComponent {
|
|
456
|
+
get isActive() {
|
|
457
|
+
return this._isActive;
|
|
458
|
+
}
|
|
459
|
+
set isActive(value) {
|
|
460
|
+
this._isActive = value;
|
|
461
|
+
this.active.set(value);
|
|
462
|
+
}
|
|
463
|
+
constructor(router, sidenav, elementRef, renderer, overlay, viewContainerRef) {
|
|
464
|
+
this.router = router;
|
|
465
|
+
this.sidenav = sidenav;
|
|
466
|
+
this.elementRef = elementRef;
|
|
467
|
+
this.renderer = renderer;
|
|
468
|
+
this.overlay = overlay;
|
|
469
|
+
this.viewContainerRef = viewContainerRef;
|
|
470
|
+
this.level = 0;
|
|
471
|
+
this._isActive = false;
|
|
472
|
+
this.children = null;
|
|
473
|
+
this.active = signal(false);
|
|
474
|
+
this._subscription = new Subscription();
|
|
475
|
+
}
|
|
476
|
+
ngOnChanges(changes) {
|
|
477
|
+
if (changes['item']) {
|
|
478
|
+
const item = changes['item'].currentValue;
|
|
479
|
+
this.children =
|
|
480
|
+
item.children && item.children.length ? item.children : null;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
ngAfterViewInit() {
|
|
484
|
+
this._subscription.add(this.router.events
|
|
485
|
+
.pipe(filter((event) => event instanceof NavigationEnd), debounceTime(100), startWith(true), tap(() => {
|
|
486
|
+
let isActive = true;
|
|
487
|
+
const urlParts = this.router.url.split('/');
|
|
488
|
+
if (urlParts[0] === '') {
|
|
489
|
+
urlParts[0] = '/';
|
|
490
|
+
}
|
|
491
|
+
for (let i = 0; i < this.item.routerLink.length; i++) {
|
|
492
|
+
if (urlParts[i] !== this.item.routerLink[i]) {
|
|
493
|
+
isActive = false;
|
|
494
|
+
break;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
this.isActive = isActive;
|
|
498
|
+
if (isActive) {
|
|
499
|
+
this.renderer.addClass(this.elementRef.nativeElement, 'active');
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
this.renderer.removeClass(this.elementRef.nativeElement, 'active');
|
|
503
|
+
}
|
|
504
|
+
}))
|
|
505
|
+
.subscribe());
|
|
506
|
+
}
|
|
507
|
+
ngOnDestroy() {
|
|
508
|
+
this._subscription?.unsubscribe();
|
|
509
|
+
}
|
|
510
|
+
// region type save item property
|
|
511
|
+
// required to check the type of the item property in the ngFor loop
|
|
512
|
+
isNavigationDividerItem(item) {
|
|
513
|
+
return item['divider'];
|
|
514
|
+
}
|
|
515
|
+
isNavigationItem(item) {
|
|
516
|
+
return !this.isNavigationDividerItem(item);
|
|
517
|
+
}
|
|
518
|
+
asNavigationItem(item) {
|
|
519
|
+
if (!this.isNavigationItem(item)) {
|
|
520
|
+
throw new Error('The item is not a NavigationItem');
|
|
521
|
+
}
|
|
522
|
+
return item;
|
|
523
|
+
}
|
|
524
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationItemComponent, deps: [{ token: Router }, { token: SidenavComponentService }, { token: ElementRef }, { token: Renderer2 }, { token: Overlay }, { token: ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
525
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: NavigationItemComponent, isStandalone: true, selector: "li[rxap-navigation-item]", inputs: { level: "level", item: "item" }, host: { properties: { "class.active": "this.isActive" } }, viewQueries: [{ propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{\n 'border-l-4 text-accent-400 border-accent-600': active(),\n }\">\n <a [routerLink]=\"item.routerLink\"\n class=\"h-12 pl-4 pr-5 flex flex-row justify-between items-center gap-x-4\"\n matRipple\n routerLinkActive\n\n >\n <span\n [ngClass]=\"{\n 'pl-0': level === 0,\n 'pl-4': level === 1,\n 'pl-8': level === 2,\n 'pl-12': level === 3\n }\"\n class=\"grow whitespace-nowrap\"\n >\n {{ item.label }}\n </span>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\"></mat-icon>\n </a>\n\n <ng-container *ngIf=\"item.children?.length && active()\">\n\n <mat-divider></mat-divider>\n\n <ul [@sub-nav]\n [items]=\"children ?? []\"\n [level]=\"level + 1\"\n rxap-navigation\n >\n </ul>\n\n <mat-divider></mat-divider>\n\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return RouterLinkActive; }), selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i0.forwardRef(function () { return RouterLink; }), selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatRippleModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i4.MatRipple; }), selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatIconModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i2$3.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i0.forwardRef(function () { return IconDirective; }), selector: "mat-icon[rxapIcon]", inputs: ["rxapIcon"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatDividerModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i3$4.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i0.forwardRef(function () { return NavigationComponent; }), selector: "ul[rxap-navigation]", inputs: ["items", "level", "root"] }, { kind: "directive", type: i0.forwardRef(function () { return NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
|
|
526
|
+
trigger('sub-nav', [
|
|
527
|
+
transition(':enter', [
|
|
528
|
+
style({
|
|
529
|
+
display: 'block',
|
|
530
|
+
height: '0',
|
|
531
|
+
overflow: 'hidden',
|
|
532
|
+
}),
|
|
533
|
+
animate(150, style({ height: '*' })),
|
|
534
|
+
]),
|
|
535
|
+
transition(':leave', [
|
|
536
|
+
style({ overflow: 'hidden' }),
|
|
537
|
+
animate(300, style({ height: '0' })),
|
|
538
|
+
style({ display: 'none' }),
|
|
539
|
+
]),
|
|
540
|
+
]),
|
|
541
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
944
542
|
}
|
|
945
|
-
(
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
543
|
+
__decorate([
|
|
544
|
+
Required,
|
|
545
|
+
__metadata("design:type", Object)
|
|
546
|
+
], NavigationItemComponent.prototype, "item", void 0);
|
|
547
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationItemComponent, decorators: [{
|
|
548
|
+
type: Component,
|
|
549
|
+
args: [{ selector: 'li[rxap-navigation-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [
|
|
550
|
+
trigger('sub-nav', [
|
|
551
|
+
transition(':enter', [
|
|
552
|
+
style({
|
|
553
|
+
display: 'block',
|
|
554
|
+
height: '0',
|
|
555
|
+
overflow: 'hidden',
|
|
556
|
+
}),
|
|
557
|
+
animate(150, style({ height: '*' })),
|
|
558
|
+
]),
|
|
559
|
+
transition(':leave', [
|
|
560
|
+
style({ overflow: 'hidden' }),
|
|
561
|
+
animate(300, style({ height: '0' })),
|
|
562
|
+
style({ display: 'none' }),
|
|
563
|
+
]),
|
|
564
|
+
]),
|
|
565
|
+
], standalone: true, imports: [
|
|
566
|
+
RouterLinkActive,
|
|
567
|
+
RouterLink,
|
|
568
|
+
NgIf,
|
|
569
|
+
MatRippleModule,
|
|
570
|
+
MatIconModule,
|
|
571
|
+
IconDirective,
|
|
572
|
+
MatDividerModule,
|
|
573
|
+
forwardRef(() => NavigationComponent),
|
|
574
|
+
NgClass,
|
|
575
|
+
], template: "<div [ngClass]=\"{\n 'border-l-4 text-accent-400 border-accent-600': active(),\n }\">\n <a [routerLink]=\"item.routerLink\"\n class=\"h-12 pl-4 pr-5 flex flex-row justify-between items-center gap-x-4\"\n matRipple\n routerLinkActive\n\n >\n <span\n [ngClass]=\"{\n 'pl-0': level === 0,\n 'pl-4': level === 1,\n 'pl-8': level === 2,\n 'pl-12': level === 3\n }\"\n class=\"grow whitespace-nowrap\"\n >\n {{ item.label }}\n </span>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\"></mat-icon>\n </a>\n\n <ng-container *ngIf=\"item.children?.length && active()\">\n\n <mat-divider></mat-divider>\n\n <ul [@sub-nav]\n [items]=\"children ?? []\"\n [level]=\"level + 1\"\n rxap-navigation\n >\n </ul>\n\n <mat-divider></mat-divider>\n\n </ng-container>\n</div>\n" }]
|
|
576
|
+
}], ctorParameters: function () { return [{ type: i2$2.Router, decorators: [{
|
|
577
|
+
type: Inject,
|
|
578
|
+
args: [Router]
|
|
579
|
+
}] }, { type: SidenavComponentService, decorators: [{
|
|
580
|
+
type: Inject,
|
|
581
|
+
args: [SidenavComponentService]
|
|
582
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
|
583
|
+
type: Inject,
|
|
584
|
+
args: [ElementRef]
|
|
585
|
+
}] }, { type: i0.Renderer2, decorators: [{
|
|
586
|
+
type: Inject,
|
|
587
|
+
args: [Renderer2]
|
|
588
|
+
}] }, { type: i6.Overlay, decorators: [{
|
|
589
|
+
type: Inject,
|
|
590
|
+
args: [Overlay]
|
|
591
|
+
}] }, { type: i0.ViewContainerRef, decorators: [{
|
|
592
|
+
type: Inject,
|
|
593
|
+
args: [ViewContainerRef]
|
|
594
|
+
}] }]; }, propDecorators: { level: [{
|
|
595
|
+
type: Input
|
|
596
|
+
}], routerLinkActive: [{
|
|
597
|
+
type: ViewChild,
|
|
598
|
+
args: [RouterLinkActive, { static: true }]
|
|
599
|
+
}], item: [{
|
|
600
|
+
type: Input
|
|
601
|
+
}], isActive: [{
|
|
602
|
+
type: HostBinding,
|
|
603
|
+
args: ['class.active']
|
|
604
|
+
}] } });
|
|
949
605
|
|
|
950
606
|
function IsNavigationDividerItem(item) {
|
|
951
|
-
return item && item
|
|
607
|
+
return !!item && !!item['divider'];
|
|
952
608
|
}
|
|
953
609
|
function IsNavigationInsertItem(item) {
|
|
954
|
-
return item && item
|
|
610
|
+
return !!item && !!item['insert'];
|
|
955
611
|
}
|
|
956
612
|
function IsNavigationItem(item) {
|
|
957
|
-
return (item && item
|
|
613
|
+
return (!!item && !!item['routerLink'] && !!item['label']);
|
|
958
614
|
}
|
|
959
615
|
|
|
960
616
|
class NavigationService {
|
|
@@ -1022,8 +678,10 @@ class NavigationService {
|
|
|
1022
678
|
else {
|
|
1023
679
|
return from(isVisible);
|
|
1024
680
|
}
|
|
1025
|
-
})
|
|
1026
|
-
|
|
681
|
+
})
|
|
682
|
+
.map(isVisible$ => isVisible$.pipe(catchError(e => {
|
|
683
|
+
console.error('isVisible method failed: ' +
|
|
684
|
+
e.message);
|
|
1027
685
|
return of(false);
|
|
1028
686
|
})));
|
|
1029
687
|
// TODO : dont wait for all status services to complete, but cancel waiting if one returns false
|
|
@@ -1075,352 +733,35 @@ class NavigationService {
|
|
|
1075
733
|
}
|
|
1076
734
|
return navigation;
|
|
1077
735
|
}
|
|
1078
|
-
static { this.ɵfac =
|
|
1079
|
-
static { this.ɵprov =
|
|
1080
|
-
}
|
|
1081
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationService, [{
|
|
1082
|
-
type: Injectable,
|
|
1083
|
-
args: [{ providedIn: 'root' }]
|
|
1084
|
-
}], function () { return [{ type: undefined, decorators: [{
|
|
1085
|
-
type: Inject,
|
|
1086
|
-
args: [RXAP_NAVIGATION_CONFIG]
|
|
1087
|
-
}] }, { type: undefined, decorators: [{
|
|
1088
|
-
type: Inject,
|
|
1089
|
-
args: [INJECTOR]
|
|
1090
|
-
}] }, { type: undefined, decorators: [{
|
|
1091
|
-
type: Optional
|
|
1092
|
-
}, {
|
|
1093
|
-
type: Inject,
|
|
1094
|
-
args: [RXAP_NAVIGATION_CONFIG_INSERTS]
|
|
1095
|
-
}] }]; }, null); })();
|
|
1096
|
-
|
|
1097
|
-
const _c0$3 = ["navigationOverlay"];
|
|
1098
|
-
const _c1$2 = ["rxap-navigation-item", ""];
|
|
1099
|
-
function NavigationItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
|
|
1100
|
-
i0.ɵɵelement(0, "mat-icon", 5);
|
|
1101
|
-
} if (rf & 2) {
|
|
1102
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
1103
|
-
i0.ɵɵproperty("rxapIcon", ctx_r0.item.icon);
|
|
1104
|
-
} }
|
|
1105
|
-
function NavigationItemComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
1106
|
-
i0.ɵɵelementStart(0, "span", 6);
|
|
1107
|
-
i0.ɵɵtext(1);
|
|
1108
|
-
i0.ɵɵelementEnd();
|
|
1109
|
-
} if (rf & 2) {
|
|
1110
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
1111
|
-
i0.ɵɵadvance(1);
|
|
1112
|
-
i0.ɵɵtextInterpolate(ctx_r1.item.label);
|
|
1113
|
-
} }
|
|
1114
|
-
function NavigationItemComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
|
|
1115
|
-
i0.ɵɵelement(0, "ul", 7);
|
|
1116
|
-
} if (rf & 2) {
|
|
1117
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
1118
|
-
i0.ɵɵproperty("@sub-nav", undefined)("items", ctx_r2.children)("level", ctx_r2.level + 1);
|
|
1119
|
-
} }
|
|
1120
|
-
function NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
|
|
1121
|
-
i0.ɵɵelement(0, "mat-icon", 5);
|
|
1122
|
-
} if (rf & 2) {
|
|
1123
|
-
const child_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
1124
|
-
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
1125
|
-
i0.ɵɵproperty("rxapIcon", ctx_r8.asNavigationItem(child_r6).icon);
|
|
1126
|
-
} }
|
|
1127
|
-
function NavigationItemComponent_ng_template_7_li_2_a_1_Template(rf, ctx) { if (rf & 1) {
|
|
1128
|
-
i0.ɵɵelementStart(0, "a", 11);
|
|
1129
|
-
i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_mat_icon_1_Template, 1, 1, "mat-icon", 1);
|
|
1130
|
-
i0.ɵɵelementStart(2, "span", 6);
|
|
1131
|
-
i0.ɵɵtext(3);
|
|
1132
|
-
i0.ɵɵelementEnd()();
|
|
1133
|
-
} if (rf & 2) {
|
|
1134
|
-
const child_r6 = i0.ɵɵnextContext().$implicit;
|
|
1135
|
-
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
1136
|
-
i0.ɵɵproperty("routerLink", ctx_r7.asNavigationItem(child_r6).routerLink);
|
|
1137
|
-
i0.ɵɵadvance(1);
|
|
1138
|
-
i0.ɵɵproperty("ngIf", ctx_r7.asNavigationItem(child_r6).icon);
|
|
1139
|
-
i0.ɵɵadvance(2);
|
|
1140
|
-
i0.ɵɵtextInterpolate(ctx_r7.asNavigationItem(child_r6).label);
|
|
1141
|
-
} }
|
|
1142
|
-
function NavigationItemComponent_ng_template_7_li_2_Template(rf, ctx) { if (rf & 1) {
|
|
1143
|
-
i0.ɵɵelementStart(0, "li");
|
|
1144
|
-
i0.ɵɵtemplate(1, NavigationItemComponent_ng_template_7_li_2_a_1_Template, 4, 3, "a", 10);
|
|
1145
|
-
i0.ɵɵelementEnd();
|
|
1146
|
-
} if (rf & 2) {
|
|
1147
|
-
const child_r6 = ctx.$implicit;
|
|
1148
|
-
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
1149
|
-
i0.ɵɵadvance(1);
|
|
1150
|
-
i0.ɵɵproperty("ngIf", ctx_r5.isNavigationItem(child_r6));
|
|
1151
|
-
} }
|
|
1152
|
-
function NavigationItemComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
1153
|
-
const _r12 = i0.ɵɵgetCurrentView();
|
|
1154
|
-
i0.ɵɵelementStart(0, "div", 8);
|
|
1155
|
-
i0.ɵɵlistener("mouseenter", function NavigationItemComponent_ng_template_7_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.lockeOverlay = true); })("mouseleave", function NavigationItemComponent_ng_template_7_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); ctx_r13.lockeOverlay = false; return i0.ɵɵresetView(ctx_r13.onMouseleave()); });
|
|
1156
|
-
i0.ɵɵelementStart(1, "ul");
|
|
1157
|
-
i0.ɵɵtemplate(2, NavigationItemComponent_ng_template_7_li_2_Template, 2, 1, "li", 9);
|
|
1158
|
-
i0.ɵɵelementEnd()();
|
|
1159
|
-
} if (rf & 2) {
|
|
1160
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
1161
|
-
i0.ɵɵadvance(2);
|
|
1162
|
-
i0.ɵɵproperty("ngForOf", ctx_r4.children);
|
|
1163
|
-
} }
|
|
1164
|
-
class NavigationItemComponent {
|
|
1165
|
-
constructor(router, sidenav, elementRef, renderer, overlay, viewContainerRef) {
|
|
1166
|
-
this.router = router;
|
|
1167
|
-
this.sidenav = sidenav;
|
|
1168
|
-
this.elementRef = elementRef;
|
|
1169
|
-
this.renderer = renderer;
|
|
1170
|
-
this.overlay = overlay;
|
|
1171
|
-
this.viewContainerRef = viewContainerRef;
|
|
1172
|
-
this.children = null;
|
|
1173
|
-
this.level = 0;
|
|
1174
|
-
this.isActive = false;
|
|
1175
|
-
this._subscription = new Subscription();
|
|
1176
|
-
/**
|
|
1177
|
-
* indicates the mouse is over the
|
|
1178
|
-
*/
|
|
1179
|
-
this.lockeOverlay = false;
|
|
1180
|
-
}
|
|
1181
|
-
ngOnChanges(changes) {
|
|
1182
|
-
if (changes.item) {
|
|
1183
|
-
const item = changes.item.currentValue;
|
|
1184
|
-
this.children =
|
|
1185
|
-
item.children && item.children.length ? item.children : null;
|
|
1186
|
-
}
|
|
1187
|
-
}
|
|
1188
|
-
ngAfterViewInit() {
|
|
1189
|
-
this._subscription.add(this.router.events
|
|
1190
|
-
.pipe(filter((event) => event instanceof NavigationEnd), startWith(true), delay(100), tap(() => {
|
|
1191
|
-
if (this.routerLinkActive.isActive) {
|
|
1192
|
-
if (!this.sidenav.collapsed$.value) {
|
|
1193
|
-
// only close the overlay if sidenav collapsed
|
|
1194
|
-
this._overlayRef?.detach();
|
|
1195
|
-
}
|
|
1196
|
-
this.renderer.addClass(this.elementRef.nativeElement, 'active');
|
|
1197
|
-
}
|
|
1198
|
-
else {
|
|
1199
|
-
this.renderer.removeClass(this.elementRef.nativeElement, 'active');
|
|
1200
|
-
}
|
|
1201
|
-
}))
|
|
1202
|
-
.subscribe());
|
|
1203
|
-
}
|
|
1204
|
-
ngOnInit() {
|
|
1205
|
-
// detach the navigation overlay if the sidenav collapsed
|
|
1206
|
-
// state is changed
|
|
1207
|
-
this._subscription.add(this.sidenav.collapsed$
|
|
1208
|
-
.pipe(skip(1), distinctUntilChanged(), tap(() => this._overlayRef?.detach()))
|
|
1209
|
-
.subscribe());
|
|
1210
|
-
}
|
|
1211
|
-
ngOnDestroy() {
|
|
1212
|
-
this._subscription?.unsubscribe();
|
|
1213
|
-
this._overlayRef?.dispose();
|
|
1214
|
-
}
|
|
1215
|
-
onMouseenter() {
|
|
1216
|
-
if (this.children) {
|
|
1217
|
-
if (!this.routerLinkActive.isActive || this.sidenav.collapsed$.value) {
|
|
1218
|
-
if (!this._overlayRef) {
|
|
1219
|
-
this._overlayRef = this.overlay.create({
|
|
1220
|
-
positionStrategy: this.overlay
|
|
1221
|
-
.position()
|
|
1222
|
-
.flexibleConnectedTo(this.elementRef)
|
|
1223
|
-
.withPositions([
|
|
1224
|
-
{
|
|
1225
|
-
originY: 'top',
|
|
1226
|
-
originX: 'end',
|
|
1227
|
-
overlayY: 'top',
|
|
1228
|
-
overlayX: 'start',
|
|
1229
|
-
},
|
|
1230
|
-
]),
|
|
1231
|
-
});
|
|
1232
|
-
}
|
|
1233
|
-
if (!this._overlayRef.hasAttached()) {
|
|
1234
|
-
this._embeddedViewRef = this._overlayRef.attach(new TemplatePortal(this._navigationOverlay, this.viewContainerRef));
|
|
1235
|
-
}
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
}
|
|
1239
|
-
onMouseleave() {
|
|
1240
|
-
if (!this.lockeOverlay) {
|
|
1241
|
-
this._overlayRef?.detach();
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1244
|
-
// region type save item property
|
|
1245
|
-
// required to check the type of the item property in the ngFor loop
|
|
1246
|
-
isNavigationDividerItem(item) {
|
|
1247
|
-
return item['divider'];
|
|
1248
|
-
}
|
|
1249
|
-
isNavigationItem(item) {
|
|
1250
|
-
return !this.isNavigationDividerItem(item);
|
|
1251
|
-
}
|
|
1252
|
-
asNavigationItem(item) {
|
|
1253
|
-
if (!this.isNavigationItem(item)) {
|
|
1254
|
-
throw new Error('The item is not a NavigationItem');
|
|
1255
|
-
}
|
|
1256
|
-
return item;
|
|
1257
|
-
}
|
|
1258
|
-
static { this.ɵfac = function NavigationItemComponent_Factory(t) { return new (t || NavigationItemComponent)(i0.ɵɵdirectiveInject(Router), i0.ɵɵdirectiveInject(SidenavComponentService), i0.ɵɵdirectiveInject(ElementRef), i0.ɵɵdirectiveInject(Renderer2), i0.ɵɵdirectiveInject(Overlay), i0.ɵɵdirectiveInject(ViewContainerRef)); }; }
|
|
1259
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavigationItemComponent, selectors: [["li", "rxap-navigation-item", ""]], viewQuery: function NavigationItemComponent_Query(rf, ctx) { if (rf & 1) {
|
|
1260
|
-
i0.ɵɵviewQuery(RouterLinkActive, 7);
|
|
1261
|
-
i0.ɵɵviewQuery(_c0$3, 5);
|
|
1262
|
-
} if (rf & 2) {
|
|
1263
|
-
let _t;
|
|
1264
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.routerLinkActive = _t.first);
|
|
1265
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._navigationOverlay = _t.first);
|
|
1266
|
-
} }, hostAttrs: [1, "rxap-navigation-item"], hostVars: 2, hostBindings: function NavigationItemComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1267
|
-
i0.ɵɵlistener("mouseenter", function NavigationItemComponent_mouseenter_HostBindingHandler() { return ctx.onMouseenter(); })("mouseleave", function NavigationItemComponent_mouseleave_HostBindingHandler() { return ctx.onMouseleave(); });
|
|
1268
|
-
} if (rf & 2) {
|
|
1269
|
-
i0.ɵɵclassProp("active", ctx.isActive);
|
|
1270
|
-
} }, inputs: { item: "item", level: "level" }, features: [i0.ɵɵNgOnChangesFeature], attrs: _c1$2, decls: 9, vars: 15, consts: [["routerLinkActive", "link-active", "matRipple", "", 3, "routerLink", "matTooltipDisabled", "matTooltip"], ["class", "icon", 3, "rxapIcon", 4, "ngIf"], [3, "ngIf"], ["rxap-navigation", "", "class", "sub-items", "fxFlex", "nogrow", 3, "items", "level", 4, "ngIf"], ["navigationOverlay", ""], [1, "icon", 3, "rxapIcon"], [1, "label"], ["rxap-navigation", "", "fxFlex", "nogrow", 1, "sub-items", 3, "items", "level"], [1, "navigation-overlay-container", "mat-elevation-z1", 3, "mouseenter", "mouseleave"], [4, "ngFor", "ngForOf"], ["class", "navigation-link mat-body-2 mat-body-strong", "matRipple", "", 3, "routerLink", 4, "ngIf"], ["matRipple", "", 1, "navigation-link", "mat-body-2", "mat-body-strong", 3, "routerLink"]], template: function NavigationItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1271
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
1272
|
-
i0.ɵɵpipe(1, "async");
|
|
1273
|
-
i0.ɵɵtemplate(2, NavigationItemComponent_mat_icon_2_Template, 1, 1, "mat-icon", 1);
|
|
1274
|
-
i0.ɵɵtemplate(3, NavigationItemComponent_ng_template_3_Template, 2, 1, "ng-template", 2);
|
|
1275
|
-
i0.ɵɵpipe(4, "async");
|
|
1276
|
-
i0.ɵɵelementEnd();
|
|
1277
|
-
i0.ɵɵtemplate(5, NavigationItemComponent_ul_5_Template, 1, 3, "ul", 3);
|
|
1278
|
-
i0.ɵɵpipe(6, "async");
|
|
1279
|
-
i0.ɵɵtemplate(7, NavigationItemComponent_ng_template_7_Template, 3, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
|
|
1280
|
-
} if (rf & 2) {
|
|
1281
|
-
i0.ɵɵclassMapInterpolate1("navigation-link mat-body-2 mat-body-strong navigation-level-", ctx.level, "");
|
|
1282
|
-
i0.ɵɵproperty("routerLink", ctx.item.routerLink)("matTooltipDisabled", !i0.ɵɵpipeBind1(1, 9, ctx.sidenav.collapsed$))("matTooltip", ctx.item.label);
|
|
1283
|
-
i0.ɵɵadvance(2);
|
|
1284
|
-
i0.ɵɵproperty("ngIf", ctx.item.icon);
|
|
1285
|
-
i0.ɵɵadvance(1);
|
|
1286
|
-
i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(4, 11, ctx.sidenav.collapsed$));
|
|
1287
|
-
i0.ɵɵadvance(2);
|
|
1288
|
-
i0.ɵɵproperty("ngIf", ctx.routerLinkActive.isActive && !i0.ɵɵpipeBind1(6, 13, ctx.sidenav.collapsed$) && ctx.children);
|
|
1289
|
-
} }, 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"], encapsulation: 2, data: { animation: [
|
|
1290
|
-
trigger('sub-nav', [
|
|
1291
|
-
transition(':enter', [
|
|
1292
|
-
style({ display: 'block', height: '0', overflow: 'hidden' }),
|
|
1293
|
-
animate(150, style({ height: '*' })),
|
|
1294
|
-
]),
|
|
1295
|
-
transition(':leave', [
|
|
1296
|
-
style({ overflow: 'hidden' }),
|
|
1297
|
-
animate(300, style({ height: '0' })),
|
|
1298
|
-
style({ display: 'none' }),
|
|
1299
|
-
]),
|
|
1300
|
-
]),
|
|
1301
|
-
] }, changeDetection: 0 }); }
|
|
736
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationService, deps: [{ token: RXAP_NAVIGATION_CONFIG }, { token: INJECTOR }, { token: RXAP_NAVIGATION_CONFIG_INSERTS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
737
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationService, providedIn: 'root' }); }
|
|
1302
738
|
}
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
],
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
]
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
}
|
|
1318
|
-
trigger('sub-nav', [
|
|
1319
|
-
transition(':enter', [
|
|
1320
|
-
style({ display: 'block', height: '0', overflow: 'hidden' }),
|
|
1321
|
-
animate(150, style({ height: '*' })),
|
|
1322
|
-
]),
|
|
1323
|
-
transition(':leave', [
|
|
1324
|
-
style({ overflow: 'hidden' }),
|
|
1325
|
-
animate(300, style({ height: '0' })),
|
|
1326
|
-
style({ display: 'none' }),
|
|
1327
|
-
]),
|
|
1328
|
-
]),
|
|
1329
|
-
], template: "<a [routerLink]=\"item.routerLink\"\n routerLinkActive=\"link-active\"\n [matTooltipDisabled]=\"!(sidenav.collapsed$ | async)\"\n [matTooltip]=\"item.label\"\n class=\"navigation-link mat-body-2 mat-body-strong navigation-level-{{level}}\" matRipple>\n <mat-icon *ngIf=\"item.icon\" [rxapIcon]=\"item.icon\" class=\"icon\"></mat-icon>\n <ng-template [ngIf]=\"!(sidenav.collapsed$ | async)\">\n <span class=\"label\">{{ item.label }}</span>\n </ng-template>\n</a>\n\n<ul rxap-navigation\n *ngIf=\"routerLinkActive.isActive && !(sidenav.collapsed$ | async) && children\"\n [@sub-nav]\n [items]=\"children\"\n [level]=\"level + 1\"\n class=\"sub-items\"\n fxFlex=\"nogrow\"\n>\n</ul>\n\n<ng-template #navigationOverlay>\n <div class=\"navigation-overlay-container mat-elevation-z1\"\n (mouseenter)=\"lockeOverlay = true\" (mouseleave)=\"lockeOverlay = false; onMouseleave()\">\n <ul>\n <li *ngFor=\"let child of children\">\n <a *ngIf=\"isNavigationItem(child)\" [routerLink]=\"asNavigationItem(child).routerLink\"\n class=\"navigation-link mat-body-2 mat-body-strong\" matRipple>\n <mat-icon *ngIf=\"asNavigationItem(child).icon\" [rxapIcon]=\"asNavigationItem(child).icon\" class=\"icon\"></mat-icon>\n <span class=\"label\">{{ asNavigationItem(child).label }}</span>\n </a>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [".rxap-navigation-item,.navigation-overlay-container{display:flex;flex-direction:column;min-height:48px}.rxap-navigation-item .navigation-link,.navigation-overlay-container .navigation-link{display:flex;flex-direction:row;align-items:center;text-decoration:none;height:48px}.rxap-navigation-item .navigation-link .icon,.navigation-overlay-container .navigation-link .icon{margin:0 16px}.rxap-navigation-item .navigation-link .label,.navigation-overlay-container .navigation-link .label{padding-right:12px}.rxap-navigation-item .navigation-link.navigation-level-1,.navigation-overlay-container .navigation-link.navigation-level-1{padding-left:52px}.rxap-navigation-item .navigation-link.navigation-level-1 .icon,.navigation-overlay-container .navigation-link.navigation-level-1 .icon{padding-left:0}.rxap-navigation-item .navigation-link.navigation-level-2,.navigation-overlay-container .navigation-link.navigation-level-2{padding-left:88px}.rxap-navigation-item .navigation-link.navigation-level-2 .icon,.navigation-overlay-container .navigation-link.navigation-level-2 .icon{padding-left:0}.navigation-overlay-container{padding:0 16px}.navigation-overlay-container ul{list-style-type:none;margin:0;padding:0}.navigation-overlay-container ul .navigation-link .label{padding-right:0}.navigation-overlay-container ul .navigation-link .icon{margin-left:0}\n"] }]
|
|
1330
|
-
}], function () { return [{ type: i3$1.Router, decorators: [{
|
|
1331
|
-
type: Inject,
|
|
1332
|
-
args: [Router]
|
|
1333
|
-
}] }, { type: SidenavComponentService, decorators: [{
|
|
1334
|
-
type: Inject,
|
|
1335
|
-
args: [SidenavComponentService]
|
|
1336
|
-
}] }, { type: i0.ElementRef, decorators: [{
|
|
1337
|
-
type: Inject,
|
|
1338
|
-
args: [ElementRef]
|
|
1339
|
-
}] }, { type: i0.Renderer2, decorators: [{
|
|
1340
|
-
type: Inject,
|
|
1341
|
-
args: [Renderer2]
|
|
1342
|
-
}] }, { type: i3$2.Overlay, decorators: [{
|
|
1343
|
-
type: Inject,
|
|
1344
|
-
args: [Overlay]
|
|
1345
|
-
}] }, { type: i0.ViewContainerRef, decorators: [{
|
|
1346
|
-
type: Inject,
|
|
1347
|
-
args: [ViewContainerRef]
|
|
1348
|
-
}] }]; }, { routerLinkActive: [{
|
|
1349
|
-
type: ViewChild,
|
|
1350
|
-
args: [RouterLinkActive, { static: true }]
|
|
1351
|
-
}], item: [{
|
|
1352
|
-
type: Input
|
|
1353
|
-
}], level: [{
|
|
1354
|
-
type: Input
|
|
1355
|
-
}], isActive: [{
|
|
1356
|
-
type: HostBinding,
|
|
1357
|
-
args: ['class.active']
|
|
1358
|
-
}], _navigationOverlay: [{
|
|
1359
|
-
type: ViewChild,
|
|
1360
|
-
args: ['navigationOverlay']
|
|
1361
|
-
}], onMouseenter: [{
|
|
1362
|
-
type: HostListener,
|
|
1363
|
-
args: ['mouseenter']
|
|
1364
|
-
}], onMouseleave: [{
|
|
1365
|
-
type: HostListener,
|
|
1366
|
-
args: ['mouseleave']
|
|
1367
|
-
}] }); })();
|
|
739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationService, decorators: [{
|
|
740
|
+
type: Injectable,
|
|
741
|
+
args: [{ providedIn: 'root' }]
|
|
742
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
743
|
+
type: Inject,
|
|
744
|
+
args: [RXAP_NAVIGATION_CONFIG]
|
|
745
|
+
}] }, { type: undefined, decorators: [{
|
|
746
|
+
type: Inject,
|
|
747
|
+
args: [INJECTOR]
|
|
748
|
+
}] }, { type: undefined, decorators: [{
|
|
749
|
+
type: Optional
|
|
750
|
+
}, {
|
|
751
|
+
type: Inject,
|
|
752
|
+
args: [RXAP_NAVIGATION_CONFIG_INSERTS]
|
|
753
|
+
}] }]; } });
|
|
1368
754
|
|
|
1369
|
-
const _c0$2 = ["rxap-navigation", ""];
|
|
1370
|
-
function NavigationComponent_ng_template_0_ng_template_0_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
1371
|
-
i0.ɵɵelementStart(0, "span", 2);
|
|
1372
|
-
i0.ɵɵtext(1);
|
|
1373
|
-
i0.ɵɵelementEnd();
|
|
1374
|
-
} if (rf & 2) {
|
|
1375
|
-
const item_r1 = i0.ɵɵnextContext(3).$implicit;
|
|
1376
|
-
i0.ɵɵadvance(1);
|
|
1377
|
-
i0.ɵɵtextInterpolate(item_r1.title);
|
|
1378
|
-
} }
|
|
1379
|
-
function NavigationComponent_ng_template_0_ng_template_0_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
1380
|
-
i0.ɵɵelementStart(0, "div", 4);
|
|
1381
|
-
i0.ɵɵtemplate(1, NavigationComponent_ng_template_0_ng_template_0_div_1_span_1_Template, 2, 1, "span", 5);
|
|
1382
|
-
i0.ɵɵelementEnd();
|
|
1383
|
-
} if (rf & 2) {
|
|
1384
|
-
const item_r1 = i0.ɵɵnextContext(2).$implicit;
|
|
1385
|
-
i0.ɵɵadvance(1);
|
|
1386
|
-
i0.ɵɵproperty("ngIf", item_r1.title);
|
|
1387
|
-
} }
|
|
1388
|
-
function NavigationComponent_ng_template_0_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
1389
|
-
i0.ɵɵelement(0, "mat-divider", 2);
|
|
1390
|
-
i0.ɵɵtemplate(1, NavigationComponent_ng_template_0_ng_template_0_div_1_Template, 2, 1, "div", 3);
|
|
1391
|
-
i0.ɵɵpipe(2, "async");
|
|
1392
|
-
} if (rf & 2) {
|
|
1393
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1394
|
-
i0.ɵɵadvance(1);
|
|
1395
|
-
i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(2, 1, ctx_r2.sidenav.collapsed$));
|
|
1396
|
-
} }
|
|
1397
|
-
function NavigationComponent_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1398
|
-
i0.ɵɵelement(0, "li", 6);
|
|
1399
|
-
} if (rf & 2) {
|
|
1400
|
-
const item_r1 = i0.ɵɵnextContext().$implicit;
|
|
1401
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
1402
|
-
i0.ɵɵproperty("level", ctx_r3.level)("item", ctx_r3.asNavigationItem(item_r1));
|
|
1403
|
-
} }
|
|
1404
|
-
function NavigationComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
1405
|
-
i0.ɵɵtemplate(0, NavigationComponent_ng_template_0_ng_template_0_Template, 3, 3, "ng-template", 1);
|
|
1406
|
-
i0.ɵɵtemplate(1, NavigationComponent_ng_template_0_ng_template_1_Template, 1, 2, "ng-template", 1);
|
|
1407
|
-
} if (rf & 2) {
|
|
1408
|
-
const item_r1 = ctx.$implicit;
|
|
1409
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
1410
|
-
i0.ɵɵproperty("ngIf", ctx_r0.isNavigationDividerItem(item_r1));
|
|
1411
|
-
i0.ɵɵadvance(1);
|
|
1412
|
-
i0.ɵɵproperty("ngIf", ctx_r0.isNavigationItem(item_r1));
|
|
1413
|
-
} }
|
|
1414
755
|
class NavigationComponent {
|
|
1415
|
-
set root(value) {
|
|
1416
|
-
this._root = coerceBoolean(value);
|
|
1417
|
-
}
|
|
1418
756
|
constructor(navigationService, cdr, sidenav) {
|
|
1419
757
|
this.navigationService = navigationService;
|
|
1420
758
|
this.cdr = cdr;
|
|
1421
759
|
this.sidenav = sidenav;
|
|
1422
|
-
this._root = false;
|
|
1423
760
|
this.level = 0;
|
|
761
|
+
this._root = false;
|
|
762
|
+
}
|
|
763
|
+
set root(value) {
|
|
764
|
+
this._root = coerceBoolean(value);
|
|
1424
765
|
}
|
|
1425
766
|
ngOnInit() {
|
|
1426
767
|
if (this._root) {
|
|
@@ -1447,226 +788,218 @@ class NavigationComponent {
|
|
|
1447
788
|
}
|
|
1448
789
|
return item;
|
|
1449
790
|
}
|
|
1450
|
-
static { this.ɵfac =
|
|
1451
|
-
static { this.ɵcmp =
|
|
1452
|
-
i0.ɵɵclassProp("rxap-root-navigation", ctx._root);
|
|
1453
|
-
} }, inputs: { root: "root", items: "items", level: "level" }, attrs: _c0$2, decls: 1, vars: 1, consts: [["ngFor", "", 3, "ngForOf"], [3, "ngIf"], ["fxFlex", "nogrow"], ["class", "divider-title", "fxFlex", "nogrow", "fxLayout", "row", "fxLayoutAlign", "start end", 4, "ngIf"], ["fxFlex", "nogrow", "fxLayout", "row", "fxLayoutAlign", "start end", 1, "divider-title"], ["fxFlex", "nogrow", 4, "ngIf"], ["rxap-navigation-item", "", 1, "item", 3, "level", "item"]], template: function NavigationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1454
|
-
i0.ɵɵtemplate(0, NavigationComponent_ng_template_0_Template, 2, 2, "ng-template", 0);
|
|
1455
|
-
} if (rf & 2) {
|
|
1456
|
-
i0.ɵɵproperty("ngForOf", ctx.items);
|
|
1457
|
-
} }, 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 }); }
|
|
791
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationComponent, deps: [{ token: NavigationService }, { token: ChangeDetectorRef }, { token: SidenavComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
792
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: NavigationComponent, isStandalone: true, selector: "ul[rxap-navigation]", inputs: { items: "items", level: "level", root: "root" }, host: { properties: { "class.rxap-root-navigation": "this._root" }, classAttribute: "list-none dark:text-neutral-400 text-neutral-700" }, ngImport: i0, template: "<ng-template [ngForOf]=\"items\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider></mat-divider>\n <div *ngIf=\"(sidenav.collapsed$ | async) === false\" class=\"pl-5 h-6\">\n <span *ngIf=\"item.title\">{{item.title}}</span>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li [item]=\"asNavigationItem(item)\" [level]=\"level\" class=\"dark:hover:text-white hover:text-black\"\n rxap-navigation-item></li>\n </ng-template>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return NgFor; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(function () { return MatDividerModule; }) }, { kind: "component", type: i0.forwardRef(function () { return i3$4.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i0.forwardRef(function () { return NavigationItemComponent; }), selector: "li[rxap-navigation-item]", inputs: ["level", "item"] }, { kind: "pipe", type: i0.forwardRef(function () { return AsyncPipe; }), name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1458
793
|
}
|
|
1459
794
|
__decorate([
|
|
1460
795
|
Required,
|
|
1461
796
|
__metadata("design:type", Array)
|
|
1462
797
|
], NavigationComponent.prototype, "items", void 0);
|
|
1463
|
-
(
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationComponent, decorators: [{
|
|
799
|
+
type: Component,
|
|
800
|
+
args: [{ selector: 'ul[rxap-navigation]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, host: {
|
|
801
|
+
class: 'list-none dark:text-neutral-400 text-neutral-700',
|
|
802
|
+
}, imports: [
|
|
803
|
+
NgFor,
|
|
804
|
+
NgIf,
|
|
805
|
+
MatDividerModule,
|
|
806
|
+
forwardRef(() => NavigationItemComponent),
|
|
807
|
+
AsyncPipe,
|
|
808
|
+
], template: "<ng-template [ngForOf]=\"items\" let-item ngFor>\n <ng-template [ngIf]=\"isNavigationDividerItem(item)\">\n <mat-divider></mat-divider>\n <div *ngIf=\"(sidenav.collapsed$ | async) === false\" class=\"pl-5 h-6\">\n <span *ngIf=\"item.title\">{{item.title}}</span>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"isNavigationItem(item)\">\n <li [item]=\"asNavigationItem(item)\" [level]=\"level\" class=\"dark:hover:text-white hover:text-black\"\n rxap-navigation-item></li>\n </ng-template>\n</ng-template>\n" }]
|
|
809
|
+
}], ctorParameters: function () { return [{ type: NavigationService, decorators: [{
|
|
810
|
+
type: Inject,
|
|
811
|
+
args: [NavigationService]
|
|
812
|
+
}] }, { type: i0.ChangeDetectorRef, decorators: [{
|
|
813
|
+
type: Inject,
|
|
814
|
+
args: [ChangeDetectorRef]
|
|
815
|
+
}] }, { type: SidenavComponentService, decorators: [{
|
|
816
|
+
type: Inject,
|
|
817
|
+
args: [SidenavComponentService]
|
|
818
|
+
}] }]; }, propDecorators: { items: [{
|
|
819
|
+
type: Input
|
|
820
|
+
}], level: [{
|
|
821
|
+
type: Input
|
|
822
|
+
}], _root: [{
|
|
823
|
+
type: HostBinding,
|
|
824
|
+
args: ['class.rxap-root-navigation']
|
|
825
|
+
}], root: [{
|
|
826
|
+
type: Input
|
|
827
|
+
}] } });
|
|
1485
828
|
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
i0.ɵɵelement(3, "mat-divider", 13);
|
|
1495
|
-
i0.ɵɵpipe(4, "async");
|
|
1496
|
-
} if (rf & 2) {
|
|
1497
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
1498
|
-
let tmp_1_0;
|
|
1499
|
-
i0.ɵɵproperty("fxHide", i0.ɵɵpipeBind1(1, 3, ctx_r0.sidenav.collapsed$));
|
|
1500
|
-
i0.ɵɵadvance(2);
|
|
1501
|
-
i0.ɵɵproperty("ngTemplateOutlet", (tmp_1_0 = ctx_r0.sidenavHeaderDirective == null ? null : ctx_r0.sidenavHeaderDirective.template) !== null && tmp_1_0 !== undefined ? tmp_1_0 : null);
|
|
1502
|
-
i0.ɵɵadvance(1);
|
|
1503
|
-
i0.ɵɵproperty("fxHide", i0.ɵɵpipeBind1(4, 5, ctx_r0.sidenav.collapsed$));
|
|
1504
|
-
} }
|
|
1505
|
-
function SidenavComponent_ng_template_15_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
1506
|
-
i0.ɵɵelementContainer(0);
|
|
1507
|
-
} }
|
|
1508
|
-
function SidenavComponent_ng_template_15_Template(rf, ctx) { if (rf & 1) {
|
|
1509
|
-
i0.ɵɵelement(0, "mat-divider", 13);
|
|
1510
|
-
i0.ɵɵpipe(1, "async");
|
|
1511
|
-
i0.ɵɵelementStart(2, "div", 14);
|
|
1512
|
-
i0.ɵɵpipe(3, "async");
|
|
1513
|
-
i0.ɵɵtemplate(4, SidenavComponent_ng_template_15_ng_container_4_Template, 1, 0, "ng-container", 12);
|
|
1514
|
-
i0.ɵɵelementEnd();
|
|
1515
|
-
} if (rf & 2) {
|
|
1516
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
1517
|
-
let tmp_2_0;
|
|
1518
|
-
i0.ɵɵproperty("fxHide", i0.ɵɵpipeBind1(1, 3, ctx_r1.sidenav.collapsed$));
|
|
1519
|
-
i0.ɵɵadvance(2);
|
|
1520
|
-
i0.ɵɵproperty("fxHide", i0.ɵɵpipeBind1(3, 5, ctx_r1.sidenav.collapsed$));
|
|
1521
|
-
i0.ɵɵadvance(2);
|
|
1522
|
-
i0.ɵɵproperty("ngTemplateOutlet", (tmp_2_0 = ctx_r1.sidenavFooterDirective == null ? null : ctx_r1.sidenavFooterDirective.template) !== null && tmp_2_0 !== undefined ? tmp_2_0 : null);
|
|
1523
|
-
} }
|
|
1524
|
-
const _c2$1 = function (a0) { return { "collapsed": a0 }; };
|
|
1525
|
-
class SidenavComponent {
|
|
1526
|
-
constructor(sidenav) {
|
|
1527
|
-
this.sidenav = sidenav;
|
|
829
|
+
class LayoutComponent {
|
|
830
|
+
constructor(layoutComponentService, environment) {
|
|
831
|
+
this.layoutComponentService = layoutComponentService;
|
|
832
|
+
this.environment = environment;
|
|
833
|
+
this.sidenavMode = 'over';
|
|
834
|
+
}
|
|
835
|
+
get release() {
|
|
836
|
+
return DetermineReleaseName(this.environment);
|
|
1528
837
|
}
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
} if (rf & 2) {
|
|
1534
|
-
let _t;
|
|
1535
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sidenavFooterDirective = _t.first);
|
|
1536
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sidenavHeaderDirective = _t.first);
|
|
1537
|
-
} }, hostAttrs: [1, "rxap-layout-sidenav"], decls: 16, vars: 15, consts: function () { let i18n_0; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
|
|
1538
|
-
/**
|
|
1539
|
-
* @suppress {msgDescriptions}
|
|
1540
|
-
*/
|
|
1541
|
-
const MSG_EXTERNAL_1144722711335201698$$LIB_SIDENAV_SIDENAV_COMPONENT_TS_1 = goog.getMsg("Collapse sidebar");
|
|
1542
|
-
i18n_0 = MSG_EXTERNAL_1144722711335201698$$LIB_SIDENAV_SIDENAV_COMPONENT_TS_1;
|
|
838
|
+
toggleSidenavMode() {
|
|
839
|
+
if (this.sidenavMode === 'over') {
|
|
840
|
+
this.sidenavMode = 'side';
|
|
841
|
+
this.sidenav.open();
|
|
1543
842
|
}
|
|
1544
843
|
else {
|
|
1545
|
-
|
|
1546
|
-
}
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
i0.ɵɵtemplate(3, SidenavComponent_ng_template_3_Template, 5, 7, "ng-template", 2);
|
|
1551
|
-
i0.ɵɵelementStart(4, "div", 3);
|
|
1552
|
-
i0.ɵɵelement(5, "ul", 4);
|
|
1553
|
-
i0.ɵɵelementEnd();
|
|
1554
|
-
i0.ɵɵelement(6, "mat-divider", 5);
|
|
1555
|
-
i0.ɵɵelementStart(7, "button", 6);
|
|
1556
|
-
i0.ɵɵlistener("click", function SidenavComponent_Template_button_click_7_listener() { return ctx.sidenav.toggleNavigationCollapse(); });
|
|
1557
|
-
i0.ɵɵpipe(8, "async");
|
|
1558
|
-
i0.ɵɵelementStart(9, "span", 7)(10, "mat-icon", 8);
|
|
1559
|
-
i0.ɵɵtext(11, "double_arrow");
|
|
1560
|
-
i0.ɵɵelementEnd();
|
|
1561
|
-
i0.ɵɵelementStart(12, "span", 9);
|
|
1562
|
-
i0.ɵɵi18n(13, 10);
|
|
1563
|
-
i0.ɵɵpipe(14, "async");
|
|
1564
|
-
i0.ɵɵelementEnd()()();
|
|
1565
|
-
i0.ɵɵtemplate(15, SidenavComponent_ng_template_15_Template, 5, 7, "ng-template", 2);
|
|
1566
|
-
i0.ɵɵelementEnd()();
|
|
1567
|
-
} if (rf & 2) {
|
|
1568
|
-
let tmp_4_0;
|
|
1569
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c2$1, i0.ɵɵpipeBind1(1, 5, ctx.sidenav.collapsed$)));
|
|
1570
|
-
i0.ɵɵadvance(3);
|
|
1571
|
-
i0.ɵɵproperty("ngIf", ctx.sidenavHeaderDirective == null ? null : ctx.sidenavHeaderDirective.template);
|
|
1572
|
-
i0.ɵɵadvance(4);
|
|
1573
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c2$1, i0.ɵɵpipeBind1(8, 7, ctx.sidenav.collapsed$)));
|
|
1574
|
-
i0.ɵɵadvance(5);
|
|
1575
|
-
i0.ɵɵproperty("fxHide", i0.ɵɵpipeBind1(14, 9, ctx.sidenav.collapsed$));
|
|
1576
|
-
i0.ɵɵadvance(3);
|
|
1577
|
-
i0.ɵɵproperty("ngIf", (tmp_4_0 = ctx.sidenavFooterDirective == null ? null : ctx.sidenavFooterDirective.template) !== null && tmp_4_0 !== undefined ? tmp_4_0 : null);
|
|
1578
|
-
} }, 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.MatLegacyButton, 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 }); }
|
|
844
|
+
this.sidenavMode = 'over';
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponent, deps: [{ token: LayoutComponentService }, { token: RXAP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
848
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: LayoutComponent, isStandalone: true, selector: "rxap-layout", viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }], ngImport: i0, template: "<div class=\"flex flex-col h-screen justify-between\">\n <rxap-header [sidenav]=\"sidenav\" class=\"z-10 w-full fixed top-0\"></rxap-header>\n <mat-sidenav-container [ngClass]=\"{\n 'mb-16': (layoutComponentService.fixedBottomGap$ | async) === 64,\n 'mb-32': (layoutComponentService.fixedBottomGap$ | async) === 128,\n }\" class=\"grow mt-16\">\n <mat-sidenav\n #matSidenav=\"matSidenav\"\n (mouseenter)=\"sidenavMode === 'over' && matSidenav.open()\"\n (mouseleave)=\"sidenavMode === 'over' && matSidenav.close()\"\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"sidenavMode\"\n [opened]=\"false\"\n class=\"sidenav\"\n >\n <div class=\"h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch\">\n\n <div (click)=\"toggleSidenavMode()\"\n class=\"pl-2 pr-2 self-stretch grow-0 flex flex-row justify-between items-center\">\n <span class=\"text-lg\" i18n>Navigation</span>\n <button mat-icon-button>\n <mat-icon *ngIf=\"sidenavMode === 'over'\">radio_button_unchecked</mat-icon>\n <mat-icon *ngIf=\"sidenavMode === 'side'\">radio_button_checked</mat-icon>\n </button>\n </div>\n\n <ul class=\"grow self-stretch\" root rxap-navigation></ul>\n\n <img\n [src]=\"layoutComponentService.logo.src ?? 'https://via.placeholder.com/256x128px'\"\n [routerLink]=\"['/']\"\n [width]=\"layoutComponentService.logo.width ?? 256\"\n alt=\"logo\"\n class=\"grow-0 mx-16\"\n />\n <div class=\"grow-0 px-16\">\n <span>{{release}}</span>\n </div>\n </div>\n </mat-sidenav>\n <mat-sidenav-content\n [ngClass]=\"{ opened: matSidenav.opened, side: sidenavMode === 'side' }\"\n class=\"ml-16 p-4\"\n >\n <router-outlet></router-outlet>\n </mat-sidenav-content>\n </mat-sidenav-container>\n <rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n</div>\n<!--<rxap-window-task-bar-container></rxap-window-task-bar-container>-->\n", styles: [":host .sidenav:not(.mat-drawer-opened){transform:translate(calc(-100% + 64px))!important;visibility:visible!important;box-shadow:inherit!important;transition-property:transform;transition-delay:.25s;display:flex;border-right:solid 1px rgba(0,0,0,.12)}:host .sidenav ::ng-deep .mat-drawer-inner-container::-webkit-scrollbar{display:none}.footer{position:fixed;bottom:0;left:0;right:0;z-index:100}.header{position:fixed;top:0;left:0;right:0;z-index:100}.task-bar{position:fixed;bottom:0;right:0;left:0;z-index:100}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "rxap-header", inputs: ["sidenav", "color"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i2$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i2$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i2$4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i2$5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FooterComponent, selector: "rxap-footer" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: NavigationComponent, selector: "ul[rxap-navigation]", inputs: ["items", "level", "root"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1579
849
|
}
|
|
1580
|
-
(
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
851
|
+
type: Component,
|
|
852
|
+
args: [{ selector: 'rxap-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
853
|
+
HeaderComponent,
|
|
854
|
+
MatSidenavModule,
|
|
855
|
+
AsyncPipe,
|
|
856
|
+
FlexLayoutModule,
|
|
857
|
+
MatIconModule,
|
|
858
|
+
MatButtonModule,
|
|
859
|
+
RouterLink,
|
|
860
|
+
NgIf,
|
|
861
|
+
FooterComponent,
|
|
862
|
+
MatMenuModule,
|
|
863
|
+
NgOptimizedImage,
|
|
864
|
+
NavigationComponent,
|
|
865
|
+
RouterOutlet,
|
|
866
|
+
], template: "<div class=\"flex flex-col h-screen justify-between\">\n <rxap-header [sidenav]=\"sidenav\" class=\"z-10 w-full fixed top-0\"></rxap-header>\n <mat-sidenav-container [ngClass]=\"{\n 'mb-16': (layoutComponentService.fixedBottomGap$ | async) === 64,\n 'mb-32': (layoutComponentService.fixedBottomGap$ | async) === 128,\n }\" class=\"grow mt-16\">\n <mat-sidenav\n #matSidenav=\"matSidenav\"\n (mouseenter)=\"sidenavMode === 'over' && matSidenav.open()\"\n (mouseleave)=\"sidenavMode === 'over' && matSidenav.close()\"\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"sidenavMode\"\n [opened]=\"false\"\n class=\"sidenav\"\n >\n <div class=\"h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch\">\n\n <div (click)=\"toggleSidenavMode()\"\n class=\"pl-2 pr-2 self-stretch grow-0 flex flex-row justify-between items-center\">\n <span class=\"text-lg\" i18n>Navigation</span>\n <button mat-icon-button>\n <mat-icon *ngIf=\"sidenavMode === 'over'\">radio_button_unchecked</mat-icon>\n <mat-icon *ngIf=\"sidenavMode === 'side'\">radio_button_checked</mat-icon>\n </button>\n </div>\n\n <ul class=\"grow self-stretch\" root rxap-navigation></ul>\n\n <img\n [src]=\"layoutComponentService.logo.src ?? 'https://via.placeholder.com/256x128px'\"\n [routerLink]=\"['/']\"\n [width]=\"layoutComponentService.logo.width ?? 256\"\n alt=\"logo\"\n class=\"grow-0 mx-16\"\n />\n <div class=\"grow-0 px-16\">\n <span>{{release}}</span>\n </div>\n </div>\n </mat-sidenav>\n <mat-sidenav-content\n [ngClass]=\"{ opened: matSidenav.opened, side: sidenavMode === 'side' }\"\n class=\"ml-16 p-4\"\n >\n <router-outlet></router-outlet>\n </mat-sidenav-content>\n </mat-sidenav-container>\n <rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n</div>\n<!--<rxap-window-task-bar-container></rxap-window-task-bar-container>-->\n", styles: [":host .sidenav:not(.mat-drawer-opened){transform:translate(calc(-100% + 64px))!important;visibility:visible!important;box-shadow:inherit!important;transition-property:transform;transition-delay:.25s;display:flex;border-right:solid 1px rgba(0,0,0,.12)}:host .sidenav ::ng-deep .mat-drawer-inner-container::-webkit-scrollbar{display:none}.footer{position:fixed;bottom:0;left:0;right:0;z-index:100}.header{position:fixed;top:0;left:0;right:0;z-index:100}.task-bar{position:fixed;bottom:0;right:0;left:0;z-index:100}\n"] }]
|
|
867
|
+
}], ctorParameters: function () { return [{ type: LayoutComponentService }, { type: undefined, decorators: [{
|
|
868
|
+
type: Inject,
|
|
869
|
+
args: [RXAP_ENVIRONMENT]
|
|
870
|
+
}] }]; }, propDecorators: { sidenav: [{
|
|
871
|
+
type: ViewChild,
|
|
872
|
+
args: [MatSidenav, { static: true }]
|
|
873
|
+
}] } });
|
|
1592
874
|
|
|
1593
|
-
class
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
this.
|
|
1608
|
-
}
|
|
1609
|
-
static { this.ɵfac =
|
|
1610
|
-
static { this.ɵ
|
|
875
|
+
class ReplaceRouterPathsService {
|
|
876
|
+
transform(routerLink) {
|
|
877
|
+
return of(routerLink);
|
|
878
|
+
}
|
|
879
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ReplaceRouterPathsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
880
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ReplaceRouterPathsService, providedIn: 'root' }); }
|
|
881
|
+
}
|
|
882
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ReplaceRouterPathsService, decorators: [{
|
|
883
|
+
type: Injectable,
|
|
884
|
+
args: [{ providedIn: 'root' }]
|
|
885
|
+
}] });
|
|
886
|
+
|
|
887
|
+
class SidenavFooterDirective {
|
|
888
|
+
constructor(template) {
|
|
889
|
+
this.template = template;
|
|
890
|
+
}
|
|
891
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavFooterDirective, deps: [{ token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
892
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: SidenavFooterDirective, isStandalone: true, selector: "[rxapSidenavFooter]", ngImport: i0 }); }
|
|
893
|
+
}
|
|
894
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavFooterDirective, decorators: [{
|
|
895
|
+
type: Directive,
|
|
896
|
+
args: [{
|
|
897
|
+
selector: '[rxapSidenavFooter]',
|
|
898
|
+
standalone: true,
|
|
899
|
+
}]
|
|
900
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
901
|
+
type: Inject,
|
|
902
|
+
args: [TemplateRef]
|
|
903
|
+
}] }]; } });
|
|
904
|
+
|
|
905
|
+
class SidenavHeaderDirective {
|
|
906
|
+
constructor(template) {
|
|
907
|
+
this.template = template;
|
|
908
|
+
}
|
|
909
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavHeaderDirective, deps: [{ token: TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
910
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: SidenavHeaderDirective, isStandalone: true, selector: "[rxapSidenavHeader]", ngImport: i0 }); }
|
|
1611
911
|
}
|
|
1612
|
-
(
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
912
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavHeaderDirective, decorators: [{
|
|
913
|
+
type: Directive,
|
|
914
|
+
args: [{
|
|
915
|
+
selector: '[rxapSidenavHeader]',
|
|
916
|
+
standalone: true,
|
|
917
|
+
}]
|
|
918
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
919
|
+
type: Inject,
|
|
920
|
+
args: [TemplateRef]
|
|
921
|
+
}] }]; } });
|
|
1622
922
|
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
923
|
+
class SidenavComponent {
|
|
924
|
+
constructor(sidenav) {
|
|
925
|
+
this.sidenav = sidenav;
|
|
926
|
+
}
|
|
927
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavComponent, deps: [{ token: SidenavComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
928
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SidenavComponent, isStandalone: true, selector: "rxap-sidenav", host: { classAttribute: "rxap-layout-sidenav" }, queries: [{ propertyName: "sidenavFooterDirective", first: true, predicate: SidenavFooterDirective, descendants: true }, { propertyName: "sidenavHeaderDirective", first: true, predicate: SidenavHeaderDirective, descendants: true }], ngImport: i0, template: "<div [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" class=\"container\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div [fxHide]=\"sidenav.collapsed$ | async\" class=\"header\" fxFlex=\"nogrow\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider [fxHide]=\"sidenav.collapsed$ | async\" fxFlex=\"nogrow\"></mat-divider>\n </ng-template>\n <div class=\"nav-container\" fxFlex=\"grow\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button (click)=\"sidenav.toggleNavigationCollapse()\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\"\n class=\"sidebar-toggle\"\n fxFlex=\"nogrow\"\n mat-button>\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon class=\"arrow\" fxFlex=\"nogrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n>Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider [fxHide]=\"sidenav.collapsed$ | async\" fxFlex=\"nogrow\"></mat-divider>\n <div [fxHide]=\"sidenav.collapsed$ | async\" class=\"footer\" fxFlex=\"nogrow\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".container,.container .inner{height:100%}.container .inner .header{padding-bottom:12px}.container .inner .footer{padding-top:12px}.container .inner .nav-container{overflow-y:scroll;padding-top:12px}.container .inner .nav-container::-webkit-scrollbar{width:6px}.container .inner .nav-container::-webkit-scrollbar-track{border-radius:2px}.container .inner .nav-container::-webkit-scrollbar-thumb{border-radius:10px}.container .sidebar-toggle{min-height:48px}.container .sidebar-toggle .sidebar-toggle-inner{padding:0}.container .sidebar-toggle .arrow{transform:rotate(180deg)}.container .sidebar-toggle.collapsed .arrow{transform:initial}.container .sidebar-toggle.collapsed .sidebar-toggle-inner{justify-content:space-around!important}\n"], dependencies: [{ kind: "ngmodule", type: ExtendedModule }, { kind: "directive", type: i2$5.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i2$5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1$4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1$4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1$4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: NavigationComponent, selector: "ul[rxap-navigation]", inputs: ["items", "level", "root"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
929
|
+
}
|
|
930
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
931
|
+
type: Component,
|
|
932
|
+
args: [{ selector: 'rxap-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
933
|
+
class: 'rxap-layout-sidenav',
|
|
934
|
+
}, standalone: true, imports: [
|
|
935
|
+
ExtendedModule,
|
|
936
|
+
NgClass,
|
|
937
|
+
FlexModule,
|
|
938
|
+
NgIf,
|
|
939
|
+
NgTemplateOutlet,
|
|
940
|
+
MatDividerModule,
|
|
941
|
+
NavigationComponent,
|
|
942
|
+
MatButtonModule,
|
|
943
|
+
MatIconModule,
|
|
944
|
+
AsyncPipe,
|
|
945
|
+
], template: "<div [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\" class=\"container\">\n <div class=\"inner\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between stretch\">\n <ng-template [ngIf]=\"sidenavHeaderDirective?.template\">\n <div [fxHide]=\"sidenav.collapsed$ | async\" class=\"header\" fxFlex=\"nogrow\">\n <ng-container *ngTemplateOutlet=\"sidenavHeaderDirective?.template ?? null\"></ng-container>\n </div>\n <mat-divider [fxHide]=\"sidenav.collapsed$ | async\" fxFlex=\"nogrow\"></mat-divider>\n </ng-template>\n <div class=\"nav-container\" fxFlex=\"grow\">\n <ul fxLayout=\"column\" root rxap-navigation></ul>\n </div>\n <mat-divider fxFlex=\"nogrow\"></mat-divider>\n <button (click)=\"sidenav.toggleNavigationCollapse()\" [ngClass]=\"{ 'collapsed': sidenav.collapsed$ | async }\"\n class=\"sidebar-toggle\"\n fxFlex=\"nogrow\"\n mat-button>\n <span class=\"sidebar-toggle-inner\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"16px\">\n <mat-icon class=\"arrow\" fxFlex=\"nogrow\">double_arrow</mat-icon>\n <span [fxHide]=\"sidenav.collapsed$ | async\" class=\"label\" fxFlex=\"grow\" i18n>Collapse sidebar</span>\n </span>\n </button>\n <ng-template [ngIf]=\"sidenavFooterDirective?.template ?? null\">\n <mat-divider [fxHide]=\"sidenav.collapsed$ | async\" fxFlex=\"nogrow\"></mat-divider>\n <div [fxHide]=\"sidenav.collapsed$ | async\" class=\"footer\" fxFlex=\"nogrow\">\n <ng-container *ngTemplateOutlet=\"sidenavFooterDirective?.template ?? null\"></ng-container>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [".container,.container .inner{height:100%}.container .inner .header{padding-bottom:12px}.container .inner .footer{padding-top:12px}.container .inner .nav-container{overflow-y:scroll;padding-top:12px}.container .inner .nav-container::-webkit-scrollbar{width:6px}.container .inner .nav-container::-webkit-scrollbar-track{border-radius:2px}.container .inner .nav-container::-webkit-scrollbar-thumb{border-radius:10px}.container .sidebar-toggle{min-height:48px}.container .sidebar-toggle .sidebar-toggle-inner{padding:0}.container .sidebar-toggle .arrow{transform:rotate(180deg)}.container .sidebar-toggle.collapsed .arrow{transform:initial}.container .sidebar-toggle.collapsed .sidebar-toggle-inner{justify-content:space-around!important}\n"] }]
|
|
946
|
+
}], ctorParameters: function () { return [{ type: SidenavComponentService }]; }, propDecorators: { sidenavFooterDirective: [{
|
|
947
|
+
type: ContentChild,
|
|
948
|
+
args: [SidenavFooterDirective]
|
|
949
|
+
}], sidenavHeaderDirective: [{
|
|
950
|
+
type: ContentChild,
|
|
951
|
+
args: [SidenavHeaderDirective]
|
|
952
|
+
}] } });
|
|
953
|
+
|
|
954
|
+
class VersionComponent {
|
|
955
|
+
constructor(version) {
|
|
956
|
+
this.version = version;
|
|
1629
957
|
}
|
|
1630
958
|
ngOnInit() {
|
|
959
|
+
this.modules = this.version.get();
|
|
960
|
+
this.subscription = this.version.update$.pipe(tap(() => this.modules = this.version.get())).subscribe();
|
|
961
|
+
}
|
|
962
|
+
ngOnDestroy() {
|
|
963
|
+
this.subscription?.unsubscribe();
|
|
1631
964
|
}
|
|
1632
|
-
static { this.ɵfac =
|
|
1633
|
-
static { this.ɵcmp =
|
|
1634
|
-
i0.ɵɵprojectionDef();
|
|
1635
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
1636
|
-
i0.ɵɵpipe(1, "async");
|
|
1637
|
-
i0.ɵɵpipe(2, "async");
|
|
1638
|
-
i0.ɵɵpipe(3, "async");
|
|
1639
|
-
i0.ɵɵpipe(4, "async");
|
|
1640
|
-
i0.ɵɵelementStart(5, "div", 1);
|
|
1641
|
-
i0.ɵɵelement(6, "router-outlet");
|
|
1642
|
-
i0.ɵɵprojection(7);
|
|
1643
|
-
i0.ɵɵelementEnd()();
|
|
1644
|
-
} if (rf & 2) {
|
|
1645
|
-
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$)));
|
|
1646
|
-
} }, 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 }); }
|
|
965
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: VersionComponent, deps: [{ token: VersionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
966
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: VersionComponent, isStandalone: true, selector: "rxap-version", ngImport: i0, template: "<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n", styles: [".version{width:100%;font-size:9px;padding:8px}.version .name{padding-bottom:12px;font-size:10px}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1$4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1$4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i1$4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1647
967
|
}
|
|
1648
968
|
__decorate([
|
|
1649
969
|
Required,
|
|
1650
|
-
__metadata("design:type",
|
|
1651
|
-
],
|
|
1652
|
-
(
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
970
|
+
__metadata("design:type", Object)
|
|
971
|
+
], VersionComponent.prototype, "modules", void 0);
|
|
972
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: VersionComponent, decorators: [{
|
|
973
|
+
type: Component,
|
|
974
|
+
args: [{ selector: 'rxap-version', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FlexModule, NgFor, KeyValuePipe], template: "<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n", styles: [".version{width:100%;font-size:9px;padding:8px}.version .name{padding-bottom:12px;font-size:10px}\n"] }]
|
|
975
|
+
}], ctorParameters: function () { return [{ type: i1.VersionService, decorators: [{
|
|
976
|
+
type: Inject,
|
|
977
|
+
args: [VersionService]
|
|
978
|
+
}] }]; }, propDecorators: { modules: [] } });
|
|
979
|
+
|
|
980
|
+
class ToggleWindowSidenavButtonComponent {
|
|
981
|
+
constructor() {
|
|
982
|
+
this.openWindowSidenav = false;
|
|
983
|
+
this.openWindowSidenavChange = new EventEmitter();
|
|
984
|
+
}
|
|
985
|
+
toggle() {
|
|
986
|
+
this.openWindowSidenav = !this.openWindowSidenav;
|
|
987
|
+
this.openWindowSidenavChange.emit(this.openWindowSidenav);
|
|
988
|
+
}
|
|
989
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ToggleWindowSidenavButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
990
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: ToggleWindowSidenavButtonComponent, isStandalone: true, selector: "rxap-toggle-window-sidenav-button", inputs: { openWindowSidenav: "openWindowSidenav" }, outputs: { openWindowSidenavChange: "openWindowSidenavChange" }, host: { classAttribute: "rxap-toggle-window-sidenav-button" }, ngImport: i0, 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"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
991
|
+
}
|
|
992
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ToggleWindowSidenavButtonComponent, decorators: [{
|
|
993
|
+
type: Component,
|
|
994
|
+
args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
995
|
+
class: 'rxap-toggle-window-sidenav-button',
|
|
996
|
+
}, standalone: true, imports: [MatButtonModule, NgIf, MatIconModule], 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"] }]
|
|
997
|
+
}], propDecorators: { openWindowSidenav: [{
|
|
998
|
+
type: Input
|
|
999
|
+
}], openWindowSidenavChange: [{
|
|
1000
|
+
type: Output
|
|
1001
|
+
}] } });
|
|
1658
1002
|
|
|
1659
|
-
function WindowContainerSidenavComponent_div_1_ng_template_1_Template(rf, ctx) { }
|
|
1660
|
-
function WindowContainerSidenavComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
1661
|
-
i0.ɵɵelementStart(0, "div", 2);
|
|
1662
|
-
i0.ɵɵtemplate(1, WindowContainerSidenavComponent_div_1_ng_template_1_Template, 0, 0, "ng-template", 3);
|
|
1663
|
-
i0.ɵɵelementEnd();
|
|
1664
|
-
} if (rf & 2) {
|
|
1665
|
-
const portalId_r1 = ctx.$implicit;
|
|
1666
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
1667
|
-
i0.ɵɵadvance(1);
|
|
1668
|
-
i0.ɵɵproperty("cdkPortalOutlet", ctx_r0.portals.get(portalId_r1));
|
|
1669
|
-
} }
|
|
1670
1003
|
class WindowContainerSidenavComponent {
|
|
1671
1004
|
constructor(service) {
|
|
1672
1005
|
this.service = service;
|
|
@@ -1701,447 +1034,16 @@ class WindowContainerSidenavComponent {
|
|
|
1701
1034
|
portal.detach();
|
|
1702
1035
|
}
|
|
1703
1036
|
}
|
|
1704
|
-
static { this.ɵfac =
|
|
1705
|
-
static { this.ɵcmp =
|
|
1706
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
1707
|
-
i0.ɵɵtemplate(1, WindowContainerSidenavComponent_div_1_Template, 2, 1, "div", 1);
|
|
1708
|
-
i0.ɵɵelementEnd();
|
|
1709
|
-
} if (rf & 2) {
|
|
1710
|
-
i0.ɵɵadvance(1);
|
|
1711
|
-
i0.ɵɵproperty("ngForOf", ctx.portals.keys())("ngForTrackBy", ctx.trackBy);
|
|
1712
|
-
} }, dependencies: [i1$3.DefaultLayoutDirective, i1$3.DefaultLayoutGapDirective, i1$3.DefaultFlexDirective, i2$1.NgForOf, i4.CdkPortalOutlet], styles: [".container[_ngcontent-%COMP%]{padding:8px}"], changeDetection: 0 }); }
|
|
1713
|
-
}
|
|
1714
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavComponent, [{
|
|
1715
|
-
type: Component,
|
|
1716
|
-
args: [{ selector: 'rxap-window-container-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div fxLayout=\"column\" fxLayoutGap=\"16px\" class=\"container\">\n\n <div fxFlex=\"nogrow\" *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n", styles: [".container{padding:8px}\n"] }]
|
|
1717
|
-
}], function () { return [{ type: i1.WindowContainerSidenavService, decorators: [{
|
|
1718
|
-
type: Inject,
|
|
1719
|
-
args: [WindowContainerSidenavService]
|
|
1720
|
-
}] }]; }, null); })();
|
|
1721
|
-
|
|
1722
|
-
function ToggleWindowSidenavButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1723
|
-
i0.ɵɵelementStart(0, "mat-icon");
|
|
1724
|
-
i0.ɵɵtext(1, "keyboard_arrow_left");
|
|
1725
|
-
i0.ɵɵelementEnd();
|
|
1726
|
-
} }
|
|
1727
|
-
function ToggleWindowSidenavButtonComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
1728
|
-
i0.ɵɵelementStart(0, "mat-icon");
|
|
1729
|
-
i0.ɵɵtext(1, "keyboard_arrow_right");
|
|
1730
|
-
i0.ɵɵelementEnd();
|
|
1731
|
-
} }
|
|
1732
|
-
class ToggleWindowSidenavButtonComponent {
|
|
1733
|
-
constructor() {
|
|
1734
|
-
this.openWindowSidenav = false;
|
|
1735
|
-
this.openWindowSidenavChange = new EventEmitter();
|
|
1736
|
-
}
|
|
1737
|
-
ngOnInit() {
|
|
1738
|
-
}
|
|
1739
|
-
toggle() {
|
|
1740
|
-
this.openWindowSidenav = !this.openWindowSidenav;
|
|
1741
|
-
this.openWindowSidenavChange.emit(this.openWindowSidenav);
|
|
1742
|
-
}
|
|
1743
|
-
static { this.ɵfac = function ToggleWindowSidenavButtonComponent_Factory(t) { return new (t || ToggleWindowSidenavButtonComponent)(); }; }
|
|
1744
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToggleWindowSidenavButtonComponent, selectors: [["rxap-toggle-window-sidenav-button"]], hostAttrs: [1, "rxap-toggle-window-sidenav-button"], inputs: { openWindowSidenav: "openWindowSidenav" }, outputs: { openWindowSidenavChange: "openWindowSidenavChange" }, decls: 5, vars: 2, consts: [[1, "toggle-button"], ["mat-icon-button", "", 3, "click"], [3, "ngIfElse", "ngIf"], ["hide", ""]], template: function ToggleWindowSidenavButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1745
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
|
|
1746
|
-
i0.ɵɵlistener("click", function ToggleWindowSidenavButtonComponent_Template_button_click_1_listener() { return ctx.toggle(); });
|
|
1747
|
-
i0.ɵɵtemplate(2, ToggleWindowSidenavButtonComponent_ng_template_2_Template, 2, 0, "ng-template", 2);
|
|
1748
|
-
i0.ɵɵtemplate(3, ToggleWindowSidenavButtonComponent_ng_template_3_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
|
1749
|
-
i0.ɵɵelementEnd()();
|
|
1750
|
-
} if (rf & 2) {
|
|
1751
|
-
const _r1 = i0.ɵɵreference(4);
|
|
1752
|
-
i0.ɵɵadvance(2);
|
|
1753
|
-
i0.ɵɵproperty("ngIfElse", _r1)("ngIf", !ctx.openWindowSidenav);
|
|
1754
|
-
} }, dependencies: [i1$1.MatLegacyButton, 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 }); }
|
|
1755
|
-
}
|
|
1756
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonComponent, [{
|
|
1757
|
-
type: Component,
|
|
1758
|
-
args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
1759
|
-
class: 'rxap-toggle-window-sidenav-button'
|
|
1760
|
-
}, template: "<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".toggle-button{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:black}\n"] }]
|
|
1761
|
-
}], function () { return []; }, { openWindowSidenav: [{
|
|
1762
|
-
type: Input
|
|
1763
|
-
}], openWindowSidenavChange: [{
|
|
1764
|
-
type: Output
|
|
1765
|
-
}] }); })();
|
|
1766
|
-
|
|
1767
|
-
const _c0 = function () { return ["/"]; };
|
|
1768
|
-
function LayoutComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
1769
|
-
i0.ɵɵelement(0, "img", 9);
|
|
1770
|
-
} if (rf & 2) {
|
|
1771
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
1772
|
-
i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction0(3, _c0))("width", ctx_r0.layoutComponentService.logo.width)("src", ctx_r0.layoutComponentService.logo.src, i0.ɵɵsanitizeUrl);
|
|
1773
|
-
} }
|
|
1774
|
-
const _c1 = ["*"];
|
|
1775
|
-
class LayoutComponent {
|
|
1776
|
-
constructor(layoutComponentService) {
|
|
1777
|
-
this.layoutComponentService = layoutComponentService;
|
|
1778
|
-
this.openWindowSidenav = false;
|
|
1779
|
-
}
|
|
1780
|
-
static { this.ɵfac = function LayoutComponent_Factory(t) { return new (t || LayoutComponent)(i0.ɵɵdirectiveInject(LayoutComponentService)); }; }
|
|
1781
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayoutComponent, selectors: [["rxap-layout"]], viewQuery: function LayoutComponent_Query(rf, ctx) { if (rf & 1) {
|
|
1782
|
-
i0.ɵɵviewQuery(MatSidenav, 7);
|
|
1783
|
-
} if (rf & 2) {
|
|
1784
|
-
let _t;
|
|
1785
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sidenav = _t.first);
|
|
1786
|
-
} }, ngContentSelectors: _c1, decls: 18, vars: 24, consts: [[1, "header", 3, "sidenav"], ["autosize", "", 1, "container"], [1, "sidenav", 3, "fixedBottomGap", "fixedInViewport", "fixedTopGap", "mode", "opened"], ["rxapSidenavHeader", ""], [1, "content"], [3, "sidenav"], [3, "openWindowSidenav", "openWindowSidenavChange"], ["mode", "side", "position", "end", 1, "window-container-sidenav", 3, "fixedBottomGap", "fixedInViewport", "fixedTopGap", "opened"], [1, "footer"], ["alt", "logo", 1, "logo", 3, "routerLink", "width", "src"]], template: function LayoutComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1787
|
-
i0.ɵɵprojectionDef();
|
|
1788
|
-
i0.ɵɵelement(0, "rxap-header", 0);
|
|
1789
|
-
i0.ɵɵelementStart(1, "mat-sidenav-container", 1)(2, "mat-sidenav", 2);
|
|
1790
|
-
i0.ɵɵpipe(3, "async");
|
|
1791
|
-
i0.ɵɵpipe(4, "async");
|
|
1792
|
-
i0.ɵɵpipe(5, "async");
|
|
1793
|
-
i0.ɵɵpipe(6, "async");
|
|
1794
|
-
i0.ɵɵelementStart(7, "rxap-sidenav");
|
|
1795
|
-
i0.ɵɵtemplate(8, LayoutComponent_ng_template_8_Template, 1, 4, "ng-template", 3);
|
|
1796
|
-
i0.ɵɵelementEnd()();
|
|
1797
|
-
i0.ɵɵelementStart(9, "mat-sidenav-content", 4)(10, "rxap-sidenav-content", 5);
|
|
1798
|
-
i0.ɵɵprojection(11);
|
|
1799
|
-
i0.ɵɵelementStart(12, "rxap-toggle-window-sidenav-button", 6);
|
|
1800
|
-
i0.ɵɵlistener("openWindowSidenavChange", function LayoutComponent_Template_rxap_toggle_window_sidenav_button_openWindowSidenavChange_12_listener($event) { return ctx.openWindowSidenav = $event; });
|
|
1801
|
-
i0.ɵɵelementEnd()()();
|
|
1802
|
-
i0.ɵɵelementStart(13, "mat-sidenav", 7);
|
|
1803
|
-
i0.ɵɵpipe(14, "async");
|
|
1804
|
-
i0.ɵɵpipe(15, "async");
|
|
1805
|
-
i0.ɵɵelement(16, "rxap-window-container-sidenav");
|
|
1806
|
-
i0.ɵɵelementEnd()();
|
|
1807
|
-
i0.ɵɵelement(17, "rxap-footer", 8);
|
|
1808
|
-
} if (rf & 2) {
|
|
1809
|
-
let tmp_4_0;
|
|
1810
|
-
let tmp_5_0;
|
|
1811
|
-
i0.ɵɵproperty("sidenav", ctx.sidenav);
|
|
1812
|
-
i0.ɵɵadvance(2);
|
|
1813
|
-
i0.ɵɵproperty("fixedBottomGap", i0.ɵɵpipeBind1(3, 12, ctx.layoutComponentService.fixedBottomGap$))("fixedInViewport", true)("fixedTopGap", i0.ɵɵpipeBind1(4, 14, ctx.layoutComponentService.fixedTopGap$))("mode", (tmp_4_0 = i0.ɵɵpipeBind1(5, 16, ctx.layoutComponentService.mode$)) !== null && tmp_4_0 !== undefined ? tmp_4_0 : "side")("opened", (tmp_5_0 = i0.ɵɵpipeBind1(6, 18, ctx.layoutComponentService.opened$)) !== null && tmp_5_0 !== undefined ? tmp_5_0 : true);
|
|
1814
|
-
i0.ɵɵadvance(8);
|
|
1815
|
-
i0.ɵɵproperty("sidenav", ctx.sidenav);
|
|
1816
|
-
i0.ɵɵadvance(2);
|
|
1817
|
-
i0.ɵɵproperty("openWindowSidenav", ctx.openWindowSidenav);
|
|
1818
|
-
i0.ɵɵadvance(1);
|
|
1819
|
-
i0.ɵɵproperty("fixedBottomGap", i0.ɵɵpipeBind1(14, 20, ctx.layoutComponentService.fixedBottomGap$))("fixedInViewport", true)("fixedTopGap", i0.ɵɵpipeBind1(15, 22, ctx.layoutComponentService.fixedTopGap$))("opened", ctx.openWindowSidenav);
|
|
1820
|
-
} }, 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 }); }
|
|
1821
|
-
}
|
|
1822
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutComponent, [{
|
|
1823
|
-
type: Component,
|
|
1824
|
-
args: [{ selector: 'rxap-layout', changeDetection: ChangeDetectionStrategy.OnPush, template: "<rxap-header [sidenav]=\"sidenav\" class=\"header\"></rxap-header>\n<mat-sidenav-container autosize class=\"container\">\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [mode]=\"(layoutComponentService.mode$ | async) ?? 'side'\"\n [opened]=\"(layoutComponentService.opened$ | async) ?? true\"\n class=\"sidenav\"\n >\n <rxap-sidenav>\n <ng-template rxapSidenavHeader>\n <img\n [routerLink]=\"['/']\"\n alt=\"logo\"\n class=\"logo\"\n [width]=\"layoutComponentService.logo.width\"\n [src]=\"layoutComponentService.logo.src\"\n />\n </ng-template>\n </rxap-sidenav>\n </mat-sidenav>\n <mat-sidenav-content class=\"content\">\n <rxap-sidenav-content [sidenav]=\"sidenav\">\n <ng-content></ng-content>\n <rxap-toggle-window-sidenav-button [(openWindowSidenav)]=\"openWindowSidenav\"></rxap-toggle-window-sidenav-button>\n </rxap-sidenav-content>\n </mat-sidenav-content>\n <mat-sidenav\n [fixedBottomGap]=\"layoutComponentService.fixedBottomGap$ | async\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"layoutComponentService.fixedTopGap$ | async\"\n [opened]=\"openWindowSidenav\"\n mode=\"side\"\n class=\"window-container-sidenav\"\n position=\"end\"\n >\n <rxap-window-container-sidenav></rxap-window-container-sidenav>\n </mat-sidenav>\n</mat-sidenav-container>\n<rxap-footer class=\"footer\"></rxap-footer>\n", styles: [".container,.content{height:100%}.sidenav{display:flex;align-items:center;justify-content:center;width:auto}.sidenav .logo{padding:16px}.footer{position:fixed;bottom:0;left:0;right:0;z-index:100}.header{position:fixed;top:0;left:0;right:0;z-index:100}\n"] }]
|
|
1825
|
-
}], function () { return [{ type: LayoutComponentService }]; }, { sidenav: [{
|
|
1826
|
-
type: ViewChild,
|
|
1827
|
-
args: [MatSidenav, { static: true }]
|
|
1828
|
-
}] }); })();
|
|
1829
|
-
|
|
1830
|
-
class ReplaceRouterPathsService {
|
|
1831
|
-
transform(routerLink) {
|
|
1832
|
-
return of(routerLink);
|
|
1833
|
-
}
|
|
1834
|
-
static { this.ɵfac = function ReplaceRouterPathsService_Factory(t) { return new (t || ReplaceRouterPathsService)(); }; }
|
|
1835
|
-
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ReplaceRouterPathsService, factory: ReplaceRouterPathsService.ɵfac, providedIn: 'root' }); }
|
|
1037
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: WindowContainerSidenavComponent, deps: [{ token: WindowContainerSidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1038
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: WindowContainerSidenavComponent, isStandalone: true, selector: "rxap-window-container-sidenav", ngImport: i0, template: "<div class=\"container\" fxLayout=\"column\" fxLayoutGap=\"16px\">\n\n <div *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\" fxFlex=\"nogrow\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n", styles: [".container{padding:8px}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1$4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1$4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i1$4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1836
1039
|
}
|
|
1837
|
-
(
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
this.rrp = rrp;
|
|
1845
|
-
}
|
|
1846
|
-
transform(routerLink) {
|
|
1847
|
-
return this.rrp.transform(routerLink);
|
|
1848
|
-
}
|
|
1849
|
-
static { this.ɵfac = function ReplaceRouterPathsPipe_Factory(t) { return new (t || ReplaceRouterPathsPipe)(i0.ɵɵdirectiveInject(ReplaceRouterPathsService, 16)); }; }
|
|
1850
|
-
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "replaceRouterPaths", type: ReplaceRouterPathsPipe, pure: true }); }
|
|
1851
|
-
}
|
|
1852
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReplaceRouterPathsPipe, [{
|
|
1853
|
-
type: Pipe,
|
|
1854
|
-
args: [{
|
|
1855
|
-
name: 'replaceRouterPaths'
|
|
1856
|
-
}]
|
|
1857
|
-
}], function () { return [{ type: ReplaceRouterPathsService }]; }, null); })();
|
|
1858
|
-
class ReplaceRouterPathsPipeModule {
|
|
1859
|
-
static { this.ɵfac = function ReplaceRouterPathsPipeModule_Factory(t) { return new (t || ReplaceRouterPathsPipeModule)(); }; }
|
|
1860
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ReplaceRouterPathsPipeModule }); }
|
|
1861
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({}); }
|
|
1862
|
-
}
|
|
1863
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReplaceRouterPathsPipeModule, [{
|
|
1864
|
-
type: NgModule,
|
|
1865
|
-
args: [{
|
|
1866
|
-
declarations: [ReplaceRouterPathsPipe],
|
|
1867
|
-
exports: [ReplaceRouterPathsPipe]
|
|
1868
|
-
}]
|
|
1869
|
-
}], null, null); })();
|
|
1870
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ReplaceRouterPathsPipeModule, { declarations: [ReplaceRouterPathsPipe], exports: [ReplaceRouterPathsPipe] }); })();
|
|
1871
|
-
|
|
1872
|
-
class NavigationComponentModule {
|
|
1873
|
-
static { this.ɵfac = function NavigationComponentModule_Factory(t) { return new (t || NavigationComponentModule)(); }; }
|
|
1874
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NavigationComponentModule }); }
|
|
1875
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatIconModule,
|
|
1876
|
-
MatLegacyButtonModule,
|
|
1877
|
-
FlexLayoutModule,
|
|
1878
|
-
RouterModule,
|
|
1879
|
-
CommonModule,
|
|
1880
|
-
IconDirectiveModule,
|
|
1881
|
-
MatRippleModule,
|
|
1882
|
-
MatDividerModule,
|
|
1883
|
-
StopPropagationDirectiveModule,
|
|
1884
|
-
MatLegacyTooltipModule,
|
|
1885
|
-
ReplaceRouterPathsPipeModule] }); }
|
|
1886
|
-
}
|
|
1887
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavigationComponentModule, [{
|
|
1888
|
-
type: NgModule,
|
|
1889
|
-
args: [{
|
|
1890
|
-
declarations: [NavigationComponent, NavigationItemComponent],
|
|
1891
|
-
imports: [
|
|
1892
|
-
MatIconModule,
|
|
1893
|
-
MatLegacyButtonModule,
|
|
1894
|
-
FlexLayoutModule,
|
|
1895
|
-
RouterModule,
|
|
1896
|
-
CommonModule,
|
|
1897
|
-
IconDirectiveModule,
|
|
1898
|
-
MatRippleModule,
|
|
1899
|
-
MatDividerModule,
|
|
1900
|
-
StopPropagationDirectiveModule,
|
|
1901
|
-
MatLegacyTooltipModule,
|
|
1902
|
-
ReplaceRouterPathsPipeModule
|
|
1903
|
-
],
|
|
1904
|
-
exports: [NavigationComponent]
|
|
1905
|
-
}]
|
|
1906
|
-
}], null, null); })();
|
|
1907
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(NavigationComponentModule, { declarations: [NavigationComponent, NavigationItemComponent], imports: [MatIconModule,
|
|
1908
|
-
MatLegacyButtonModule,
|
|
1909
|
-
FlexLayoutModule,
|
|
1910
|
-
RouterModule,
|
|
1911
|
-
CommonModule,
|
|
1912
|
-
IconDirectiveModule,
|
|
1913
|
-
MatRippleModule,
|
|
1914
|
-
MatDividerModule,
|
|
1915
|
-
StopPropagationDirectiveModule,
|
|
1916
|
-
MatLegacyTooltipModule,
|
|
1917
|
-
ReplaceRouterPathsPipeModule], exports: [NavigationComponent] }); })();
|
|
1918
|
-
i0.ɵɵsetComponentScope(NavigationItemComponent, [i2$2.MatIcon, i1$3.DefaultFlexDirective, i3$1.RouterLink, i3$1.RouterLinkActive, i2$1.NgForOf, i2$1.NgIf, i5$2.IconDirective, i6$1.MatRipple, i7.MatLegacyTooltip, NavigationComponent], [i2$1.AsyncPipe]);
|
|
1919
|
-
|
|
1920
|
-
class SidenavModule {
|
|
1921
|
-
static { this.ɵfac = function SidenavModule_Factory(t) { return new (t || SidenavModule)(); }; }
|
|
1922
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavModule }); }
|
|
1923
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
|
|
1924
|
-
NavigationComponentModule,
|
|
1925
|
-
CommonModule,
|
|
1926
|
-
MatDividerModule,
|
|
1927
|
-
MatIconModule,
|
|
1928
|
-
MatLegacyButtonModule] }); }
|
|
1929
|
-
}
|
|
1930
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavModule, [{
|
|
1931
|
-
type: NgModule,
|
|
1932
|
-
args: [{
|
|
1933
|
-
declarations: [SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective],
|
|
1934
|
-
imports: [
|
|
1935
|
-
FlexLayoutModule,
|
|
1936
|
-
NavigationComponentModule,
|
|
1937
|
-
CommonModule,
|
|
1938
|
-
MatDividerModule,
|
|
1939
|
-
MatIconModule,
|
|
1940
|
-
MatLegacyButtonModule
|
|
1941
|
-
],
|
|
1942
|
-
exports: [SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective],
|
|
1943
|
-
}]
|
|
1944
|
-
}], null, null); })();
|
|
1945
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SidenavModule, { declarations: [SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective], imports: [FlexLayoutModule,
|
|
1946
|
-
NavigationComponentModule,
|
|
1947
|
-
CommonModule,
|
|
1948
|
-
MatDividerModule,
|
|
1949
|
-
MatIconModule,
|
|
1950
|
-
MatLegacyButtonModule], exports: [SidenavComponent, SidenavHeaderDirective, SidenavFooterDirective] }); })();
|
|
1951
|
-
|
|
1952
|
-
class SidenavContentModule {
|
|
1953
|
-
static { this.ɵfac = function SidenavContentModule_Factory(t) { return new (t || SidenavContentModule)(); }; }
|
|
1954
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SidenavContentModule }); }
|
|
1955
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
1956
|
-
RouterModule] }); }
|
|
1957
|
-
}
|
|
1958
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SidenavContentModule, [{
|
|
1959
|
-
type: NgModule,
|
|
1960
|
-
args: [{
|
|
1961
|
-
declarations: [SidenavContentComponent],
|
|
1962
|
-
imports: [
|
|
1963
|
-
CommonModule,
|
|
1964
|
-
RouterModule
|
|
1965
|
-
],
|
|
1966
|
-
exports: [SidenavContentComponent]
|
|
1967
|
-
}]
|
|
1968
|
-
}], null, null); })();
|
|
1969
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SidenavContentModule, { declarations: [SidenavContentComponent], imports: [CommonModule,
|
|
1970
|
-
RouterModule], exports: [SidenavContentComponent] }); })();
|
|
1971
|
-
|
|
1972
|
-
class WindowContainerSidenavModule {
|
|
1973
|
-
static { this.ɵfac = function WindowContainerSidenavModule_Factory(t) { return new (t || WindowContainerSidenavModule)(); }; }
|
|
1974
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: WindowContainerSidenavModule }); }
|
|
1975
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
|
|
1976
|
-
CommonModule,
|
|
1977
|
-
PortalModule] }); }
|
|
1978
|
-
}
|
|
1979
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WindowContainerSidenavModule, [{
|
|
1980
|
-
type: NgModule,
|
|
1981
|
-
args: [{
|
|
1982
|
-
declarations: [WindowContainerSidenavComponent],
|
|
1983
|
-
imports: [
|
|
1984
|
-
FlexLayoutModule,
|
|
1985
|
-
CommonModule,
|
|
1986
|
-
PortalModule,
|
|
1987
|
-
],
|
|
1988
|
-
exports: [WindowContainerSidenavComponent],
|
|
1989
|
-
}]
|
|
1990
|
-
}], null, null); })();
|
|
1991
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(WindowContainerSidenavModule, { declarations: [WindowContainerSidenavComponent], imports: [FlexLayoutModule,
|
|
1992
|
-
CommonModule,
|
|
1993
|
-
PortalModule], exports: [WindowContainerSidenavComponent] }); })();
|
|
1994
|
-
|
|
1995
|
-
class ToggleWindowSidenavButtonModule {
|
|
1996
|
-
static { this.ɵfac = function ToggleWindowSidenavButtonModule_Factory(t) { return new (t || ToggleWindowSidenavButtonModule)(); }; }
|
|
1997
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ToggleWindowSidenavButtonModule }); }
|
|
1998
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatLegacyButtonModule,
|
|
1999
|
-
MatIconModule,
|
|
2000
|
-
CommonModule] }); }
|
|
2001
|
-
}
|
|
2002
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToggleWindowSidenavButtonModule, [{
|
|
2003
|
-
type: NgModule,
|
|
2004
|
-
args: [{
|
|
2005
|
-
declarations: [ToggleWindowSidenavButtonComponent],
|
|
2006
|
-
imports: [
|
|
2007
|
-
MatLegacyButtonModule,
|
|
2008
|
-
MatIconModule,
|
|
2009
|
-
CommonModule,
|
|
2010
|
-
],
|
|
2011
|
-
exports: [ToggleWindowSidenavButtonComponent],
|
|
2012
|
-
}]
|
|
2013
|
-
}], null, null); })();
|
|
2014
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ToggleWindowSidenavButtonModule, { declarations: [ToggleWindowSidenavButtonComponent], imports: [MatLegacyButtonModule,
|
|
2015
|
-
MatIconModule,
|
|
2016
|
-
CommonModule], exports: [ToggleWindowSidenavButtonComponent] }); })();
|
|
2017
|
-
|
|
2018
|
-
class LayoutModule {
|
|
2019
|
-
static withNavigation(navigation) {
|
|
2020
|
-
return {
|
|
2021
|
-
ngModule: LayoutModule,
|
|
2022
|
-
providers: [
|
|
2023
|
-
{
|
|
2024
|
-
provide: RXAP_NAVIGATION_CONFIG,
|
|
2025
|
-
useValue: navigation
|
|
2026
|
-
}
|
|
2027
|
-
]
|
|
2028
|
-
};
|
|
2029
|
-
}
|
|
2030
|
-
static { this.ɵfac = function LayoutModule_Factory(t) { return new (t || LayoutModule)(); }; }
|
|
2031
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LayoutModule }); }
|
|
2032
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MatSidenavModule,
|
|
2033
|
-
FooterModule,
|
|
2034
|
-
HeaderModule,
|
|
2035
|
-
CommonModule,
|
|
2036
|
-
SidenavModule,
|
|
2037
|
-
SidenavContentModule,
|
|
2038
|
-
WindowContainerSidenavModule,
|
|
2039
|
-
ToggleWindowSidenavButtonModule,
|
|
2040
|
-
FlexLayoutModule,
|
|
2041
|
-
RouterModule] }); }
|
|
2042
|
-
}
|
|
2043
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayoutModule, [{
|
|
2044
|
-
type: NgModule,
|
|
2045
|
-
args: [{
|
|
2046
|
-
declarations: [LayoutComponent],
|
|
2047
|
-
imports: [
|
|
2048
|
-
MatSidenavModule,
|
|
2049
|
-
FooterModule,
|
|
2050
|
-
HeaderModule,
|
|
2051
|
-
CommonModule,
|
|
2052
|
-
SidenavModule,
|
|
2053
|
-
SidenavContentModule,
|
|
2054
|
-
WindowContainerSidenavModule,
|
|
2055
|
-
ToggleWindowSidenavButtonModule,
|
|
2056
|
-
FlexLayoutModule,
|
|
2057
|
-
RouterModule
|
|
2058
|
-
],
|
|
2059
|
-
exports: [LayoutComponent]
|
|
2060
|
-
}]
|
|
2061
|
-
}], null, null); })();
|
|
2062
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LayoutModule, { declarations: [LayoutComponent], imports: [MatSidenavModule,
|
|
2063
|
-
FooterModule,
|
|
2064
|
-
HeaderModule,
|
|
2065
|
-
CommonModule,
|
|
2066
|
-
SidenavModule,
|
|
2067
|
-
SidenavContentModule,
|
|
2068
|
-
WindowContainerSidenavModule,
|
|
2069
|
-
ToggleWindowSidenavButtonModule,
|
|
2070
|
-
FlexLayoutModule,
|
|
2071
|
-
RouterModule], exports: [LayoutComponent] }); })();
|
|
2072
|
-
|
|
2073
|
-
function VersionComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
2074
|
-
i0.ɵɵelementStart(0, "div", 2)(1, "span", 3);
|
|
2075
|
-
i0.ɵɵtext(2);
|
|
2076
|
-
i0.ɵɵelementEnd();
|
|
2077
|
-
i0.ɵɵelementStart(3, "span", 4);
|
|
2078
|
-
i0.ɵɵtext(4);
|
|
2079
|
-
i0.ɵɵelementEnd();
|
|
2080
|
-
i0.ɵɵelementStart(5, "span", 5);
|
|
2081
|
-
i0.ɵɵtext(6);
|
|
2082
|
-
i0.ɵɵelementEnd()();
|
|
2083
|
-
} if (rf & 2) {
|
|
2084
|
-
const module_r1 = ctx.$implicit;
|
|
2085
|
-
i0.ɵɵadvance(2);
|
|
2086
|
-
i0.ɵɵtextInterpolate(module_r1.value.name);
|
|
2087
|
-
i0.ɵɵadvance(2);
|
|
2088
|
-
i0.ɵɵtextInterpolate(module_r1.value.semantic);
|
|
2089
|
-
i0.ɵɵadvance(2);
|
|
2090
|
-
i0.ɵɵtextInterpolate(module_r1.value.hash);
|
|
2091
|
-
} }
|
|
2092
|
-
class VersionComponent {
|
|
2093
|
-
constructor(version) {
|
|
2094
|
-
this.version = version;
|
|
2095
|
-
}
|
|
2096
|
-
ngOnInit() {
|
|
2097
|
-
this.modules = this.version.get();
|
|
2098
|
-
this.subscription = this.version.update$.pipe(tap(() => this.modules = this.version.get())).subscribe();
|
|
2099
|
-
}
|
|
2100
|
-
ngOnDestroy() {
|
|
2101
|
-
this.subscription?.unsubscribe();
|
|
2102
|
-
}
|
|
2103
|
-
static { this.ɵfac = function VersionComponent_Factory(t) { return new (t || VersionComponent)(i0.ɵɵdirectiveInject(VersionService)); }; }
|
|
2104
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VersionComponent, selectors: [["rxap-version"]], decls: 3, vars: 3, consts: [["fxFlex", "nogrow", "fxLayout", "column", "fxLayoutAlign", "start start", "fxLayoutGap", "8px", 1, "version"], ["fxFlex", "nogrow", "fxLayout", "column", 4, "ngFor", "ngForOf"], ["fxFlex", "nogrow", "fxLayout", "column"], ["fxFlex", "nogrow", 1, "name"], ["fxFlex", "nogrow", 1, "semantic"], ["fxFlex", "nogrow", 1, "hash"]], template: function VersionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2105
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
2106
|
-
i0.ɵɵtemplate(1, VersionComponent_div_1_Template, 7, 3, "div", 1);
|
|
2107
|
-
i0.ɵɵpipe(2, "keyvalue");
|
|
2108
|
-
i0.ɵɵelementEnd();
|
|
2109
|
-
} if (rf & 2) {
|
|
2110
|
-
i0.ɵɵadvance(1);
|
|
2111
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx.modules));
|
|
2112
|
-
} }, 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 }); }
|
|
2113
|
-
}
|
|
2114
|
-
__decorate([
|
|
2115
|
-
Required,
|
|
2116
|
-
__metadata("design:type", Object)
|
|
2117
|
-
], VersionComponent.prototype, "modules", void 0);
|
|
2118
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VersionComponent, [{
|
|
2119
|
-
type: Component,
|
|
2120
|
-
args: [{ selector: 'rxap-version', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"version\" fxFlex=\"nogrow\" fxLayout=\"column\" fxLayoutAlign=\"start start\" fxLayoutGap=\"8px\">\n <div *ngFor=\"let module of modules | keyvalue\" fxFlex=\"nogrow\" fxLayout=\"column\">\n <span class=\"name\" fxFlex=\"nogrow\">{{module.value.name}}</span>\n <span class=\"semantic\" fxFlex=\"nogrow\">{{module.value.semantic}}</span>\n <span class=\"hash\" fxFlex=\"nogrow\">{{module.value.hash}}</span>\n </div>\n</div>\n", styles: [".version{width:100%;font-size:9px;padding:8px}.version .name{padding-bottom:12px;font-size:10px}\n"] }]
|
|
2121
|
-
}], function () { return [{ type: i1.VersionService, decorators: [{
|
|
2122
|
-
type: Inject,
|
|
2123
|
-
args: [VersionService]
|
|
2124
|
-
}] }]; }, { modules: [] }); })();
|
|
2125
|
-
|
|
2126
|
-
class VersionComponentModule {
|
|
2127
|
-
static { this.ɵfac = function VersionComponentModule_Factory(t) { return new (t || VersionComponentModule)(); }; }
|
|
2128
|
-
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: VersionComponentModule }); }
|
|
2129
|
-
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FlexLayoutModule,
|
|
2130
|
-
CommonModule] }); }
|
|
2131
|
-
}
|
|
2132
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VersionComponentModule, [{
|
|
2133
|
-
type: NgModule,
|
|
2134
|
-
args: [{
|
|
2135
|
-
declarations: [VersionComponent],
|
|
2136
|
-
imports: [
|
|
2137
|
-
FlexLayoutModule,
|
|
2138
|
-
CommonModule
|
|
2139
|
-
],
|
|
2140
|
-
exports: [VersionComponent]
|
|
2141
|
-
}]
|
|
2142
|
-
}], null, null); })();
|
|
2143
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(VersionComponentModule, { declarations: [VersionComponent], imports: [FlexLayoutModule,
|
|
2144
|
-
CommonModule], exports: [VersionComponent] }); })();
|
|
1040
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: WindowContainerSidenavComponent, decorators: [{
|
|
1041
|
+
type: Component,
|
|
1042
|
+
args: [{ selector: 'rxap-window-container-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FlexModule, NgFor, PortalModule], template: "<div class=\"container\" fxLayout=\"column\" fxLayoutGap=\"16px\">\n\n <div *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\" fxFlex=\"nogrow\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n", styles: [".container{padding:8px}\n"] }]
|
|
1043
|
+
}], ctorParameters: function () { return [{ type: i1.WindowContainerSidenavService, decorators: [{
|
|
1044
|
+
type: Inject,
|
|
1045
|
+
args: [WindowContainerSidenavService]
|
|
1046
|
+
}] }]; } });
|
|
2145
1047
|
|
|
2146
1048
|
class FooterDirective {
|
|
2147
1049
|
constructor(footerService, template, viewContainerRef) {
|
|
@@ -2158,41 +1060,55 @@ class FooterDirective {
|
|
|
2158
1060
|
this.footerService.removePortal(this._portal);
|
|
2159
1061
|
}
|
|
2160
1062
|
}
|
|
2161
|
-
static { this.ɵfac =
|
|
2162
|
-
static { this.ɵdir =
|
|
1063
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterDirective, deps: [{ token: FooterService }, { token: TemplateRef }, { token: ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1064
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: FooterDirective, isStandalone: true, selector: "[rxapFooter]", ngImport: i0 }); }
|
|
2163
1065
|
}
|
|
2164
|
-
(
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
type:
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
type:
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
1066
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: FooterDirective, decorators: [{
|
|
1067
|
+
type: Directive,
|
|
1068
|
+
args: [{
|
|
1069
|
+
selector: '[rxapFooter]',
|
|
1070
|
+
standalone: true,
|
|
1071
|
+
}]
|
|
1072
|
+
}], ctorParameters: function () { return [{ type: i1.FooterService, decorators: [{
|
|
1073
|
+
type: Inject,
|
|
1074
|
+
args: [FooterService]
|
|
1075
|
+
}] }, { type: i0.TemplateRef, decorators: [{
|
|
1076
|
+
type: Inject,
|
|
1077
|
+
args: [TemplateRef]
|
|
1078
|
+
}] }, { type: i0.ViewContainerRef, decorators: [{
|
|
1079
|
+
type: Inject,
|
|
1080
|
+
args: [ViewContainerRef]
|
|
1081
|
+
}] }]; } });
|
|
1082
|
+
|
|
1083
|
+
class I18nCheckGuard {
|
|
1084
|
+
constructor(config, localId, i18nService, userProfileService) {
|
|
1085
|
+
this.config = config;
|
|
1086
|
+
this.localId = localId;
|
|
1087
|
+
this.i18nService = i18nService;
|
|
1088
|
+
this.userProfileService = userProfileService;
|
|
1089
|
+
}
|
|
1090
|
+
async canActivate() {
|
|
1091
|
+
const selectedLanguage = (await this.userProfileService.getLanguage()) ?? 'en';
|
|
1092
|
+
if (this.i18nService.currentLanguage !== selectedLanguage) {
|
|
1093
|
+
await this.i18nService.redirect(selectedLanguage);
|
|
1094
|
+
return false;
|
|
1095
|
+
}
|
|
1096
|
+
return true;
|
|
1097
|
+
}
|
|
1098
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nCheckGuard, deps: [{ token: i1$2.ConfigService }, { token: LOCALE_ID }, { token: I18nService }, { token: i1$1.RxapUserProfileService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1099
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nCheckGuard, providedIn: 'root' }); }
|
|
2183
1100
|
}
|
|
2184
|
-
(
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FooterDirectiveModule, { declarations: [FooterDirective], exports: [FooterDirective] }); })();
|
|
1101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nCheckGuard, decorators: [{
|
|
1102
|
+
type: Injectable,
|
|
1103
|
+
args: [{ providedIn: 'root' }]
|
|
1104
|
+
}], ctorParameters: function () { return [{ type: i1$2.ConfigService }, { type: undefined, decorators: [{
|
|
1105
|
+
type: Inject,
|
|
1106
|
+
args: [LOCALE_ID]
|
|
1107
|
+
}] }, { type: I18nService }, { type: i1$1.RxapUserProfileService }]; } });
|
|
2192
1108
|
|
|
2193
1109
|
/**
|
|
2194
1110
|
* Generated bundle index. Do not edit.
|
|
2195
1111
|
*/
|
|
2196
1112
|
|
|
2197
|
-
export {
|
|
1113
|
+
export { AppUrlService, AppsButtonComponent, FooterComponent, FooterDirective, HeaderComponent, I18nCheckGuard, I18nService, IsNavigationDividerItem, IsNavigationInsertItem, IsNavigationItem, LanguageSelectorService, LayoutComponent, LayoutComponentService, NavigationComponent, NavigationItemComponent, NavigationProgressBarComponent, NavigationService, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_LAYOUT_APPS_GRID, RXAP_LOGO_CONFIG, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, ReplaceRouterPathsService, ResetButtonComponent, SidenavComponent, SidenavComponentService, SidenavFooterDirective, SidenavHeaderDirective, SidenavToggleButtonComponent, SignOutComponent, ToggleWindowSidenavButtonComponent, UserProfileIconComponent, VersionComponent, WindowContainerSidenavComponent };
|
|
2198
1114
|
//# sourceMappingURL=rxap-layout.mjs.map
|