@rxap/layout 16.0.0-dev.32 → 16.0.0-dev.33

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 CHANGED
@@ -3,6 +3,13 @@
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.33](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.32...@rxap/layout@16.0.0-dev.33) (2023-09-28)
7
+
8
+ ### Features
9
+
10
+ - support dynamic font families and theme density ([a212366](https://gitlab.com/rxap/packages/commit/a21236669cfe89f51b5946cd2d28e72411481dc9))
11
+ - support dynamic theme configuration ([2c0cf1d](https://gitlab.com/rxap/packages/commit/2c0cf1d14803dc4f1e7db47cd269c3e8b57de2d4))
12
+
6
13
  # [16.0.0-dev.32](https://gitlab.com/rxap/packages/compare/@rxap/layout@16.0.0-dev.31...@rxap/layout@16.0.0-dev.32) (2023-09-27)
7
14
 
8
15
  **Note:** Version bump only for package @rxap/layout
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.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.12 @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
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.16 @rxap/authorization@^16.0.0-dev.21 @rxap/browser-utilities@^0.0.2-dev.9 @rxap/config@^16.0.0-dev.17 @rxap/data-source@^16.0.0-dev.21 @rxap/directives@^16.0.0-dev.16 @rxap/environment@^16.0.0-dev.16 @rxap/icon@^16.0.0-dev.16 @rxap/material-directives@^16.0.0-dev.18 @rxap/ngx-changelog@^16.1.0-dev.2 @rxap/ngx-localize@^16.1.0-dev.1 @rxap/ngx-status-check@^16.1.0-dev.13 @rxap/ngx-user@^16.1.0-dev.2 @rxap/services@^16.0.0-dev.16 @rxap/utilities@^16.0.0-dev.19 rxjs@^7.8.0 tslib@2.6.2
21
21
  ```
@@ -6,7 +6,7 @@ import { MatIconModule } from '@angular/material/icon';
6
6
  import { MatMenuModule } from '@angular/material/menu';
7
7
  import { ActivatedRoute } from '@angular/router';
8
8
  import { ChangelogService } from '@rxap/ngx-changelog';
9
- import { ThemeService } from '@rxap/services';
9
+ import { ThemeService, } from '@rxap/services';
10
10
  import { map, tap, } from 'rxjs/operators';
11
11
  import { LanguageSelectorComponent } from '../language-selector/language-selector.component';
12
12
  import * as i0 from "@angular/core";
@@ -26,6 +26,13 @@ export class SettingsButtonComponent {
26
26
  this.changelogService = changelogService;
27
27
  this.isDevMode = isDevMode();
28
28
  this.items = signal([]);
29
+ this.savePreviewDensityValue = false;
30
+ this.currentDensityValue = null;
31
+ this.savePreviewTypographyValue = false;
32
+ this.currentTypographyValue = null;
33
+ this.savePreviewThemeValue = false;
34
+ this.currentThemeValue = null;
35
+ this.availableThemes = this.theme.getAvailableThemes();
29
36
  }
30
37
  ngOnDestroy() {
31
38
  this._subscription?.unsubscribe();
@@ -42,11 +49,56 @@ export class SettingsButtonComponent {
42
49
  openChangelogDialog() {
43
50
  this.changelogService.showChangelogDialog();
44
51
  }
52
+ previewDensity(density) {
53
+ this.currentDensityValue = this.theme.getDensity();
54
+ this.theme.setDensity(density);
55
+ }
56
+ saveDensity() {
57
+ if (!this.savePreviewDensityValue) {
58
+ if (this.currentDensityValue) {
59
+ this.theme.setDensity(this.currentDensityValue);
60
+ }
61
+ }
62
+ this.savePreviewDensityValue = false;
63
+ }
64
+ selectDensity() {
65
+ this.savePreviewDensityValue = true;
66
+ }
67
+ previewTypography(typography) {
68
+ this.currentTypographyValue = this.theme.getTypography();
69
+ this.theme.setTypography(typography);
70
+ }
71
+ saveTypography() {
72
+ if (!this.savePreviewTypographyValue) {
73
+ if (this.currentTypographyValue) {
74
+ this.theme.setTypography(this.currentTypographyValue);
75
+ }
76
+ }
77
+ this.savePreviewTypographyValue = false;
78
+ }
79
+ selectTypography() {
80
+ this.savePreviewTypographyValue = true;
81
+ }
82
+ previewTheme(theme) {
83
+ this.currentThemeValue = this.theme.getCurrentTheme();
84
+ this.theme.setTheme(theme);
85
+ }
86
+ saveTheme() {
87
+ if (!this.savePreviewThemeValue) {
88
+ if (this.currentThemeValue) {
89
+ this.theme.setTheme(this.currentThemeValue);
90
+ }
91
+ }
92
+ this.savePreviewThemeValue = false;
93
+ }
94
+ selectTheme() {
95
+ this.savePreviewThemeValue = true;
96
+ }
45
97
  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"] }] }); }
98
+ 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 <button [matMenuTriggerFor]=\"themeMenu\" mat-menu-item>\n <mat-icon svgIcon=\"compare\"></mat-icon>\n <span i18n>Theme</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\n<mat-menu #themeMenu=\"matMenu\" xPosition=\"before\">\n <button [matMenuTriggerFor]=\"themeDensityMenu\" mat-menu-item>\n <mat-icon svgIcon=\"move-resize\"></mat-icon>\n <span i18n>Density</span>\n </button>\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-xs\"></mat-icon>\n <span i18n>Extreme Dense</span>\n </button>\n</mat-menu>\n<mat-menu #themeFontMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography()\" (mouseleave)=\"saveTypography()\" i18n\n mat-menu-item>Default\n </button>\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography('mono')\" (mouseleave)=\"saveTypography()\"\n class=\"font-mono\" i18n mat-menu-item>Mono\n </button>\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography('serif')\" (mouseleave)=\"saveTypography()\"\n class=\"font-serif\" i18n mat-menu-item>Serif\n </button>\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography('sans')\" (mouseleave)=\"saveTypography()\"\n class=\"font-sans\" i18n mat-menu-item>Sans\n </button>\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"selectTheme()\" (mouseenter)=\"previewTheme(themeName)\" (mouseleave)=\"saveTheme()\"\n *ngFor=\"let themeName of availableThemes\"\n mat-menu-item>\n {{ themeName }}\n </button>\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
99
  }
48
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SettingsButtonComponent, decorators: [{
49
101
  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" }]
102
+ 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 <button [matMenuTriggerFor]=\"themeMenu\" mat-menu-item>\n <mat-icon svgIcon=\"compare\"></mat-icon>\n <span i18n>Theme</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\n<mat-menu #themeMenu=\"matMenu\" xPosition=\"before\">\n <button [matMenuTriggerFor]=\"themeDensityMenu\" mat-menu-item>\n <mat-icon svgIcon=\"move-resize\"></mat-icon>\n <span i18n>Density</span>\n </button>\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"selectDensity()\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"saveDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-xs\"></mat-icon>\n <span i18n>Extreme Dense</span>\n </button>\n</mat-menu>\n<mat-menu #themeFontMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography()\" (mouseleave)=\"saveTypography()\" i18n\n mat-menu-item>Default\n </button>\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography('mono')\" (mouseleave)=\"saveTypography()\"\n class=\"font-mono\" i18n mat-menu-item>Mono\n </button>\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography('serif')\" (mouseleave)=\"saveTypography()\"\n class=\"font-serif\" i18n mat-menu-item>Serif\n </button>\n <button (click)=\"selectTypography()\" (mouseenter)=\"previewTypography('sans')\" (mouseleave)=\"saveTypography()\"\n class=\"font-sans\" i18n mat-menu-item>Sans\n </button>\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"selectTheme()\" (mouseenter)=\"previewTheme(themeName)\" (mouseleave)=\"saveTheme()\"\n *ngFor=\"let themeName of availableThemes\"\n mat-menu-item>\n {{ themeName }}\n </button>\n</mat-menu>\n" }]
51
103
  }], 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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBR1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBRUwsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLEdBQUcsRUFDSCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7Ozs7OztBQVM3RixNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQyxZQUNrQixLQUFtQixF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b21wb25lbnRUeXBlLFxuICBQb3J0YWxNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIGlzRGV2TW9kZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2hhbmdlbG9nU2VydmljZSB9IGZyb20gJ0ByeGFwL25neC1jaGFuZ2Vsb2cnO1xuaW1wb3J0IHtcbiAgVGhlbWVEZW5zaXR5LFxuICBUaGVtZVNlcnZpY2UsXG59IGZyb20gJ0ByeGFwL3NlcnZpY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXNldHRpbmdzLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQsIE1hdE1lbnVNb2R1bGUsIFBvcnRhbE1vZHVsZSBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQuc2NzcycgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGlzRGV2TW9kZSA9IGlzRGV2TW9kZSgpO1xuICBpdGVtcyA9IHNpZ25hbDxBcnJheTxDb21wb25lbnRQb3J0YWw8dW5rbm93bj4+PihbXSk7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNhdmVQcmV2aWV3RGVuc2l0eVZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgY3VycmVudERlbnNpdHlWYWx1ZTogVGhlbWVEZW5zaXR5IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzYXZlUHJldmlld1R5cG9ncmFwaHlWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnRUeXBvZ3JhcGh5VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyByZWFkb25seSBhdmFpbGFibGVUaGVtZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHNhdmVQcmV2aWV3VGhlbWVWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnRUaGVtZVZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGhlbWU6IFRoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZWxvZ1NlcnZpY2U6IENoYW5nZWxvZ1NlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuYXZhaWxhYmxlVGhlbWVzID0gdGhpcy50aGVtZS5nZXRBdmFpbGFibGVUaGVtZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMucm91dGUuZGF0YS5waXBlKFxuICAgICAgbWFwKGRhdGEgPT4gdGhpcy5nZXRDdXN0b21NZW51SXRlbXMoZGF0YSkpLFxuICAgICAgbWFwKGl0ZW1zID0+IGl0ZW1zLm1hcChpdGVtID0+IG5ldyBDb21wb25lbnRQb3J0YWwoaXRlbSwgdW5kZWZpbmVkLCB0aGlzLmluamVjdG9yKSkpLFxuICAgICAgdGFwKGl0ZW1zID0+IHRoaXMuaXRlbXMuc2V0KGl0ZW1zKSksXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VzdG9tTWVudUl0ZW1zKGRhdGE6IGFueSk6IEFycmF5PENvbXBvbmVudFR5cGU8dW5rbm93bj4+IHtcbiAgICBpZiAoZGF0YT8ubGF5b3V0Py5oZWFkZXI/Lm1lbnU/Lml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBkYXRhLmxheW91dC5oZWFkZXIubWVudS5pdGVtcztcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgb3BlbkNoYW5nZWxvZ0RpYWxvZygpIHtcbiAgICB0aGlzLmNoYW5nZWxvZ1NlcnZpY2Uuc2hvd0NoYW5nZWxvZ0RpYWxvZygpO1xuICB9XG5cbiAgcHJldmlld0RlbnNpdHkoZGVuc2l0eTogVGhlbWVEZW5zaXR5KSB7XG4gICAgdGhpcy5jdXJyZW50RGVuc2l0eVZhbHVlID0gdGhpcy50aGVtZS5nZXREZW5zaXR5KCk7XG4gICAgdGhpcy50aGVtZS5zZXREZW5zaXR5KGRlbnNpdHkpO1xuICB9XG5cbiAgc2F2ZURlbnNpdHkoKSB7XG4gICAgaWYgKCF0aGlzLnNhdmVQcmV2aWV3RGVuc2l0eVZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50RGVuc2l0eVZhbHVlKSB7XG4gICAgICAgIHRoaXMudGhlbWUuc2V0RGVuc2l0eSh0aGlzLmN1cnJlbnREZW5zaXR5VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNhdmVQcmV2aWV3RGVuc2l0eVZhbHVlID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3REZW5zaXR5KCkge1xuICAgIHRoaXMuc2F2ZVByZXZpZXdEZW5zaXR5VmFsdWUgPSB0cnVlO1xuICB9XG5cbiAgcHJldmlld1R5cG9ncmFwaHkodHlwb2dyYXBoeT86IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFR5cG9ncmFwaHlWYWx1ZSA9IHRoaXMudGhlbWUuZ2V0VHlwb2dyYXBoeSgpO1xuICAgIHRoaXMudGhlbWUuc2V0VHlwb2dyYXBoeSh0eXBvZ3JhcGh5KTtcbiAgfVxuXG4gIHNhdmVUeXBvZ3JhcGh5KCkge1xuICAgIGlmICghdGhpcy5zYXZlUHJldmlld1R5cG9ncmFwaHlWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFR5cG9ncmFwaHlWYWx1ZSkge1xuICAgICAgICB0aGlzLnRoZW1lLnNldFR5cG9ncmFwaHkodGhpcy5jdXJyZW50VHlwb2dyYXBoeVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zYXZlUHJldmlld1R5cG9ncmFwaHlWYWx1ZSA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0VHlwb2dyYXBoeSgpIHtcbiAgICB0aGlzLnNhdmVQcmV2aWV3VHlwb2dyYXBoeVZhbHVlID0gdHJ1ZTtcbiAgfVxuXG4gIHByZXZpZXdUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50VGhlbWVWYWx1ZSA9IHRoaXMudGhlbWUuZ2V0Q3VycmVudFRoZW1lKCk7XG4gICAgdGhpcy50aGVtZS5zZXRUaGVtZSh0aGVtZSk7XG4gIH1cblxuICBzYXZlVGhlbWUoKSB7XG4gICAgaWYgKCF0aGlzLnNhdmVQcmV2aWV3VGhlbWVWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFRoZW1lVmFsdWUpIHtcbiAgICAgICAgdGhpcy50aGVtZS5zZXRUaGVtZSh0aGlzLmN1cnJlbnRUaGVtZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zYXZlUHJldmlld1RoZW1lVmFsdWUgPSBmYWxzZTtcbiAgfVxuXG4gIHNlbGVjdFRoZW1lKCkge1xuICAgIHRoaXMuc2F2ZVByZXZpZXdUaGVtZVZhbHVlID0gdHJ1ZTtcbiAgfVxuXG59XG4iLCI8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgbWF0LWljb24tYnV0dG9uPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cImNvZ1wiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICA8YnV0dG9uIChjbGljayk9XCJ0aGVtZS50b2dnbGVEYXJrVGhlbWUoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwidGhlbWUuZGFya01vZGVcIiBzdmdJY29uPVwiYnJpZ2h0bmVzcy0yXCI+PC9tYXQtaWNvbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCIhdGhlbWUuZGFya01vZGVcIiBzdmdJY29uPVwiYnJpZ2h0bmVzcy01XCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPk1vZGU8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0aGVtZU1lbnVcIiBtYXQtbWVudS1pdGVtPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29tcGFyZVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5UaGVtZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxyeGFwLWxhbmd1YWdlLXNlbGVjdG9yICpuZ0lmPVwiIWlzRGV2TW9kZVwiPjwvcnhhcC1sYW5ndWFnZS1zZWxlY3Rvcj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib3BlbkNoYW5nZWxvZ0RpYWxvZygpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZvcm1hdC1saXN0LW51bWJlcmVkXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPldoYXQncyBuZXc8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zKClcIj5cbiAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJpdGVtXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI3RoZW1lTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVEZW5zaXR5TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtb3ZlLXJlc2l6ZVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5EZW5zaXR5PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVGb250TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJmb3JtYXQtZm9udFwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5Gb250PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVQcmVzZXRNZW51XCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNoYXBlLW91dGxpbmVcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+UHJlc2V0PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbWF0LW1lbnU+XG5cbjxtYXQtbWVudSAjdGhlbWVEZW5zaXR5TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0RGVuc2l0eSgpXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0RlbnNpdHkoMClcIiAobW91c2VsZWF2ZSk9XCJzYXZlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUtbFwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5Ob3JtYWw8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3REZW5zaXR5KClcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3RGVuc2l0eSgtMSlcIiAobW91c2VsZWF2ZSk9XCJzYXZlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUtbVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5EZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cInNlbGVjdERlbnNpdHkoKVwiIChtb3VzZWVudGVyKT1cInByZXZpZXdEZW5zaXR5KC0yKVwiIChtb3VzZWxlYXZlKT1cInNhdmVEZW5zaXR5KClcIiBtYXQtbWVudS1pdGVtPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwic2l6ZS1zXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPlZlcnkgRGVuc2U8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3REZW5zaXR5KClcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3RGVuc2l0eSgtMylcIiAobW91c2VsZWF2ZSk9XCJzYXZlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUteHNcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+RXh0cmVtZSBEZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPG1hdC1tZW51ICN0aGVtZUZvbnRNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RUeXBvZ3JhcGh5KClcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3VHlwb2dyYXBoeSgpXCIgKG1vdXNlbGVhdmUpPVwic2F2ZVR5cG9ncmFwaHkoKVwiIGkxOG5cbiAgICAgICAgICBtYXQtbWVudS1pdGVtPkRlZmF1bHRcbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cInNlbGVjdFR5cG9ncmFwaHkoKVwiIChtb3VzZWVudGVyKT1cInByZXZpZXdUeXBvZ3JhcGh5KCdtb25vJylcIiAobW91c2VsZWF2ZSk9XCJzYXZlVHlwb2dyYXBoeSgpXCJcbiAgICAgICAgICBjbGFzcz1cImZvbnQtbW9ub1wiIGkxOG4gbWF0LW1lbnUtaXRlbT5Nb25vXG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RUeXBvZ3JhcGh5KClcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3VHlwb2dyYXBoeSgnc2VyaWYnKVwiIChtb3VzZWxlYXZlKT1cInNhdmVUeXBvZ3JhcGh5KClcIlxuICAgICAgICAgIGNsYXNzPVwiZm9udC1zZXJpZlwiIGkxOG4gbWF0LW1lbnUtaXRlbT5TZXJpZlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0VHlwb2dyYXBoeSgpXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld1R5cG9ncmFwaHkoJ3NhbnMnKVwiIChtb3VzZWxlYXZlKT1cInNhdmVUeXBvZ3JhcGh5KClcIlxuICAgICAgICAgIGNsYXNzPVwiZm9udC1zYW5zXCIgaTE4biBtYXQtbWVudS1pdGVtPlNhbnNcbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI3RoZW1lUHJlc2V0TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0VGhlbWUoKVwiIChtb3VzZWVudGVyKT1cInByZXZpZXdUaGVtZSh0aGVtZU5hbWUpXCIgKG1vdXNlbGVhdmUpPVwic2F2ZVRoZW1lKClcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0aGVtZU5hbWUgb2YgYXZhaWxhYmxlVGhlbWVzXCJcbiAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgIHt7IHRoZW1lTmFtZSB9fVxuICA8L2J1dHRvbj5cbjwvbWF0LW1lbnU+XG4iXX0=
@@ -39,7 +39,7 @@ export class LayoutComponent {
39
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: "<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 }); }
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 [ngStyle]=\"{\n 'margin-top.px': fixedTopGap(),\n 'margin-bottom.px': fixedBottomGap(),\n }\">\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 self-stretch grow-0 flex flex-row justify-between items-center\">\n <span class=\"text-lg\" i18n>Navigation</span>\n <div class=\"flex flex-row items-center justify-center\" style=\"width: 64px\">\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 </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: "directive", type: i4.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.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,
@@ -58,7 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
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
+ ], 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 [ngStyle]=\"{\n 'margin-top.px': fixedTopGap(),\n 'margin-bottom.px': fixedBottomGap(),\n }\">\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 self-stretch grow-0 flex flex-row justify-between items-center\">\n <span class=\"text-lg\" i18n>Navigation</span>\n <div class=\"flex flex-row items-center justify-center\" style=\"width: 64px\">\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 </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
62
  }], ctorParameters: function () { return [{ type: i1.LayoutComponentService }, { type: undefined, decorators: [{
63
63
  type: Inject,
64
64
  args: [RXAP_ENVIRONMENT]
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
66
66
  type: ViewChild,
67
67
  args: [MatSidenav, { static: true }]
68
68
  }] } });
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=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUVMLFVBQVUsRUFDVixnQkFBZ0IsR0FDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsZ0JBQWdCLEdBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFB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UGlwZSxcbiAgTmdJZixcbiAgTmdPcHRpbWl6ZWRJbWFnZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgU2lnbmFsLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7XG4gIE1hdERyYXdlck1vZGUsXG4gIE1hdFNpZGVuYXYsXG4gIE1hdFNpZGVuYXZNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtcbiAgUm91dGVyTGluayxcbiAgUm91dGVyT3V0bGV0LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGV0ZXJtaW5lUmVsZWFzZU5hbWUsXG4gIEVudmlyb25tZW50LFxuICBSWEFQX0VOVklST05NRU5ULFxufSBmcm9tICdAcnhhcC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBJY29uTG9hZGVyU2VydmljZSB9IGZyb20gJ0ByeGFwL2ljb24nO1xuaW1wb3J0IHsgU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnQHJ4YXAvbmd4LXN0YXR1cy1jaGVjayc7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9sYXlvdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBOZ0lmLFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBzaWRlbmF2TW9kZTogU2lnbmFsPE1hdERyYXdlck1vZGU+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRCb3R0b21HYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRUb3BHYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgcGlubmVkOiBTaWduYWw8Ym9vbGVhbj47XG4gIHB1YmxpYyByZWFkb25seSBjb2xsYXBzYWJsZTogU2lnbmFsPGJvb2xlYW4+O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1NyYzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1dpZHRoOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSByZWxlYXNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuZWQ6IFNpZ25hbDxib29sZWFuPjtcblxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0Q29tcG9uZW50U2VydmljZTogTGF5b3V0Q29tcG9uZW50U2VydmljZSxcbiAgICBASW5qZWN0KFJYQVBfRU5WSVJPTk1FTlQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgaWNvbkxvYWRlclNlcnZpY2U6IEljb25Mb2FkZXJTZXJ2aWNlLFxuICApIHtcbiAgICBpY29uTG9hZGVyU2VydmljZS5sb2FkKCk7XG4gICAgdGhpcy5maXhlZEJvdHRvbUdhcCA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRCb3R0b21HYXAkLCB7IGluaXRpYWxWYWx1ZTogMCB9KTtcbiAgICB0aGlzLmZpeGVkVG9wR2FwID1cbiAgICAgIHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UuZml4ZWRUb3BHYXAkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5maXhlZFRvcEdhcCQudmFsdWUgfSk7XG4gICAgdGhpcy5zaWRlbmF2TW9kZSA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2UubW9kZSQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLm1vZGUkLnZhbHVlIH0pO1xuICAgIHRoaXMucGlubmVkID0gdG9TaWduYWwobGF5b3V0Q29tcG9uZW50U2VydmljZS5waW5uZWQkLCB7IGluaXRpYWxWYWx1ZTogbGF5b3V0Q29tcG9uZW50U2VydmljZS5waW5uZWQkLnZhbHVlIH0pO1xuICAgIHRoaXMuY29sbGFwc2FibGUgPVxuICAgICAgdG9TaWduYWwobGF5b3V0Q29tcG9uZW50U2VydmljZS5jb2xsYXBzYWJsZSQsIHsgaW5pdGlhbFZhbHVlOiBsYXlvdXRDb21wb25lbnRTZXJ2aWNlLmNvbGxhcHNhYmxlJC52YWx1ZSB9KTtcbiAgICB0aGlzLm9wZW5lZCA9IHRvU2lnbmFsKGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJCwgeyBpbml0aWFsVmFsdWU6IGxheW91dENvbXBvbmVudFNlcnZpY2Uub3BlbmVkJC52YWx1ZSB9KTtcbiAgICB0aGlzLmxvZ29TcmMgPSB0aGlzLmxheW91dENvbXBvbmVudFNlcnZpY2UubG9nby5zcmMgPz8gJ2h0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS8yNTZ4MTI4cHgnO1xuICAgIHRoaXMubG9nb1dpZHRoID0gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLmxvZ28ud2lkdGggPz8gMjU2O1xuICAgIHRoaXMucmVsZWFzZSA9IERldGVybWluZVJlbGVhc2VOYW1lKHRoaXMuZW52aXJvbm1lbnQpO1xuICB9XG5cbn1cbiIsIjxyeGFwLXN0YXR1cy1pbmRpY2F0b3IgY2xhc3M9XCJmaXhlZCBib3R0b20tMCByaWdodC0wIHotMTBcIj48L3J4YXAtc3RhdHVzLWluZGljYXRvcj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtc2NyZWVuIGp1c3RpZnktYmV0d2VlblwiPlxuICA8cnhhcC1oZWFkZXIgY2xhc3M9XCJ6LTEwIHctZnVsbCBmaXhlZCB0b3AtMFwiPjwvcnhhcC1oZWFkZXI+XG4gIDxtYXQtc2lkZW5hdi1jb250YWluZXIgW25nU3R5bGVdPVwie1xuICAgICdtYXJnaW4tdG9wLnB4JzogZml4ZWRUb3BHYXAoKSxcbiAgICAnbWFyZ2luLWJvdHRvbS5weCc6IGZpeGVkQm90dG9tR2FwKCksXG4gIH1cIj5cbiAgICA8bWF0LXNpZGVuYXZcbiAgICAgICNtYXRTaWRlbmF2PVwibWF0U2lkZW5hdlwiXG4gICAgICBbZml4ZWRCb3R0b21HYXBdPVwiZml4ZWRCb3R0b21HYXAoKVwiXG4gICAgICBbZml4ZWRJblZpZXdwb3J0XT1cInRydWVcIlxuICAgICAgW2ZpeGVkVG9wR2FwXT1cImZpeGVkVG9wR2FwKClcIlxuICAgICAgW21vZGVdPVwic2lkZW5hdk1vZGUoKVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGNvbGxhcHNhYmxlOiBjb2xsYXBzYWJsZSgpIH1cIlxuICAgICAgY2xhc3M9XCJzaWRlbmF2XCJcbiAgICAgIFtvcGVuZWRdPVwib3BlbmVkKClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgcHktMiBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAteS01IGp1c3RpZnktaXRlbXMtc3RyZXRjaFwiPlxuXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImxheW91dENvbXBvbmVudFNlcnZpY2UudG9nZ2xlUGlubmVkKClcIiAqbmdJZj1cImNvbGxhcHNhYmxlKClcIlxuICAgICAgICAgICAgIGNsYXNzPVwicGwtMiBzZWxmLXN0cmV0Y2ggZ3Jvdy0wIGZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZ1wiIGkxOG4+TmF2aWdhdGlvbjwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIiBzdHlsZT1cIndpZHRoOiA2NHB4XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIXBpbm5lZCgpXCI+cmFkaW9fYnV0dG9uX3VuY2hlY2tlZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInBpbm5lZCgpXCI+cmFkaW9fYnV0dG9uX2NoZWNrZWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDx1bFxuICAgICAgICAgIChtb3VzZWVudGVyKT1cImNvbGxhcHNhYmxlKCkgJiYgIXBpbm5lZCgpICYmIG1hdFNpZGVuYXYub3BlbigpXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJjb2xsYXBzYWJsZSgpICYmICFwaW5uZWQoKSAmJiBtYXRTaWRlbmF2LmNsb3NlKClcIiBjbGFzcz1cImdyb3cgc2VsZi1zdHJldGNoXCJcbiAgICAgICAgICByb290XG4gICAgICAgICAgcnhhcC1uYXZpZ2F0aW9uXG4gICAgICAgID5cbiAgICAgICAgPC91bD5cblxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3NyY109XCJsb2dvU3JjXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbJy8nXVwiXG4gICAgICAgICAgW3dpZHRoXT1cImxvZ29XaWR0aFwiXG4gICAgICAgICAgYWx0PVwibG9nb1wiXG4gICAgICAgICAgY2xhc3M9XCJncm93LTAgbXgtMTZcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Jvdy0wIHB4LTE2XCI+XG4gICAgICAgICAgPHNwYW4+e3tyZWxlYXNlfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtc2lkZW5hdj5cbiAgICA8bWF0LXNpZGVuYXYtY29udGVudCBbbmdDbGFzc109XCJ7ICdtbC0xNic6IGNvbGxhcHNhYmxlKCkgfVwiIGNsYXNzPVwicC00XCI+XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cbiAgPHJ4YXAtZm9vdGVyIGNsYXNzPVwiei0xMCB3LWZ1bGwgZml4ZWQgYm90dG9tLTBcIj48L3J4YXAtZm9vdGVyPlxuPC9kaXY+XG48IS0tPHJ4YXAtd2luZG93LXRhc2stYmFyLWNvbnRhaW5lcj48L3J4YXAtd2luZG93LXRhc2stYmFyLWNvbnRhaW5lcj4tLT5cbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import { MediaMatcher } from '@angular/cdk/layout';
2
2
  import { Inject, Injectable, Optional, } from '@angular/core';
3
3
  import { ConfigService } from '@rxap/config';
4
- import { FooterService, HeaderService, } from '@rxap/services';
5
- import { BehaviorSubject, skip, } from 'rxjs';
6
- import { map, tap, } from 'rxjs/operators';
4
+ import { FooterService, HeaderService, ObserveCurrentThemeDensity, } from '@rxap/services';
5
+ import { BehaviorSubject, combineLatest, skip, } from 'rxjs';
6
+ import { map, startWith, tap, } from 'rxjs/operators';
7
7
  import { RXAP_LOGO_CONFIG } from '../tokens';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@rxap/services";
@@ -27,8 +27,12 @@ export class LayoutComponentService {
27
27
  this.pinned$ = new BehaviorSubject(pinned);
28
28
  this.collapsable$ = new BehaviorSubject(collapsable);
29
29
  this.fixedBottomGap$ = this.footerComponentService.portalCount$.pipe(map(count => count * 64));
30
- this.fixedTopGap$.next(this.headerComponentService.countComponent * 64);
31
- this.headerComponentService.update$.pipe(tap(() => this.fixedTopGap$.next(this.headerComponentService.countComponent * 64))).subscribe();
30
+ combineLatest([
31
+ this.headerComponentService.update$.pipe(startWith(null), map(() => this.headerComponentService.countComponent)),
32
+ ObserveCurrentThemeDensity(),
33
+ ]).pipe(tap(([count, density]) => {
34
+ this.fixedTopGap$.next(count * (64 + density * 4));
35
+ })).subscribe();
32
36
  this.logo = logoConfig ?? {
33
37
  src: 'assets/logo.png',
34
38
  width: 192,
@@ -75,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
75
79
  type: Inject,
76
80
  args: [ConfigService]
77
81
  }] }, { type: i2.MediaMatcher }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxlQUFlLEVBRWYsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLEdBQUcsRUFDSCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFDa0Isc0JBQXFDLEVBQ3JDLHNCQUFxQyxFQUNmLGFBQWdDLElBQUksRUFFekQsTUFBcUIsRUFDdEMsWUFBMEI7UUFMViwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWU7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFlO1FBR3BDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFWakMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQWFwRCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUNuQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxN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Q0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBckVVLHNCQUFzQiw0RUFjWCxnQkFBZ0IsNkJBQzVCLGFBQWE7a0hBZlosc0JBQXNCLGNBRFQsTUFBTTs7MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWU3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ25DLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREcmF3ZXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvY29uZmlnJztcbmltcG9ydCB7XG4gIEZvb3RlclNlcnZpY2UsXG4gIEhlYWRlclNlcnZpY2UsXG59IGZyb20gJ0ByeGFwL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgc2tpcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUlhBUF9MT0dPX0NPTkZJRyB9IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBMb2dvQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBvcGVuZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIHB1YmxpYyBtb2RlJDogQmVoYXZpb3JTdWJqZWN0PE1hdERyYXdlck1vZGU+O1xuICBwdWJsaWMgcGlubmVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBwdWJsaWMgZml4ZWRCb3R0b21HYXAkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIHB1YmxpYyBmaXhlZFRvcEdhcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNjQpO1xuICBwdWJsaWMgbG9nbzogTG9nb0NvbmZpZztcbiAgcHVibGljIGNvbGxhcHNhYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmb290ZXJDb21wb25lbnRTZXJ2aWNlOiBGb290ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJDb21wb25lbnRTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUlhBUF9MT0dPX0NPTkZJRykgbG9nb0NvbmZpZzogTG9nb0NvbmZpZyB8IG51bGwgPSBudWxsLFxuICAgIEBJbmplY3QoQ29uZmlnU2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgKSB7XG4gICAgY29uc3QgbW9iaWxlUXVlcnkgPSBtZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogOTU5cHgpJyk7XG4gICAgY29uc3QgbW9iaWxlID0gbW9iaWxlUXVlcnkubWF0Y2hlcztcbiAgICBjb25zdCBpbml0aWFsQ29sbGFwc2FibGUgPSB0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24uY29sbGFwc2FibGUnLCB0cnVlKTtcbiAgICBjb25zdCBjb2xsYXBzYWJsZSA9IGluaXRpYWxDb2xsYXBzYWJsZSAmJiAhbW9iaWxlO1xuICAgIGNvbnN0IHBpbm5lZCA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5waW5uZWQnLCBmYWxzZSk7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5tb2RlJywgcGlubmVkIHx8ICFjb2xsYXBzYWJsZSA/ICdzaWRlJyA6ICdvdmVyJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gdGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLm9wZW5lZCcsICghY29sbGFwc2FibGUgfHwgcGlubmVkKSAmJiAhbW9iaWxlKTtcbiAgICB0aGlzLm1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXREcmF3ZXJNb2RlPihtb2RlKTtcbiAgICB0aGlzLm9wZW5lZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KG9wZW5lZCk7XG4gICAgdGhpcy5waW5uZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihwaW5uZWQpO1xuICAgIHRoaXMuY29sbGFwc2FibGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb2xsYXBzYWJsZSk7XG4gICAgdGhpcy5maXhlZEJvdHRvbUdhcCQgPSB0aGlzLmZvb3RlckNvbXBvbmVudFNlcnZpY2UucG9ydGFsQ291bnQkLnBpcGUobWFwKGNvdW50ID0+IGNvdW50ICogNjQpKTtcbiAgICB0aGlzLmZpeGVkVG9wR2FwJC5uZXh0KHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS5jb3VudENvbXBvbmVudCAqIDY0KTtcbiAgICB0aGlzLmhlYWRlckNvbXBvbmVudFNlcnZpY2UudXBkYXRlJC5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuZml4ZWRUb3BHYXAkLm5leHQodGhpcy5oZWFkZXJDb21wb25lbnRTZXJ2aWNlLmNvdW50Q29tcG9uZW50ICogNjQpKSxcbiAgICApLnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9nbyA9IGxvZ29Db25maWcgPz8ge1xuICAgICAgc3JjOiAnYXNzZXRzL2xvZ28ucG5nJyxcbiAgICAgIHdpZHRoOiAxOTIsXG4gICAgfTtcbiAgICBtb2JpbGVRdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChpbml0aWFsQ29sbGFwc2FibGUpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzYWJsZSQubmV4dCghZXZlbnQubWF0Y2hlcyk7XG4gICAgICAgIGlmICh0aGlzLmNvbGxhcHNhYmxlJC52YWx1ZSkge1xuICAgICAgICAgIGlmICghdGhpcy5waW5uZWQkLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5waW5uZWQkLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgdGFwKHBpbm5lZCA9PiB7XG4gICAgICAgIGlmIChwaW5uZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGUkLm5leHQoJ3NpZGUnKTtcbiAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1vZGUkLm5leHQoJ292ZXInKTtcbiAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlT3BlbmQoKSB7XG4gICAgdGhpcy5vcGVuZWQkLm5leHQoIXRoaXMub3BlbmVkJC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGlubmVkKCkge1xuICAgIHRoaXMucGlubmVkJC5uZXh0KCF0aGlzLnBpbm5lZCQudmFsdWUpO1xuICB9XG5cbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYiwwQkFBMEIsR0FDM0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFFYixJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFXakMsWUFDa0Isc0JBQXFDLEVBQ3JDLHNCQUFxQyxFQUNmLGFBQWdDLElBQUksRUFFekQsTUFBcUIsRUFDdEMsWUFBMEI7UUFMViwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWU7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFlO1FBR3BDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFWakMsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQWFwRCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztR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QUFDLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBNUVVLHNCQUFzQiw0RUFjWCxnQkFBZ0IsNkJBQzVCLGFBQWE7a0hBZlosc0JBQXNCLGNBRFQsTUFBTTs7MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWU3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ25DLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREcmF3ZXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvY29uZmlnJztcbmltcG9ydCB7XG4gIEZvb3RlclNlcnZpY2UsXG4gIEhlYWRlclNlcnZpY2UsXG4gIE9ic2VydmVDdXJyZW50VGhlbWVEZW5zaXR5LFxufSBmcm9tICdAcnhhcC9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIE9ic2VydmFibGUsXG4gIHNraXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgbWFwLFxuICBzdGFydFdpdGgsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUlhBUF9MT0dPX0NPTkZJRyB9IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBMb2dvQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBvcGVuZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIHB1YmxpYyBtb2RlJDogQmVoYXZpb3JTdWJqZWN0PE1hdERyYXdlck1vZGU+O1xuICBwdWJsaWMgcGlubmVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBwdWJsaWMgZml4ZWRCb3R0b21HYXAkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIHB1YmxpYyBmaXhlZFRvcEdhcCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNjQpO1xuICBwdWJsaWMgbG9nbzogTG9nb0NvbmZpZztcbiAgcHVibGljIGNvbGxhcHNhYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmb290ZXJDb21wb25lbnRTZXJ2aWNlOiBGb290ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJDb21wb25lbnRTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUlhBUF9MT0dPX0NPTkZJRykgbG9nb0NvbmZpZzogTG9nb0NvbmZpZyB8IG51bGwgPSBudWxsLFxuICAgIEBJbmplY3QoQ29uZmlnU2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgKSB7XG4gICAgY29uc3QgbW9iaWxlUXVlcnkgPSBtZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogOTU5cHgpJyk7XG4gICAgY29uc3QgbW9iaWxlID0gbW9iaWxlUXVlcnkubWF0Y2hlcztcbiAgICBjb25zdCBpbml0aWFsQ29sbGFwc2FibGUgPSB0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24uY29sbGFwc2FibGUnLCB0cnVlKTtcbiAgICBjb25zdCBjb2xsYXBzYWJsZSA9IGluaXRpYWxDb2xsYXBzYWJsZSAmJiAhbW9iaWxlO1xuICAgIGNvbnN0IHBpbm5lZCA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5waW5uZWQnLCBmYWxzZSk7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5tb2RlJywgcGlubmVkIHx8ICFjb2xsYXBzYWJsZSA/ICdzaWRlJyA6ICdvdmVyJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gdGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLm9wZW5lZCcsICghY29sbGFwc2FibGUgfHwgcGlubmVkKSAmJiAhbW9iaWxlKTtcbiAgICB0aGlzLm1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXREcmF3ZXJNb2RlPihtb2RlKTtcbiAgICB0aGlzLm9wZW5lZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KG9wZW5lZCk7XG4gICAgdGhpcy5waW5uZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihwaW5uZWQpO1xuICAgIHRoaXMuY29sbGFwc2FibGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihjb2xsYXBzYWJsZSk7XG4gICAgdGhpcy5maXhlZEJvdHRvbUdhcCQgPSB0aGlzLmZvb3RlckNvbXBvbmVudFNlcnZpY2UucG9ydGFsQ291bnQkLnBpcGUobWFwKGNvdW50ID0+IGNvdW50ICogNjQpKTtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS51cGRhdGUkLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuaGVhZGVyQ29tcG9uZW50U2VydmljZS5jb3VudENvbXBvbmVudCksXG4gICAgICApLFxuICAgICAgT2JzZXJ2ZUN1cnJlbnRUaGVtZURlbnNpdHkoKSxcbiAgICBdKS5waXBlKFxuICAgICAgdGFwKChbIGNvdW50LCBkZW5zaXR5IF0pID0+IHtcbiAgICAgICAgdGhpcy5maXhlZFRvcEdhcCQubmV4dChjb3VudCAqICg2NCArIGRlbnNpdHkgKiA0KSk7XG4gICAgICB9KSxcbiAgICApLnN1YnNjcmliZSgpO1xuICAgIHRoaXMubG9nbyA9IGxvZ29Db25maWcgPz8ge1xuICAgICAgc3JjOiAnYXNzZXRzL2xvZ28ucG5nJyxcbiAgICAgIHdpZHRoOiAxOTIsXG4gICAgfTtcbiAgICBtb2JpbGVRdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChpbml0aWFsQ29sbGFwc2FibGUpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzYWJsZSQubmV4dCghZXZlbnQubWF0Y2hlcyk7XG4gICAgICAgIGlmICh0aGlzLmNvbGxhcHNhYmxlJC52YWx1ZSkge1xuICAgICAgICAgIGlmICghdGhpcy5waW5uZWQkLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5waW5uZWQkLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgdGFwKHBpbm5lZCA9PiB7XG4gICAgICAgIGlmIChwaW5uZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGUkLm5leHQoJ3NpZGUnKTtcbiAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1vZGUkLm5leHQoJ292ZXInKTtcbiAgICAgICAgICB0aGlzLm9wZW5lZCQubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlT3BlbmQoKSB7XG4gICAgdGhpcy5vcGVuZWQkLm5leHQoIXRoaXMub3BlbmVkJC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGlubmVkKCkge1xuICAgIHRoaXMucGlubmVkJC5uZXh0KCF0aGlzLnBpbm5lZCQudmFsdWUpO1xuICB9XG5cbn1cbiJdfQ==