@rxap/layout 16.0.0-dev.27 → 16.0.0-dev.29
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 +14 -0
- package/README.md +1 -1
- package/esm2022/lib/header/header.component.mjs +19 -15
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +16 -13
- package/esm2022/lib/layout/layout.component.mjs +17 -16
- package/esm2022/lib/layout/layout.component.service.mjs +46 -11
- package/fesm2022/rxap-layout.mjs +163 -127
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/lib/header/header.component.d.ts +8 -6
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +6 -3
- package/lib/layout/layout.component.d.ts +10 -3
- package/lib/layout/layout.component.service.d.ts +7 -2
- package/package.json +21 -9
- package/theme.css +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
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.29](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.28...@rxap/layout@16.0.0-dev.29) (2023-09-21)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- close sidenav if change to collapsed mode ([7a35660](https://gitlab.com/rxap/packages/commit/7a356602e2228360f85bae8cb9346e3228e0fe29))
|
|
11
|
+
- only add margin to sidenav content if in collapsed mode ([c72febe](https://gitlab.com/rxap/packages/commit/c72febe141f8c11f126f99b3ef23b753599a5a47))
|
|
12
|
+
|
|
13
|
+
# [16.0.0-dev.28](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.27...@rxap/layout@16.0.0-dev.28) (2023-09-21)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- move status infiltrator to layout component ([1d1f69b](https://gitlab.com/rxap/packages/commit/1d1f69b22ae171a9d69b7d6d9e3f4e9f2e0849ee))
|
|
18
|
+
- support advanced settings for layout sidenav ([65ff765](https://gitlab.com/rxap/packages/commit/65ff765b66f799de5089c954d34532bc9b4a7e77))
|
|
19
|
+
|
|
6
20
|
# [16.0.0-dev.27](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.26...@rxap/layout@16.0.0-dev.27) (2023-09-19)
|
|
7
21
|
|
|
8
22
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -17,5 +17,5 @@ yarn add @rxap/layout
|
|
|
17
17
|
```
|
|
18
18
|
**Install peer dependencies:**
|
|
19
19
|
```bash
|
|
20
|
-
yarn add @angular/animations@^16.1.4 @angular/cdk@^16.1.4 @angular/common@^16.1.4 @angular/core@^16.1.4 @angular/flex-layout@^15.0.0-beta.42 @angular/forms@^16.1.4 @angular/material@^16.1.4 @angular/router@^16.1.4 @rxap/authentication@^16.0.0-dev.
|
|
20
|
+
yarn add @angular/animations@^16.1.4 @angular/cdk@^16.1.4 @angular/common@^16.1.4 @angular/core@^16.1.4 @angular/flex-layout@^15.0.0-beta.42 @angular/forms@^16.1.4 @angular/material@^16.1.4 @angular/router@^16.1.4 @rxap/authentication@^16.0.0-dev.15 @rxap/authorization@^16.0.0-dev.20 @rxap/browser-utilities@^0.0.2-dev.8 @rxap/config@^16.0.0-dev.16 @rxap/data-source@^16.0.0-dev.18 @rxap/directives@^16.0.0-dev.15 @rxap/environment@^16.0.0-dev.15 @rxap/icon@^16.0.0-dev.15 @rxap/material-directives@^16.0.0-dev.17 @rxap/ngx-changelog@^16.1.0-dev.1 @rxap/ngx-localize@^16.1.0-dev.0 @rxap/ngx-status-check@^16.1.0-dev.10 @rxap/ngx-user@^16.1.0-dev.1 @rxap/services@^16.0.0-dev.15 @rxap/utilities@^16.0.0-dev.18 rxjs@^7.8.0 tslib@2.6.2
|
|
21
21
|
```
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AsyncPipe, NgClass, NgIf, } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, Inject, Input, Optional, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { FormsModule } from '@angular/forms';
|
|
4
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
6
|
import { MatOptionModule, } from '@angular/material/core';
|
|
@@ -7,30 +8,35 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|
|
7
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
8
9
|
import { MatMenuModule } from '@angular/material/menu';
|
|
9
10
|
import { MatSelectModule } from '@angular/material/select';
|
|
10
|
-
import { MatSidenav } from '@angular/material/sidenav';
|
|
11
11
|
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 { StatusIndicatorComponent } from '@rxap/ngx-status-check';
|
|
16
15
|
import { HeaderService } from '@rxap/services';
|
|
17
16
|
import { Subscription } from 'rxjs';
|
|
18
17
|
import { tap } from 'rxjs/operators';
|
|
18
|
+
import { LayoutComponentService } from '../layout/layout.component.service';
|
|
19
19
|
import { RXAP_HEADER_COMPONENT } from '../tokens';
|
|
20
20
|
import { AppsButtonComponent } from './apps-button/apps-button.component';
|
|
21
21
|
import { NavigationProgressBarComponent } from './navigation-progress-bar/navigation-progress-bar.component';
|
|
22
22
|
import { SettingsButtonComponent } from './settings-button/settings-button.component';
|
|
23
|
+
import { SidenavToggleButtonComponent } from './sidenav-toggle-button/sidenav-toggle-button.component';
|
|
23
24
|
import { UserProfileIconComponent } from './user-profile-icon/user-profile-icon.component';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
|
-
import * as i1 from "
|
|
26
|
-
import * as i2 from "@
|
|
26
|
+
import * as i1 from "../layout/layout.component.service";
|
|
27
|
+
import * as i2 from "@angular/material/toolbar";
|
|
28
|
+
import * as i3 from "@rxap/services";
|
|
27
29
|
export class HeaderComponent {
|
|
28
|
-
constructor(headerComponentService, headerComponent) {
|
|
30
|
+
constructor(headerComponentService, layoutComponentService, headerComponent) {
|
|
29
31
|
this.headerComponentService = headerComponentService;
|
|
32
|
+
this.layoutComponentService = layoutComponentService;
|
|
30
33
|
this.headerComponent = headerComponent;
|
|
31
34
|
this.components = [];
|
|
32
35
|
this.subscriptions = new Subscription();
|
|
33
36
|
this.color = undefined;
|
|
37
|
+
this.collapsable =
|
|
38
|
+
toSignal(layoutComponentService.collapsable$, { initialValue: layoutComponentService.collapsable$.value });
|
|
39
|
+
this.opened = toSignal(layoutComponentService.opened$, { initialValue: layoutComponentService.opened$.value });
|
|
34
40
|
}
|
|
35
41
|
ngOnInit() {
|
|
36
42
|
this.updateComponents();
|
|
@@ -44,8 +50,8 @@ export class HeaderComponent {
|
|
|
44
50
|
ngOnDestroy() {
|
|
45
51
|
this.subscriptions.unsubscribe();
|
|
46
52
|
}
|
|
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: {
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HeaderComponent, deps: [{ token: HeaderService }, { token: i1.LayoutComponentService }, { token: RXAP_HEADER_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: HeaderComponent, isStandalone: true, selector: "rxap-header", inputs: { color: "color" }, ngImport: i0, template: "<mat-toolbar [color]=\"color\" [ngClass]=\"{ open: opened() }\" class=\"mat-elevation-z3 header\">\n <div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n <rxap-sidenav-toggle-button *ngIf=\"!collapsable()\"></rxap-sidenav-toggle-button>\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: 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: "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" }, { kind: "component", type: SidenavToggleButtonComponent, selector: "rxap-sidenav-toggle-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
55
|
}
|
|
50
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
51
57
|
type: Component,
|
|
@@ -68,19 +74,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
68
74
|
UserProfileIconComponent,
|
|
69
75
|
AppsButtonComponent,
|
|
70
76
|
SettingsButtonComponent,
|
|
71
|
-
|
|
72
|
-
], template: "<mat-toolbar [color]=\"color\" [ngClass]=\"{ open:
|
|
73
|
-
}], ctorParameters: function () { return [{ type:
|
|
77
|
+
SidenavToggleButtonComponent,
|
|
78
|
+
], template: "<mat-toolbar [color]=\"color\" [ngClass]=\"{ open: opened() }\" class=\"mat-elevation-z3 header\">\n <div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n <rxap-sidenav-toggle-button *ngIf=\"!collapsable()\"></rxap-sidenav-toggle-button>\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" }]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i3.HeaderService, decorators: [{
|
|
74
80
|
type: Inject,
|
|
75
81
|
args: [HeaderService]
|
|
76
|
-
}] }, { type: undefined, decorators: [{
|
|
82
|
+
}] }, { type: i1.LayoutComponentService }, { type: undefined, decorators: [{
|
|
77
83
|
type: Optional
|
|
78
84
|
}, {
|
|
79
85
|
type: Inject,
|
|
80
86
|
args: [RXAP_HEADER_COMPONENT]
|
|
81
|
-
}] }]; }, propDecorators: {
|
|
82
|
-
type: Input
|
|
83
|
-
}], color: [{
|
|
87
|
+
}] }]; }, propDecorators: { color: [{
|
|
84
88
|
type: Input
|
|
85
89
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsSUFBSSxHQUNMLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGVBQWUsR0FFaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVB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Q2YsNkJBQTZCO3dCQUM3QixvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBQ1QsOEJBQThCO3dCQUM5Qix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7cUJBQzdCOzswQkFlRSxNQUFNOzJCQUFDLGFBQWE7OzBCQUdwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjs0Q0FUcEMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0NsYXNzLFxuICBOZ0lmLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge1xuICBNYXRPcHRpb25Nb2R1bGUsXG4gIFRoZW1lUGFsZXR0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBEYXRhU291cmNlQ29sbGVjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0ByeGFwL2RhdGEtc291cmNlL2RpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICdAcnhhcC9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEhlYWRlclNlcnZpY2UgfSBmcm9tICdAcnhhcC9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJ0ByeGFwL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExheW91dENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFJYQVBfSEVBREVSX0NPTVBPTkVOVCB9IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBBcHBzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBzLWJ1dHRvbi9hcHBzLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ3NCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFNpZGVuYXZUb2dnbGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJQcm9maWxlSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2hlYWRlci5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBEYXRhU291cmNlQ29sbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgTmF2aWdhdGlvblByb2dyZXNzQmFyQ29tcG9uZW50LFxuICAgIFVzZXJQcm9maWxlSWNvbkNvbXBvbmVudCxcbiAgICBBcHBzQnV0dG9uQ29tcG9uZW50LFxuICAgIFNldHRpbmdzQnV0dG9uQ29tcG9uZW50LFxuICAgIFNpZGVuYXZUb2dnbGVCdXR0b25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgY29tcG9uZW50czogQXJyYXk8Q29uc3RydWN0b3I8YW55Pj4gPSBbXTtcblxuICBwdWJsaWMgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29sbGFwc2FibGU6IFNpZ25hbDxib29sZWFuPjtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5lZDogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoSGVhZGVyU2VydmljZSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyQ29tcG9uZW50U2VydmljZTogSGVhZGVyU2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0Q29tcG9uZW50U2VydmljZTogTGF5b3V0Q29tcG9uZW50U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJYQVBfSEVBREVSX0NPTVBPTkVOVCkgcHVibGljIGhlYWRlckNvbXBvbmVudDogYW55LFxuICApIHtcbiAgICB0aGlzLmNvbGxhcHNhYmxlID1cbiAgICAgIHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuY29sbGFwc2FibGUkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5jb2xsYXBzYWJsZSQudmFsdWUgfSk7XG4gICAgdGhpcy5vcGVuZWQgPSB0b1NpZ25hbChsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm9wZW5lZCQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm9wZW5lZCQudmFsdWUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRzKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS51cGRhdGUkXG4gICAgICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMudXBkYXRlQ29tcG9uZW50cygpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50cyA9IHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS5nZXRDb21wb25lbnRzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxufVxuIiwiPG1hdC10b29sYmFyIFtjb2xvcl09XCJjb2xvclwiIFtuZ0NsYXNzXT1cInsgb3Blbjogb3BlbmVkKCkgfVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MyBoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGdhcC14LTQganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxyeGFwLXNpZGVuYXYtdG9nZ2xlLWJ1dHRvbiAqbmdJZj1cIiFjb2xsYXBzYWJsZSgpXCI+PC9yeGFwLXNpZGVuYXYtdG9nZ2xlLWJ1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3Jvd1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxyeGFwLWFwcHMtYnV0dG9uIGNsYXNzPVwiZ3Jvdy0wXCI+PC9yeGFwLWFwcHMtYnV0dG9uPlxuICAgIDxyeGFwLXNldHRpbmdzLWJ1dHRvbiBjbGFzcz1cImdyb3ctMFwiPjwvcnhhcC1zZXR0aW5ncy1idXR0b24+XG4gICAgPHJ4YXAtdXNlci1wcm9maWxlLWljb24gY2xhc3M9XCJncm93LTBcIj48L3J4YXAtdXNlci1wcm9maWxlLWljb24+XG4gIDwvZGl2PlxuPC9tYXQtdG9vbGJhcj5cblxuPHJ4YXAtbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXI+PC9yeGFwLW5hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyPlxuIl19
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
|
-
import { MatSidenav } from '@angular/material/sidenav';
|
|
3
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
4
1
|
import { NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { LayoutComponentService } from '../../layout/layout.component.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "
|
|
8
|
-
import * as i2 from "@angular/material/
|
|
8
|
+
import * as i1 from "../../layout/layout.component.service";
|
|
9
|
+
import * as i2 from "@angular/material/button";
|
|
10
|
+
import * as i3 from "@angular/material/icon";
|
|
9
11
|
export class SidenavToggleButtonComponent {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
constructor(layoutComponentService) {
|
|
13
|
+
this.layoutComponentService = layoutComponentService;
|
|
14
|
+
this.opened = toSignal(layoutComponentService.opened$, { initialValue: layoutComponentService.opened$.value });
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavToggleButtonComponent, deps: [{ token: i1.LayoutComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SidenavToggleButtonComponent, isStandalone: true, selector: "rxap-sidenav-toggle-button", ngImport: i0, template: "<button (click)=\"layoutComponentService.toggleOpend()\" mat-icon-button>\n <mat-icon *ngIf=\"!opened()\">menu</mat-icon>\n <mat-icon *ngIf=\"opened()\">menu_open</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.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: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
18
|
}
|
|
13
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavToggleButtonComponent, decorators: [{
|
|
14
20
|
type: Component,
|
|
@@ -16,9 +22,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
16
22
|
MatButtonModule,
|
|
17
23
|
NgIf,
|
|
18
24
|
MatIconModule,
|
|
19
|
-
], template: "<button (click)=\"
|
|
20
|
-
}],
|
|
21
|
-
|
|
22
|
-
args: [{ required: true }]
|
|
23
|
-
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lkZW5hdi10b2dnbGUtYnV0dG9uL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBYzNELE1BQU0sT0FBTyw0QkFBNEI7OEdBQTVCLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHNIQ3ZCekMsc0xBSUEseUREY0ksZUFBZSw0TEFDZixJQUFJLDRGQUNKLGFBQWE7OzJGQUdKLDRCQUE0QjtrQkFaeEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsSUFBSTt3QkFDSixhQUFhO3FCQUNkOzhCQUtNLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBSZXF1aXJlZCB9IGZyb20gJ0ByeGFwL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtc2lkZW5hdi10b2dnbGUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdlRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIHNpZGVuYXYhOiBNYXRTaWRlbmF2O1xuXG59XG4iLCI8YnV0dG9uIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCIgbWF0LWljb24tYnV0dG9uPlxuICA8bWF0LWljb24gKm5nSWY9XCIhc2lkZW5hdi5vcGVuZWRcIj5tZW51PC9tYXQtaWNvbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwic2lkZW5hdi5vcGVuZWRcIj5tZW51X29wZW48L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
|
|
25
|
+
], template: "<button (click)=\"layoutComponentService.toggleOpend()\" mat-icon-button>\n <mat-icon *ngIf=\"!opened()\">menu</mat-icon>\n <mat-icon *ngIf=\"opened()\">menu_open</mat-icon>\n</button>\n" }]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutComponentService }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lkZW5hdi10b2dnbGUtYnV0dG9uL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBYy9FLE1BQU0sT0FBTyw0QkFBNEI7SUFJdkMsWUFBNEIsc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pILENBQUM7OEdBTlUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsc0ZDdkJ6Qyw4TEFJQSx5RERjSSxlQUFlLDRMQUNmLElBQUksNEZBQ0osYUFBYTs7MkZBR0osNEJBQTRCO2tCQVp4QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixJQUFJO3dCQUNKLGFBQWE7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbGF5b3V0L2xheW91dC5jb21wb25lbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtc2lkZW5hdi10b2dnbGUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZW5hdlRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9wZW5lZDogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBsYXlvdXRDb21wb25lbnRTZXJ2aWNlOiBMYXlvdXRDb21wb25lbnRTZXJ2aWNlKSB7XG4gICAgdGhpcy5vcGVuZWQgPSB0b1NpZ25hbChsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm9wZW5lZCQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm9wZW5lZCQudmFsdWUgfSk7XG4gIH1cblxufVxuIiwiPGJ1dHRvbiAoY2xpY2spPVwibGF5b3V0Q29tcG9uZW50U2VydmljZS50b2dnbGVPcGVuZCgpXCIgbWF0LWljb24tYnV0dG9uPlxuICA8bWF0LWljb24gKm5nSWY9XCIhb3BlbmVkKClcIj5tZW51PC9tYXQtaWNvbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwib3BlbmVkKClcIj5tZW51X29wZW48L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AsyncPipe, NgIf, NgOptimizedImage, } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, Inject, ViewChild, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
4
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
6
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -8,6 +9,7 @@ import { MatSidenav, MatSidenavModule, } from '@angular/material/sidenav';
|
|
|
8
9
|
import { RouterLink, RouterOutlet, } from '@angular/router';
|
|
9
10
|
import { DetermineReleaseName, RXAP_ENVIRONMENT, } from '@rxap/environment';
|
|
10
11
|
import { IconLoaderService } from '@rxap/icon';
|
|
12
|
+
import { StatusIndicatorComponent } from '@rxap/ngx-status-check';
|
|
11
13
|
import { FooterComponent } from '../footer/footer.component';
|
|
12
14
|
import { HeaderComponent } from '../header/header.component';
|
|
13
15
|
import { NavigationComponent } from '../navigation/navigation.component';
|
|
@@ -23,23 +25,21 @@ export class LayoutComponent {
|
|
|
23
25
|
constructor(layoutComponentService, environment, iconLoaderService) {
|
|
24
26
|
this.layoutComponentService = layoutComponentService;
|
|
25
27
|
this.environment = environment;
|
|
26
|
-
this.sidenavMode = 'over';
|
|
27
28
|
iconLoaderService.load();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
29
|
+
this.fixedBottomGap = toSignal(layoutComponentService.fixedBottomGap$, { initialValue: 0 });
|
|
30
|
+
this.fixedTopGap =
|
|
31
|
+
toSignal(layoutComponentService.fixedTopGap$, { initialValue: layoutComponentService.fixedTopGap$.value });
|
|
32
|
+
this.sidenavMode = toSignal(layoutComponentService.mode$, { initialValue: layoutComponentService.mode$.value });
|
|
33
|
+
this.pinned = toSignal(layoutComponentService.pinned$, { initialValue: layoutComponentService.pinned$.value });
|
|
34
|
+
this.collapsable =
|
|
35
|
+
toSignal(layoutComponentService.collapsable$, { initialValue: layoutComponentService.collapsable$.value });
|
|
36
|
+
this.opened = toSignal(layoutComponentService.opened$, { initialValue: layoutComponentService.opened$.value });
|
|
37
|
+
this.logoSrc = this.layoutComponentService.logo.src ?? 'https://via.placeholder.com/256x128px';
|
|
38
|
+
this.logoWidth = this.layoutComponentService.logo.width ?? 256;
|
|
39
|
+
this.release = DetermineReleaseName(this.environment);
|
|
40
40
|
}
|
|
41
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponent, deps: [{ token: i1.LayoutComponentService }, { token: RXAP_ENVIRONMENT }, { token: i2.IconLoaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
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
|
|
42
|
+
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: "<rxap-status-indicator class=\"fixed bottom-0 right-0 z-10\"></rxap-status-indicator>\n<div class=\"flex flex-col h-screen justify-between\">\n <rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n <mat-sidenav-container [ngClass]=\"{\n 'mb-16': fixedBottomGap() === 64,\n 'mb-32': fixedBottomGap() === 128,\n }\" class=\"grow mt-16\">\n <mat-sidenav\n #matSidenav=\"matSidenav\"\n [fixedBottomGap]=\"fixedBottomGap()\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"fixedTopGap()\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"{ collapsable: collapsable() }\"\n class=\"sidenav\"\n [opened]=\"opened()\"\n >\n <div class=\"h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch\">\n\n <div (click)=\"layoutComponentService.togglePinned()\" *ngIf=\"collapsable()\"\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=\"!pinned()\">radio_button_unchecked</mat-icon>\n <mat-icon *ngIf=\"pinned()\">radio_button_checked</mat-icon>\n </button>\n </div>\n\n <ul\n (mouseenter)=\"collapsable() && !pinned() && matSidenav.open()\"\n (mouseleave)=\"collapsable() && !pinned() && matSidenav.close()\" class=\"grow self-stretch\"\n root\n rxap-navigation\n >\n </ul>\n\n <img\n [src]=\"logoSrc\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth\"\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 [ngClass]=\"{ 'ml-16': collapsable() }\" class=\"p-4\">\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.collapsable: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.collapsable ::ng-deep .mat-drawer-inner-container::-webkit-scrollbar{display:none}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "rxap-header", inputs: ["color"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i4.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.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"] }, { kind: "component", type: StatusIndicatorComponent, selector: "rxap-status-indicator" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
43
|
}
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
@@ -57,7 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
57
57
|
NgOptimizedImage,
|
|
58
58
|
NavigationComponent,
|
|
59
59
|
RouterOutlet,
|
|
60
|
-
|
|
60
|
+
StatusIndicatorComponent,
|
|
61
|
+
], template: "<rxap-status-indicator class=\"fixed bottom-0 right-0 z-10\"></rxap-status-indicator>\n<div class=\"flex flex-col h-screen justify-between\">\n <rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n <mat-sidenav-container [ngClass]=\"{\n 'mb-16': fixedBottomGap() === 64,\n 'mb-32': fixedBottomGap() === 128,\n }\" class=\"grow mt-16\">\n <mat-sidenav\n #matSidenav=\"matSidenav\"\n [fixedBottomGap]=\"fixedBottomGap()\"\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"fixedTopGap()\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"{ collapsable: collapsable() }\"\n class=\"sidenav\"\n [opened]=\"opened()\"\n >\n <div class=\"h-full py-2 flex flex-col items-center gap-y-5 justify-items-stretch\">\n\n <div (click)=\"layoutComponentService.togglePinned()\" *ngIf=\"collapsable()\"\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=\"!pinned()\">radio_button_unchecked</mat-icon>\n <mat-icon *ngIf=\"pinned()\">radio_button_checked</mat-icon>\n </button>\n </div>\n\n <ul\n (mouseenter)=\"collapsable() && !pinned() && matSidenav.open()\"\n (mouseleave)=\"collapsable() && !pinned() && matSidenav.close()\" class=\"grow self-stretch\"\n root\n rxap-navigation\n >\n </ul>\n\n <img\n [src]=\"logoSrc\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth\"\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 [ngClass]=\"{ 'ml-16': collapsable() }\" class=\"p-4\">\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.collapsable: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.collapsable ::ng-deep .mat-drawer-inner-container::-webkit-scrollbar{display:none}\n"] }]
|
|
61
62
|
}], ctorParameters: function () { return [{ type: i1.LayoutComponentService }, { type: undefined, decorators: [{
|
|
62
63
|
type: Inject,
|
|
63
64
|
args: [RXAP_ENVIRONMENT]
|
|
@@ -65,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
65
66
|
type: ViewChild,
|
|
66
67
|
args: [MatSidenav, { static: true }]
|
|
67
68
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBRUwsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixnQkFBZ0IsR0FDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUF5QnBFLE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQ2tCLHNCQUE4QyxFQUU3QyxXQUF3QixFQUN6QyxpQkFBb0M7UUFIcEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUU3QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVBwQyxnQkFBVyxHQUFrQixNQUFNLENBQUM7UUFVekMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNyQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7U0FDM0I7SUFDSCxDQUFDOzhHQTFCVSxlQUFlLHdEQVFoQixnQkFBZ0I7a0dBUmYsZUFBZSxnSEFJZixVQUFVLDhEQzlEdkIsNmtFQWlEQSw0WUROSSxlQUFlLHFGQUNmLGdCQUFnQixzWUFDaEIsU0FBUyw2Q0FDVCxnQkFBZ0IsaWlCQUNoQixhQUFhLG1MQUNiLGVBQWUsNExBQ2YsVUFBVSw0TkFDVixJQUFJLDZGQUNKLGVBQWUsdURBQ2YsYUFBYSwrQkFFYixtQkFBbUIsb0dBQ25CLFlBQVk7OzJGQUdILGVBQWU7a0JBdEIzQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsWUFBWTtxQkFDYjs7MEJBVUUsTUFBTTsyQkFBQyxnQkFBZ0I7NEVBSnNCLE9BQU87c0JBQXRELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFzeW5jUGlwZSxcbiAgTmdJZixcbiAgTmdPcHRpbWl6ZWRJbWFnZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHtcbiAgTWF0RHJhd2VyTW9kZSxcbiAgTWF0U2lkZW5hdixcbiAgTWF0U2lkZW5hdk1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge1xuICBSb3V0ZXJMaW5rLFxuICBSb3V0ZXJPdXRsZXQsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBEZXRlcm1pbmVSZWxlYXNlTmFtZSxcbiAgRW52aXJvbm1lbnQsXG4gIFJYQVBfRU5WSVJPTk1FTlQsXG59IGZyb20gJ0ByeGFwL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEljb25Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvaWNvbic7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9sYXlvdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBOZ0lmLFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCB7XG5cbiAgcHVibGljIHNpZGVuYXZNb2RlOiBNYXREcmF3ZXJNb2RlID0gJ292ZXInO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHNpZGVuYXYhOiBNYXRTaWRlbmF2O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXRDb21wb25lbnRTZXJ2aWNlOiBMYXlvdXRDb21wb25lbnRTZXJ2aWNlLFxuICAgIEBJbmplY3QoUlhBUF9FTlZJUk9OTUVOVClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBpY29uTG9hZGVyU2VydmljZTogSWNvbkxvYWRlclNlcnZpY2UsXG4gICkge1xuICAgIGljb25Mb2FkZXJTZXJ2aWNlLmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVsZWFzZSgpIHtcbiAgICByZXR1cm4gRGV0ZXJtaW5lUmVsZWFzZU5hbWUodGhpcy5lbnZpcm9ubWVudCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2lkZW5hdk1vZGUoKSB7XG4gICAgaWYgKHRoaXMuc2lkZW5hdk1vZGUgPT09ICdvdmVyJykge1xuICAgICAgdGhpcy5zaWRlbmF2TW9kZSA9ICdzaWRlJztcbiAgICAgIHRoaXMuc2lkZW5hdi5vcGVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2lkZW5hdk1vZGUgPSAnb3Zlcic7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLXNjcmVlbiBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgPHJ4YXAtaGVhZGVyIFtzaWRlbmF2XT1cInNpZGVuYXZcIiBjbGFzcz1cInotMTAgdy1mdWxsIGZpeGVkIHRvcC0wXCI+PC9yeGFwLWhlYWRlcj5cbiAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBbbmdDbGFzc109XCJ7XG4gICAgJ21iLTE2JzogKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkIHwgYXN5bmMpID09PSA2NCxcbiAgICAnbWItMzInOiAobGF5b3V0Q29tcG9uZW50U2VydmljZS5maXhlZEJvdHRvbUdhcCQgfCBhc3luYykgPT09IDEyOCxcbiAgfVwiIGNsYXNzPVwiZ3JvdyBtdC0xNlwiPlxuICAgIDxtYXQtc2lkZW5hdlxuICAgICAgI21hdFNpZGVuYXY9XCJtYXRTaWRlbmF2XCJcbiAgICAgIChtb3VzZWVudGVyKT1cInNpZGVuYXZNb2RlID09PSAnb3ZlcicgJiYgbWF0U2lkZW5hdi5vcGVuKClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwic2lkZW5hdk1vZGUgPT09ICdvdmVyJyAmJiBtYXRTaWRlbmF2LmNsb3NlKClcIlxuICAgICAgW2ZpeGVkQm90dG9tR2FwXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkIHwgYXN5bmNcIlxuICAgICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICAgIFtmaXhlZFRvcEdhcF09XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmZpeGVkVG9wR2FwJCB8IGFzeW5jXCJcbiAgICAgIFttb2RlXT1cInNpZGVuYXZNb2RlXCJcbiAgICAgIFtvcGVuZWRdPVwiZmFsc2VcIlxuICAgICAgY2xhc3M9XCJzaWRlbmF2XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIHB5LTIgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLXktNSBqdXN0aWZ5LWl0ZW1zLXN0cmV0Y2hcIj5cblxuICAgICAgICA8ZGl2IChjbGljayk9XCJ0b2dnbGVTaWRlbmF2TW9kZSgpXCJcbiAgICAgICAgICAgICBjbGFzcz1cInBsLTIgcHItMiBzZWxmLXN0cmV0Y2ggZ3Jvdy0wIGZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZ1wiIGkxOG4+TmF2aWdhdGlvbjwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNpZGVuYXZNb2RlID09PSAnb3ZlcidcIj5yYWRpb19idXR0b25fdW5jaGVja2VkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNpZGVuYXZNb2RlID09PSAnc2lkZSdcIj5yYWRpb19idXR0b25fY2hlY2tlZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDx1bCBjbGFzcz1cImdyb3cgc2VsZi1zdHJldGNoXCIgcm9vdCByeGFwLW5hdmlnYXRpb24+PC91bD5cblxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3NyY109XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28uc3JjID8/ICdodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMjU2eDEyOHB4J1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvJ11cIlxuICAgICAgICAgIFt3aWR0aF09XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28ud2lkdGggPz8gMjU2XCJcbiAgICAgICAgICBhbHQ9XCJsb2dvXCJcbiAgICAgICAgICBjbGFzcz1cImdyb3ctMCBteC0xNlwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm93LTAgcHgtMTZcIj5cbiAgICAgICAgICA8c3Bhbj57e3JlbGVhc2V9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1zaWRlbmF2PlxuICAgIDxtYXQtc2lkZW5hdi1jb250ZW50IGNsYXNzPVwibWwtMTYgcC00XCI+XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cbiAgPHJ4YXAtZm9vdGVyIGNsYXNzPVwiei0xMCB3LWZ1bGwgZml4ZWQgYm90dG9tLTBcIj48L3J4YXAtZm9vdGVyPlxuPC9kaXY+XG48IS0tPHJ4YXAtd2luZG93LXRhc2stYmFyLWNvbnRhaW5lcj48L3J4YXAtd2luZG93LXRhc2stYmFyLWNvbnRhaW5lcj4tLT5cbiJdfQ==
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUVMLFVBQVUsRUFDVixnQkFBZ0IsR0FDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsZ0JBQWdCLEdBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFB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UGlwZSxcbiAgTmdJZixcbiAgTmdPcHRpbWl6ZWRJbWFnZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgU2lnbmFsLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE1hdERyYXdlck1vZGUsXG4gIE1hdFNpZGVuYXYsXG4gIE1hdFNpZGVuYXZNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtcbiAgUm91dGVyTGluayxcbiAgUm91dGVyT3V0bGV0LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGV0ZXJtaW5lUmVsZWFzZU5hbWUsXG4gIEVudmlyb25tZW50LFxuICBSWEFQX0VOVklST05NRU5ULFxufSBmcm9tICdAcnhhcC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBJY29uTG9hZGVyU2VydmljZSB9IGZyb20gJ0ByeGFwL2ljb24nO1xuaW1wb3J0IHsgU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnQHJ4YXAvbmd4LXN0YXR1cy1jaGVjayc7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9sYXlvdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBOZ0lmLFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBzaWRlbmF2TW9kZTogU2lnbmFsPE1hdERyYXdlck1vZGU+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRCb3R0b21HYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRUb3BHYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGlubmVkOiBTaWduYWw8Ym9vbGVhbj47XG4gIHB1YmxpYyByZWFkb25seSBjb2xsYXBzYWJsZTogU2lnbmFsPGJvb2xlYW4+O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1NyYzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1dpZHRoOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSByZWxlYXNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuZWQ6IFNpZ25hbDxib29sZWFuPjtcblxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0Q29tcG9uZW50U2VydmljZTogTGF5b3V0Q29tcG9uZW50U2VydmljZSxcbiAgICBASW5qZWN0KFJYQVBfRU5WSVJPTk1FTlQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgaWNvbkxvYWRlclNlcnZpY2U6IEljb25Mb2FkZXJTZXJ2aWNlLFxuICApIHtcbiAgICBpY29uTG9hZGVyU2VydmljZS5sb2FkKCk7XG4gICAgdGhpcy5maXhlZEJvdHRvbUdhcCA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkLCB7IGluaXRpYWxWYWx1ZTogMCB9KTtcbiAgICB0aGlzLmZpeGVkVG9wR2FwID1cbiAgICAgIHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRUb3BHYXAkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5maXhlZFRvcEdhcCQudmFsdWUgfSk7XG4gICAgdGhpcy5zaWRlbmF2TW9kZSA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UubW9kZSQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm1vZGUkLnZhbHVlIH0pO1xuICAgIHRoaXMucGlubmVkID0gdG9TaWduYWwobGF5b3V0Q29tcG9uZW50U2VydmljZS5waW5uZWQkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5waW5uZWQkLnZhbHVlIH0pO1xuICAgIHRoaXMuY29sbGFwc2FibGUgPVxuICAgICAgdG9TaWduYWwobGF5b3V0Q29tcG9uZW50U2VydmljZS5jb2xsYXBzYWJsZSQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmNvbGxhcHNhYmxlJC52YWx1ZSB9KTtcbiAgICB0aGlzLm9wZW5lZCA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJCwgeyBpbml0aWFsVmFsdWU6IGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJC52YWx1ZSB9KTtcbiAgICB0aGlzLmxvZ29TcmMgPSB0aGlzLmxheW91dENvbXBvbmVudFNlcnZpY2UubG9nby5zcmMgPz8gJ2h0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4MTI4cHgnO1xuICAgIHRoaXMubG9nb1dpZHRoID0gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28ud2lkdGggPz8gMjU2O1xuICAgIHRoaXMucmVsZWFzZSA9IERldGVybWluZVJlbGVhc2VOYW1lKHRoaXMuZW52aXJvbm1lbnQpO1xuICB9XG5cbn1cbiIsIjxyeGFwLXN0YXR1cy1pbmRpY2F0b3IgY2xhc3M9XCJmaXhlZCBib3R0b20tMCByaWdodC0wIHotMTBcIj48L3J4YXAtc3RhdHVzLWluZGljYXRvcj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtc2NyZWVuIGp1c3RpZnktYmV0d2VlblwiPlxuICA8cnhhcC1oZWFkZXIgY2xhc3M9XCJ6LTEwIHctZnVsbCBmaXhlZCB0b3AtMFwiPjwvcnhhcC1oZWFkZXI+XG4gIDxtYXQtc2lkZW5hdi1jb250YWluZXIgW25nQ2xhc3NdPVwie1xuICAgICdtYi0xNic6IGZpeGVkQm90dG9tR2FwKCkgPT09IDY0LFxuICAgICdtYi0zMic6IGZpeGVkQm90dG9tR2FwKCkgPT09IDEyOCxcbiAgfVwiIGNsYXNzPVwiZ3JvdyBtdC0xNlwiPlxuICAgIDxtYXQtc2lkZW5hdlxuICAgICAgI21hdFNpZGVuYXY9XCJtYXRTaWRlbmF2XCJcbiAgICAgIFtmaXhlZEJvdHRvbUdhcF09XCJmaXhlZEJvdHRvbUdhcCgpXCJcbiAgICAgIFtmaXhlZEluVmlld3BvcnRdPVwidHJ1ZVwiXG4gICAgICBbZml4ZWRUb3BHYXBdPVwiZml4ZWRUb3BHYXAoKVwiXG4gICAgICBbbW9kZV09XCJzaWRlbmF2TW9kZSgpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgY29sbGFwc2FibGU6IGNvbGxhcHNhYmxlKCkgfVwiXG4gICAgICBjbGFzcz1cInNpZGVuYXZcIlxuICAgICAgW29wZW5lZF09XCJvcGVuZWQoKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBweS0yIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC15LTUganVzdGlmeS1pdGVtcy1zdHJldGNoXCI+XG5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwibGF5b3V0Q29tcG9uZW50U2VydmljZS50b2dnbGVQaW5uZWQoKVwiICpuZ0lmPVwiY29sbGFwc2FibGUoKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJwbC0yIHByLTIgc2VsZi1zdHJldGNoIGdyb3ctMCBmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGdcIiBpMThuPk5hdmlnYXRpb248L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhcGlubmVkKClcIj5yYWRpb19idXR0b25fdW5jaGVja2VkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInBpbm5lZCgpXCI+cmFkaW9fYnV0dG9uX2NoZWNrZWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dWxcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJjb2xsYXBzYWJsZSgpICYmICFwaW5uZWQoKSAmJiBtYXRTaWRlbmF2Lm9wZW4oKVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwiY29sbGFwc2FibGUoKSAmJiAhcGlubmVkKCkgJiYgbWF0U2lkZW5hdi5jbG9zZSgpXCIgY2xhc3M9XCJncm93IHNlbGYtc3RyZXRjaFwiXG4gICAgICAgICAgcm9vdFxuICAgICAgICAgIHJ4YXAtbmF2aWdhdGlvblxuICAgICAgICA+XG4gICAgICAgIDwvdWw+XG5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwibG9nb1NyY1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvJ11cIlxuICAgICAgICAgIFt3aWR0aF09XCJsb2dvV2lkdGhcIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwiZ3Jvdy0wIG14LTE2XCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3ctMCBweC0xNlwiPlxuICAgICAgICAgIDxzcGFuPnt7cmVsZWFzZX19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgW25nQ2xhc3NdPVwieyAnbWwtMTYnOiBjb2xsYXBzYWJsZSgpIH1cIiBjbGFzcz1cInAtNFwiPlxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbiAgPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG4gIDxyeGFwLWZvb3RlciBjbGFzcz1cInotMTAgdy1mdWxsIGZpeGVkIGJvdHRvbS0wXCI+PC9yeGFwLWZvb3Rlcj5cbjwvZGl2PlxuPCEtLTxyeGFwLXdpbmRvdy10YXNrLWJhci1jb250YWluZXI+PC9yeGFwLXdpbmRvdy10YXNrLWJhci1jb250YWluZXI+LS0+XG4iXX0=
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
+
import { MediaMatcher } from '@angular/cdk/layout';
|
|
1
2
|
import { Inject, Injectable, Optional, } from '@angular/core';
|
|
2
3
|
import { ConfigService } from '@rxap/config';
|
|
3
4
|
import { FooterService, HeaderService, } from '@rxap/services';
|
|
4
|
-
import { BehaviorSubject, } from 'rxjs';
|
|
5
|
+
import { BehaviorSubject, skip, } from 'rxjs';
|
|
5
6
|
import { map, tap, } from 'rxjs/operators';
|
|
6
7
|
import { RXAP_LOGO_CONFIG } from '../tokens';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@rxap/services";
|
|
9
|
-
import * as i2 from "@
|
|
10
|
+
import * as i2 from "@angular/cdk/layout";
|
|
11
|
+
import * as i3 from "@rxap/config";
|
|
10
12
|
export class LayoutComponentService {
|
|
11
|
-
constructor(footerComponentService, headerComponentService, logoConfig = null, config) {
|
|
13
|
+
constructor(footerComponentService, headerComponentService, logoConfig = null, config, mediaMatcher) {
|
|
12
14
|
this.footerComponentService = footerComponentService;
|
|
13
15
|
this.headerComponentService = headerComponentService;
|
|
14
16
|
this.config = config;
|
|
15
|
-
this.opened$ = new BehaviorSubject(true);
|
|
16
|
-
this.mode$ = new BehaviorSubject('side');
|
|
17
17
|
this.fixedTopGap$ = new BehaviorSubject(64);
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const mobileQuery = mediaMatcher.matchMedia('(max-width: 959px)');
|
|
19
|
+
const mobile = mobileQuery.matches;
|
|
20
|
+
const initialCollapsable = this.config.get('navigation.collapsable', true);
|
|
21
|
+
const collapsable = initialCollapsable && !mobile;
|
|
22
|
+
const pinned = this.config.get('navigation.pinned', false);
|
|
23
|
+
const mode = this.config.get('navigation.mode', (collapsable && pinned) || !collapsable ? 'side' : 'over');
|
|
24
|
+
const opened = this.config.get('navigation.open', !collapsable || pinned);
|
|
25
|
+
this.mode$ = new BehaviorSubject(mode);
|
|
26
|
+
this.opened$ = new BehaviorSubject(opened);
|
|
27
|
+
this.pinned$ = new BehaviorSubject(pinned);
|
|
28
|
+
this.collapsable$ = new BehaviorSubject(collapsable);
|
|
20
29
|
this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));
|
|
21
30
|
this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);
|
|
22
31
|
this.headerComponentService.update$.pipe(tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))).subscribe();
|
|
@@ -24,8 +33,34 @@ export class LayoutComponentService {
|
|
|
24
33
|
src: 'assets/logo.png',
|
|
25
34
|
width: 192,
|
|
26
35
|
};
|
|
36
|
+
mobileQuery.addEventListener('change', (event) => {
|
|
37
|
+
if (initialCollapsable) {
|
|
38
|
+
this.collapsable$.next(!event.matches);
|
|
39
|
+
if (this.collapsable$.value) {
|
|
40
|
+
if (!this.pinned$.value) {
|
|
41
|
+
this.opened$.next(false);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
this.pinned$.pipe(skip(1), tap(pinned => {
|
|
47
|
+
if (pinned) {
|
|
48
|
+
this.mode$.next('side');
|
|
49
|
+
this.opened$.next(true);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.mode$.next('over');
|
|
53
|
+
this.opened$.next(false);
|
|
54
|
+
}
|
|
55
|
+
})).subscribe();
|
|
27
56
|
}
|
|
28
|
-
|
|
57
|
+
toggleOpend() {
|
|
58
|
+
this.opened$.next(!this.opened$.value);
|
|
59
|
+
}
|
|
60
|
+
togglePinned() {
|
|
61
|
+
this.pinned$.next(!this.pinned$.value);
|
|
62
|
+
}
|
|
63
|
+
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 }, { token: i2.MediaMatcher }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
64
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponentService, providedIn: 'root' }); }
|
|
30
65
|
}
|
|
31
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponentService, decorators: [{
|
|
@@ -36,8 +71,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
36
71
|
}, {
|
|
37
72
|
type: Inject,
|
|
38
73
|
args: [RXAP_LOGO_CONFIG]
|
|
39
|
-
}] }, { type:
|
|
74
|
+
}] }, { type: i3.ConfigService, decorators: [{
|
|
40
75
|
type: Inject,
|
|
41
76
|
args: [ConfigService]
|
|
42
|
-
}] }]; } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
}] }, { type: i2.MediaMatcher }]; } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxlQUFlLEVBRWYsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLEdBQUcsRUFDSCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFDa0Isc0JBQXFDLEVBQ3JDLHNCQUFxQyxFQUNmLGFBQWdDLElBQUksRUFFekQsTUFBcUIsRUFDdEMsWUFBMEI7UUFMViwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWU7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFlO1FBR3BDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFWakMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQWFwRCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUNuQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxN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U0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQXJFVSxzQkFBc0IsNEVBY1gsZ0JBQWdCLDZCQUM1QixhQUFhO2tIQWZaLHNCQUFzQixjQURULE1BQU07OzJGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFlN0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RHJhd2VyTW9kZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQge1xuICBGb290ZXJTZXJ2aWNlLFxuICBIZWFkZXJTZXJ2aWNlLFxufSBmcm9tICdAcnhhcC9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIHNraXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJYQVBfTE9HT19DT05GSUcgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHsgTG9nb0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIHtcblxuICBwdWJsaWMgb3BlbmVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBwdWJsaWMgbW9kZSQ6IEJlaGF2aW9yU3ViamVjdDxNYXREcmF3ZXJNb2RlPjtcbiAgcHVibGljIHBpbm5lZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHVibGljIGZpeGVkQm90dG9tR2FwJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBwdWJsaWMgZml4ZWRUb3BHYXAkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDY0KTtcbiAgcHVibGljIGxvZ286IExvZ29Db25maWc7XG4gIHB1YmxpYyBjb2xsYXBzYWJsZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9vdGVyQ29tcG9uZW50U2VydmljZTogRm9vdGVyU2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyQ29tcG9uZW50U2VydmljZTogSGVhZGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJYQVBfTE9HT19DT05GSUcpIGxvZ29Db25maWc6IExvZ29Db25maWcgfCBudWxsID0gbnVsbCxcbiAgICBASW5qZWN0KENvbmZpZ1NlcnZpY2UpXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgbWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsXG4gICkge1xuICAgIGNvbnN0IG1vYmlsZVF1ZXJ5ID0gbWVkaWFNYXRjaGVyLm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDk1OXB4KScpO1xuICAgIGNvbnN0IG1vYmlsZSA9IG1vYmlsZVF1ZXJ5Lm1hdGNoZXM7XG4gICAgY29uc3QgaW5pdGlhbENvbGxhcHNhYmxlID0gdGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLmNvbGxhcHNhYmxlJywgdHJ1ZSk7XG4gICAgY29uc3QgY29sbGFwc2FibGUgPSBpbml0aWFsQ29sbGFwc2FibGUgJiYgIW1vYmlsZTtcbiAgICBjb25zdCBwaW5uZWQgPSB0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24ucGlubmVkJywgZmFsc2UpO1xuICAgIGNvbnN0IG1vZGUgPSB0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24ubW9kZScsIChjb2xsYXBzYWJsZSAmJiBwaW5uZWQpIHx8ICFjb2xsYXBzYWJsZSA/ICdzaWRlJyA6ICdvdmVyJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gdGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLm9wZW4nLCAhY29sbGFwc2FibGUgfHwgcGlubmVkKTtcbiAgICB0aGlzLm1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXREcmF3ZXJNb2RlPihtb2RlKTtcbiAgICB0aGlzLm9wZW5lZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KG9wZW5lZCk7XG4gICAgdGhpcy5waW5uZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihwaW5uZWQpO1xuICAgIHRoaXMuY29sbGFwc2FibGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb2xsYXBzYWJsZSk7XG4gICAgdGhpcy5maXhlZEJvdHRvbUdhcCQgPSB0aGlzLmZvb3RlckNvbXBvbmVudFNlcnZpY2UucG9ydGFsQ291bnQkLnBpcGUobWFwKGNvdW50ID0+IGNvdW50ICogNjQpKTtcbiAgICB0aGlzLmZpeGVkVG9wR2FwJC5uZXh0KHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS5jb3VudENvbXBvbmVudCAqIDY0KTtcbiAgICB0aGlzLmhlYWRlckNvbXBvbmVudFNlcnZpY2UudXBkYXRlJC5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuZml4ZWRUb3BHYXAkLm5leHQodGhpcy5oZWFkZXJDb21wb25lbnRTZXJ2aWNlLmNvdW50Q29tcG9uZW50ICogNjQpKSxcbiAgICApLnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9nbyA9IGxvZ29Db25maWcgPz8ge1xuICAgICAgc3JjOiAnYXNzZXRzL2xvZ28ucG5nJyxcbiAgICAgIHdpZHRoOiAxOTIsXG4gICAgfTtcbiAgICBtb2JpbGVRdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChpbml0aWFsQ29sbGFwc2FibGUpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzYWJsZSQubmV4dCghZXZlbnQubWF0Y2hlcyk7XG4gICAgICAgIGlmICh0aGlzLmNvbGxhcHNhYmxlJC52YWx1ZSkge1xuICAgICAgICAgIGlmICghdGhpcy5waW5uZWQkLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5waW5uZWQkLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgdGFwKHBpbm5lZCA9PiB7XG4gICAgICAgIGlmIChwaW5uZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGUkLm5leHQoJ3NpZGUnKTtcbiAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1vZGUkLm5leHQoJ292ZXInKTtcbiAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlT3BlbmQoKSB7XG4gICAgdGhpcy5vcGVuZWQkLm5leHQoIXRoaXMub3BlbmVkJC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGlubmVkKCkge1xuICAgIHRoaXMucGlubmVkJC5uZXh0KCF0aGlzLnBpbm5lZCQudmFsdWUpO1xuICB9XG5cbn1cbiJdfQ==
|