@rxap/layout 16.0.0-dev.3 → 16.0.0-dev.30
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 +167 -0
- package/LICENSE +621 -0
- package/LICENSE.md +621 -0
- package/README.md +1 -1
- package/esm2022/index.mjs +2 -6
- package/esm2022/lib/app-url.service.mjs +66 -0
- package/esm2022/lib/header/apps-button/apps-button.component.mjs +29 -46
- package/esm2022/lib/header/header.component.mjs +48 -52
- package/esm2022/lib/header/language-selector/language-selector.component.mjs +13 -72
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +6 -2
- package/esm2022/lib/header/reset-button/reset-button.component.mjs +3 -3
- package/esm2022/lib/header/settings-button/settings-button.component.mjs +52 -0
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +20 -18
- package/esm2022/lib/header/sign-out/sign-out.component.mjs +14 -18
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +31 -28
- package/esm2022/lib/layout/layout.component.mjs +50 -23
- package/esm2022/lib/layout/layout.component.service.mjs +50 -15
- package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +50 -102
- package/esm2022/lib/navigation/navigation.component.mjs +26 -31
- package/esm2022/lib/sidenav/sidenav.component.mjs +3 -3
- package/esm2022/lib/sidenav/version/version.component.mjs +2 -8
- package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +3 -3
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +6 -7
- package/fesm2022/rxap-layout.mjs +648 -699
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/index.d.ts +1 -3
- package/lib/app-url.service.d.ts +26 -0
- package/lib/header/apps-button/apps-button.component.d.ts +12 -20
- package/lib/header/header.component.d.ts +10 -13
- package/lib/header/language-selector/language-selector.component.d.ts +1 -16
- package/lib/header/settings-button/settings-button.component.d.ts +22 -0
- package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +6 -3
- package/lib/header/sign-out/sign-out.component.d.ts +4 -4
- package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +13 -9
- package/lib/layout/layout.component.d.ts +16 -4
- package/lib/layout/layout.component.service.d.ts +10 -5
- package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -17
- package/lib/navigation/navigation.component.d.ts +5 -5
- package/lib/types.d.ts +3 -2
- package/package.json +95 -47
- package/theme.css +1 -0
- package/esm2022/lib/layout/layout.component.module.mjs +0 -30
- package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +0 -27
- package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +0 -36
- package/lib/layout/layout.component.module.d.ts +0 -10
- package/lib/sidenav-content/sidenav-content.component.d.ts +0 -10
- package/lib/sidenav-content/sidenav-content.component.service.d.ts +0 -15
- package/src/lib/header/apps-button/_apps-button.component.theme.scss +0 -45
- package/src/lib/navigation/_navigation.component.theme.scss +0 -33
- package/src/lib/navigation/navigation-item/_navigation-item.component.theme.scss +0 -45
- package/src/lib/sidenav/_sidenav.component.theme.scss +0 -65
- package/src/lib/toggle-window-sidenav-button/_toggle-window-sidenav-button.component.theme.scss +0 -15
|
@@ -18,9 +18,13 @@ export class NavigationProgressBarComponent {
|
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationProgressBarComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
21
|
+
args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
22
|
+
NgIf,
|
|
23
|
+
MatProgressBarModule,
|
|
24
|
+
AsyncPipe,
|
|
25
|
+
], template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n color=\"accent\"\n mode=\"indeterminate\"\n></mat-progress-bar>\n" }]
|
|
22
26
|
}], ctorParameters: function () { return [{ type: i2.Router, decorators: [{
|
|
23
27
|
type: Inject,
|
|
24
28
|
args: [Router]
|
|
25
29
|
}] }]; } });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixNQUFNLEdBQ1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsTUFBTSxFQUNOLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFjekIsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNrQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUU5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEMsTUFBTSxDQUNKLEtBQUssQ0FBQyxFQUFFLENBQ04sS0FBSyxZQUFZLGVBQWU7WUFDaEMsS0FBSyxZQUFZLGFBQWE7WUFDOUIsS0FBSyxZQUFZLGdCQUFnQixDQUNwQyxFQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7OEdBaEJVLDhCQUE4QixrQkFLL0IsTUFBTTtrR0FMTCw4QkFBOEIsd0ZDbEMzQywwSEFLQSwwRER3QkksSUFBSSw0RkFDSixvQkFBb0Isb05BQ3BCLFNBQVM7OzJGQUdBLDhCQUE4QjtrQkFaMUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osb0JBQW9CO3dCQUNwQixTQUFTO3FCQUNWOzswQkFPRSxNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkNhbmNlbCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBSb3V0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0lmLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLW5hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL25hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uUHJvZ3Jlc3NCYXJDb21wb25lbnQge1xuXG4gIHB1YmxpYyBuYXZpZ2F0aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChSb3V0ZXIpIHB1YmxpYyByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgdGhpcy5uYXZpZ2F0aW5nJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgZmlsdGVyKFxuICAgICAgICBldmVudCA9PlxuICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0IHx8XG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8XG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsLFxuICAgICAgKSxcbiAgICAgIG1hcChldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXG4gICAgKTtcbiAgfVxuXG59XG4iLCI8bWF0LXByb2dyZXNzLWJhclxuICAqbmdJZj1cIm5hdmlnYXRpbmckIHwgYXN5bmNcIlxuICBjb2xvcj1cImFjY2VudFwiXG4gIG1vZGU9XCJpbmRldGVybWluYXRlXCJcbj48L21hdC1wcm9ncmVzcy1iYXI+XG4iXX0=
|
|
@@ -11,13 +11,13 @@ export class ResetButtonComponent {
|
|
|
11
11
|
this.resetService = resetService;
|
|
12
12
|
}
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ResetButtonComponent, deps: [{ token: ResetService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: ResetButtonComponent, isStandalone: true, selector: "rxap-reset-button", ngImport: i0, template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: ResetButtonComponent, isStandalone: true, selector: "rxap-reset-button", ngImport: i0, template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon svgIcon=\"refresh\"></mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ResetButtonComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
|
-
args: [{ selector: 'rxap-reset-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule], template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon
|
|
18
|
+
args: [{ selector: 'rxap-reset-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule], template: "<button (click)=\"resetService.resetAll()\" mat-icon-button>\n <mat-icon svgIcon=\"refresh\"></mat-icon>\n</button>\n" }]
|
|
19
19
|
}], ctorParameters: function () { return [{ type: i3.ResetService, decorators: [{
|
|
20
20
|
type: Inject,
|
|
21
21
|
args: [ResetService]
|
|
22
22
|
}] }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3Jlc2V0LWJ1dHRvbi9yZXNldC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvcmVzZXQtYnV0dG9uL3Jlc2V0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBVTNELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFFa0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFFNUMsQ0FBQzs4R0FMVSxvQkFBb0Isa0JBRXJCLFlBQVk7a0dBRlgsb0JBQW9CLDZFQ2pCakMsd0hBR0EseUREWWEsZUFBZSwyTEFBRSxhQUFhOzsyRkFFOUIsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFFLGVBQWUsRUFBRSxhQUFhLENBQUU7OzBCQUl4QyxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzZXRTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1yZXNldC1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzZXQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3Jlc2V0LWJ1dHRvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlc2V0QnV0dG9uQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChSZXNldFNlcnZpY2UpXG4gICAgcHVibGljIHJlYWRvbmx5IHJlc2V0U2VydmljZTogUmVzZXRTZXJ2aWNlLFxuICApIHtcbiAgfVxufVxuIiwiPGJ1dHRvbiAoY2xpY2spPVwicmVzZXRTZXJ2aWNlLnJlc2V0QWxsKClcIiBtYXQtaWNvbi1idXR0b24+XG4gIDxtYXQtaWNvbiBzdmdJY29uPVwicmVmcmVzaFwiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
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 { ChangelogService } from '@rxap/ngx-changelog';
|
|
9
|
+
import { ThemeService } from '@rxap/services';
|
|
10
|
+
import { map, tap, } from 'rxjs/operators';
|
|
11
|
+
import { LanguageSelectorComponent } from '../language-selector/language-selector.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@rxap/services";
|
|
14
|
+
import * as i2 from "@angular/router";
|
|
15
|
+
import * as i3 from "@rxap/ngx-changelog";
|
|
16
|
+
import * as i4 from "@angular/common";
|
|
17
|
+
import * as i5 from "@angular/material/button";
|
|
18
|
+
import * as i6 from "@angular/material/icon";
|
|
19
|
+
import * as i7 from "@angular/material/menu";
|
|
20
|
+
import * as i8 from "@angular/cdk/portal";
|
|
21
|
+
export class SettingsButtonComponent {
|
|
22
|
+
constructor(theme, route, injector, changelogService) {
|
|
23
|
+
this.theme = theme;
|
|
24
|
+
this.route = route;
|
|
25
|
+
this.injector = injector;
|
|
26
|
+
this.changelogService = changelogService;
|
|
27
|
+
this.isDevMode = isDevMode();
|
|
28
|
+
this.items = signal([]);
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this._subscription?.unsubscribe();
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this._subscription = this.route.data.pipe(map(data => this.getCustomMenuItems(data)), map(items => items.map(item => new ComponentPortal(item, undefined, this.injector))), tap(items => this.items.set(items))).subscribe();
|
|
35
|
+
}
|
|
36
|
+
getCustomMenuItems(data) {
|
|
37
|
+
if (data?.layout?.header?.menu?.items?.length) {
|
|
38
|
+
return data.layout.header.menu.items;
|
|
39
|
+
}
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
openChangelogDialog() {
|
|
43
|
+
this.changelogService.showChangelogDialog();
|
|
44
|
+
}
|
|
45
|
+
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 }, { token: i3.ChangelogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
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 svgIcon=\"cog\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n <mat-icon *ngIf=\"theme.darkMode\" svgIcon=\"brightness-2\"></mat-icon>\n <mat-icon *ngIf=\"!theme.darkMode\" svgIcon=\"brightness-5\"></mat-icon>\n <span i18n>Mode</span>\n </button>\n <rxap-language-selector *ngIf=\"!isDevMode\"></rxap-language-selector>\n <button (click)=\"openChangelogDialog()\" mat-menu-item>\n <mat-icon svgIcon=\"format-list-numbered\"></mat-icon>\n <span i18n>What's new</span>\n </button>\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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.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: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i8.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SettingsButtonComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'rxap-settings-button', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, LanguageSelectorComponent, MatMenuModule, PortalModule], template: "<button [matMenuTriggerFor]=\"menu\" mat-icon-button>\n <mat-icon svgIcon=\"cog\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button (click)=\"theme.toggleDarkTheme()\" mat-menu-item>\n <mat-icon *ngIf=\"theme.darkMode\" svgIcon=\"brightness-2\"></mat-icon>\n <mat-icon *ngIf=\"!theme.darkMode\" svgIcon=\"brightness-5\"></mat-icon>\n <span i18n>Mode</span>\n </button>\n <rxap-language-selector *ngIf=\"!isDevMode\"></rxap-language-selector>\n <button (click)=\"openChangelogDialog()\" mat-menu-item>\n <mat-icon svgIcon=\"format-list-numbered\"></mat-icon>\n <span i18n>What's new</span>\n </button>\n <ng-container *ngFor=\"let item of items()\">\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n </ng-container>\n</mat-menu>\n" }]
|
|
51
|
+
}], ctorParameters: function () { return [{ type: i1.ThemeService }, { type: i2.ActivatedRoute }, { type: i0.Injector }, { type: i3.ChangelogService }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBR1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUNMLEdBQUcsRUFDSCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7OztBQVM3RixNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQ2tCLEtBQW1CLEVBQ2xCLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLGdCQUFrQztRQUhuQyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVI5QyxjQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFDL0IsVUFBSyxHQUFHLE1BQU0sQ0FBa0MsRUFBRSxDQUFDLENBQUM7SUFVcEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUNwRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFTO1FBQ2xDLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBcENVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGdGQ2xDcEMsNndCQW1CQSx5RERXYSxZQUFZLCtQQUFFLGVBQWUsMkxBQUUsYUFBYSxvTEFBRSx5QkFBeUIsa0VBQUUsYUFBYSwrWUFBRSxZQUFZOzsyRkFJcEcsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBDb21wb25lbnRUeXBlLFxuICBQb3J0YWxNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIGlzRGV2TW9kZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2hhbmdlbG9nU2VydmljZSB9IGZyb20gJ0ByeGFwL25neC1jaGFuZ2Vsb2cnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtc2V0dGluZ3MtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCwgTWF0TWVudU1vZHVsZSwgUG9ydGFsTW9kdWxlIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgaXNEZXZNb2RlID0gaXNEZXZNb2RlKCk7XG4gIGl0ZW1zID0gc2lnbmFsPEFycmF5PENvbXBvbmVudFBvcnRhbDx1bmtub3duPj4+KFtdKTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0aGVtZTogVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlbG9nU2VydmljZTogQ2hhbmdlbG9nU2VydmljZSxcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMucm91dGUuZGF0YS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gdGhpcy5nZXRDdXN0b21NZW51SXRlbXMoZGF0YSkpLFxuICAgICAgbWFwKGl0ZW1zID0+IGl0ZW1zLm1hcChpdGVtID0+IG5ldyBDb21wb25lbnRQb3J0YWwoaXRlbSwgdW5kZWZpbmVkLCB0aGlzLmluamVjdG9yKSkpLFxuICAgICAgdGFwKGl0ZW1zID0+IHRoaXMuaXRlbXMuc2V0KGl0ZW1zKSksXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VzdG9tTWVudUl0ZW1zKGRhdGE6IGFueSk6IEFycmF5PENvbXBvbmVudFR5cGU8dW5rbm93bj4+IHtcbiAgICBpZiAoZGF0YT8ubGF5b3V0Py5oZWFkZXI/Lm1lbnU/Lml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBkYXRhLmxheW91dC5oZWFkZXIubWVudS5pdGVtcztcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgb3BlbkNoYW5nZWxvZ0RpYWxvZygpIHtcbiAgICB0aGlzLmNoYW5nZWxvZ1NlcnZpY2Uuc2hvd0NoYW5nZWxvZ0RpYWxvZygpO1xuICB9XG5cbn1cbiIsIjxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBtYXQtaWNvbi1idXR0b24+XG4gIDxtYXQtaWNvbiBzdmdJY29uPVwiY29nXCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cInRoZW1lLnRvZ2dsZURhcmtUaGVtZSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJ0aGVtZS5kYXJrTW9kZVwiIHN2Z0ljb249XCJicmlnaHRuZXNzLTJcIj48L21hdC1pY29uPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cIiF0aGVtZS5kYXJrTW9kZVwiIHN2Z0ljb249XCJicmlnaHRuZXNzLTVcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+TW9kZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxyeGFwLWxhbmd1YWdlLXNlbGVjdG9yICpuZ0lmPVwiIWlzRGV2TW9kZVwiPjwvcnhhcC1sYW5ndWFnZS1zZWxlY3Rvcj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib3BlbkNoYW5nZWxvZ0RpYWxvZygpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZvcm1hdC1saXN0LW51bWJlcmVkXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPldoYXQncyBuZXc8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zKClcIj5cbiAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJpdGVtXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1tZW51PlxuIl19
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
3
|
-
import { MatSidenav } from '@angular/material/sidenav';
|
|
4
|
-
import { Required } from '@rxap/utilities';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
1
|
import { NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
7
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { LayoutComponentService } from '../../layout/layout.component.service';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "
|
|
10
|
-
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";
|
|
11
11
|
export class SidenavToggleButtonComponent {
|
|
12
|
-
|
|
13
|
-
|
|
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 }); }
|
|
14
18
|
}
|
|
15
|
-
__decorate([
|
|
16
|
-
Required,
|
|
17
|
-
__metadata("design:type", MatSidenav)
|
|
18
|
-
], SidenavToggleButtonComponent.prototype, "sidenav", void 0);
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavToggleButtonComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
22
|
+
MatButtonModule,
|
|
23
|
+
NgIf,
|
|
24
|
+
MatIconModule,
|
|
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,27 +1,23 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
+
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
3
3
|
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
-
import { SignOutDirective } from '@rxap/authentication';
|
|
5
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@
|
|
8
|
-
import * as i2 from "@angular/material/
|
|
9
|
-
import * as i3 from "@angular/
|
|
6
|
+
import * as i1 from "@rxap/authentication";
|
|
7
|
+
import * as i2 from "@angular/material/button";
|
|
8
|
+
import * as i3 from "@angular/material/icon";
|
|
10
9
|
export class SignOutComponent {
|
|
11
|
-
constructor(
|
|
12
|
-
this.
|
|
10
|
+
constructor(authenticationService) {
|
|
11
|
+
this.authenticationService = authenticationService;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
this.
|
|
13
|
+
async logout() {
|
|
14
|
+
await this.authenticationService.signOut();
|
|
16
15
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, deps: [{ token:
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SignOutComponent, isStandalone: true, selector: "rxap-sign-out", ngImport: i0, template: "<button\n (
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, deps: [{ token: i1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SignOutComponent, isStandalone: true, selector: "rxap-sign-out", ngImport: i0, template: "<button\n mat-icon-button\n (click)=\"logout()\"\n>\n <mat-icon svgIcon=\"logout\"></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: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
18
|
}
|
|
20
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, decorators: [{
|
|
21
20
|
type: Component,
|
|
22
|
-
args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule,
|
|
23
|
-
}], ctorParameters: function () { return [{ type:
|
|
24
|
-
|
|
25
|
-
args: [Router]
|
|
26
|
-
}] }]; } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBRW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWpDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUUsR0FBRyxDQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQVZVLGdCQUFnQixrQkFHakIsTUFBTTtrR0FITCxnQkFBZ0IseUVDbEI3Qiw4SEFPQSx5RERTYSxlQUFlLDRMQUFFLGdCQUFnQiw2RkFBRSxhQUFhOzsyRkFFaEQsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFFOzswQkFLMUQsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBTaWduT3V0RGlyZWN0aXZlIH0gZnJvbSAnQHJ4YXAvYXV0aGVudGljYXRpb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1zaWduLW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduLW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9zaWduLW91dC5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgTWF0QnV0dG9uTW9kdWxlLCBTaWduT3V0RGlyZWN0aXZlLCBNYXRJY29uTW9kdWxlIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25PdXRDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUm91dGVyKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIHJlZGlyZWN0VG9Sb290KCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsgJy8nIF0pO1xuICB9XG5cbn1cbiIsIjxidXR0b25cbiAgKHN1Y2Nlc3NmdWwpPVwicmVkaXJlY3RUb1Jvb3QoKVwiXG4gIG1hdC1pY29uLWJ1dHRvblxuICByeGFwU2lnbk91dFxuPlxuICA8bWF0LWljb24+bG9naW48L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
|
|
21
|
+
args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule], template: "<button\n mat-icon-button\n (click)=\"logout()\"\n>\n <mat-icon svgIcon=\"logout\"></mat-icon>\n</button>\n" }]
|
|
22
|
+
}], ctorParameters: function () { return [{ type: i1.RxapAuthenticationService }]; } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFVM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUNtQixxQkFBZ0Q7UUFBaEQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtJQUVuRSxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0FUVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5RUNoQjdCLGdIQU1BLHlERFFhLGVBQWUsMkxBQUUsYUFBYTs7MkZBRTlCLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0ByeGFwL2F1dGhlbnRpY2F0aW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtc2lnbi1vdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lnbi1vdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2lnbi1vdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSBdLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduT3V0Q29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uU2VydmljZTogUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCkge1xuICAgIGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLnNpZ25PdXQoKTtcbiAgfVxuXG59XG4iLCI8YnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICAoY2xpY2spPVwibG9nb3V0KClcIlxuPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cImxvZ291dFwiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -1,42 +1,45 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
|
|
2
|
-
import { UserService } from '@rxap/authentication';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { isDefined } from '@rxap/rxjs';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
1
|
import { AsyncPipe, NgIf, } from '@angular/common';
|
|
7
|
-
import {
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Inject, InjectionToken, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
5
|
import { MatMenuModule } from '@angular/material/menu';
|
|
9
|
-
import {
|
|
6
|
+
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
7
|
+
import { UserProfileDataSource } from '@rxap/ngx-user';
|
|
8
|
+
import { distinctUntilChanged, filter, skip, } from 'rxjs';
|
|
9
|
+
import { map, switchMap, } from 'rxjs/operators';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@
|
|
12
|
-
import * as i2 from "@
|
|
13
|
-
import * as i3 from "@angular/material/
|
|
14
|
-
import * as i4 from "@
|
|
11
|
+
import * as i1 from "@rxap/ngx-user";
|
|
12
|
+
import * as i2 from "@rxap/authentication";
|
|
13
|
+
import * as i3 from "@angular/material/menu";
|
|
14
|
+
import * as i4 from "@angular/material/icon";
|
|
15
|
+
export const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken('extract-username-from-profile', {
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
factory: () => (profile) => (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
|
|
18
|
+
});
|
|
15
19
|
export class UserProfileIconComponent {
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
constructor(userProfileService, authenticationService, extractUsernameFromProfile) {
|
|
21
|
+
this.userProfileService = userProfileService;
|
|
22
|
+
this.authenticationService = authenticationService;
|
|
23
|
+
this.username = toSignal(this.authenticationService.isAuthenticated$.pipe(filter(Boolean), switchMap(() => this.userProfileService.connect({
|
|
24
|
+
viewChange: this.authenticationService.isAuthenticated$.pipe(skip(1), filter(Boolean), distinctUntilChanged()),
|
|
25
|
+
})), filter(Boolean), map(extractUsernameFromProfile)), { initialValue: null });
|
|
26
|
+
}
|
|
27
|
+
async logout() {
|
|
28
|
+
await this.authenticationService.signOut();
|
|
24
29
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, deps: [{ token:
|
|
26
|
-
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 [
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, deps: [{ token: i1.UserProfileDataSource }, { token: i2.RxapAuthenticationService }, { token: EXTRACT_USERNAME_FROM_PROFILE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
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\" svgIcon=\"account-circle\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\" class=\"!max-w-none\">\n <button mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"account\"></mat-icon>\n <span>{{username()}}</span>\n </span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"logout\"></mat-icon>\n <span i18n>Logout</span>\n </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: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
32
|
}
|
|
28
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, decorators: [{
|
|
29
34
|
type: Component,
|
|
30
35
|
args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
31
|
-
FlexModule,
|
|
32
36
|
MatMenuModule,
|
|
33
|
-
AvatarBackgroundImageDirective,
|
|
34
|
-
NgIf,
|
|
35
37
|
MatIconModule,
|
|
38
|
+
NgIf,
|
|
36
39
|
AsyncPipe,
|
|
37
|
-
], template: "<button [matMenuTriggerFor]=\"menu\"\n [
|
|
38
|
-
}], ctorParameters: function () { return [{ type:
|
|
40
|
+
], template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon flex flex-row justify-center items-center\">\n <mat-icon class=\"avatar-icon\" svgIcon=\"account-circle\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\" class=\"!max-w-none\">\n <button mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"account\"></mat-icon>\n <span>{{username()}}</span>\n </span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"logout\"></mat-icon>\n <span i18n>Logout</span>\n </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
|
+
}], ctorParameters: function () { return [{ type: i1.UserProfileDataSource }, { type: i2.RxapAuthenticationService }, { type: undefined, decorators: [{
|
|
39
42
|
type: Inject,
|
|
40
|
-
args: [
|
|
43
|
+
args: [EXTRACT_USERNAME_FROM_PROFILE]
|
|
41
44
|
}] }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sY0FBYyxHQUVmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUl4QixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FDN0QsK0JBQStCLEVBQy9CO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUk7Q0FDOUcsQ0FDRixDQUFDO0FBZUYsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUNtQixrQkFBNEMsRUFDNUMscUJBQWdELEVBRS9ELDBCQUEyRDtRQUg1Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTBCO1FBQzVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7UUFJakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQzlDLFVBQVUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMxRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLG9CQUFvQixFQUFFLENBQ3ZCO1NBQ0YsQ0FBQyxDQUFDLEVBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUNoQyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdDLENBQUM7OEdBMUJVLHdCQUF3QixnR0FPekIsNkJBQTZCO2tHQVA1Qix3QkFBd0Isa0ZDakRyQyw0ckJBb0JBLHdXRHVCSSxhQUFhLCtZQUNiLGFBQWE7OzJGQUtKLHdCQUF3QjtrQkFicEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixJQUFJO3dCQUNKLFNBQVM7cUJBQ1Y7OzBCQVNFLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0lmLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0ByeGFwL2F1dGhlbnRpY2F0aW9uJztcbmltcG9ydCB7IFVzZXJQcm9maWxlRGF0YVNvdXJjZSB9IGZyb20gJ0ByeGFwL25neC11c2VyJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIHNraXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgRXh0cmFjdFVzZXJuYW1lRnJvbVByb2ZpbGVGbjxUID0gdW5rbm93bj4gPSAocHJvZmlsZTogVCkgPT4gc3RyaW5nIHwgbnVsbDtcblxuZXhwb3J0IGNvbnN0IEVYVFJBQ1RfVVNFUk5BTUVfRlJPTV9QUk9GSUxFID0gbmV3IEluamVjdGlvblRva2VuPEV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlRm4+KFxuICAnZXh0cmFjdC11c2VybmFtZS1mcm9tLXByb2ZpbGUnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IChwcm9maWxlOiBhbnkpID0+IChwcm9maWxlID8gcHJvZmlsZS51c2VybmFtZSA/PyBwcm9maWxlLmVtYWlsID8/IHByb2ZpbGUubmFtZSA6IG51bGwpID8/IG51bGwsXG4gIH0sXG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXVzZXItcHJvZmlsZS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcHJvZmlsZS1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3VzZXItcHJvZmlsZS1pY29uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclByb2ZpbGVJY29uQ29tcG9uZW50PFQgPSB1bmtub3duPiB7XG5cbiAgcHVibGljIHVzZXJuYW1lOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvZmlsZVNlcnZpY2U6IFVzZXJQcm9maWxlRGF0YVNvdXJjZTxUPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uU2VydmljZTogUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBASW5qZWN0KEVYVFJBQ1RfVVNFUk5BTUVfRlJPTV9QUk9GSUxFKVxuICAgICAgZXh0cmFjdFVzZXJuYW1lRnJvbVByb2ZpbGU6IEV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlRm48VD4sXG4gICkge1xuICAgIHRoaXMudXNlcm5hbWUgPSB0b1NpZ25hbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQkLnBpcGUoXG4gICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy51c2VyUHJvZmlsZVNlcnZpY2UuY29ubmVjdCh7XG4gICAgICAgIHZpZXdDaGFuZ2U6IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICApLFxuICAgICAgfSkpLFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgbWFwKGV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlKSxcbiAgICApLCB7IGluaXRpYWxWYWx1ZTogbnVsbCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dvdXQoKSB7XG4gICAgYXdhaXQgdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2Uuc2lnbk91dCgpO1xuICB9XG5cblxufVxuIiwiPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhdXNlcm5hbWUoKVwiXG4gICAgICAgIGNsYXNzPVwicHJvZmlsZS1pY29uIGZsZXggZmxleC1yb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gIDxtYXQtaWNvbiBjbGFzcz1cImF2YXRhci1pY29uXCIgc3ZnSWNvbj1cImFjY291bnQtY2lyY2xlXCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgW3lQb3NpdGlvbl09XCInYmVsb3cnXCIgY2xhc3M9XCIhbWF4LXctbm9uZVwiPlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgPHNwYW4gY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImFjY291bnRcIj48L21hdC1pY29uPlxuICAgICAgPHNwYW4+e3t1c2VybmFtZSgpfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0KClcIiBtYXQtbWVudS1pdGVtPlxuICAgIDxzcGFuIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJsb2dvdXRcIj48L21hdC1pY29uPlxuICAgICAgPHNwYW4gaTE4bj5Mb2dvdXQ8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbWF0LW1lbnU+XG4iXX0=
|
|
@@ -1,42 +1,69 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AsyncPipe, NgIf, NgOptimizedImage, } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Inject, ViewChild, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
3
8
|
import { MatSidenav, MatSidenavModule, } from '@angular/material/sidenav';
|
|
4
|
-
import {
|
|
9
|
+
import { RouterLink, RouterOutlet, } from '@angular/router';
|
|
10
|
+
import { DetermineReleaseName, RXAP_ENVIRONMENT, } from '@rxap/environment';
|
|
11
|
+
import { IconLoaderService } from '@rxap/icon';
|
|
12
|
+
import { StatusIndicatorComponent } from '@rxap/ngx-status-check';
|
|
5
13
|
import { FooterComponent } from '../footer/footer.component';
|
|
6
|
-
import { WindowContainerSidenavComponent } from '../window-container-sidenav/window-container-sidenav.component';
|
|
7
|
-
import { ToggleWindowSidenavButtonComponent } from '../toggle-window-sidenav-button/toggle-window-sidenav-button.component';
|
|
8
|
-
import { SidenavContentComponent } from '../sidenav-content/sidenav-content.component';
|
|
9
|
-
import { RouterLink } from '@angular/router';
|
|
10
|
-
import { SidenavHeaderDirective } from '../sidenav/sidenav-header.directive';
|
|
11
|
-
import { SidenavComponent } from '../sidenav/sidenav.component';
|
|
12
14
|
import { HeaderComponent } from '../header/header.component';
|
|
15
|
+
import { NavigationComponent } from '../navigation/navigation.component';
|
|
16
|
+
import { LayoutComponentService } from './layout.component.service';
|
|
13
17
|
import * as i0 from "@angular/core";
|
|
14
18
|
import * as i1 from "./layout.component.service";
|
|
15
|
-
import * as i2 from "@
|
|
19
|
+
import * as i2 from "@rxap/icon";
|
|
20
|
+
import * as i3 from "@angular/material/sidenav";
|
|
21
|
+
import * as i4 from "@angular/flex-layout/extended";
|
|
22
|
+
import * as i5 from "@angular/material/icon";
|
|
23
|
+
import * as i6 from "@angular/material/button";
|
|
16
24
|
export class LayoutComponent {
|
|
17
|
-
constructor(layoutComponentService) {
|
|
25
|
+
constructor(layoutComponentService, environment, iconLoaderService) {
|
|
18
26
|
this.layoutComponentService = layoutComponentService;
|
|
19
|
-
this.
|
|
27
|
+
this.environment = environment;
|
|
28
|
+
iconLoaderService.load();
|
|
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);
|
|
20
40
|
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponent, deps: [{ token: i1.LayoutComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
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-
|
|
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: "<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 }); }
|
|
23
43
|
}
|
|
24
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
25
45
|
type: Component,
|
|
26
46
|
args: [{ selector: 'rxap-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
27
47
|
HeaderComponent,
|
|
28
48
|
MatSidenavModule,
|
|
29
|
-
|
|
30
|
-
|
|
49
|
+
AsyncPipe,
|
|
50
|
+
FlexLayoutModule,
|
|
51
|
+
MatIconModule,
|
|
52
|
+
MatButtonModule,
|
|
31
53
|
RouterLink,
|
|
32
|
-
|
|
33
|
-
ToggleWindowSidenavButtonComponent,
|
|
34
|
-
WindowContainerSidenavComponent,
|
|
54
|
+
NgIf,
|
|
35
55
|
FooterComponent,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
MatMenuModule,
|
|
57
|
+
NgOptimizedImage,
|
|
58
|
+
NavigationComponent,
|
|
59
|
+
RouterOutlet,
|
|
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"] }]
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutComponentService }, { type: undefined, decorators: [{
|
|
63
|
+
type: Inject,
|
|
64
|
+
args: [RXAP_ENVIRONMENT]
|
|
65
|
+
}] }, { type: i2.IconLoaderService }]; }, propDecorators: { sidenav: [{
|
|
39
66
|
type: ViewChild,
|
|
40
67
|
args: [MatSidenav, { static: true }]
|
|
41
68
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZ0JBQWdCLEdBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUM1SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBcUI3RCxNQUFNLE9BQU8sZUFBZTtJQU0xQixZQUNrQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUx6RCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFPakMsQ0FBQzs4R0FUVSxlQUFlO2tHQUFmLGVBQWUsZ0hBSWYsVUFBVSw4REMzQ3ZCLDBqREEwQ0Esc1REZkksZUFBZSwwR0FDZixnQkFBZ0IsMllBQ2hCLGdCQUFnQix5REFDaEIsc0JBQXNCLGdFQUN0QixVQUFVLDROQUNWLHVCQUF1QixzRkFDdkIsa0NBQWtDLG1KQUNsQywrQkFBK0IsMEVBQy9CLGVBQWUsbURBQ2YsU0FBUzs7MkZBR0EsZUFBZTtrQkFuQjNCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLFVBQVU7d0JBQ1YsdUJBQXVCO3dCQUN2QixrQ0FBa0M7d0JBQ2xDLCtCQUErQjt3QkFDL0IsZUFBZTt3QkFDZixTQUFTO3FCQUNWOzZHQU0rQyxPQUFPO3NCQUF0RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE1hdFNpZGVuYXYsXG4gIE1hdFNpZGVuYXZNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdpbmRvd0NvbnRhaW5lclNpZGVuYXZDb21wb25lbnQgfSBmcm9tICcuLi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYvd2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVXaW5kb3dTaWRlbmF2QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi90b2dnbGUtd2luZG93LXNpZGVuYXYtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlbmF2Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3NpZGVuYXYtY29udGVudC9zaWRlbmF2LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2lkZW5hdkhlYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi1oZWFkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpZGVuYXZDb21wb25lbnQgfSBmcm9tICcuLi9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2xheW91dC5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBIZWFkZXJDb21wb25lbnQsXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBTaWRlbmF2Q29tcG9uZW50LFxuICAgIFNpZGVuYXZIZWFkZXJEaXJlY3RpdmUsXG4gICAgUm91dGVyTGluayxcbiAgICBTaWRlbmF2Q29udGVudENvbXBvbmVudCxcbiAgICBUb2dnbGVXaW5kb3dTaWRlbmF2QnV0dG9uQ29tcG9uZW50LFxuICAgIFdpbmRvd0NvbnRhaW5lclNpZGVuYXZDb21wb25lbnQsXG4gICAgRm9vdGVyQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29tcG9uZW50IHtcblxuICBwdWJsaWMgb3BlbldpbmRvd1NpZGVuYXYgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0Q29tcG9uZW50U2VydmljZTogTGF5b3V0Q29tcG9uZW50U2VydmljZSxcbiAgKSB7XG4gIH1cblxufVxuIiwiPHJ4YXAtaGVhZGVyIFtzaWRlbmF2XT1cInNpZGVuYXZcIiBjbGFzcz1cImhlYWRlclwiPjwvcnhhcC1oZWFkZXI+XG48bWF0LXNpZGVuYXYtY29udGFpbmVyIGF1dG9zaXplIGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxtYXQtc2lkZW5hdlxuICAgIFtmaXhlZEJvdHRvbUdhcF09XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmZpeGVkQm90dG9tR2FwJCB8IGFzeW5jXCJcbiAgICBbZml4ZWRJblZpZXdwb3J0XT1cInRydWVcIlxuICAgIFtmaXhlZFRvcEdhcF09XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmZpeGVkVG9wR2FwJCB8IGFzeW5jXCJcbiAgICBbbW9kZV09XCIobGF5b3V0Q29tcG9uZW50U2VydmljZS5tb2RlJCB8IGFzeW5jKSA/PyAnc2lkZSdcIlxuICAgIFtvcGVuZWRdPVwiKGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJCB8IGFzeW5jKSA/PyB0cnVlXCJcbiAgICBjbGFzcz1cInNpZGVuYXZcIlxuICA+XG4gICAgPHJ4YXAtc2lkZW5hdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSByeGFwU2lkZW5hdkhlYWRlcj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLyddXCJcbiAgICAgICAgICBbc3JjXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UubG9nby5zcmNcIlxuICAgICAgICAgIFt3aWR0aF09XCJsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28ud2lkdGhcIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwibG9nb1wiXG4gICAgICAgIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcnhhcC1zaWRlbmF2PlxuICA8L21hdC1zaWRlbmF2PlxuICA8bWF0LXNpZGVuYXYtY29udGVudCBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICA8cnhhcC1zaWRlbmF2LWNvbnRlbnQgW3NpZGVuYXZdPVwic2lkZW5hdlwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPHJ4YXAtdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvblxuICAgICAgICBbKG9wZW5XaW5kb3dTaWRlbmF2KV09XCJvcGVuV2luZG93U2lkZW5hdlwiPjwvcnhhcC10b2dnbGUtd2luZG93LXNpZGVuYXYtYnV0dG9uPlxuICAgIDwvcnhhcC1zaWRlbmF2LWNvbnRlbnQ+XG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbiAgPG1hdC1zaWRlbmF2XG4gICAgW2ZpeGVkQm90dG9tR2FwXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkIHwgYXN5bmNcIlxuICAgIFtmaXhlZEluVmlld3BvcnRdPVwidHJ1ZVwiXG4gICAgW2ZpeGVkVG9wR2FwXT1cImxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRUb3BHYXAkIHwgYXN5bmNcIlxuICAgIFtvcGVuZWRdPVwib3BlbldpbmRvd1NpZGVuYXZcIlxuICAgIGNsYXNzPVwid2luZG93LWNvbnRhaW5lci1zaWRlbmF2XCJcbiAgICBtb2RlPVwic2lkZVwiXG4gICAgcG9zaXRpb249XCJlbmRcIlxuICA+XG4gICAgPHJ4YXAtd2luZG93LWNvbnRhaW5lci1zaWRlbmF2PjwvcnhhcC13aW5kb3ctY29udGFpbmVyLXNpZGVuYXY+XG4gIDwvbWF0LXNpZGVuYXY+XG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cbjxyeGFwLWZvb3RlciBjbGFzcz1cImZvb3RlclwiPjwvcnhhcC1mb290ZXI+XG4iXX0=
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUVMLFVBQVUsRUFDVixnQkFBZ0IsR0FDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsZ0JBQWdCLEdBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBMEJwRSxNQUFNLE9BQU8sZUFBZTtJQWMxQixZQUNrQixzQkFBOEMsRUFFN0MsV0FBd0IsRUFDekMsaUJBQW9DO1FBSHBCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFFN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFHekMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLFdBQVc7WUFDZCxRQUFRLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFdBQVc7WUFDZCxRQUFRLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLHVDQUF1QyxDQUFDO1FBQy9GLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7OEdBaENVLGVBQWUsd0RBZ0JoQixnQkFBZ0I7a0dBaEJmLGVBQWUsZ0hBWWYsVUFBVSw4REMxRXZCLHFsRUF1REEsb2FEVEksZUFBZSwwRUFDZixnQkFBZ0IsMFlBRWhCLGdCQUFnQixpaUJBQ2hCLGFBQWEsbUxBQ2IsZUFBZSw0TEFDZixVQUFVLDROQUNWLElBQUksNkZBQ0osZUFBZSx1REFDZixhQUFhLCtCQUViLG1CQUFtQixvR0FDbkIsWUFBWSwySkFDWix3QkFBd0I7OzJGQUdmLGVBQWU7a0JBdkIzQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWix3QkFBd0I7cUJBQ3pCOzswQkFrQkUsTUFBTTsyQkFBQyxnQkFBZ0I7NEVBSnNCLE9BQU87c0JBQXRELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFzeW5jUGlwZSxcbiAgTmdJZixcbiAgTmdPcHRpbWl6ZWRJbWFnZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgU2lnbmFsLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE1hdERyYXdlck1vZGUsXG4gIE1hdFNpZGVuYXYsXG4gIE1hdFNpZGVuYXZNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtcbiAgUm91dGVyTGluayxcbiAgUm91dGVyT3V0bGV0LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGV0ZXJtaW5lUmVsZWFzZU5hbWUsXG4gIEVudmlyb25tZW50LFxuICBSWEFQX0VOVklST05NRU5ULFxufSBmcm9tICdAcnhhcC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBJY29uTG9hZGVyU2VydmljZSB9IGZyb20gJ0ByeGFwL2ljb24nO1xuaW1wb3J0IHsgU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnQHJ4YXAvbmd4LXN0YXR1cy1jaGVjayc7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9sYXlvdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBOZ0lmLFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBzaWRlbmF2TW9kZTogU2lnbmFsPE1hdERyYXdlck1vZGU+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRCb3R0b21HYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRUb3BHYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGlubmVkOiBTaWduYWw8Ym9vbGVhbj47XG4gIHB1YmxpYyByZWFkb25seSBjb2xsYXBzYWJsZTogU2lnbmFsPGJvb2xlYW4+O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1NyYzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1dpZHRoOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSByZWxlYXNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuZWQ6IFNpZ25hbDxib29sZWFuPjtcblxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0Q29tcG9uZW50U2VydmljZTogTGF5b3V0Q29tcG9uZW50U2VydmljZSxcbiAgICBASW5qZWN0KFJYQVBfRU5WSVJPTk1FTlQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgaWNvbkxvYWRlclNlcnZpY2U6IEljb25Mb2FkZXJTZXJ2aWNlLFxuICApIHtcbiAgICBpY29uTG9hZGVyU2VydmljZS5sb2FkKCk7XG4gICAgdGhpcy5maXhlZEJvdHRvbUdhcCA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkLCB7IGluaXRpYWxWYWx1ZTogMCB9KTtcbiAgICB0aGlzLmZpeGVkVG9wR2FwID1cbiAgICAgIHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRUb3BHYXAkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5maXhlZFRvcEdhcCQudmFsdWUgfSk7XG4gICAgdGhpcy5zaWRlbmF2TW9kZSA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UubW9kZSQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm1vZGUkLnZhbHVlIH0pO1xuICAgIHRoaXMucGlubmVkID0gdG9TaWduYWwobGF5b3V0Q29tcG9uZW50U2VydmljZS5waW5uZWQkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5waW5uZWQkLnZhbHVlIH0pO1xuICAgIHRoaXMuY29sbGFwc2FibGUgPVxuICAgICAgdG9TaWduYWwobGF5b3V0Q29tcG9uZW50U2VydmljZS5jb2xsYXBzYWJsZSQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmNvbGxhcHNhYmxlJC52YWx1ZSB9KTtcbiAgICB0aGlzLm9wZW5lZCA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJCwgeyBpbml0aWFsVmFsdWU6IGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJC52YWx1ZSB9KTtcbiAgICB0aGlzLmxvZ29TcmMgPSB0aGlzLmxheW91dENvbXBvbmVudFNlcnZpY2UubG9nby5zcmMgPz8gJ2h0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4MTI4cHgnO1xuICAgIHRoaXMubG9nb1dpZHRoID0gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28ud2lkdGggPz8gMjU2O1xuICAgIHRoaXMucmVsZWFzZSA9IERldGVybWluZVJlbGVhc2VOYW1lKHRoaXMuZW52aXJvbm1lbnQpO1xuICB9XG5cbn1cbiIsIjxyeGFwLXN0YXR1cy1pbmRpY2F0b3IgY2xhc3M9XCJmaXhlZCBib3R0b20tMCByaWdodC0wIHotMTBcIj48L3J4YXAtc3RhdHVzLWluZGljYXRvcj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtc2NyZWVuIGp1c3RpZnktYmV0d2VlblwiPlxuICA8cnhhcC1oZWFkZXIgY2xhc3M9XCJ6LTEwIHctZnVsbCBmaXhlZCB0b3AtMFwiPjwvcnhhcC1oZWFkZXI+XG4gIDxtYXQtc2lkZW5hdi1jb250YWluZXIgW25nQ2xhc3NdPVwie1xuICAgICdtYi0xNic6IGZpeGVkQm90dG9tR2FwKCkgPT09IDY0LFxuICAgICdtYi0zMic6IGZpeGVkQm90dG9tR2FwKCkgPT09IDEyOCxcbiAgfVwiIGNsYXNzPVwiZ3JvdyBtdC0xNlwiPlxuICAgIDxtYXQtc2lkZW5hdlxuICAgICAgI21hdFNpZGVuYXY9XCJtYXRTaWRlbmF2XCJcbiAgICAgIFtmaXhlZEJvdHRvbUdhcF09XCJmaXhlZEJvdHRvbUdhcCgpXCJcbiAgICAgIFtmaXhlZEluVmlld3BvcnRdPVwidHJ1ZVwiXG4gICAgICBbZml4ZWRUb3BHYXBdPVwiZml4ZWRUb3BHYXAoKVwiXG4gICAgICBbbW9kZV09XCJzaWRlbmF2TW9kZSgpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgY29sbGFwc2FibGU6IGNvbGxhcHNhYmxlKCkgfVwiXG4gICAgICBjbGFzcz1cInNpZGVuYXZcIlxuICAgICAgW29wZW5lZF09XCJvcGVuZWQoKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCBweS0yIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC15LTUganVzdGlmeS1pdGVtcy1zdHJldGNoXCI+XG5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwibGF5b3V0Q29tcG9uZW50U2VydmljZS50b2dnbGVQaW5uZWQoKVwiICpuZ0lmPVwiY29sbGFwc2FibGUoKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJwbC0yIHByLTIgc2VsZi1zdHJldGNoIGdyb3ctMCBmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGdcIiBpMThuPk5hdmlnYXRpb248L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhcGlubmVkKClcIj5yYWRpb19idXR0b25fdW5jaGVja2VkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInBpbm5lZCgpXCI+cmFkaW9fYnV0dG9uX2NoZWNrZWQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dWxcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJjb2xsYXBzYWJsZSgpICYmICFwaW5uZWQoKSAmJiBtYXRTaWRlbmF2Lm9wZW4oKVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwiY29sbGFwc2FibGUoKSAmJiAhcGlubmVkKCkgJiYgbWF0U2lkZW5hdi5jbG9zZSgpXCIgY2xhc3M9XCJncm93IHNlbGYtc3RyZXRjaFwiXG4gICAgICAgICAgcm9vdFxuICAgICAgICAgIHJ4YXAtbmF2aWdhdGlvblxuICAgICAgICA+XG4gICAgICAgIDwvdWw+XG5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwibG9nb1NyY1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvJ11cIlxuICAgICAgICAgIFt3aWR0aF09XCJsb2dvV2lkdGhcIlxuICAgICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgICAgIGNsYXNzPVwiZ3Jvdy0wIG14LTE2XCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3ctMCBweC0xNlwiPlxuICAgICAgICAgIDxzcGFuPnt7cmVsZWFzZX19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgW25nQ2xhc3NdPVwieyAnbWwtMTYnOiBjb2xsYXBzYWJsZSgpIH1cIiBjbGFzcz1cInAtNFwiPlxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbiAgPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG4gIDxyeGFwLWZvb3RlciBjbGFzcz1cInotMTAgdy1mdWxsIGZpeGVkIGJvdHRvbS0wXCI+PC9yeGFwLWZvb3Rlcj5cbjwvZGl2PlxuPCEtLTxyeGFwLXdpbmRvdy10YXNrLWJhci1jb250YWluZXI+PC9yeGFwLXdpbmRvdy10YXNrLWJhci1jb250YWluZXI+LS0+XG4iXX0=
|