@rxap/layout 18.1.2-dev.0 → 18.1.2-dev.1
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 +4 -0
- package/esm2022/lib/default-header/default-header.component.mjs +3 -4
- package/esm2022/lib/default-header/settings-button/settings-button.component.mjs +2 -2
- package/esm2022/lib/layout/layout.component.mjs +2 -24
- package/esm2022/lib/provide.mjs +16 -2
- package/esm2022/lib/tokens.mjs +6 -1
- package/fesm2022/rxap-layout.mjs +21 -24
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/lib/default-header/default-header.component.d.ts +1 -3
- package/lib/default-header/settings-button/settings-button.component.d.ts +2 -1
- package/lib/layout/layout.component.d.ts +2 -6
- package/lib/layout.service.d.ts +1 -1
- package/lib/provide.d.ts +3 -0
- package/lib/tokens.d.ts +2 -1
- package/package.json +16 -26
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
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
|
+
## [18.1.2-dev.1](https://gitlab.com/rxap/packages/compare/@rxap/layout@18.1.2-dev.0...@rxap/layout@18.1.2-dev.1) (2024-07-03)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rxap/layout
|
|
9
|
+
|
|
6
10
|
## [18.1.2-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/layout@18.1.1...@rxap/layout@18.1.2-dev.0) (2024-07-02)
|
|
7
11
|
|
|
8
12
|
### Bug Fixes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, computed, inject, } from '@angular/core';
|
|
2
2
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { LayoutService } from '../layout.service';
|
|
4
|
-
import {
|
|
4
|
+
import { RXAP_USER_PROFILE_DATA_SOURCE } from '../tokens';
|
|
5
5
|
import { AppsButtonComponent } from './apps-button/apps-button.component';
|
|
6
6
|
import { SettingsButtonComponent } from './settings-button/settings-button.component';
|
|
7
7
|
import { SidenavToggleButtonComponent } from './sidenav-toggle-button/sidenav-toggle-button.component';
|
|
@@ -12,8 +12,7 @@ export class DefaultHeaderComponent {
|
|
|
12
12
|
this.layoutComponentService = inject(LayoutService);
|
|
13
13
|
this.collapsable = computed(() => this.layoutComponentService.collapsable());
|
|
14
14
|
this.opened = computed(() => this.layoutComponentService.opened());
|
|
15
|
-
this.
|
|
16
|
-
this.profile = toSignal(this.userProfileService.connect('user-profile'), { initialValue: null });
|
|
15
|
+
this.profile = toSignal(inject(RXAP_USER_PROFILE_DATA_SOURCE).connect('user-profile'), { initialValue: null });
|
|
17
16
|
}
|
|
18
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DefaultHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
18
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: DefaultHeaderComponent, isStandalone: true, selector: "rxap-default-header", host: { classAttribute: "grow" }, ngImport: i0, template: "<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (!collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (this.profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AppsButtonComponent, selector: "rxap-apps-button" }, { kind: "component", type: SettingsButtonComponent, selector: "rxap-settings-button" }, { kind: "component", type: SidenavToggleButtonComponent, selector: "rxap-sidenav-toggle-button" }, { kind: "component", type: UserProfileIconComponent, selector: "rxap-user-profile-icon", inputs: ["profile"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -29,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
29
28
|
'class': 'grow',
|
|
30
29
|
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (!collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (this.profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n" }]
|
|
31
30
|
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9kZWZhdWx0LWhlYWRlci9kZWZhdWx0LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2RlZmF1bHQtaGVhZGVyL2RlZmF1bHQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBa0IzRixNQUFNLE9BQU8sc0JBQXNCO0lBaEJuQztRQWtCbUIsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWhELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUQsWUFBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUUzSDs4R0FSWSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpSEM5Qm5DLHlmQWFBLDBEREtJLG1CQUFtQiw2REFDbkIsdUJBQXVCLGlFQUN2Qiw0QkFBNEIsdUVBQzVCLHdCQUF3Qjs7MkZBU2Ysc0JBQXNCO2tCQWhCbEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7d0JBQzVCLHdCQUF3QjtxQkFDekIsUUFDSzt3QkFDSixPQUFPLEVBQUUsTUFBTTtxQkFDaEIsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJYQVBfVVNFUl9QUk9GSUxFX0RBVEFfU09VUkNFIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB7IEFwcHNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2FwcHMtYnV0dG9uL2FwcHMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lkZW5hdlRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2lkZW5hdi10b2dnbGUtYnV0dG9uL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVJY29uQ29tcG9uZW50IH0gZnJvbSAnLi91c2VyLXByb2ZpbGUtaWNvbi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLWRlZmF1bHQtaGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFwcHNCdXR0b25Db21wb25lbnQsXG4gICAgU2V0dGluZ3NCdXR0b25Db21wb25lbnQsXG4gICAgU2lkZW5hdlRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBVc2VyUHJvZmlsZUljb25Db21wb25lbnQsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZ3JvdycsXG4gIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kZWZhdWx0LWhlYWRlci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0SGVhZGVyQ29tcG9uZW50IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxheW91dENvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxhcHNhYmxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLmNvbGxhcHNhYmxlKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlbmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXRDb21wb25lbnRTZXJ2aWNlLm9wZW5lZCgpKTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2ZpbGUgPSB0b1NpZ25hbChpbmplY3QoUlhBUF9VU0VSX1BST0ZJTEVfREFUQV9TT1VSQ0UpLmNvbm5lY3QoJ3VzZXItcHJvZmlsZScpLCB7IGluaXRpYWxWYWx1ZTogbnVsbCB9KTtcblxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGdhcC14LTQganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICBAaWYgKCFjb2xsYXBzYWJsZSgpKSB7XG4gICAgPHJ4YXAtc2lkZW5hdi10b2dnbGUtYnV0dG9uPjwvcnhhcC1zaWRlbmF2LXRvZ2dsZS1idXR0b24+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImdyb3dcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8cnhhcC1hcHBzLWJ1dHRvbiBjbGFzcz1cImdyb3ctMFwiPjwvcnhhcC1hcHBzLWJ1dHRvbj5cbiAgPHJ4YXAtc2V0dGluZ3MtYnV0dG9uIGNsYXNzPVwiZ3Jvdy0wXCI+PC9yeGFwLXNldHRpbmdzLWJ1dHRvbj5cbiAgQGlmICh0aGlzLnByb2ZpbGUoKTsgYXMgcHJvZmlsZSkge1xuICAgIDxyeGFwLXVzZXItcHJvZmlsZS1pY29uIFtwcm9maWxlXT1cInByb2ZpbGVcIiBjbGFzcz1cImdyb3ctMFwiPjwvcnhhcC11c2VyLXByb2ZpbGUtaWNvbj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -6,7 +6,7 @@ import { MatIcon } from '@angular/material/icon';
|
|
|
6
6
|
import { MatMenu, MatMenuItem, MatMenuTrigger, } from '@angular/material/menu';
|
|
7
7
|
import { IconDirective } from '@rxap/material-directives/icon';
|
|
8
8
|
import { ThemeService, } from '@rxap/ngx-theme';
|
|
9
|
-
import { coerceArray } from '@rxap/utilities';
|
|
9
|
+
import { coerceArray, } from '@rxap/utilities';
|
|
10
10
|
import { RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, } from '../../tokens';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class SettingsButtonComponent {
|
|
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
72
72
|
NgIf,
|
|
73
73
|
], 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 @if (theme.darkMode()) {\n <mat-icon svgIcon=\"brightness-2\"></mat-icon>\n } @else {\n <mat-icon svgIcon=\"brightness-5\"></mat-icon>\n }\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 @for (item of customItems(); track item.label) {\n <button (click)=\"clickItem(item)\" mat-menu-item>\n <mat-icon *ngIf=\"item.icon as icon\" [rxapIcon]=\"icon\"></mat-icon>\n <span>{{ item.label }}</span>\n </button>\n }\n @for (item of customItemComponents(); track item) {\n <ng-template [cdkPortalOutlet]=\"item\"></ng-template>\n }\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 @if (availableTypographies?.length) {\n <button [matMenuTriggerFor]=\"themeFontMenu\" mat-menu-item>\n <mat-icon svgIcon=\"format-font\"></mat-icon>\n <span i18n>Font</span>\n </button>\n }\n @if (availableThemes?.length) {\n <button [matMenuTriggerFor]=\"themePresetMenu\" mat-menu-item>\n <mat-icon svgIcon=\"shape-outline\"></mat-icon>\n <span i18n>Preset</span>\n </button>\n }\n</mat-menu>\n\n<mat-menu #themeDensityMenu=\"matMenu\" xPosition=\"before\">\n <button (click)=\"setDensity(0)\" (mouseenter)=\"previewDensity(0)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-l\"></mat-icon>\n <span i18n>Normal</span>\n </button>\n <button (click)=\"setDensity(-1)\" (mouseenter)=\"previewDensity(-1)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-m\"></mat-icon>\n <span i18n>Dense</span>\n </button>\n <button (click)=\"setDensity(-2)\" (mouseenter)=\"previewDensity(-2)\" (mouseleave)=\"restoreDensity()\" mat-menu-item>\n <mat-icon svgIcon=\"size-s\"></mat-icon>\n <span i18n>Very Dense</span>\n </button>\n <button (click)=\"setDensity(-3)\" (mouseenter)=\"previewDensity(-3)\" (mouseleave)=\"restoreDensity()\" 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 @for (typographyName of availableTypographies ?? []; track typographyName) {\n <button (click)=\"setTypography(typographyName)\"\n (mouseenter)=\"previewTypography(typographyName)\"\n (mouseleave)=\"restoreTypography()\"\n mat-menu-item>\n {{ typographyName }}\n </button>\n }\n</mat-menu>\n\n<mat-menu #themePresetMenu=\"matMenu\" xPosition=\"before\">\n @for (themeName of availableThemes ?? []; track themeName) {\n <button (click)=\"setTheme(themeName)\"\n (mouseenter)=\"previewTheme(themeName)\"\n (mouseleave)=\"restoreTheme()\"\n mat-menu-item>\n {{ themeName }}\n </button>\n }\n</mat-menu>\n" }]
|
|
74
74
|
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvZGVmYXVsdC1oZWFkZXIvc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2RlZmF1bHQtaGVhZGVyL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFDTCxPQUFPLEVBQ1AsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBRUwsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUNBQWlDLEdBQ2xDLE1BQU0sY0FBYyxDQUFDOztBQW1CdEIsTUFBTSxPQUFPLHVCQUF1QjtJQWhCcEM7UUFrQlMsY0FBUyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRWYsVUFBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdDLHlCQUFvQixHQUFHLE1BQU0sQ0FDM0IsV0FBVyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQy9ELENBQUM7UUFFRixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9FLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNoQyx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDO1FBRWhELCtCQUEwQixHQUFHLEtBQUssQ0FBQztRQUNuQywyQkFBc0IsR0FBa0IsSUFBSSxDQUFDO1FBRXJDLDBCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFdEIsb0JBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUQsc0JBQWlCLEdBQWtCLElBQUksQ0FBQztLQXlDakQ7SUF2Q0MsY0FBYyxDQUFDLE9BQXFCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxVQUFVLENBQUMsT0FBcUI7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBc0I7UUFDOUIscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQWhFVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixnRkNoRHBDLHNzR0FzRkEsMEREaERJLGFBQWEsNkZBQ2IsT0FBTywySUFDUCxPQUFPLDJRQUNQLGNBQWMscVNBQ2QsV0FBVyxzSUFDWCxlQUFlLGlKQUNmLGFBQWEscUZBQ2IsSUFBSTs7MkZBR0ssdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUdQO3dCQUNQLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsSUFBSTtxQkFDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENka1BvcnRhbE91dGxldCxcbiAgQ29tcG9uZW50UG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpc0Rldk1vZGUsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtcbiAgTWF0TWVudSxcbiAgTWF0TWVudUl0ZW0sXG4gIE1hdE1lbnVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEljb25EaXJlY3RpdmUgfSBmcm9tICdAcnhhcC9tYXRlcmlhbC1kaXJlY3RpdmVzL2ljb24nO1xuaW1wb3J0IHtcbiAgVGhlbWVEZW5zaXR5LFxuICBUaGVtZVNlcnZpY2UsXG59IGZyb20gJ0ByeGFwL25neC10aGVtZSc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0ByeGFwL3V0aWxpdGllcyc7XG5pbXBvcnQge1xuICBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTSxcbiAgUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5ULFxufSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgU2V0dGluZ3NNZW51SXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1zZXR0aW5ncy1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0SWNvbixcbiAgICBNYXRNZW51LFxuICAgIE1hdE1lbnVUcmlnZ2VyLFxuICAgIE1hdE1lbnVJdGVtLFxuICAgIENka1BvcnRhbE91dGxldCxcbiAgICBJY29uRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdzQnV0dG9uQ29tcG9uZW50IHtcblxuICBwdWJsaWMgaXNEZXZNb2RlID0gaXNEZXZNb2RlKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lID0gaW5qZWN0KFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGN1c3RvbUl0ZW1Db21wb25lbnRzID0gc2lnbmFsKFxuICAgIGNvZXJjZUFycmF5KGluamVjdChSWEFQX1NFVFRJTkdTX01FTlVfSVRFTV9DT01QT05FTlQsIHsgb3B0aW9uYWw6IHRydWUgfSkpXG4gICAgICAubWFwKGl0ZW0gPT4gbmV3IENvbXBvbmVudFBvcnRhbChpdGVtLCBudWxsLCB0aGlzLmluamVjdG9yKSksXG4gICk7XG5cbiAgY3VzdG9tSXRlbXMgPSBzaWduYWwoY29lcmNlQXJyYXkoaW5qZWN0KFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNLCB7IG9wdGlvbmFsOiB0cnVlIH0pKSk7XG5cbiAgcHJpdmF0ZSBzYXZlUHJldmlld0RlbnNpdHlWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnREZW5zaXR5VmFsdWU6IFRoZW1lRGVuc2l0eSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2F2ZVByZXZpZXdUeXBvZ3JhcGh5VmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjdXJyZW50VHlwb2dyYXBoeVZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlVHlwb2dyYXBoaWVzID0gdGhpcy50aGVtZS5nZXRBdmFpbGFibGVUeXBvZ3JhcGhpZXMoKTtcbiAgcHJpdmF0ZSBzYXZlUHJldmlld1RoZW1lVmFsdWUgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlVGhlbWVzID0gdGhpcy50aGVtZS5nZXRBdmFpbGFibGVUaGVtZXMoKTtcbiAgcHJpdmF0ZSBjdXJyZW50VGhlbWVWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJldmlld0RlbnNpdHkoZGVuc2l0eTogVGhlbWVEZW5zaXR5KSB7XG4gICAgdGhpcy50aGVtZS5hcHBseURlbnNpdHkoZGVuc2l0eSk7XG4gIH1cblxuICByZXN0b3JlRGVuc2l0eSgpIHtcbiAgICB0aGlzLnRoZW1lLmFwcGx5RGVuc2l0eSh0aGlzLnRoZW1lLmRlbnNpdHkoKSk7XG4gIH1cblxuICBzZXREZW5zaXR5KGRlbnNpdHk6IFRoZW1lRGVuc2l0eSkge1xuICAgIHRoaXMudGhlbWUuc2V0RGVuc2l0eShkZW5zaXR5KTtcbiAgfVxuXG4gIHByZXZpZXdUeXBvZ3JhcGh5KHR5cG9ncmFwaHk6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuYXBwbHlUeXBvZ3JhcGh5KHR5cG9ncmFwaHkpO1xuICB9XG5cbiAgcmVzdG9yZVR5cG9ncmFwaHkoKSB7XG4gICAgdGhpcy50aGVtZS5hcHBseVR5cG9ncmFwaHkodGhpcy50aGVtZS50eXBvZ3JhcGh5KCkpO1xuICB9XG5cbiAgc2V0VHlwb2dyYXBoeSh0eXBvZ3JhcGh5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRoZW1lLnNldFR5cG9ncmFwaHkodHlwb2dyYXBoeSk7XG4gIH1cblxuICBwcmV2aWV3VGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuYXBwbHlUaGVtZSh0aGVtZSk7XG4gIH1cblxuICByZXN0b3JlVGhlbWUoKSB7XG4gICAgdGhpcy50aGVtZS5hcHBseVRoZW1lKHRoaXMudGhlbWUudGhlbWVOYW1lKCkpO1xuICB9XG5cbiAgc2V0VGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuc2V0VGhlbWUodGhlbWUpO1xuICB9XG5cbiAgY2xpY2tJdGVtKGl0ZW06IFNldHRpbmdzTWVudUl0ZW0pIHtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gaXRlbS5hY3Rpb24oKSk7XG4gIH1cbn1cbiIsIjxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBtYXQtaWNvbi1idXR0b24+XG4gIDxtYXQtaWNvbiBzdmdJY29uPVwiY29nXCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cInRoZW1lLnRvZ2dsZURhcmtUaGVtZSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICBAaWYgKHRoZW1lLmRhcmtNb2RlKCkpIHtcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiYnJpZ2h0bmVzcy0yXCI+PC9tYXQtaWNvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiYnJpZ2h0bmVzcy01XCI+PC9tYXQtaWNvbj5cbiAgICB9XG4gICAgPHNwYW4gaTE4bj5Nb2RlPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVNZW51XCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNvbXBhcmVcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+VGhlbWU8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICBAZm9yIChpdGVtIG9mIGN1c3RvbUl0ZW1zKCk7IHRyYWNrIGl0ZW0ubGFiZWwpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJjbGlja0l0ZW0oaXRlbSlcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uIGFzIGljb25cIiBbcnhhcEljb25dPVwiaWNvblwiPjwvbWF0LWljb24+XG4gICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICB9XG4gIEBmb3IgKGl0ZW0gb2YgY3VzdG9tSXRlbUNvbXBvbmVudHMoKTsgdHJhY2sgaXRlbSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIml0ZW1cIj48L25nLXRlbXBsYXRlPlxuICB9XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI3RoZW1lTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVEZW5zaXR5TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtb3ZlLXJlc2l6ZVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5EZW5zaXR5PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgQGlmIChhdmFpbGFibGVUeXBvZ3JhcGhpZXM/Lmxlbmd0aCkge1xuICAgIDxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRoZW1lRm9udE1lbnVcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJmb3JtYXQtZm9udFwiPjwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkZvbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgQGlmIChhdmFpbGFibGVUaGVtZXM/Lmxlbmd0aCkge1xuICAgIDxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRoZW1lUHJlc2V0TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNoYXBlLW91dGxpbmVcIj48L21hdC1pY29uPlxuICAgICAgPHNwYW4gaTE4bj5QcmVzZXQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvbWF0LW1lbnU+XG5cbjxtYXQtbWVudSAjdGhlbWVEZW5zaXR5TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2V0RGVuc2l0eSgwKVwiIChtb3VzZWVudGVyKT1cInByZXZpZXdEZW5zaXR5KDApXCIgKG1vdXNlbGVhdmUpPVwicmVzdG9yZURlbnNpdHkoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJzaXplLWxcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+Tm9ybWFsPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2V0RGVuc2l0eSgtMSlcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3RGVuc2l0eSgtMSlcIiAobW91c2VsZWF2ZSk9XCJyZXN0b3JlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUtbVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5EZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cInNldERlbnNpdHkoLTIpXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0RlbnNpdHkoLTIpXCIgKG1vdXNlbGVhdmUpPVwicmVzdG9yZURlbnNpdHkoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJzaXplLXNcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+VmVyeSBEZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cInNldERlbnNpdHkoLTMpXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0RlbnNpdHkoLTMpXCIgKG1vdXNlbGVhdmUpPVwicmVzdG9yZURlbnNpdHkoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJzaXplLXhzXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPkV4dHJlbWUgRGVuc2U8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9tYXQtbWVudT5cbjxtYXQtbWVudSAjdGhlbWVGb250TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgQGZvciAodHlwb2dyYXBoeU5hbWUgb2YgYXZhaWxhYmxlVHlwb2dyYXBoaWVzID8/IFtdOyB0cmFjayB0eXBvZ3JhcGh5TmFtZSkge1xuICAgIDxidXR0b24gKGNsaWNrKT1cInNldFR5cG9ncmFwaHkodHlwb2dyYXBoeU5hbWUpXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInByZXZpZXdUeXBvZ3JhcGh5KHR5cG9ncmFwaHlOYW1lKVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXN0b3JlVHlwb2dyYXBoeSgpXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG4gICAgICB7eyB0eXBvZ3JhcGh5TmFtZSB9fVxuICAgIDwvYnV0dG9uPlxuICB9XG48L21hdC1tZW51PlxuXG48bWF0LW1lbnUgI3RoZW1lUHJlc2V0TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgQGZvciAodGhlbWVOYW1lIG9mIGF2YWlsYWJsZVRoZW1lcyA/PyBbXTsgdHJhY2sgdGhlbWVOYW1lKSB7XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0VGhlbWUodGhlbWVOYW1lKVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJwcmV2aWV3VGhlbWUodGhlbWVOYW1lKVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJyZXN0b3JlVGhlbWUoKVwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuICAgICAge3sgdGhlbWVOYW1lIH19XG4gICAgPC9idXR0b24+XG4gIH1cbjwvbWF0LW1lbnU+XG4iXX0=
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvZGVmYXVsdC1oZWFkZXIvc2V0dGluZ3MtYnV0dG9uL3NldHRpbmdzLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2RlZmF1bHQtaGVhZGVyL3NldHRpbmdzLWJ1dHRvbi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFDTCxPQUFPLEVBQ1AsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLFdBQVcsR0FFWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUNBQWlDLEdBQ2xDLE1BQU0sY0FBYyxDQUFDOztBQW1CdEIsTUFBTSxPQUFPLHVCQUF1QjtJQWhCcEM7UUFr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LGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsSUFBSTtxQkFDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENka1BvcnRhbE91dGxldCxcbiAgQ29tcG9uZW50UG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpc0Rldk1vZGUsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtcbiAgTWF0TWVudSxcbiAgTWF0TWVudUl0ZW0sXG4gIE1hdE1lbnVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEljb25EaXJlY3RpdmUgfSBmcm9tICdAcnhhcC9tYXRlcmlhbC1kaXJlY3RpdmVzL2ljb24nO1xuaW1wb3J0IHtcbiAgVGhlbWVTZXJ2aWNlLFxufSBmcm9tICdAcnhhcC9uZ3gtdGhlbWUnO1xuaW1wb3J0IHtcbiAgY29lcmNlQXJyYXksXG4gIFRoZW1lRGVuc2l0eSxcbn0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7XG4gIFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNLFxuICBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTV9DT01QT05FTlQsXG59IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTZXR0aW5nc01lbnVJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXNldHRpbmdzLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2V0dGluZ3MtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbkJ1dHRvbixcbiAgICBNYXRJY29uLFxuICAgIE1hdE1lbnUsXG4gICAgTWF0TWVudVRyaWdnZXIsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgQ2RrUG9ydGFsT3V0bGV0LFxuICAgIEljb25EaXJlY3RpdmUsXG4gICAgTmdJZixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NCdXR0b25Db21wb25lbnQge1xuXG4gIHB1YmxpYyBpc0Rldk1vZGUgPSBpc0Rldk1vZGUoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgY3VzdG9tSXRlbUNvbXBvbmVudHMgPSBzaWduYWwoXG4gICAgY29lcmNlQXJyYXkoaW5qZWN0KFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNX0NPTVBPTkVOVCwgeyBvcHRpb25hbDogdHJ1ZSB9KSlcbiAgICAgIC5tYXAoaXRlbSA9PiBuZXcgQ29tcG9uZW50UG9ydGFsKGl0ZW0sIG51bGwsIHRoaXMuaW5qZWN0b3IpKSxcbiAgKTtcblxuICBjdXN0b21JdGVtcyA9IHNpZ25hbChjb2VyY2VBcnJheShpbmplY3QoUlhBUF9TRVRUSU5HU19NRU5VX0lURU0sIHsgb3B0aW9uYWw6IHRydWUgfSkpKTtcblxuICBwcml2YXRlIHNhdmVQcmV2aWV3RGVuc2l0eVZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgY3VycmVudERlbnNpdHlWYWx1ZTogVGhlbWVEZW5zaXR5IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzYXZlUHJldmlld1R5cG9ncmFwaHlWYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnRUeXBvZ3JhcGh5VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyByZWFkb25seSBhdmFpbGFibGVUeXBvZ3JhcGhpZXMgPSB0aGlzLnRoZW1lLmdldEF2YWlsYWJsZVR5cG9ncmFwaGllcygpO1xuICBwcml2YXRlIHNhdmVQcmV2aWV3VGhlbWVWYWx1ZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBhdmFpbGFibGVUaGVtZXMgPSB0aGlzLnRoZW1lLmdldEF2YWlsYWJsZVRoZW1lcygpO1xuICBwcml2YXRlIGN1cnJlbnRUaGVtZVZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcmV2aWV3RGVuc2l0eShkZW5zaXR5OiBUaGVtZURlbnNpdHkpIHtcbiAgICB0aGlzLnRoZW1lLmFwcGx5RGVuc2l0eShkZW5zaXR5KTtcbiAgfVxuXG4gIHJlc3RvcmVEZW5zaXR5KCkge1xuICAgIHRoaXMudGhlbWUuYXBwbHlEZW5zaXR5KHRoaXMudGhlbWUuZGVuc2l0eSgpKTtcbiAgfVxuXG4gIHNldERlbnNpdHkoZGVuc2l0eTogVGhlbWVEZW5zaXR5KSB7XG4gICAgdGhpcy50aGVtZS5zZXREZW5zaXR5KGRlbnNpdHkpO1xuICB9XG5cbiAgcHJldmlld1R5cG9ncmFwaHkodHlwb2dyYXBoeTogc3RyaW5nKSB7XG4gICAgdGhpcy50aGVtZS5hcHBseVR5cG9ncmFwaHkodHlwb2dyYXBoeSk7XG4gIH1cblxuICByZXN0b3JlVHlwb2dyYXBoeSgpIHtcbiAgICB0aGlzLnRoZW1lLmFwcGx5VHlwb2dyYXBoeSh0aGlzLnRoZW1lLnR5cG9ncmFwaHkoKSk7XG4gIH1cblxuICBzZXRUeXBvZ3JhcGh5KHR5cG9ncmFwaHk6IHN0cmluZykge1xuICAgIHRoaXMudGhlbWUuc2V0VHlwb2dyYXBoeSh0eXBvZ3JhcGh5KTtcbiAgfVxuXG4gIHByZXZpZXdUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgdGhpcy50aGVtZS5hcHBseVRoZW1lKHRoZW1lKTtcbiAgfVxuXG4gIHJlc3RvcmVUaGVtZSgpIHtcbiAgICB0aGlzLnRoZW1lLmFwcGx5VGhlbWUodGhpcy50aGVtZS50aGVtZU5hbWUoKSk7XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgdGhpcy50aGVtZS5zZXRUaGVtZSh0aGVtZSk7XG4gIH1cblxuICBjbGlja0l0ZW0oaXRlbTogU2V0dGluZ3NNZW51SXRlbSkge1xuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBpdGVtLmFjdGlvbigpKTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIG1hdC1pY29uLWJ1dHRvbj5cbiAgPG1hdC1pY29uIHN2Z0ljb249XCJjb2dcIj48L21hdC1pY29uPlxuPC9idXR0b24+XG5cbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwidGhlbWUudG9nZ2xlRGFya1RoZW1lKClcIiBtYXQtbWVudS1pdGVtPlxuICAgIEBpZiAodGhlbWUuZGFya01vZGUoKSkge1xuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJicmlnaHRuZXNzLTJcIj48L21hdC1pY29uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJicmlnaHRuZXNzLTVcIj48L21hdC1pY29uPlxuICAgIH1cbiAgICA8c3BhbiBpMThuPk1vZGU8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0aGVtZU1lbnVcIiBtYXQtbWVudS1pdGVtPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29tcGFyZVwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5UaGVtZTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIEBmb3IgKGl0ZW0gb2YgY3VzdG9tSXRlbXMoKTsgdHJhY2sgaXRlbS5sYWJlbCkge1xuICAgIDxidXR0b24gKGNsaWNrKT1cImNsaWNrSXRlbShpdGVtKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb24gYXMgaWNvblwiIFtyeGFwSWNvbl09XCJpY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgQGZvciAoaXRlbSBvZiBjdXN0b21JdGVtQ29tcG9uZW50cygpOyB0cmFjayBpdGVtKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiaXRlbVwiPjwvbmctdGVtcGxhdGU+XG4gIH1cbjwvbWF0LW1lbnU+XG5cbjxtYXQtbWVudSAjdGhlbWVNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICA8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0aGVtZURlbnNpdHlNZW51XCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1vdmUtcmVzaXplXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPkRlbnNpdHk8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICBAaWYgKGF2YWlsYWJsZVR5cG9ncmFwaGllcz8ubGVuZ3RoKSB7XG4gICAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVGb250TWVudVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZvcm1hdC1mb250XCI+PC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIGkxOG4+Rm9udDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICBAaWYgKGF2YWlsYWJsZVRoZW1lcz8ubGVuZ3RoKSB7XG4gICAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGhlbWVQcmVzZXRNZW51XCIgbWF0LW1lbnUtaXRlbT5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwic2hhcGUtb3V0bGluZVwiPjwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPlByZXNldDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9tYXQtbWVudT5cblxuPG1hdC1tZW51ICN0aGVtZURlbnNpdHlNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICA8YnV0dG9uIChjbGljayk9XCJzZXREZW5zaXR5KDApXCIgKG1vdXNlZW50ZXIpPVwicHJldmlld0RlbnNpdHkoMClcIiAobW91c2VsZWF2ZSk9XCJyZXN0b3JlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUtbFwiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5Ob3JtYWw8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJzZXREZW5zaXR5KC0xKVwiIChtb3VzZWVudGVyKT1cInByZXZpZXdEZW5zaXR5KC0xKVwiIChtb3VzZWxlYXZlKT1cInJlc3RvcmVEZW5zaXR5KClcIiBtYXQtbWVudS1pdGVtPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwic2l6ZS1tXCI+PC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPkRlbnNlPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2V0RGVuc2l0eSgtMilcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3RGVuc2l0eSgtMilcIiAobW91c2VsZWF2ZSk9XCJyZXN0b3JlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUtc1wiPjwvbWF0LWljb24+XG4gICAgPHNwYW4gaTE4bj5WZXJ5IERlbnNlPC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwic2V0RGVuc2l0eSgtMylcIiAobW91c2VlbnRlcik9XCJwcmV2aWV3RGVuc2l0eSgtMylcIiAobW91c2VsZWF2ZSk9XCJyZXN0b3JlRGVuc2l0eSgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInNpemUteHNcIj48L21hdC1pY29uPlxuICAgIDxzcGFuIGkxOG4+RXh0cmVtZSBEZW5zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuPG1hdC1tZW51ICN0aGVtZUZvbnRNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICBAZm9yICh0eXBvZ3JhcGh5TmFtZSBvZiBhdmFpbGFibGVUeXBvZ3JhcGhpZXMgPz8gW107IHRyYWNrIHR5cG9ncmFwaHlOYW1lKSB7XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0VHlwb2dyYXBoeSh0eXBvZ3JhcGh5TmFtZSlcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwicHJldmlld1R5cG9ncmFwaHkodHlwb2dyYXBoeU5hbWUpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInJlc3RvcmVUeXBvZ3JhcGh5KClcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbT5cbiAgICAgIHt7IHR5cG9ncmFwaHlOYW1lIH19XG4gICAgPC9idXR0b24+XG4gIH1cbjwvbWF0LW1lbnU+XG5cbjxtYXQtbWVudSAjdGhlbWVQcmVzZXRNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICBAZm9yICh0aGVtZU5hbWUgb2YgYXZhaWxhYmxlVGhlbWVzID8/IFtdOyB0cmFjayB0aGVtZU5hbWUpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJzZXRUaGVtZSh0aGVtZU5hbWUpXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInByZXZpZXdUaGVtZSh0aGVtZU5hbWUpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInJlc3RvcmVUaGVtZSgpXCJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG4gICAgICB7eyB0aGVtZU5hbWUgfX1cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9tYXQtbWVudT5cbiJdfQ==
|
|
@@ -5,12 +5,10 @@ import { MatIconModule } from '@angular/material/icon';
|
|
|
5
5
|
import { MatMenuModule } from '@angular/material/menu';
|
|
6
6
|
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
7
7
|
import { RouterLink, RouterOutlet, } from '@angular/router';
|
|
8
|
-
import { ThemeService } from '@rxap/ngx-theme';
|
|
9
|
-
import { IsThemeDensity, ThemeDensity, UserSettingsThemeService, } from '@rxap/ngx-user';
|
|
10
8
|
import { FooterComponent } from '../footer/footer.component';
|
|
11
9
|
import { HeaderComponent } from '../header/header.component';
|
|
12
|
-
import { NavigationProgressBarComponent } from '../navigation-progress-bar/navigation-progress-bar.component';
|
|
13
10
|
import { LogoService } from '../logo.service';
|
|
11
|
+
import { NavigationProgressBarComponent } from '../navigation-progress-bar/navigation-progress-bar.component';
|
|
14
12
|
import { NavigationComponent } from '../navigation/navigation.component';
|
|
15
13
|
import { ReleaseInfoComponent } from '../release-info/release-info.component';
|
|
16
14
|
import { SidenavFooterDirective } from '../sidenav/sidenav-footer.directive';
|
|
@@ -18,31 +16,11 @@ import { SidenavComponent } from '../sidenav/sidenav.component';
|
|
|
18
16
|
import * as i0 from "@angular/core";
|
|
19
17
|
export class LayoutComponent {
|
|
20
18
|
constructor() {
|
|
21
|
-
this.userSettingsThemeService = inject(UserSettingsThemeService);
|
|
22
|
-
this.themeService = inject(ThemeService);
|
|
23
19
|
this.logoService = inject(LogoService);
|
|
24
20
|
this.logoSrc = computed(() => this.logoService.src());
|
|
25
21
|
this.logoWidth = computed(() => this.logoService.width());
|
|
26
22
|
this.logoHeight = computed(() => this.logoService.height());
|
|
27
23
|
}
|
|
28
|
-
ngOnDestroy() {
|
|
29
|
-
this.userSettingsThemeService.stopSync();
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.userSettingsThemeService.startSync().then(() => {
|
|
33
|
-
this.userSettingsThemeService.get().then(theme => {
|
|
34
|
-
if (theme.preset && theme.preset !== 'default') {
|
|
35
|
-
this.themeService.setTheme(theme.preset, true);
|
|
36
|
-
}
|
|
37
|
-
if (theme.density && IsThemeDensity(theme.density) && theme.density !== ThemeDensity.Normal) {
|
|
38
|
-
this.themeService.setDensity(theme.density, true);
|
|
39
|
-
}
|
|
40
|
-
if (theme.typography && theme.typography !== 'default') {
|
|
41
|
-
this.themeService.setTypography(theme.typography, true);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
25
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LayoutComponent, isStandalone: true, selector: "rxap-layout", ngImport: i0, template: "<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<rxap-sidenav>\n <router-outlet></router-outlet>\n <ng-template rxapSidenavFooter>\n <img\n [src]=\"logoSrc()\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth()\"\n [height]=\"logoHeight()\"\n alt=\"logo\"\n class=\"grow-0 mx-16 cursor-pointer\"\n />\n <div class=\"grow-0 px-16 mt-4\">\n <rxap-release-info></rxap-release-info>\n </div>\n </ng-template>\n</rxap-sidenav>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n", styles: [""], dependencies: [{ kind: "component", type: HeaderComponent, selector: "rxap-header", inputs: ["color"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FooterComponent, selector: "rxap-footer" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: SidenavComponent, selector: "rxap-sidenav" }, { kind: "component", type: ReleaseInfoComponent, selector: "rxap-release-info" }, { kind: "directive", type: SidenavFooterDirective, selector: "[rxapSidenavFooter]" }, { kind: "component", type: NavigationProgressBarComponent, selector: "rxap-navigation-progress-bar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
26
|
}
|
|
@@ -69,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
69
47
|
NavigationProgressBarComponent,
|
|
70
48
|
], template: "<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<rxap-sidenav>\n <router-outlet></router-outlet>\n <ng-template rxapSidenavFooter>\n <img\n [src]=\"logoSrc()\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth()\"\n [height]=\"logoHeight()\"\n alt=\"logo\"\n class=\"grow-0 mx-16 cursor-pointer\"\n />\n <div class=\"grow-0 px-16 mt-4\">\n <rxap-release-info></rxap-release-info>\n </div>\n </ng-template>\n</rxap-sidenav>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n" }]
|
|
71
49
|
}] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixPQUFPLEdBQ1IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFDTCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBOEJoRSxNQUFNLE9BQU8sZUFBZTtJQTNCNUI7UUE2Qm1CLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLFlBQU8sR0FBbUIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNqRSxjQUFTLEdBQW1CLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckUsZUFBVSxHQUFtQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBRXhGOzhHQVBZLGVBQWU7a0dBQWYsZUFBZSx1RUMzRDVCLHltQkFtQkEsMEREb0JJLGVBQWUsMEVBQ2YsZ0JBQWdCLDhCQUVoQixhQUFhLDhCQUNiLGVBQWUsK0JBQ2YsVUFBVSxvT0FFVixlQUFlLHVEQUNmLGFBQWEsK0JBR2IsWUFBWSwySkFHWixnQkFBZ0IseURBQ2hCLG9CQUFvQiw4REFDcEIsc0JBQXNCLGdFQUN0Qiw4QkFBOEI7OzJGQUdyQixlQUFlO2tCQTNCM0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixVQUFVO3dCQUNWLElBQUk7d0JBQ0osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7cUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0NsYXNzLFxuICBOZ0lmLFxuICBOZ09wdGltaXplZEltYWdlLFxuICBOZ1N0eWxlLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge1xuICBSb3V0ZXJMaW5rLFxuICBSb3V0ZXJPdXRsZXQsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dvU2VydmljZSB9IGZyb20gJy4uL2xvZ28uc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci9uYXZpZ2F0aW9uLXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVsZWFzZUluZm9Db21wb25lbnQgfSBmcm9tICcuLi9yZWxlYXNlLWluZm8vcmVsZWFzZS1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlbmF2Rm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2lkZW5hdi9zaWRlbmF2LWZvb3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2lkZW5hdkNvbXBvbmVudCB9IGZyb20gJy4uL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9sYXlvdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIFJvdXRlckxpbmssXG4gICAgTmdJZixcbiAgICBGb290ZXJDb21wb25lbnQsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBOZ09wdGltaXplZEltYWdlLFxuICAgIE5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIE5nU3R5bGUsXG4gICAgTmdDbGFzcyxcbiAgICBTaWRlbmF2Q29tcG9uZW50LFxuICAgIFJlbGVhc2VJbmZvQ29tcG9uZW50LFxuICAgIFNpZGVuYXZGb290ZXJEaXJlY3RpdmUsXG4gICAgTmF2aWdhdGlvblByb2dyZXNzQmFyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nb1NlcnZpY2UgPSBpbmplY3QoTG9nb1NlcnZpY2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb1NyYzogU2lnbmFsPHN0cmluZz4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxvZ29TZXJ2aWNlLnNyYygpKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvZ29XaWR0aDogU2lnbmFsPG51bWJlcj4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxvZ29TZXJ2aWNlLndpZHRoKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgbG9nb0hlaWdodDogU2lnbmFsPG51bWJlcj4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxvZ29TZXJ2aWNlLmhlaWdodCgpKTtcblxufVxuIiwiPHJ4YXAtaGVhZGVyIGNsYXNzPVwiei0xMCB3LWZ1bGwgZml4ZWQgdG9wLTBcIj48L3J4YXAtaGVhZGVyPlxuPHJ4YXAtbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXI+PC9yeGFwLW5hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyPlxuPHJ4YXAtc2lkZW5hdj5cbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8bmctdGVtcGxhdGUgcnhhcFNpZGVuYXZGb290ZXI+XG4gICAgPGltZ1xuICAgICAgW3NyY109XCJsb2dvU3JjKClcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiWycvJ11cIlxuICAgICAgW3dpZHRoXT1cImxvZ29XaWR0aCgpXCJcbiAgICAgIFtoZWlnaHRdPVwibG9nb0hlaWdodCgpXCJcbiAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgY2xhc3M9XCJncm93LTAgbXgtMTYgY3Vyc29yLXBvaW50ZXJcIlxuICAgIC8+XG4gICAgPGRpdiBjbGFzcz1cImdyb3ctMCBweC0xNiBtdC00XCI+XG4gICAgICA8cnhhcC1yZWxlYXNlLWluZm8+PC9yeGFwLXJlbGVhc2UtaW5mbz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcnhhcC1zaWRlbmF2PlxuPHJ4YXAtZm9vdGVyIGNsYXNzPVwiei0xMCB3LWZ1bGwgZml4ZWQgYm90dG9tLTBcIj48L3J4YXAtZm9vdGVyPlxuIl19
|
package/esm2022/lib/provide.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { HeaderService } from './header.service';
|
|
|
5
5
|
import { LayoutService } from './layout.service';
|
|
6
6
|
import { LogoService } from './logo.service';
|
|
7
7
|
import { NavigationService } from './navigation.service';
|
|
8
|
-
import { RXAP_EXTERNAL_APP, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, } from './tokens';
|
|
8
|
+
import { RXAP_EXTERNAL_APP, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, RXAP_USER_PROFILE_DATA_SOURCE, } from './tokens';
|
|
9
9
|
export function provideLayout(...additionalProviders) {
|
|
10
10
|
return [
|
|
11
11
|
ExternalAppsService,
|
|
@@ -77,4 +77,18 @@ export function withDefaultHeaderComponent() {
|
|
|
77
77
|
useValue: DefaultHeaderComponent,
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
|
|
80
|
+
export function withUserProfileDataSource(dataSource, useClass = false) {
|
|
81
|
+
if (useClass) {
|
|
82
|
+
return {
|
|
83
|
+
provide: RXAP_USER_PROFILE_DATA_SOURCE,
|
|
84
|
+
useClass: dataSource
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return {
|
|
89
|
+
provide: RXAP_USER_PROFILE_DATA_SOURCE,
|
|
90
|
+
useExisting: dataSource
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvcHJvdmlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2QixpQ0FBaUMsRUFDakMsNkJBQTZCLEdBQzlCLE1BQU0sVUFBVSxDQUFDO0FBUWxCLE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBRyxtQkFBK0I7SUFDOUQsT0FBTztRQUNMLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsV0FBVztRQUNYLGFBQWE7UUFDYixhQUFhO1FBQ2IsR0FBRyxtQkFBbUI7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQTZEO0lBRTdELE9BQU87UUFDTCxpQkFBaUI7UUFDakI7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBRyxJQUFtQjtJQUNyRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUNyQjtRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsUUFBUSxFQUFFLEdBQUc7UUFDYixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUE4QztJQUNsRixPQUFPLENBQUM7WUFDTixPQUFPLEVBQUUsOEJBQThCO1lBQ3ZDLFFBQVEsRUFBRSxPQUFPO1NBQ2xCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsR0FBRyxLQUEwRDtJQUNqRyxPQUFPO1FBQ0wsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFxQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FDeEc7WUFDRSxPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFFBQVEsRUFBRSxTQUFTO1lBQ25CLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FDRixDQUFDO1FBQ0YsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUE0QixFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDMUY7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLElBQUk7U0FDWixDQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxHQUFHLE1BQTJCO0lBQ25FLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3hCO1FBQ0UsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFVBQXlDO0lBQzVFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQ2pDO1FBQ0UsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBeUM7SUFDNUUsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FDakM7UUFDRSxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTztRQUNMLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLHNCQUFzQjtLQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxVQUFtQyxFQUFFLFFBQVEsR0FBRyxLQUFLO0lBQzdGLElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixPQUFPO1lBQ0wsT0FBTyxFQUFFLDZCQUE2QjtZQUN0QyxRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPO1lBQ0wsT0FBTyxFQUFFLDZCQUE2QjtZQUN0QyxXQUFXLEVBQUUsVUFBVTtTQUN4QixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0ByeGFwL3BhdHRlcm4nO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICdAcnhhcC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZGVmYXVsdC1oZWFkZXIvZGVmYXVsdC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEV4dGVybmFsQXBwc1NlcnZpY2UgfSBmcm9tICcuL2V4dGVybmFsLWFwcHMuc2VydmljZSc7XG5pbXBvcnQgeyBGb290ZXJTZXJ2aWNlIH0gZnJvbSAnLi9mb290ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi9oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dvU2VydmljZSB9IGZyb20gJy4vbG9nby5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbldpdGhJbnNlcnRzIH0gZnJvbSAnLi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbSc7XG5pbXBvcnQge1xuICBSWEFQX0VYVEVSTkFMX0FQUCxcbiAgUlhBUF9GT09URVJfQ09NUE9ORU5ULFxuICBSWEFQX0hFQURFUl9DT01QT05FTlQsXG4gIFJYQVBfTkFWSUdBVElPTl9DT05GSUcsXG4gIFJYQVBfTkFWSUdBVElPTl9DT05GSUdfSU5TRVJUUyxcbiAgUlhBUF9SRUxFQVNFX0lORk9fTU9EVUxFLFxuICBSWEFQX1NFVFRJTkdTX01FTlVfSVRFTSxcbiAgUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5ULFxuICBSWEFQX1VTRVJfUFJPRklMRV9EQVRBX1NPVVJDRSxcbn0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxBcHAsXG4gIFJlbGVhc2VJbmZvTW9kdWxlLFxuICBTZXR0aW5nc01lbnVJdGVtLFxuICBTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50LFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMYXlvdXQoLi4uYWRkaXRpb25hbFByb3ZpZGVyczogUHJvdmlkZXJbXSk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIEV4dGVybmFsQXBwc1NlcnZpY2UsXG4gICAgTGF5b3V0U2VydmljZSxcbiAgICBMb2dvU2VydmljZSxcbiAgICBIZWFkZXJTZXJ2aWNlLFxuICAgIEZvb3RlclNlcnZpY2UsXG4gICAgLi4uYWRkaXRpb25hbFByb3ZpZGVycyxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOYXZpZ2F0aW9uQ29uZmlnKFxuICBjb25maWc6IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyB8ICgoKSA9PiBOYXZpZ2F0aW9uV2l0aEluc2VydHMpLFxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogUlhBUF9OQVZJR0FUSU9OX0NPTkZJRyxcbiAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgfSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhFeHRlcm5hbEFwcHMoLi4uYXBwczogRXh0ZXJuYWxBcHBbXSk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gYXBwcy5tYXAoYXBwID0+IChcbiAgICB7XG4gICAgICBwcm92aWRlOiBSWEFQX0VYVEVSTkFMX0FQUCxcbiAgICAgIHVzZVZhbHVlOiBhcHAsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gICkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aE5hdmlnYXRpb25JbnNlcnRzKGluc2VydHM6IFJlY29yZDxzdHJpbmcsIE5hdmlnYXRpb25XaXRoSW5zZXJ0cz4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFt7XG4gICAgcHJvdmlkZTogUlhBUF9OQVZJR0FUSU9OX0NPTkZJR19JTlNFUlRTLFxuICAgIHVzZVZhbHVlOiBpbnNlcnRzLFxuICB9XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTZXR0aW5nc01lbnVJdGVtcyguLi5pdGVtczogQXJyYXk8U2V0dGluZ3NNZW51SXRlbUNvbXBvbmVudCB8IFNldHRpbmdzTWVudUl0ZW0+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgLi4uaXRlbXMuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50ID0+IHR5cGVvZiBpdGVtID09PSAnZnVuY3Rpb24nKS5tYXAoY29tcG9uZW50ID0+IChcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUlhBUF9TRVRUSU5HU19NRU5VX0lURU1fQ09NUE9ORU5ULFxuICAgICAgICB1c2VWYWx1ZTogY29tcG9uZW50LFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH1cbiAgICApKSxcbiAgICAuLi5pdGVtcy5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFNldHRpbmdzTWVudUl0ZW0gPT4gdHlwZW9mIGl0ZW0gIT09ICdmdW5jdGlvbicpLm1hcChpdGVtID0+IChcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUlhBUF9TRVRUSU5HU19NRU5VX0lURU0sXG4gICAgICAgIHVzZVZhbHVlOiBpdGVtLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH1cbiAgICApKSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhSZWxlYXNlSW5mb01vZHVsZXMoLi4ubW9kdWxlOiBSZWxlYXNlSW5mb01vZHVsZVtdKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBtb2R1bGUubWFwKGl0ZW0gPT4gKFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfUkVMRUFTRV9JTkZPX01PRFVMRSxcbiAgICAgIHVzZVZhbHVlOiBpdGVtLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhIZWFkZXJDb21wb25lbnRzKGNvbXBvbmVudHM6IEFycmF5PENvbXBvbmVudFR5cGU8dW5rbm93bj4+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBjb21wb25lbnRzLm1hcChjb21wb25lbnQgPT4gKFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfSEVBREVSX0NPTVBPTkVOVCxcbiAgICAgIHVzZVZhbHVlOiBjb21wb25lbnQsXG4gICAgfVxuICApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhGb290ZXJDb21wb25lbnRzKGNvbXBvbmVudHM6IEFycmF5PENvbXBvbmVudFR5cGU8dW5rbm93bj4+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBjb21wb25lbnRzLm1hcChjb21wb25lbnQgPT4gKFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfRk9PVEVSX0NPTVBPTkVOVCxcbiAgICAgIHVzZVZhbHVlOiBjb21wb25lbnQsXG4gICAgfVxuICApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhEZWZhdWx0SGVhZGVyQ29tcG9uZW50KCk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBSWEFQX0hFQURFUl9DT01QT05FTlQsXG4gICAgdXNlVmFsdWU6IERlZmF1bHRIZWFkZXJDb21wb25lbnQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVXNlclByb2ZpbGVEYXRhU291cmNlKGRhdGFTb3VyY2U6IENvbnN0cnVjdG9yPERhdGFTb3VyY2U+LCB1c2VDbGFzcyA9IGZhbHNlKTogUHJvdmlkZXIge1xuICBpZiAodXNlQ2xhc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdmlkZTogUlhBUF9VU0VSX1BST0ZJTEVfREFUQV9TT1VSQ0UsXG4gICAgICB1c2VDbGFzczogZGF0YVNvdXJjZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGU6IFJYQVBfVVNFUl9QUk9GSUxFX0RBVEFfU09VUkNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGRhdGFTb3VyY2VcbiAgICB9O1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/tokens.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { staticDataSource } from '@rxap/data-source';
|
|
2
3
|
export const RXAP_NAVIGATION_CONFIG = new InjectionToken('rxap/layout/navigation-config');
|
|
3
4
|
export const RXAP_NAVIGATION_CONFIG_INSERTS = new InjectionToken('rxap/layout/navigation-config-inserts');
|
|
4
5
|
export const RXAP_FOOTER_COMPONENT = new InjectionToken('rxap/layout/footer-component');
|
|
@@ -10,8 +11,12 @@ export const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken('extract-usernam
|
|
|
10
11
|
providedIn: 'root',
|
|
11
12
|
factory: () => (profile) => (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
|
|
12
13
|
});
|
|
14
|
+
export const RXAP_USER_PROFILE_DATA_SOURCE = new InjectionToken('rxap/layout/user-profile-data-source', {
|
|
15
|
+
providedIn: 'root',
|
|
16
|
+
factory: () => staticDataSource(null),
|
|
17
|
+
});
|
|
13
18
|
export const RXAP_EXTERNAL_APP = new InjectionToken('rxap/layout/external-app');
|
|
14
19
|
export const RXAP_RELEASE_INFO_MODULE = new InjectionToken('rxap/layout/release-info-module');
|
|
15
20
|
export const RXAP_SETTINGS_MENU_ITEM_COMPONENT = new InjectionToken('rxap/layout/settings-menu-item-component');
|
|
16
21
|
export const RXAP_SETTINGS_MENU_ITEM = new InjectionToken('rxap/layout/settings-menu-item');
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWNyRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsK0JBQStCLENBQUMsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsdUNBQXVDLENBQUMsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsOEJBQThCLENBQUMsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsOEJBQThCLENBQUMsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBYSx5QkFBeUIsQ0FBQyxDQUFDO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXFELCtCQUErQixDQUFDLENBQUM7QUFDaEosTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzdELCtCQUErQixFQUMvQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsQ0FDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ25FLElBQUksSUFBSTtDQUMzQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBYSxzQ0FBc0MsRUFBRTtJQUNsSCxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0NBQ3RDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFjLDBCQUEwQixDQUFDLENBQUM7QUFFN0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQW9CLGlDQUFpQyxDQUFDLENBQUM7QUFFakgsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBQTRCLDBDQUEwQyxDQUFDLENBQUM7QUFFM0ksTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQW1CLGdDQUFnQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nb0NvbmZpZyB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQgeyBzdGF0aWNEYXRhU291cmNlIH0gZnJvbSAnQHJ4YXAvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZSxcbiAgTWV0aG9kV2l0aFBhcmFtZXRlcnMsXG59IGZyb20gJ0ByeGFwL3BhdHRlcm4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbldpdGhJbnNlcnRzIH0gZnJvbSAnLi9uYXZpZ2F0aW9uL25hdmlnYXRpb24taXRlbSc7XG5pbXBvcnQge1xuICBFeHRlcm5hbEFwcCxcbiAgRXh0cmFjdFVzZXJuYW1lRnJvbVByb2ZpbGVGbixcbiAgUmVsZWFzZUluZm9Nb2R1bGUsXG4gIFNldHRpbmdzTWVudUl0ZW0sXG4gIFNldHRpbmdzTWVudUl0ZW1Db21wb25lbnQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgUlhBUF9OQVZJR0FUSU9OX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXZpZ2F0aW9uV2l0aEluc2VydHMgfCAoKCkgPT4gTmF2aWdhdGlvbldpdGhJbnNlcnRzKT4oXG4gICdyeGFwL2xheW91dC9uYXZpZ2F0aW9uLWNvbmZpZycpO1xuZXhwb3J0IGNvbnN0IFJYQVBfTkFWSUdBVElPTl9DT05GSUdfSU5TRVJUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBOYXZpZ2F0aW9uV2l0aEluc2VydHM+PihcbiAgJ3J4YXAvbGF5b3V0L25hdmlnYXRpb24tY29uZmlnLWluc2VydHMnKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfRk9PVEVSX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21wb25lbnRUeXBlPHVua25vd24+PigncnhhcC9sYXlvdXQvZm9vdGVyLWNvbXBvbmVudCcpO1xuZXhwb3J0IGNvbnN0IFJYQVBfSEVBREVSX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21wb25lbnRUeXBlPHVua25vd24+PigncnhhcC9sYXlvdXQvaGVhZGVyLWNvbXBvbmVudCcpO1xuZXhwb3J0IGNvbnN0IFJYQVBfTE9HT19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9nb0NvbmZpZz4oJ3J4YXAvbGF5b3V0L2xvZ28tY29uZmlnJyk7XG5leHBvcnQgY29uc3QgUlhBUF9MQVlPVVRfQVBQU19HUklEID0gbmV3IEluamVjdGlvblRva2VuKCdyeGFwL2xheW91dC9hcHBzLWdyaWQnKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfRVhURVJOQUxfQVBQX0ZJTFRFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZXRob2RXaXRoUGFyYW1ldGVyczxFeHRlcm5hbEFwcFtdLCBFeHRlcm5hbEFwcFtdPj4oJ3J4YXAvbGF5b3V0L2FwcC1jb25maWctZmlsdGVyJyk7XG5leHBvcnQgY29uc3QgRVhUUkFDVF9VU0VSTkFNRV9GUk9NX1BST0ZJTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXh0cmFjdFVzZXJuYW1lRnJvbVByb2ZpbGVGbj4oXG4gICdleHRyYWN0LXVzZXJuYW1lLWZyb20tcHJvZmlsZScsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gKHByb2ZpbGU6IGFueSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZSA/IHByb2ZpbGUudXNlcm5hbWUgPz8gcHJvZmlsZS5lbWFpbCA/PyBwcm9maWxlLm5hbWUgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA/PyBudWxsLFxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfVVNFUl9QUk9GSUxFX0RBVEFfU09VUkNFID0gbmV3IEluamVjdGlvblRva2VuPERhdGFTb3VyY2U+KCdyeGFwL2xheW91dC91c2VyLXByb2ZpbGUtZGF0YS1zb3VyY2UnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gc3RhdGljRGF0YVNvdXJjZShudWxsKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUlhBUF9FWFRFUk5BTF9BUFAgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXh0ZXJuYWxBcHA+KCdyeGFwL2xheW91dC9leHRlcm5hbC1hcHAnKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfUkVMRUFTRV9JTkZPX01PRFVMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWxlYXNlSW5mb01vZHVsZT4oJ3J4YXAvbGF5b3V0L3JlbGVhc2UtaW5mby1tb2R1bGUnKTtcblxuZXhwb3J0IGNvbnN0IFJYQVBfU0VUVElOR1NfTUVOVV9JVEVNX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZXR0aW5nc01lbnVJdGVtQ29tcG9uZW50PigncnhhcC9sYXlvdXQvc2V0dGluZ3MtbWVudS1pdGVtLWNvbXBvbmVudCcpO1xuXG5leHBvcnQgY29uc3QgUlhBUF9TRVRUSU5HU19NRU5VX0lURU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2V0dGluZ3NNZW51SXRlbT4oJ3J4YXAvbGF5b3V0L3NldHRpbmdzLW1lbnUtaXRlbScpO1xuIl19
|
package/fesm2022/rxap-layout.mjs
CHANGED
|
@@ -15,6 +15,7 @@ import { ObserveCurrentThemeDensity, ThemeService } from '@rxap/ngx-theme';
|
|
|
15
15
|
import { Observable, ReplaySubject, of, from, combineLatest, Subscription, debounceTime } from 'rxjs';
|
|
16
16
|
import * as i2$1 from '@angular/cdk/portal';
|
|
17
17
|
import { ComponentPortal, PortalModule, CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
|
|
18
|
+
import { staticDataSource } from '@rxap/data-source';
|
|
18
19
|
import { coerceArray, JoinPath } from '@rxap/utilities';
|
|
19
20
|
import { switchMap, catchError, map, filter, startWith, tap } from 'rxjs/operators';
|
|
20
21
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
@@ -28,7 +29,6 @@ import * as i1$1 from '@angular/material/toolbar';
|
|
|
28
29
|
import { MatToolbarModule, MatToolbar, MatToolbarRow } from '@angular/material/toolbar';
|
|
29
30
|
import * as i1$2 from '@angular/material/menu';
|
|
30
31
|
import { MatMenuModule, MatMenu, MatMenuTrigger, MatMenuItem } from '@angular/material/menu';
|
|
31
|
-
import { UserSettingsThemeService, IsThemeDensity, ThemeDensity, UserProfileDataSource } from '@rxap/ngx-user';
|
|
32
32
|
import { PubSubService } from '@rxap/ngx-pub-sub';
|
|
33
33
|
import { ClickOnLink } from '@rxap/browser-utilities';
|
|
34
34
|
|
|
@@ -79,6 +79,10 @@ const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken('extract-username-from-
|
|
|
79
79
|
providedIn: 'root',
|
|
80
80
|
factory: () => (profile) => (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
|
|
81
81
|
});
|
|
82
|
+
const RXAP_USER_PROFILE_DATA_SOURCE = new InjectionToken('rxap/layout/user-profile-data-source', {
|
|
83
|
+
providedIn: 'root',
|
|
84
|
+
factory: () => staticDataSource(null),
|
|
85
|
+
});
|
|
82
86
|
const RXAP_EXTERNAL_APP = new InjectionToken('rxap/layout/external-app');
|
|
83
87
|
const RXAP_RELEASE_INFO_MODULE = new InjectionToken('rxap/layout/release-info-module');
|
|
84
88
|
const RXAP_SETTINGS_MENU_ITEM_COMPONENT = new InjectionToken('rxap/layout/settings-menu-item-component');
|
|
@@ -752,31 +756,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
752
756
|
|
|
753
757
|
class LayoutComponent {
|
|
754
758
|
constructor() {
|
|
755
|
-
this.userSettingsThemeService = inject(UserSettingsThemeService);
|
|
756
|
-
this.themeService = inject(ThemeService);
|
|
757
759
|
this.logoService = inject(LogoService);
|
|
758
760
|
this.logoSrc = computed(() => this.logoService.src());
|
|
759
761
|
this.logoWidth = computed(() => this.logoService.width());
|
|
760
762
|
this.logoHeight = computed(() => this.logoService.height());
|
|
761
763
|
}
|
|
762
|
-
ngOnDestroy() {
|
|
763
|
-
this.userSettingsThemeService.stopSync();
|
|
764
|
-
}
|
|
765
|
-
ngOnInit() {
|
|
766
|
-
this.userSettingsThemeService.startSync().then(() => {
|
|
767
|
-
this.userSettingsThemeService.get().then(theme => {
|
|
768
|
-
if (theme.preset && theme.preset !== 'default') {
|
|
769
|
-
this.themeService.setTheme(theme.preset, true);
|
|
770
|
-
}
|
|
771
|
-
if (theme.density && IsThemeDensity(theme.density) && theme.density !== ThemeDensity.Normal) {
|
|
772
|
-
this.themeService.setDensity(theme.density, true);
|
|
773
|
-
}
|
|
774
|
-
if (theme.typography && theme.typography !== 'default') {
|
|
775
|
-
this.themeService.setTypography(theme.typography, true);
|
|
776
|
-
}
|
|
777
|
-
});
|
|
778
|
-
});
|
|
779
|
-
}
|
|
780
764
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
781
765
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LayoutComponent, isStandalone: true, selector: "rxap-layout", ngImport: i0, template: "<rxap-header class=\"z-10 w-full fixed top-0\"></rxap-header>\n<rxap-navigation-progress-bar></rxap-navigation-progress-bar>\n<rxap-sidenav>\n <router-outlet></router-outlet>\n <ng-template rxapSidenavFooter>\n <img\n [src]=\"logoSrc()\"\n [routerLink]=\"['/']\"\n [width]=\"logoWidth()\"\n [height]=\"logoHeight()\"\n alt=\"logo\"\n class=\"grow-0 mx-16 cursor-pointer\"\n />\n <div class=\"grow-0 px-16 mt-4\">\n <rxap-release-info></rxap-release-info>\n </div>\n </ng-template>\n</rxap-sidenav>\n<rxap-footer class=\"z-10 w-full fixed bottom-0\"></rxap-footer>\n", styles: [""], dependencies: [{ kind: "component", type: HeaderComponent, selector: "rxap-header", inputs: ["color"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: FooterComponent, selector: "rxap-footer" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: SidenavComponent, selector: "rxap-sidenav" }, { kind: "component", type: ReleaseInfoComponent, selector: "rxap-release-info" }, { kind: "directive", type: SidenavFooterDirective, selector: "[rxapSidenavFooter]" }, { kind: "component", type: NavigationProgressBarComponent, selector: "rxap-navigation-progress-bar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
782
766
|
}
|
|
@@ -1094,8 +1078,7 @@ class DefaultHeaderComponent {
|
|
|
1094
1078
|
this.layoutComponentService = inject(LayoutService);
|
|
1095
1079
|
this.collapsable = computed(() => this.layoutComponentService.collapsable());
|
|
1096
1080
|
this.opened = computed(() => this.layoutComponentService.opened());
|
|
1097
|
-
this.
|
|
1098
|
-
this.profile = toSignal(this.userProfileService.connect('user-profile'), { initialValue: null });
|
|
1081
|
+
this.profile = toSignal(inject(RXAP_USER_PROFILE_DATA_SOURCE).connect('user-profile'), { initialValue: null });
|
|
1099
1082
|
}
|
|
1100
1083
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DefaultHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1101
1084
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: DefaultHeaderComponent, isStandalone: true, selector: "rxap-default-header", host: { classAttribute: "grow" }, ngImport: i0, template: "<div class=\"w-full flex flex-row gap-x-4 justify-between items-center\">\n @if (!collapsable()) {\n <rxap-sidenav-toggle-button></rxap-sidenav-toggle-button>\n }\n <div class=\"grow\">\n <ng-content></ng-content>\n </div>\n <rxap-apps-button class=\"grow-0\"></rxap-apps-button>\n <rxap-settings-button class=\"grow-0\"></rxap-settings-button>\n @if (this.profile(); as profile) {\n <rxap-user-profile-icon [profile]=\"profile\" class=\"grow-0\"></rxap-user-profile-icon>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: AppsButtonComponent, selector: "rxap-apps-button" }, { kind: "component", type: SettingsButtonComponent, selector: "rxap-settings-button" }, { kind: "component", type: SidenavToggleButtonComponent, selector: "rxap-sidenav-toggle-button" }, { kind: "component", type: UserProfileIconComponent, selector: "rxap-user-profile-icon", inputs: ["profile"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -1183,6 +1166,20 @@ function withDefaultHeaderComponent() {
|
|
|
1183
1166
|
useValue: DefaultHeaderComponent,
|
|
1184
1167
|
};
|
|
1185
1168
|
}
|
|
1169
|
+
function withUserProfileDataSource(dataSource, useClass = false) {
|
|
1170
|
+
if (useClass) {
|
|
1171
|
+
return {
|
|
1172
|
+
provide: RXAP_USER_PROFILE_DATA_SOURCE,
|
|
1173
|
+
useClass: dataSource
|
|
1174
|
+
};
|
|
1175
|
+
}
|
|
1176
|
+
else {
|
|
1177
|
+
return {
|
|
1178
|
+
provide: RXAP_USER_PROFILE_DATA_SOURCE,
|
|
1179
|
+
useExisting: dataSource
|
|
1180
|
+
};
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1186
1183
|
|
|
1187
1184
|
// region sidenav
|
|
1188
1185
|
// endregion
|
|
@@ -1191,5 +1188,5 @@ function withDefaultHeaderComponent() {
|
|
|
1191
1188
|
* Generated bundle index. Do not edit.
|
|
1192
1189
|
*/
|
|
1193
1190
|
|
|
1194
|
-
export { AppsButtonComponent, BaseLayoutComponent, DefaultHeaderComponent, EXTRACT_USERNAME_FROM_PROFILE, ExternalAppsService, FooterComponent, FooterDirective, FooterService, HeaderComponent, HeaderDirective, HeaderService, IsNavigationDividerItem, IsNavigationInsertItem, IsNavigationItem, LayoutComponent, LayoutService, LogoService, MinimalLayoutComponent, NavigationComponent, NavigationItemComponent, NavigationProgressBarComponent, NavigationService, RXAP_EXTERNAL_APP, RXAP_EXTERNAL_APP_FILTER, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_LAYOUT_APPS_GRID, RXAP_LOGO_CONFIG, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, ReleaseInfoComponent, SettingsButtonComponent, SidenavComponent, SidenavFooterDirective, SidenavHeaderDirective, SidenavToggleButtonComponent, UserProfileIconComponent, provideLayout, withDefaultHeaderComponent, withExternalApps, withFooterComponents, withHeaderComponents, withNavigationConfig, withNavigationInserts, withReleaseInfoModules, withSettingsMenuItems };
|
|
1191
|
+
export { AppsButtonComponent, BaseLayoutComponent, DefaultHeaderComponent, EXTRACT_USERNAME_FROM_PROFILE, ExternalAppsService, FooterComponent, FooterDirective, FooterService, HeaderComponent, HeaderDirective, HeaderService, IsNavigationDividerItem, IsNavigationInsertItem, IsNavigationItem, LayoutComponent, LayoutService, LogoService, MinimalLayoutComponent, NavigationComponent, NavigationItemComponent, NavigationProgressBarComponent, NavigationService, RXAP_EXTERNAL_APP, RXAP_EXTERNAL_APP_FILTER, RXAP_FOOTER_COMPONENT, RXAP_HEADER_COMPONENT, RXAP_LAYOUT_APPS_GRID, RXAP_LOGO_CONFIG, RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, RXAP_RELEASE_INFO_MODULE, RXAP_SETTINGS_MENU_ITEM, RXAP_SETTINGS_MENU_ITEM_COMPONENT, RXAP_USER_PROFILE_DATA_SOURCE, ReleaseInfoComponent, SettingsButtonComponent, SidenavComponent, SidenavFooterDirective, SidenavHeaderDirective, SidenavToggleButtonComponent, UserProfileIconComponent, provideLayout, withDefaultHeaderComponent, withExternalApps, withFooterComponents, withHeaderComponents, withNavigationConfig, withNavigationInserts, withReleaseInfoModules, withSettingsMenuItems, withUserProfileDataSource };
|
|
1195
1192
|
//# sourceMappingURL=rxap-layout.mjs.map
|