@rxap/layout 16.0.0-dev.13 → 16.0.0-dev.14
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 +6 -0
- package/esm2022/lib/header/header.component.mjs +13 -16
- package/esm2022/lib/header/settings-button/settings-button.component.mjs +46 -0
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +8 -11
- package/fesm2022/rxap-layout.mjs +59 -32
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/lib/header/header.component.d.ts +3 -5
- package/lib/header/settings-button/settings-button.component.d.ts +19 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [16.0.0-dev.14](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.13...@rxap/layout@16.0.0-dev.14) (2023-08-24)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- support custom menu items for the layout header component ([97ce8d0](https://gitlab.com/rxap/packages/commit/97ce8d0ea58cff709c5e8516733be866b89b3999))
|
|
11
|
+
|
|
6
12
|
# [16.0.0-dev.13](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.12...@rxap/layout@16.0.0-dev.13) (2023-08-07)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncPipe, NgClass, NgIf, } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Inject, Input,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Inject, Input, Optional, } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
5
|
import { MatOptionModule, } from '@angular/material/core';
|
|
@@ -12,29 +12,25 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
|
12
12
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
13
13
|
import { DataSourceCollectionDirective } from '@rxap/data-source/directive';
|
|
14
14
|
import { StopPropagationDirective } from '@rxap/directives';
|
|
15
|
-
import { HeaderService
|
|
15
|
+
import { HeaderService } from '@rxap/services';
|
|
16
16
|
import { Subscription } from 'rxjs';
|
|
17
17
|
import { tap } from 'rxjs/operators';
|
|
18
18
|
import { RXAP_HEADER_COMPONENT } from '../tokens';
|
|
19
19
|
import { AppsButtonComponent } from './apps-button/apps-button.component';
|
|
20
20
|
import { LanguageSelectorComponent } from './language-selector/language-selector.component';
|
|
21
21
|
import { NavigationProgressBarComponent } from './navigation-progress-bar/navigation-progress-bar.component';
|
|
22
|
+
import { SettingsButtonComponent } from './settings-button/settings-button.component';
|
|
22
23
|
import { UserProfileIconComponent } from './user-profile-icon/user-profile-icon.component';
|
|
23
24
|
import * as i0 from "@angular/core";
|
|
24
|
-
import * as i1 from "@
|
|
25
|
-
import * as i2 from "@
|
|
26
|
-
import * as i3 from "@angular/material/button";
|
|
27
|
-
import * as i4 from "@angular/material/menu";
|
|
28
|
-
import * as i5 from "@angular/material/icon";
|
|
25
|
+
import * as i1 from "@angular/material/toolbar";
|
|
26
|
+
import * as i2 from "@rxap/services";
|
|
29
27
|
export class HeaderComponent {
|
|
30
|
-
constructor(headerComponentService, headerComponent
|
|
28
|
+
constructor(headerComponentService, headerComponent) {
|
|
31
29
|
this.headerComponentService = headerComponentService;
|
|
32
30
|
this.headerComponent = headerComponent;
|
|
33
|
-
this.theme = theme;
|
|
34
31
|
this.components = [];
|
|
35
32
|
this.subscriptions = new Subscription();
|
|
36
33
|
this.color = undefined;
|
|
37
|
-
this.isDevMode = isDevMode();
|
|
38
34
|
}
|
|
39
35
|
ngOnInit() {
|
|
40
36
|
this.updateComponents();
|
|
@@ -48,8 +44,8 @@ export class HeaderComponent {
|
|
|
48
44
|
ngOnDestroy() {
|
|
49
45
|
this.subscriptions.unsubscribe();
|
|
50
46
|
}
|
|
51
|
-
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 }
|
|
52
|
-
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 <
|
|
47
|
+
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 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
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 <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\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", styles: [""], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatIconModule }, { 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" }, { kind: "component", type: SettingsButtonComponent, selector: "rxap-settings-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
53
49
|
}
|
|
54
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
55
51
|
type: Component,
|
|
@@ -72,8 +68,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
72
68
|
NavigationProgressBarComponent,
|
|
73
69
|
UserProfileIconComponent,
|
|
74
70
|
AppsButtonComponent,
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
SettingsButtonComponent,
|
|
72
|
+
], 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 <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\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" }]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i2.HeaderService, decorators: [{
|
|
77
74
|
type: Inject,
|
|
78
75
|
args: [HeaderService]
|
|
79
76
|
}] }, { type: undefined, decorators: [{
|
|
@@ -81,9 +78,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
81
78
|
}, {
|
|
82
79
|
type: Inject,
|
|
83
80
|
args: [RXAP_HEADER_COMPONENT]
|
|
84
|
-
}] }
|
|
81
|
+
}] }]; }, propDecorators: { sidenav: [{
|
|
85
82
|
type: Input
|
|
86
83
|
}], color: [{
|
|
87
84
|
type: Input
|
|
88
85
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsSUFBSSxHQUNMLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxHQUVoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7O0FBOEIzRixNQUFNLE9BQU8sZUFBZTtJQVcxQixZQUVrQixzQkFBcUMsRUFDSCxlQUFvQjtRQUR0RCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWU7UUFDSCxvQkFBZSxHQUFmLGVBQWUsQ0FBSztRQVZqRSxlQUFVLEdBQTRCLEVBQUUsQ0FBQztRQUV6QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbkMsVUFBSyxHQUFpQixTQUFTLENBQUM7SUFPdkMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU87YUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO2FBQ3hDLFNBQVMsRUFBRSxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBakNVLGVBQWUsa0JBWWhCLGFBQWEsYUFFRCxxQkFBcUI7a0dBZGhDLGVBQWUsdUhDcEU1QixvaUJBWUEseUREbUNJLGdCQUFnQixpSkFDaEIsT0FBTyxtRkFFUCxlQUFlLDhCQUNmLGFBQWEsOEJBQ2IsYUFBYSw4QkFFYixrQkFBa0IsOEJBRWxCLGVBQWUsOEJBQ2YsV0FBVyw4QkFDWCxlQUFlLDhCQUVmLG9CQUFvQiwrQkFFcEIsOEJBQThCLHlFQUM5Qix3QkFBd0IsbUVBQ3hCLG1CQUFtQiw2REFDbkIsdUJBQXVCOzsyRkFHZCxlQUFlO2tCQTVCM0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLDZCQUE2Qjt3QkFDN0Isb0JBQW9CO3dCQUNwQixTQUFTO3dCQUNULDhCQUE4Qjt3QkFDOUIsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLHVCQUF1QjtxQkFDeEI7OzBCQWNFLE1BQU07MkJBQUMsYUFBYTs7MEJBRXBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzRDQVpwQyxPQUFPO3NCQURiLEtBQUs7Z0JBUUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0NsYXNzLFxuICBOZ0lmLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7XG4gIE1hdE9wdGlvbk1vZHVsZSxcbiAgVGhlbWVQYWxldHRlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbmltcG9ydCB7IERhdGFTb3VyY2VDb2xsZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQHJ4YXAvZGF0YS1zb3VyY2UvZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0ByeGFwL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJ0ByeGFwL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUlhBUF9IRUFERVJfQ09NUE9ORU5UIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB7IEFwcHNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2FwcHMtYnV0dG9uL2FwcHMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ3NCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJQcm9maWxlSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2hlYWRlci5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIERhdGFTb3VyY2VDb2xsZWN0aW9uRGlyZWN0aXZlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBOYXZpZ2F0aW9uUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgVXNlclByb2ZpbGVJY29uQ29tcG9uZW50LFxuICAgIEFwcHNCdXR0b25Db21wb25lbnQsXG4gICAgU2V0dGluZ3NCdXR0b25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNpZGVuYXY/OiBNYXRTaWRlbmF2O1xuXG4gIHB1YmxpYyBjb21wb25lbnRzOiBBcnJheTxDb25zdHJ1Y3Rvcjxhbnk+PiA9IFtdO1xuXG4gIHB1YmxpYyBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoSGVhZGVyU2VydmljZSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyQ29tcG9uZW50U2VydmljZTogSGVhZGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJYQVBfSEVBREVSX0NPTVBPTkVOVCkgcHVibGljIGhlYWRlckNvbXBvbmVudDogYW55LFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudHMoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5oZWFkZXJDb21wb25lbnRTZXJ2aWNlLnVwZGF0ZSRcbiAgICAgICAgICAucGlwZSh0YXAoKCkgPT4gdGhpcy51cGRhdGVDb21wb25lbnRzKCkpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbXBvbmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRzID0gdGhpcy5oZWFkZXJDb21wb25lbnRTZXJ2aWNlLmdldENvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG59XG4iLCI8bWF0LXRvb2xiYXIgW2NvbG9yXT1cImNvbG9yXCIgW25nQ2xhc3NdPVwieyBvcGVuOiBzaWRlbmF2Py5vcGVuZWQgfVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MyBoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGdhcC14LTQganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJncm93XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPHJ4YXAtYXBwcy1idXR0b24gY2xhc3M9XCJncm93LTBcIj48L3J4YXAtYXBwcy1idXR0b24+XG4gICAgPHJ4YXAtc2V0dGluZ3MtYnV0dG9uIGNsYXNzPVwiZ3Jvdy0wXCI+PC9yeGFwLXNldHRpbmdzLWJ1dHRvbj5cbiAgICA8cnhhcC11c2VyLXByb2ZpbGUtaWNvbiBjbGFzcz1cImdyb3ctMFwiPjwvcnhhcC11c2VyLXByb2ZpbGUtaWNvbj5cbiAgPC9kaXY+XG48L21hdC10b29sYmFyPlxuXG48cnhhcC1uYXZpZ2F0aW9uLXByb2dyZXNzLWJhcj48L3J4YXAtbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXI+XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ComponentPortal, PortalModule, } from '@angular/cdk/portal';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { Component, Injector, isDevMode, signal, } from '@angular/core';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
7
|
+
import { ActivatedRoute } from '@angular/router';
|
|
8
|
+
import { ThemeService } from '@rxap/services';
|
|
9
|
+
import { map, tap, } from 'rxjs/operators';
|
|
10
|
+
import { LanguageSelectorComponent } from '../language-selector/language-selector.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@rxap/services";
|
|
13
|
+
import * as i2 from "@angular/router";
|
|
14
|
+
import * as i3 from "@angular/common";
|
|
15
|
+
import * as i4 from "@angular/material/button";
|
|
16
|
+
import * as i5 from "@angular/material/icon";
|
|
17
|
+
import * as i6 from "@angular/material/menu";
|
|
18
|
+
import * as i7 from "@angular/cdk/portal";
|
|
19
|
+
export class SettingsButtonComponent {
|
|
20
|
+
constructor(theme, route, injector) {
|
|
21
|
+
this.theme = theme;
|
|
22
|
+
this.route = route;
|
|
23
|
+
this.injector = injector;
|
|
24
|
+
this.isDevMode = isDevMode();
|
|
25
|
+
this.items = signal([]);
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this._subscription?.unsubscribe();
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this._subscription = this.route.data.pipe(tap(data => console.log('data', data)), map(data => this.getCustomMenuItems(data)), map(items => items.map(item => new ComponentPortal(item, undefined, this.injector))), tap(items => console.log('items', items)), tap(items => this.items.set(items))).subscribe();
|
|
32
|
+
}
|
|
33
|
+
getCustomMenuItems(data) {
|
|
34
|
+
if (data?.layout?.header?.menu?.items?.length) {
|
|
35
|
+
return data.layout.header.menu.items;
|
|
36
|
+
}
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SettingsButtonComponent, deps: [{ token: i1.ThemeService }, { token: i2.ActivatedRoute }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SettingsButtonComponent, isStandalone: true, selector: "rxap-settings-button", ngImport: i0, template: "<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon>settings</mat-icon>\n</button>\n\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 <ng-container *ngFor=\"let item of items()\">\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n </ng-container>\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LanguageSelectorComponent, selector: "rxap-language-selector" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i7.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SettingsButtonComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'rxap-settings-button', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, LanguageSelectorComponent, MatMenuModule, PortalModule], template: "<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon>settings</mat-icon>\n</button>\n\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 <ng-container *ngFor=\"let item of items()\">\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n </ng-container>\n</mat-menu>\n" }]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i1.ThemeService }, { type: i2.ActivatedRoute }, { type: i0.Injector }]; } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBR1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUNMLEdBQUcsRUFDSCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7O0FBUzdGLE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDa0IsS0FBbUIsRUFDbEIsS0FBcUIsRUFDckIsUUFBa0I7UUFGbkIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUDlCLGNBQVMsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUMvQixVQUFLLEdBQUcsTUFBTSxDQUFrQyxFQUFFLENBQUMsQ0FBQztJQVNwRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQ3BGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3BDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVM7UUFDbEMsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDdEM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OEdBakNVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGdGQ2pDcEMsb2tCQWVBLHlERGNhLFlBQVksK1BBQUUsZUFBZSwyTEFBRSxhQUFhLG9MQUFFLHlCQUF5QixrRUFBRSxhQUFhLCtZQUFFLFlBQVk7OzJGQUlwRyx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIENvbXBvbmVudFR5cGUsXG4gIFBvcnRhbE1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbmplY3RvcixcbiAgaXNEZXZNb2RlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICdAcnhhcC9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIG1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1zZXR0aW5ncy1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50LCBNYXRNZW51TW9kdWxlLCBQb3J0YWxNb2R1bGUgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50LnNjc3MnIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdzQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBpc0Rldk1vZGUgPSBpc0Rldk1vZGUoKTtcbiAgaXRlbXMgPSBzaWduYWw8QXJyYXk8Q29tcG9uZW50UG9ydGFsPHVua25vd24+Pj4oW10pO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHRoZW1lOiBUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLmRhdGEucGlwZShcbiAgICAgIHRhcChkYXRhID0+IGNvbnNvbGUubG9nKCdkYXRhJywgZGF0YSkpLFxuICAgICAgbWFwKGRhdGEgPT4gdGhpcy5nZXRDdXN0b21NZW51SXRlbXMoZGF0YSkpLFxuICAgICAgbWFwKGl0ZW1zID0+IGl0ZW1zLm1hcChpdGVtID0+IG5ldyBDb21wb25lbnRQb3J0YWwoaXRlbSwgdW5kZWZpbmVkLCB0aGlzLmluamVjdG9yKSkpLFxuICAgICAgdGFwKGl0ZW1zID0+IGNvbnNvbGUubG9nKCdpdGVtcycsIGl0ZW1zKSksXG4gICAgICB0YXAoaXRlbXMgPT4gdGhpcy5pdGVtcy5zZXQoaXRlbXMpKSxcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXN0b21NZW51SXRlbXMoZGF0YTogYW55KTogQXJyYXk8Q29tcG9uZW50VHlwZTx1bmtub3duPj4ge1xuICAgIGlmIChkYXRhPy5sYXlvdXQ/LmhlYWRlcj8ubWVudT8uaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGRhdGEubGF5b3V0LmhlYWRlci5tZW51Lml0ZW1zO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxufVxuIiwiPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIG1hdC1pY29uLWJ1dHRvbj5cbiAgPG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cInRoZW1lLnRvZ2dsZURhcmtUaGVtZSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJ0aGVtZS5kYXJrTW9kZVwiPmJyaWdodG5lc3NfMjwvbWF0LWljb24+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiIXRoZW1lLmRhcmtNb2RlXCI+YnJpZ2h0bmVzc181PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPk1vZGU8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8cnhhcC1sYW5ndWFnZS1zZWxlY3RvciAqbmdJZj1cIiFpc0Rldk1vZGVcIj48L3J4YXAtbGFuZ3VhZ2Utc2VsZWN0b3I+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMoKVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIml0ZW1cIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LW1lbnU+XG4iXX0=
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
+
import { AsyncPipe, NgIf, } from '@angular/common';
|
|
1
2
|
import { ChangeDetectionStrategy, Component, signal, } from '@angular/core';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
2
5
|
import { RxapAuthenticationService, RxapUserProfileService, } from '@rxap/authentication';
|
|
3
6
|
import { filter, } from 'rxjs';
|
|
4
7
|
import { switchMap, tap, } from 'rxjs/operators';
|
|
5
|
-
import { AsyncPipe, NgIf, } from '@angular/common';
|
|
6
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
8
|
-
import { FlexModule } from '@angular/flex-layout/flex';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "@rxap/authentication";
|
|
11
|
-
import * as i2 from "@angular/
|
|
12
|
-
import * as i3 from "@angular/material/
|
|
13
|
-
import * as i4 from "@angular/material/icon";
|
|
10
|
+
import * as i2 from "@angular/material/menu";
|
|
11
|
+
import * as i3 from "@angular/material/icon";
|
|
14
12
|
export class UserProfileIconComponent {
|
|
15
13
|
constructor(userProfileService, authenticationService) {
|
|
16
14
|
this.userProfileService = userProfileService;
|
|
@@ -27,16 +25,15 @@ export class UserProfileIconComponent {
|
|
|
27
25
|
await this.authenticationService.signOut();
|
|
28
26
|
}
|
|
29
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, deps: [{ token: i1.RxapUserProfileService }, { token: i1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
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
|
|
28
|
+
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 flex flex-row justify-center items-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: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
29
|
}
|
|
32
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, decorators: [{
|
|
33
31
|
type: Component,
|
|
34
32
|
args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
35
|
-
FlexModule,
|
|
36
33
|
MatMenuModule,
|
|
37
34
|
MatIconModule,
|
|
38
35
|
NgIf,
|
|
39
36
|
AsyncPipe,
|
|
40
|
-
], template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon
|
|
37
|
+
], template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon flex flex-row justify-center items-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"] }]
|
|
41
38
|
}], ctorParameters: function () { return [{ type: i1.RxapUserProfileService }, { type: i1.RxapAuthenticationService }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHNCQUFzQixHQUN2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxNQUFNLEdBRVAsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDOzs7OztBQWV4QixNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQ21CLGtCQUEwQyxFQUMxQyxxQkFBZ0Q7UUFEaEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QjtRQUMxQywwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBTjVELGFBQVEsR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBTzNDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNuRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQ3hELENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNqQixNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzhHQTFCVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixrRkN2Q3JDLCtnQkFnQkEsd1dEaUJJLGFBQWEsK1lBQ2IsYUFBYTs7MkZBS0osd0JBQXdCO2tCQWJwQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixhQUFhO3dCQUNiLElBQUk7d0JBQ0osU0FBUztxQkFDViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFzeW5jUGlwZSxcbiAgTmdJZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHtcbiAgUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgUnhhcFVzZXJQcm9maWxlU2VydmljZSxcbn0gZnJvbSAnQHJ4YXAvYXV0aGVudGljYXRpb24nO1xuaW1wb3J0IHtcbiAgZmlsdGVyLFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC11c2VyLXByb2ZpbGUtaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdJZixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJQcm9maWxlSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgdXNlcm5hbWUgPSBzaWduYWw8bnVsbCB8IHN0cmluZz4obnVsbCk7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclByb2ZpbGVTZXJ2aWNlOiBSeGFwVXNlclByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBSeGFwQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJC5waXBlKFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLmdldFByb2ZpbGUoKSksXG4gICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICB0YXAoKHVzZXIpID0+IHRoaXMudXNlcm5hbWUuc2V0KHVzZXIudXNlcm5hbWUgPz8gbnVsbCkpLFxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCkge1xuICAgIGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLnNpZ25PdXQoKTtcbiAgfVxuXG5cbn1cbiIsIjxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXVzZXJuYW1lKClcIlxuICAgICAgICBjbGFzcz1cInByb2ZpbGUtaWNvbiBmbGV4IGZsZXgtcm93IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICA8bWF0LWljb24gY2xhc3M9XCJhdmF0YXItaWNvblwiPmFjY291bnRfY2lyY2xlPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgW3lQb3NpdGlvbl09XCInYmVsb3cnXCI+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgIDxzcGFuPnt7dXNlcm5hbWUoKX19PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0KClcIiBtYXQtbWVudS1pdGVtPlxuICAgIDxtYXQtaWNvbj5sb2dpbjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5Mb2dvdXQ8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbiJdfQ==
|