@rxap/layout 16.0.0-dev.5 → 16.0.0-dev.7

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/esm2022/index.mjs +5 -6
  4. package/esm2022/lib/app-url.service.mjs +64 -0
  5. package/esm2022/lib/footer/footer.component.mjs +3 -3
  6. package/esm2022/lib/header/apps-button/apps-button.component.mjs +29 -46
  7. package/esm2022/lib/header/header.component.mjs +41 -46
  8. package/esm2022/lib/header/language-selector/language-selector.component.mjs +10 -69
  9. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +6 -2
  10. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +6 -2
  11. package/esm2022/lib/header/sign-out/sign-out.component.mjs +14 -18
  12. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +28 -28
  13. package/esm2022/lib/i18n-check.guard.mjs +34 -0
  14. package/esm2022/lib/i18n.service.mjs +36 -0
  15. package/esm2022/lib/language-selector.service.mjs +34 -0
  16. package/esm2022/lib/layout/layout.component.mjs +46 -23
  17. package/esm2022/lib/layout/layout.component.service.mjs +2 -2
  18. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +48 -95
  19. package/esm2022/lib/navigation/navigation.component.mjs +24 -25
  20. package/esm2022/lib/sidenav/sidenav.component.mjs +1 -1
  21. package/esm2022/lib/types.mjs +1 -1
  22. package/fesm2022/rxap-layout.mjs +637 -667
  23. package/fesm2022/rxap-layout.mjs.map +1 -1
  24. package/index.d.ts +4 -3
  25. package/lib/app-url.service.d.ts +26 -0
  26. package/lib/header/apps-button/apps-button.component.d.ts +12 -20
  27. package/lib/header/header.component.d.ts +7 -10
  28. package/lib/header/language-selector/language-selector.component.d.ts +1 -16
  29. package/lib/header/sign-out/sign-out.component.d.ts +4 -4
  30. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +11 -7
  31. package/lib/i18n-check.guard.d.ts +14 -0
  32. package/lib/i18n.service.d.ts +12 -0
  33. package/lib/language-selector.service.d.ts +15 -0
  34. package/lib/layout/layout.component.d.ts +8 -4
  35. package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -17
  36. package/lib/navigation/navigation.component.d.ts +4 -4
  37. package/lib/types.d.ts +3 -2
  38. package/package.json +36 -21
  39. package/theme.css +1 -0
  40. package/esm2022/lib/layout/layout.component.module.mjs +0 -30
  41. package/esm2022/lib/sidenav-content/sidenav-content.component.mjs +0 -27
  42. package/esm2022/lib/sidenav-content/sidenav-content.component.service.mjs +0 -36
  43. package/lib/layout/layout.component.module.d.ts +0 -10
  44. package/lib/sidenav-content/sidenav-content.component.d.ts +0 -10
  45. package/lib/sidenav-content/sidenav-content.component.service.d.ts +0 -15
  46. package/src/lib/header/apps-button/_apps-button.component.theme.scss +0 -45
  47. package/src/lib/navigation/_navigation.component.theme.scss +0 -33
  48. package/src/lib/navigation/navigation-item/_navigation-item.component.theme.scss +0 -45
  49. package/src/lib/sidenav/_sidenav.component.theme.scss +0 -65
  50. package/src/lib/toggle-window-sidenav-button/_toggle-window-sidenav-button.component.theme.scss +0 -15
@@ -1,94 +1,35 @@
1
- import { ChangeDetectionStrategy, Component, Inject, Injectable, } from '@angular/core';
2
- import { ConfigService } from '@rxap/config';
1
+ import { ChangeDetectionStrategy, Component, } from '@angular/core';
3
2
  import { MatOptionModule } from '@angular/material/core';
4
3
  import { FormsModule } from '@angular/forms';
5
4
  import { MatSelectModule } from '@angular/material/select';
5
+ import { StopPropagationDirective } from '@rxap/directives';
6
6
  import { MatFormFieldModule } from '@angular/material/form-field';
7
7
  import { KeyValuePipe, NgFor, NgIf, } from '@angular/common';
8
+ import { LanguageSelectorService } from '../../language-selector.service';
8
9
  import * as i0 from "@angular/core";
9
- import * as i1 from "@rxap/config";
10
+ import * as i1 from "../../language-selector.service";
10
11
  import * as i2 from "@angular/material/form-field";
11
12
  import * as i3 from "@angular/material/select";
12
13
  import * as i4 from "@angular/material/core";
13
14
  import * as i5 from "@angular/forms";
14
- export const RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY = 'rxap__selected_language';
15
- export const RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY = 'rxap__selected_language_last_change';
16
- export class LanguageSelectorService {
17
- constructor(config) {
18
- this.config = config;
19
- this.languages = this.config.get('i18n.languages') ?? {};
20
- this.defaultLanguage =
21
- this.config.get('i18n.defaultLanguage') ??
22
- Object.keys(this.languages)[0] ??
23
- 'en';
24
- this.selectedLanguage =
25
- localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY) ??
26
- this.defaultLanguage;
27
- }
28
- setLanguage(language) {
29
- if (language !== this.selectedLanguage) {
30
- this.redirect(language);
31
- }
32
- }
33
- autoRedirect() {
34
- if (localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY)) {
35
- this.redirect(localStorage.getItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY));
36
- }
37
- }
38
- redirect(language) {
39
- const currentUrl = location.origin + location.pathname + location.search;
40
- const redirectUrl = location.origin +
41
- `/${language}` +
42
- location.pathname.replace(new RegExp(`^/${this.selectedLanguage}`), '') +
43
- location.search;
44
- this.selectedLanguage = language;
45
- localStorage.setItem(RXAP_SELECTED_LANGUAGE_LOCAL_STORAGE_KEY, language);
46
- if (currentUrl !== redirectUrl) {
47
- if (this.checkLastChange()) {
48
- location.replace(redirectUrl);
49
- }
50
- }
51
- else {
52
- console.log('Redirect not required');
53
- }
54
- }
55
- checkLastChange() {
56
- const lastChangeString = localStorage.getItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY);
57
- if (lastChangeString) {
58
- if (Date.now() - parseInt(lastChangeString, 10) < 1000) {
59
- return false;
60
- }
61
- }
62
- localStorage.setItem(RXAP_SELECTED_LANGUAGE_CHANGE_LOCAL_STORAGE_KEY, Date.now().toFixed(0));
63
- return true;
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, deps: [{ token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
66
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, providedIn: 'root' }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, decorators: [{
69
- type: Injectable,
70
- args: [{ providedIn: 'root' }]
71
- }], ctorParameters: function () { return [{ type: i1.ConfigService, decorators: [{
72
- type: Inject,
73
- args: [ConfigService]
74
- }] }]; } });
75
15
  export class LanguageSelectorComponent {
76
16
  constructor(language) {
77
17
  this.language = language;
78
18
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: LanguageSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: LanguageSelectorComponent, isStandalone: true, selector: "rxap-language-selector", ngImport: i0, template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\"\n [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".language-selector{width:142px}.language-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: i1.LanguageSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: LanguageSelectorComponent, isStandalone: true, selector: "rxap-language-selector", ngImport: i0, template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\" rxapStopPropagation>\n <mat-label i18n>Select Language</mat-label>\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".language-selector{width:calc(100% - 32px);margin:0 16px}.language-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: StopPropagationDirective, selector: "[rxapStopPropagation]" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
21
  }
82
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorComponent, decorators: [{
83
23
  type: Component,
84
24
  args: [{ selector: 'rxap-language-selector', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
85
25
  NgIf,
86
26
  MatFormFieldModule,
27
+ StopPropagationDirective,
87
28
  MatSelectModule,
88
29
  FormsModule,
89
30
  NgFor,
90
31
  MatOptionModule,
91
32
  KeyValuePipe,
92
- ], template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\">\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\"\n [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".language-selector{width:142px}.language-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}\n"] }]
93
- }], ctorParameters: function () { return [{ type: LanguageSelectorService }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLElBQUksR0FDTCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBRXpCLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUNuRCx5QkFBeUIsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSwrQ0FBK0MsR0FDMUQscUNBQXFDLENBQUM7QUFHeEMsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUVtQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRXRDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQU0sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBZ0I7UUFDakMsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsUUFBUSxDQUNYLFlBQVksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUUsQ0FDaEUsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUFnQjtRQUMvQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN6RSxNQUFNLFdBQVcsR0FDZixRQUFRLENBQUMsTUFBTTtZQUNmLElBQUssUUFBUyxFQUFFO1lBQ2hCLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQU0sSUFBSSxDQUFDLGdCQUFpQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekUsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ2pDLFlBQVksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekUsSUFBSSxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFO2dCQUMxQixRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FDM0MsK0NBQStDLENBQ2hELENBQUM7UUFDRixJQUFJLGdCQUFnQixFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUU7Z0JBQ3RELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELFlBQVksQ0FBQyxPQUFPLENBQ2xCLCtDQUErQyxFQUMvQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUN0QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWpFVSx1QkFBdUIsa0JBTXhCLGFBQWE7a0hBTlosdUJBQXVCLGNBRFYsTUFBTTs7MkZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU83QixNQUFNOzJCQUFDLGFBQWE7O0FBOEV6QixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQTRCLFFBQWlDO1FBQWpDLGFBQVEsR0FBUixRQUFRLENBQXlCO0lBQzdELENBQUM7OEdBRlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsa0ZDM0d0Qyx3ZEFVQSx5WUR3RkksSUFBSSw0RkFDSixrQkFBa0IseU9BQ2xCLGVBQWUsdVRBQ2YsV0FBVywrVkFDWCxLQUFLLGtIQUNMLGVBQWUsMEJBQ2YsWUFBWTs7MkZBR0gseUJBQXlCO2tCQWhCckMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsS0FBSzt3QkFDTCxlQUFlO3dCQUNmLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0ByeGFwL2NvbmZpZyc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtcbiAgS2V5VmFsdWVQaXBlLFxuICBOZ0ZvcixcbiAgTmdJZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFJYQVBfU0VMRUNURURfTEFOR1VBR0VfTE9DQUxfU1RPUkFHRV9LRVkgPVxuICAncnhhcF9fc2VsZWN0ZWRfbGFuZ3VhZ2UnO1xuZXhwb3J0IGNvbnN0IFJYQVBfU0VMRUNURURfTEFOR1VBR0VfQ0hBTkdFX0xPQ0FMX1NUT1JBR0VfS0VZID1cbiAgJ3J4YXBfX3NlbGVjdGVkX2xhbmd1YWdlX2xhc3RfY2hhbmdlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlbGVjdG9yU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBsYW5ndWFnZXM6IGFueTtcbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICBwdWJsaWMgc2VsZWN0ZWRMYW5ndWFnZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ29uZmlnU2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLmNvbmZpZy5nZXQ8YW55PignaTE4bi5sYW5ndWFnZXMnKSA/PyB7fTtcbiAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZSA9XG4gICAgICB0aGlzLmNvbmZpZy5nZXQoJ2kxOG4uZGVmYXVsdExhbmd1YWdlJykgPz9cbiAgICAgIE9iamVjdC5rZXlzKHRoaXMubGFuZ3VhZ2VzKVswXSA/P1xuICAgICAgJ2VuJztcbiAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPVxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oUlhBUF9TRUxFQ1RFRF9MQU5HVUFHRV9MT0NBTF9TVE9SQUdFX0tFWSkgPz9cbiAgICAgIHRoaXMuZGVmYXVsdExhbmd1YWdlO1xuICB9XG5cbiAgcHVibGljIHNldExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICBpZiAobGFuZ3VhZ2UgIT09IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSkge1xuICAgICAgdGhpcy5yZWRpcmVjdChsYW5ndWFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGF1dG9SZWRpcmVjdCgpIHtcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oUlhBUF9TRUxFQ1RFRF9MQU5HVUFHRV9MT0NBTF9TVE9SQUdFX0tFWSkpIHtcbiAgICAgIHRoaXMucmVkaXJlY3QoXG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFJYQVBfU0VMRUNURURfTEFOR1VBR0VfTE9DQUxfU1RPUkFHRV9LRVkpISxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWRpcmVjdChsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY3VycmVudFVybCA9IGxvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lICsgbG9jYXRpb24uc2VhcmNoO1xuICAgIGNvbnN0IHJlZGlyZWN0VXJsID1cbiAgICAgIGxvY2F0aW9uLm9yaWdpbiArXG4gICAgICBgLyR7IGxhbmd1YWdlIH1gICtcbiAgICAgIGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXi8keyB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgfWApLCAnJykgK1xuICAgICAgbG9jYXRpb24uc2VhcmNoO1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFJYQVBfU0VMRUNURURfTEFOR1VBR0VfTE9DQUxfU1RPUkFHRV9LRVksIGxhbmd1YWdlKTtcbiAgICBpZiAoY3VycmVudFVybCAhPT0gcmVkaXJlY3RVcmwpIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrTGFzdENoYW5nZSgpKSB7XG4gICAgICAgIGxvY2F0aW9uLnJlcGxhY2UocmVkaXJlY3RVcmwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnUmVkaXJlY3Qgbm90IHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0xhc3RDaGFuZ2UoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGFzdENoYW5nZVN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFxuICAgICAgUlhBUF9TRUxFQ1RFRF9MQU5HVUFHRV9DSEFOR0VfTE9DQUxfU1RPUkFHRV9LRVksXG4gICAgKTtcbiAgICBpZiAobGFzdENoYW5nZVN0cmluZykge1xuICAgICAgaWYgKERhdGUubm93KCkgLSBwYXJzZUludChsYXN0Q2hhbmdlU3RyaW5nLCAxMCkgPCAxMDAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICBSWEFQX1NFTEVDVEVEX0xBTkdVQUdFX0NIQU5HRV9MT0NBTF9TVE9SQUdFX0tFWSxcbiAgICAgIERhdGUubm93KCkudG9GaXhlZCgwKSxcbiAgICApO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbGFuZ3VhZ2Utc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nRm9yLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBLZXlWYWx1ZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlU2VsZWN0b3JTZXJ2aWNlKSB7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCIobGFuZ3VhZ2UubGFuZ3VhZ2VzIHwga2V5dmFsdWUpLmxlbmd0aFwiPlxuICA8ZGl2PlxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwibGFuZ3VhZ2Utc2VsZWN0b3JcIj5cbiAgICAgIDxtYXQtc2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cImxhbmd1YWdlLnNldExhbmd1YWdlKCRldmVudClcIiBbbmdNb2RlbF09XCJsYW5ndWFnZS5zZWxlY3RlZExhbmd1YWdlXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhbmd1YWdlLmxhbmd1YWdlcyB8IGtleXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+e3tpdGVtLnZhbHVlfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
33
+ ], template: "<ng-template [ngIf]=\"(language.languages | keyvalue).length\">\n <div>\n <mat-form-field appearance=\"outline\" class=\"language-selector\" rxapStopPropagation>\n <mat-label i18n>Select Language</mat-label>\n <mat-select (ngModelChange)=\"language.setLanguage($event)\" [ngModel]=\"language.selectedLanguage\">\n <mat-option *ngFor=\"let item of language.languages | keyvalue\" [value]=\"item.key\">{{item.value}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [".language-selector{width:calc(100% - 32px);margin:0 16px}.language-selector ::ng-deep .mat-form-field-wrapper{padding-bottom:0}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix{padding:12px 0;border-width:6px}.language-selector ::ng-deep .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow-wrapper{transform:translateY(0)}\n"] }]
34
+ }], ctorParameters: function () { return [{ type: i1.LanguageSelectorService }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksRUFDWixLQUFLLEVBQ0wsSUFBSSxHQUNMLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7QUFtQjFFLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsWUFBNEIsUUFBaUM7UUFBakMsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7SUFDN0QsQ0FBQzs4R0FGVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixrRkNqQ3RDLDBnQkFVQSxtYURhSSxJQUFJLDRGQUNKLGtCQUFrQiwyU0FDbEIsd0JBQXdCLGlFQUN4QixlQUFlLHVUQUNmLFdBQVcsK1ZBQ1gsS0FBSyxrSEFDTCxlQUFlLDBCQUNmLFlBQVk7OzJGQUdILHlCQUF5QjtrQkFqQnJDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsS0FBSzt3QkFDTCxlQUFlO3dCQUNmLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQHJ4YXAvZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7XG4gIEtleVZhbHVlUGlwZSxcbiAgTmdGb3IsXG4gIE5nSWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xhbmd1YWdlLXNlbGVjdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLWxhbmd1YWdlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIEtleVZhbHVlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VTZWxlY3RvckNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBsYW5ndWFnZTogTGFuZ3VhZ2VTZWxlY3RvclNlcnZpY2UpIHtcbiAgfVxuXG59XG4iLCI8bmctdGVtcGxhdGUgW25nSWZdPVwiKGxhbmd1YWdlLmxhbmd1YWdlcyB8IGtleXZhbHVlKS5sZW5ndGhcIj5cbiAgPGRpdj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImxhbmd1YWdlLXNlbGVjdG9yXCIgcnhhcFN0b3BQcm9wYWdhdGlvbj5cbiAgICAgIDxtYXQtbGFiZWwgaTE4bj5TZWxlY3QgTGFuZ3VhZ2U8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cImxhbmd1YWdlLnNldExhbmd1YWdlKCRldmVudClcIiBbbmdNb2RlbF09XCJsYW5ndWFnZS5zZWxlY3RlZExhbmd1YWdlXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxhbmd1YWdlLmxhbmd1YWdlcyB8IGtleXZhbHVlXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+e3tpdGVtLnZhbHVlfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -18,9 +18,13 @@ export class NavigationProgressBarComponent {
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: NavigationProgressBarComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatProgressBarModule, AsyncPipe], template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n color=\"accent\"\n mode=\"indeterminate\"\n></mat-progress-bar>\n" }]
21
+ args: [{ selector: 'rxap-navigation-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
22
+ NgIf,
23
+ MatProgressBarModule,
24
+ AsyncPipe,
25
+ ], template: "<mat-progress-bar\n *ngIf=\"navigating$ | async\"\n color=\"accent\"\n mode=\"indeterminate\"\n></mat-progress-bar>\n" }]
22
26
  }], ctorParameters: function () { return [{ type: i2.Router, decorators: [{
23
27
  type: Inject,
24
28
  args: [Router]
25
29
  }] }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixNQUFNLEdBQ1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsTUFBTSxFQUNOLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFVekIsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNrQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUU5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEMsTUFBTSxDQUNKLEtBQUssQ0FBQyxFQUFFLENBQ04sS0FBSyxZQUFZLGVBQWU7WUFDaEMsS0FBSyxZQUFZLGFBQWE7WUFDOUIsS0FBSyxZQUFZLGdCQUFnQixDQUNwQyxFQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7OEdBaEJVLDhCQUE4QixrQkFLL0IsTUFBTTtrR0FMTCw4QkFBOEIsd0ZDOUIzQywwSEFLQSwwRER1QmEsSUFBSSw0RkFBRSxvQkFBb0Isb05BQUUsU0FBUzs7MkZBRXJDLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsQ0FBRTs7MEJBTy9DLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBOYXZpZ2F0aW9uQ2FuY2VsLFxuICBOYXZpZ2F0aW9uRW5kLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgbWFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQge1xuICBBc3luY1BpcGUsXG4gIE5nSWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbIE5nSWYsIE1hdFByb2dyZXNzQmFyTW9kdWxlLCBBc3luY1BpcGUgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblByb2dyZXNzQmFyQ29tcG9uZW50IHtcblxuICBwdWJsaWMgbmF2aWdhdGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUm91dGVyKSBwdWJsaWMgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICAgIHRoaXMubmF2aWdhdGluZyQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgIGZpbHRlcihcbiAgICAgICAgZXZlbnQgPT5cbiAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fFxuICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fFxuICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCxcbiAgICAgICksXG4gICAgICBtYXAoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgICk7XG4gIH1cblxufVxuIiwiPG1hdC1wcm9ncmVzcy1iYXJcbiAgKm5nSWY9XCJuYXZpZ2F0aW5nJCB8IGFzeW5jXCJcbiAgY29sb3I9XCJhY2NlbnRcIlxuICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIvbmF2aWdhdGlvbi1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixNQUFNLEdBQ1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsTUFBTSxFQUNOLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFjekIsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUNrQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUU5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEMsTUFBTSxDQUNKLEtBQUssQ0FBQyxFQUFFLENBQ04sS0FBSyxZQUFZLGVBQWU7WUFDaEMsS0FBSyxZQUFZLGFBQWE7WUFDOUIsS0FBSyxZQUFZLGdCQUFnQixDQUNwQyxFQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7OEdBaEJVLDhCQUE4QixrQkFLL0IsTUFBTTtrR0FMTCw4QkFBOEIsd0ZDbEMzQywwSEFLQSwwRER3QkksSUFBSSw0RkFDSixvQkFBb0Isb05BQ3BCLFNBQVM7OzJGQUdBLDhCQUE4QjtrQkFaMUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osb0JBQW9CO3dCQUNwQixTQUFTO3FCQUNWOzswQkFPRSxNQUFNOzJCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkNhbmNlbCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBSb3V0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0lmLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLW5hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL25hdmlnYXRpb24tcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uUHJvZ3Jlc3NCYXJDb21wb25lbnQge1xuXG4gIHB1YmxpYyBuYXZpZ2F0aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChSb3V0ZXIpIHB1YmxpYyByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgdGhpcy5uYXZpZ2F0aW5nJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgZmlsdGVyKFxuICAgICAgICBldmVudCA9PlxuICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0IHx8XG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8XG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsLFxuICAgICAgKSxcbiAgICAgIG1hcChldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXG4gICAgKTtcbiAgfVxuXG59XG4iLCI8bWF0LXByb2dyZXNzLWJhclxuICAqbmdJZj1cIm5hdmlnYXRpbmckIHwgYXN5bmNcIlxuICBjb2xvcj1cImFjY2VudFwiXG4gIG1vZGU9XCJpbmRldGVybWluYXRlXCJcbj48L21hdC1wcm9ncmVzcy1iYXI+XG4iXX0=
@@ -18,8 +18,12 @@ __decorate([
18
18
  ], SidenavToggleButtonComponent.prototype, "sidenav", void 0);
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SidenavToggleButtonComponent, decorators: [{
20
20
  type: Component,
21
- args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, NgIf, MatIconModule], template: "<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n" }]
21
+ args: [{ selector: 'rxap-sidenav-toggle-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
22
+ MatButtonModule,
23
+ NgIf,
24
+ MatIconModule,
25
+ ], template: "<button (click)=\"sidenav.toggle()\" mat-icon-button>\n <mat-icon *ngIf=\"!sidenav.opened\">menu</mat-icon>\n <mat-icon *ngIf=\"sidenav.opened\">menu_open</mat-icon>\n</button>\n" }]
22
26
  }], propDecorators: { sidenav: [{
23
27
  type: Input
24
28
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lkZW5hdi10b2dnbGUtYnV0dG9uL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFVM0QsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsc0hDbkJ6QyxzTEFJQSx5RERhYSxlQUFlLDRMQUFFLElBQUksNEZBQUUsYUFBYTs7QUFNeEM7SUFETixRQUFROzhCQUNRLFVBQVU7NkRBQUM7MkZBSmpCLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUU7OEJBTTFDLE9BQU87c0JBRmIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IFJlcXVpcmVkIH0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1zaWRlbmF2LXRvZ2dsZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgTWF0QnV0dG9uTW9kdWxlLCBOZ0lmLCBNYXRJY29uTW9kdWxlIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVuYXZUb2dnbGVCdXR0b25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpXG4gIEBSZXF1aXJlZFxuICBwdWJsaWMgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG5cbn1cbiIsIjxidXR0b24gKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIiBtYXQtaWNvbi1idXR0b24+XG4gIDxtYXQtaWNvbiAqbmdJZj1cIiFzaWRlbmF2Lm9wZW5lZFwiPm1lbnU8L21hdC1pY29uPlxuICA8bWF0LWljb24gKm5nSWY9XCJzaWRlbmF2Lm9wZW5lZFwiPm1lbnVfb3BlbjwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaGVhZGVyL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lkZW5hdi10b2dnbGUtYnV0dG9uL3NpZGVuYXYtdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFjM0QsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsc0hDdkJ6QyxzTEFJQSx5RERjSSxlQUFlLDRMQUNmLElBQUksNEZBQ0osYUFBYTs7QUFPUjtJQUROLFFBQVE7OEJBQ1EsVUFBVTs2REFBQzsyRkFKakIsNEJBQTRCO2tCQVp4QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixJQUFJO3dCQUNKLGFBQWE7cUJBQ2Q7OEJBTU0sT0FBTztzQkFGYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgUmVxdWlyZWQgfSBmcm9tICdAcnhhcC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXNpZGVuYXYtdG9nZ2xlLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlbmF2LXRvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2lkZW5hdi10b2dnbGUtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVuYXZUb2dnbGVCdXR0b25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpXG4gIEBSZXF1aXJlZFxuICBwdWJsaWMgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG5cbn1cbiIsIjxidXR0b24gKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIiBtYXQtaWNvbi1idXR0b24+XG4gIDxtYXQtaWNvbiAqbmdJZj1cIiFzaWRlbmF2Lm9wZW5lZFwiPm1lbnU8L21hdC1pY29uPlxuICA8bWF0LWljb24gKm5nSWY9XCJzaWRlbmF2Lm9wZW5lZFwiPm1lbnVfb3BlbjwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
@@ -1,27 +1,23 @@
1
- import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
2
- import { Router } from '@angular/router';
1
+ import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
+ import { RxapAuthenticationService } from '@rxap/authentication';
3
3
  import { MatIconModule } from '@angular/material/icon';
4
- import { SignOutDirective } from '@rxap/authentication';
5
4
  import { MatButtonModule } from '@angular/material/button';
6
5
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/button";
8
- import * as i2 from "@angular/material/icon";
9
- import * as i3 from "@angular/router";
6
+ import * as i1 from "@rxap/authentication";
7
+ import * as i2 from "@angular/material/button";
8
+ import * as i3 from "@angular/material/icon";
10
9
  export class SignOutComponent {
11
- constructor(router) {
12
- this.router = router;
10
+ constructor(authenticationService) {
11
+ this.authenticationService = authenticationService;
13
12
  }
14
- redirectToRoot() {
15
- this.router.navigate(['/']);
13
+ async logout() {
14
+ await this.authenticationService.signOut();
16
15
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, deps: [{ token: Router }], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SignOutComponent, isStandalone: true, selector: "rxap-sign-out", ngImport: i0, template: "<button\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n rxapSignOut\n>\n <mat-icon>login</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: SignOutDirective, selector: "[rxapSignOut]", outputs: ["successful", "failure"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, deps: [{ token: i1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SignOutComponent, isStandalone: true, selector: "rxap-sign-out", ngImport: i0, template: "<button\n mat-icon-button\n (click)=\"logout()\"\n>\n <mat-icon>login</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
18
  }
20
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SignOutComponent, decorators: [{
21
20
  type: Component,
22
- args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, SignOutDirective, MatIconModule], template: "<button\n (successful)=\"redirectToRoot()\"\n mat-icon-button\n rxapSignOut\n>\n <mat-icon>login</mat-icon>\n</button>\n" }]
23
- }], ctorParameters: function () { return [{ type: i3.Router, decorators: [{
24
- type: Inject,
25
- args: [Router]
26
- }] }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQVUzRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBRW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWpDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUUsR0FBRyxDQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQVZVLGdCQUFnQixrQkFHakIsTUFBTTtrR0FITCxnQkFBZ0IseUVDbEI3Qiw4SEFPQSx5RERTYSxlQUFlLDRMQUFFLGdCQUFnQiw2RkFBRSxhQUFhOzsyRkFFaEQsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFFOzswQkFLMUQsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBTaWduT3V0RGlyZWN0aXZlIH0gZnJvbSAnQHJ4YXAvYXV0aGVudGljYXRpb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC1zaWduLW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduLW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9zaWduLW91dC5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgTWF0QnV0dG9uTW9kdWxlLCBTaWduT3V0RGlyZWN0aXZlLCBNYXRJY29uTW9kdWxlIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpZ25PdXRDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUm91dGVyKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIHJlZGlyZWN0VG9Sb290KCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsgJy8nIF0pO1xuICB9XG5cbn1cbiIsIjxidXR0b25cbiAgKHN1Y2Nlc3NmdWwpPVwicmVkaXJlY3RUb1Jvb3QoKVwiXG4gIG1hdC1pY29uLWJ1dHRvblxuICByeGFwU2lnbk91dFxuPlxuICA8bWF0LWljb24+bG9naW48L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
21
+ args: [{ selector: 'rxap-sign-out', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatButtonModule, MatIconModule], template: "<button\n mat-icon-button\n (click)=\"logout()\"\n>\n <mat-icon>login</mat-icon>\n</button>\n" }]
22
+ }], ctorParameters: function () { return [{ type: i1.RxapAuthenticationService }]; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1vdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvc2lnbi1vdXQvc2lnbi1vdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFVM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUNtQixxQkFBZ0Q7UUFBaEQsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtJQUVuRSxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0FUVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5RUNoQjdCLGtHQU1BLHlERFFhLGVBQWUsMkxBQUUsYUFBYTs7MkZBRTlCLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0ByeGFwL2F1dGhlbnRpY2F0aW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J4YXAtc2lnbi1vdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lnbi1vdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vc2lnbi1vdXQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSBdLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduT3V0Q29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uU2VydmljZTogUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCkge1xuICAgIGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLnNpZ25PdXQoKTtcbiAgfVxuXG59XG4iLCI8YnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICAoY2xpY2spPVwibG9nb3V0KClcIlxuPlxuICA8bWF0LWljb24+bG9naW48L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -1,42 +1,42 @@
1
- import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
2
- import { UserService } from '@rxap/authentication';
3
- import { map } from 'rxjs/operators';
4
- import { isDefined } from '@rxap/rxjs';
5
- import { MatIconModule } from '@angular/material/icon';
1
+ import { ChangeDetectionStrategy, Component, signal, } from '@angular/core';
2
+ import { RxapAuthenticationService, RxapUserProfileService, } from '@rxap/authentication';
3
+ import { filter, } from 'rxjs';
4
+ import { switchMap, tap, } from 'rxjs/operators';
6
5
  import { AsyncPipe, NgIf, } from '@angular/common';
7
- import { AvatarBackgroundImageDirective } from '@rxap/directives';
6
+ import { MatIconModule } from '@angular/material/icon';
8
7
  import { MatMenuModule } from '@angular/material/menu';
9
8
  import { FlexModule } from '@angular/flex-layout/flex';
10
9
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/flex-layout/flex";
12
- import * as i2 from "@angular/material/menu";
13
- import * as i3 from "@angular/material/icon";
14
- import * as i4 from "@rxap/authentication";
10
+ import * as i1 from "@rxap/authentication";
11
+ import * as i2 from "@angular/flex-layout/flex";
12
+ import * as i3 from "@angular/material/menu";
13
+ import * as i4 from "@angular/material/icon";
15
14
  export class UserProfileIconComponent {
16
- constructor(userService) {
17
- this.userService = userService;
18
- this.userProfileUrl$ = this.userService.user$.pipe(isDefined(), map((user) => user.photoURL ?? user.avatarUrl));
19
- this.userName$ = this.userService.user$.pipe(isDefined(), map((user) => user.name ??
20
- (user.firstname || user.lastname
21
- ? [user.firstname, user.lastname].join(' ').trim()
22
- : null) ??
23
- user.username));
15
+ constructor(userProfileService, authenticationService) {
16
+ this.userProfileService = userProfileService;
17
+ this.authenticationService = authenticationService;
18
+ this.username = signal(null);
19
+ }
20
+ ngOnInit() {
21
+ this._subscription = this.authenticationService.isAuthenticated$.pipe(filter(Boolean), switchMap(() => this.userProfileService.getProfile()), filter(Boolean), tap((user) => this.username.set(user.username ?? null))).subscribe();
22
+ }
23
+ ngOnDestroy() {
24
+ this._subscription?.unsubscribe();
24
25
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, deps: [{ token: UserService }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: UserProfileIconComponent, isStandalone: true, selector: "rxap-user-profile-icon", ngImport: i0, template: "<button [matMenuTriggerFor]=\"menu\"\n [name]=\"(userName$ | async) ?? ''\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: AvatarBackgroundImageDirective, selector: "[rxapAvatarBackgroundImage]", inputs: ["rxapAvatarBackgroundImage", "name"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ async logout() {
27
+ await this.authenticationService.signOut();
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, deps: [{ token: i1.RxapUserProfileService }, { token: i1.RxapAuthenticationService }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: UserProfileIconComponent, isStandalone: true, selector: "rxap-user-profile-icon", ngImport: i0, template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n <mat-icon class=\"avatar-icon\">account_circle</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <button mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{username()}}</span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <mat-icon>login</mat-icon>\n <span i18n>Logout</span>\n </button>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon .avatar-icon{width:32px;height:32px;font-size:32px}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: FlexModule }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
31
  }
28
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: UserProfileIconComponent, decorators: [{
29
33
  type: Component,
30
34
  args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
31
35
  FlexModule,
32
36
  MatMenuModule,
33
- AvatarBackgroundImageDirective,
34
- NgIf,
35
37
  MatIconModule,
38
+ NgIf,
36
39
  AsyncPipe,
37
- ], template: "<button [matMenuTriggerFor]=\"menu\"\n [name]=\"(userName$ | async) ?? ''\"\n [rxapAvatarBackgroundImage]=\"userProfileUrl$ | async\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <ng-template [ngIf]=\"userService.user$ | async\" let-user>\n <button *ngIf=\"user.firstname && user.lastname\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.firstname}} {{user.lastname}}</span>\n </button>\n <button *ngIf=\"user.name\" mat-menu-item>\n <mat-icon>person</mat-icon>\n <span>{{user.name}}</span>\n </button>\n <button *ngIf=\"user.username\" mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{user.username}}</span>\n </button>\n <button *ngIf=\"user.email\" mat-menu-item>\n <mat-icon>email</mat-icon>\n <span>{{user.email}}</span>\n </button>\n </ng-template>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"] }]
38
- }], ctorParameters: function () { return [{ type: i4.UserService, decorators: [{
39
- type: Inject,
40
- args: [UserService]
41
- }] }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFpQnZELE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFFUyxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUUvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDaEQsU0FBUyxFQUFFLEVBQ1gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDL0MsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMxQyxTQUFTLEVBQUUsRUFDWCxHQUFHLENBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxJQUFJO1lBQ1QsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUM5QixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUNwRCxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FDaEIsQ0FDRixDQUFDO0lBQ0osQ0FBQzs4R0F2QlUsd0JBQXdCLGtCQUt6QixXQUFXO2tHQUxWLHdCQUF3QixrRkNqQ3JDLDArQkE0QkEsdVNESEksVUFBVSxpdkNBQ1YsYUFBYSxnWkFDYiw4QkFBOEIsdUhBQzlCLElBQUksNEZBQ0osYUFBYSwrS0FDYixTQUFTOzsyRkFHQSx3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsOEJBQThCO3dCQUM5QixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsU0FBUztxQkFDVjs7MEJBT0UsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvYXV0aGVudGljYXRpb24nO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnQHJ4YXAvcnhqcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge1xuICBBc3luY1BpcGUsXG4gIE5nSWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBdmF0YXJCYWNrZ3JvdW5kSW1hZ2VEaXJlY3RpdmUgfSBmcm9tICdAcnhhcC9kaXJlY3RpdmVzJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dC9mbGV4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC11c2VyLXByb2ZpbGUtaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGbGV4TW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgQXZhdGFyQmFja2dyb3VuZEltYWdlRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJQcm9maWxlSWNvbkNvbXBvbmVudCB7XG4gIHB1YmxpYyB1c2VyUHJvZmlsZVVybCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgcHVibGljIHVzZXJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVXNlclNlcnZpY2UpXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51c2VyUHJvZmlsZVVybCQgPSB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIkLnBpcGUoXG4gICAgICBpc0RlZmluZWQoKSxcbiAgICAgIG1hcCgodXNlcikgPT4gdXNlci5waG90b1VSTCA/PyB1c2VyLmF2YXRhclVybCksXG4gICAgKTtcbiAgICB0aGlzLnVzZXJOYW1lJCA9IHRoaXMudXNlclNlcnZpY2UudXNlciQucGlwZShcbiAgICAgIGlzRGVmaW5lZCgpLFxuICAgICAgbWFwKFxuICAgICAgICAodXNlcikgPT5cbiAgICAgICAgICB1c2VyLm5hbWUgPz9cbiAgICAgICAgICAodXNlci5maXJzdG5hbWUgfHwgdXNlci5sYXN0bmFtZVxuICAgICAgICAgICAgPyBbIHVzZXIuZmlyc3RuYW1lLCB1c2VyLmxhc3RuYW1lIF0uam9pbignICcpLnRyaW0oKVxuICAgICAgICAgICAgOiBudWxsKSA/P1xuICAgICAgICAgIHVzZXIudXNlcm5hbWUsXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiIsIjxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICBbbmFtZV09XCIodXNlck5hbWUkIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgW3J4YXBBdmF0YXJCYWNrZ3JvdW5kSW1hZ2VdPVwidXNlclByb2ZpbGVVcmwkIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cInByb2ZpbGUtaWNvblwiXG4gICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgW3lQb3NpdGlvbl09XCInYmVsb3cnXCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ1c2VyU2VydmljZS51c2VyJCB8IGFzeW5jXCIgbGV0LXVzZXI+XG4gICAgPGJ1dHRvbiAqbmdJZj1cInVzZXIuZmlyc3RuYW1lICYmIHVzZXIubGFzdG5hbWVcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPG1hdC1pY29uPnBlcnNvbjwvbWF0LWljb24+XG4gICAgICA8c3Bhbj57e3VzZXIuZmlyc3RuYW1lfX0ge3t1c2VyLmxhc3RuYW1lfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cInVzZXIubmFtZVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8bWF0LWljb24+cGVyc29uPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7dXNlci5uYW1lfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cInVzZXIudXNlcm5hbWVcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPG1hdC1pY29uPmFjY291bnRfY2lyY2xlPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7dXNlci51c2VybmFtZX19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJ1c2VyLmVtYWlsXCIgbWF0LW1lbnUtaXRlbT5cbiAgICAgIDxtYXQtaWNvbj5lbWFpbDwvbWF0LWljb24+XG4gICAgICA8c3Bhbj57e3VzZXIuZW1haWx9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG4iXX0=
40
+ ], template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\">\n <mat-icon class=\"avatar-icon\">account_circle</mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\">\n <button mat-menu-item>\n <mat-icon>account_circle</mat-icon>\n <span>{{username()}}</span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <mat-icon>login</mat-icon>\n <span i18n>Logout</span>\n </button>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon .avatar-icon{width:32px;height:32px;font-size:32px}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"] }]
41
+ }], ctorParameters: function () { return [{ type: i1.RxapUserProfileService }, { type: i1.RxapAuthenticationService }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLE1BQU0sR0FFUCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBZ0J2RCxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQ21CLGtCQUEwQyxFQUMxQyxxQkFBZ0Q7UUFEaEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QjtRQUMxQywwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBTjVELGFBQVEsR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBTzNDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNuRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQ3hELENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNqQixNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzhHQTFCVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixrRkN6Q3JDLHdpQkFrQkEsd1dEZ0JJLFVBQVUsaXZDQUNWLGFBQWEsK1lBQ2IsYUFBYTs7MkZBS0osd0JBQXdCO2tCQWRwQyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixTQUFTO3FCQUNWIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSeGFwQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICBSeGFwVXNlclByb2ZpbGVTZXJ2aWNlLFxufSBmcm9tICdAcnhhcC9hdXRoZW50aWNhdGlvbic7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIFN1YnNjcmlwdGlvbixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNQaXBlLFxuICBOZ0lmLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0L2ZsZXgnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXVzZXItcHJvZmlsZS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcHJvZmlsZS1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3VzZXItcHJvZmlsZS1pY29uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZsZXhNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJvZmlsZUljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHVzZXJuYW1lID0gc2lnbmFsPG51bGwgfCBzdHJpbmc+KG51bGwpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQcm9maWxlU2VydmljZTogUnhhcFVzZXJQcm9maWxlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uU2VydmljZTogUnhhcEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnVzZXJQcm9maWxlU2VydmljZS5nZXRQcm9maWxlKCkpLFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgdGFwKCh1c2VyKSA9PiB0aGlzLnVzZXJuYW1lLnNldCh1c2VyLnVzZXJuYW1lID8/IG51bGwpKSxcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ291dCgpIHtcbiAgICBhd2FpdCB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5zaWduT3V0KCk7XG4gIH1cblxuXG59XG4iLCI8YnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiF1c2VybmFtZSgpXCJcbiAgICAgICAgY2xhc3M9XCJwcm9maWxlLWljb25cIlxuICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gIDxtYXQtaWNvbiBjbGFzcz1cImF2YXRhci1pY29uXCI+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuPC9idXR0b24+XG5cbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBbeVBvc2l0aW9uXT1cIidiZWxvdydcIj5cbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgIDxtYXQtaWNvbj5hY2NvdW50X2NpcmNsZTwvbWF0LWljb24+XG4gICAgPHNwYW4+e3t1c2VybmFtZSgpfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJsb2dvdXQoKVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uPmxvZ2luPC9tYXQtaWNvbj5cbiAgICA8c3BhbiBpMThuPkxvZ291dDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuIl19
@@ -0,0 +1,34 @@
1
+ import { Inject, Injectable, LOCALE_ID, } from '@angular/core';
2
+ import { ConfigService } from '@rxap/config';
3
+ import { I18nService } from './i18n.service';
4
+ import { RxapUserProfileService } from '@rxap/authentication';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@rxap/config";
7
+ import * as i2 from "./i18n.service";
8
+ import * as i3 from "@rxap/authentication";
9
+ export class I18nCheckGuard {
10
+ constructor(config, localId, i18nService, userProfileService) {
11
+ this.config = config;
12
+ this.localId = localId;
13
+ this.i18nService = i18nService;
14
+ this.userProfileService = userProfileService;
15
+ }
16
+ async canActivate() {
17
+ const selectedLanguage = (await this.userProfileService.getLanguage()) ?? 'en';
18
+ if (this.i18nService.currentLanguage !== selectedLanguage) {
19
+ await this.i18nService.redirect(selectedLanguage);
20
+ return false;
21
+ }
22
+ return true;
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nCheckGuard, deps: [{ token: i1.ConfigService }, { token: LOCALE_ID }, { token: i2.I18nService }, { token: i3.RxapUserProfileService }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nCheckGuard, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nCheckGuard, decorators: [{
28
+ type: Injectable,
29
+ args: [{ providedIn: 'root' }]
30
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: undefined, decorators: [{
31
+ type: Inject,
32
+ args: [LOCALE_ID]
33
+ }] }, { type: i2.I18nService }, { type: i3.RxapUserProfileService }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1jaGVjay5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvaTE4bi1jaGVjay5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzlELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ21CLE1BQXFCLEVBRXJCLE9BQWUsRUFDZixXQUF3QixFQUN4QixrQkFBMEM7UUFKMUMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUVyQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QjtJQUU3RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDL0UsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsS0FBSyxnQkFBZ0IsRUFBRTtZQUN6RCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0FsQlUsY0FBYywrQ0FJZixTQUFTO2tIQUpSLGNBQWMsY0FERCxNQUFNOzsyRkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUs3QixNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIExPQ0FMRV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvY29uZmlnJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnhhcFVzZXJQcm9maWxlU2VydmljZSB9IGZyb20gJ0ByeGFwL2F1dGhlbnRpY2F0aW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJMThuQ2hlY2tHdWFyZCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgQEluamVjdChMT0NBTEVfSUQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbElkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvZmlsZVNlcnZpY2U6IFJ4YXBVc2VyUHJvZmlsZVNlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgYXN5bmMgY2FuQWN0aXZhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRMYW5ndWFnZSA9IChhd2FpdCB0aGlzLnVzZXJQcm9maWxlU2VydmljZS5nZXRMYW5ndWFnZSgpKSA/PyAnZW4nO1xuICAgIGlmICh0aGlzLmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSAhPT0gc2VsZWN0ZWRMYW5ndWFnZSkge1xuICAgICAgYXdhaXQgdGhpcy5pMThuU2VydmljZS5yZWRpcmVjdChzZWxlY3RlZExhbmd1YWdlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,36 @@
1
+ import { Inject, Injectable, LOCALE_ID, } from '@angular/core';
2
+ import { RxapUserProfileService } from '@rxap/authentication';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@rxap/authentication";
5
+ export class I18nService {
6
+ constructor(localId, userProfileService) {
7
+ this.localId = localId;
8
+ this.userProfileService = userProfileService;
9
+ this.currentLanguage = this.localId.replace(/-[A-Z]+$/, '');
10
+ }
11
+ async setLanguage(language) {
12
+ await this.userProfileService.setLanguage(language);
13
+ this.redirect(language);
14
+ }
15
+ redirect(next, current = this.currentLanguage) {
16
+ if (current === next) {
17
+ console.warn('[I18nService] redirect not required - language unchanged');
18
+ return;
19
+ }
20
+ const redirectUrl = location.origin +
21
+ location.pathname.replace(new RegExp(`^/${current}`), `/${next}`) +
22
+ location.search;
23
+ console.log('[I18nService] redirect to: ' + redirectUrl);
24
+ location.replace(redirectUrl);
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nService, deps: [{ token: LOCALE_ID }, { token: i1.RxapUserProfileService }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nService, providedIn: 'root' }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: I18nService, decorators: [{
30
+ type: Injectable,
31
+ args: [{ providedIn: 'root' }]
32
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
33
+ type: Inject,
34
+ args: [LOCALE_ID]
35
+ }] }, { type: i1.RxapUserProfileService }]; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFHOUQsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFFbUIsT0FBZSxFQUNmLGtCQUEwQztRQUQxQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF3QjtRQUUzRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFnQjtRQUN2QyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVksRUFBRSxVQUFrQixJQUFJLENBQUMsZUFBZTtRQUNsRSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1lBQ3pFLE9BQU87U0FDUjtRQUNELE1BQU0sV0FBVyxHQUNmLFFBQVEsQ0FBQyxNQUFNO1lBQ2YsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBTSxPQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUssSUFBSyxFQUFFLENBQUM7WUFDckUsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0E1QlUsV0FBVyxrQkFLWixTQUFTO2tIQUxSLFdBQVcsY0FERSxNQUFNOzsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU03QixNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIExPQ0FMRV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSeGFwVXNlclByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvYXV0aGVudGljYXRpb24nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEkxOG5TZXJ2aWNlIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudExhbmd1YWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbElkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvZmlsZVNlcnZpY2U6IFJ4YXBVc2VyUHJvZmlsZVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gdGhpcy5sb2NhbElkLnJlcGxhY2UoLy1bQS1aXSskLywgJycpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLnVzZXJQcm9maWxlU2VydmljZS5zZXRMYW5ndWFnZShsYW5ndWFnZSk7XG4gICAgdGhpcy5yZWRpcmVjdChsYW5ndWFnZSk7XG4gIH1cblxuICBwdWJsaWMgcmVkaXJlY3QobmV4dDogc3RyaW5nLCBjdXJyZW50OiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRMYW5ndWFnZSkge1xuICAgIGlmIChjdXJyZW50ID09PSBuZXh0KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tJMThuU2VydmljZV0gcmVkaXJlY3Qgbm90IHJlcXVpcmVkIC0gbGFuZ3VhZ2UgdW5jaGFuZ2VkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlZGlyZWN0VXJsID1cbiAgICAgIGxvY2F0aW9uLm9yaWdpbiArXG4gICAgICBsb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4vJHsgY3VycmVudCB9YCksIGAvJHsgbmV4dCB9YCkgK1xuICAgICAgbG9jYXRpb24uc2VhcmNoO1xuICAgIGNvbnNvbGUubG9nKCdbSTE4blNlcnZpY2VdIHJlZGlyZWN0IHRvOiAnICsgcmVkaXJlY3RVcmwpO1xuICAgIGxvY2F0aW9uLnJlcGxhY2UocmVkaXJlY3RVcmwpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Inject, Injectable, LOCALE_ID, } from '@angular/core';
2
+ import { ConfigService } from '@rxap/config';
3
+ import { I18nService } from './i18n.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@rxap/config";
6
+ import * as i2 from "./i18n.service";
7
+ export class LanguageSelectorService {
8
+ constructor(config, localId, i18nService) {
9
+ this.config = config;
10
+ this.localId = localId;
11
+ this.i18nService = i18nService;
12
+ this.languages = this.config.get('i18n.languages') ?? {};
13
+ this.defaultLanguage =
14
+ this.config.get('i18n.defaultLanguage') ??
15
+ Object.keys(this.languages)[0] ??
16
+ 'en';
17
+ this.selectedLanguage = this.i18nService.currentLanguage;
18
+ }
19
+ async setLanguage(language) {
20
+ if (language !== this.i18nService.currentLanguage) {
21
+ await this.i18nService.setLanguage(language);
22
+ }
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, deps: [{ token: i1.ConfigService }, { token: LOCALE_ID }, { token: i2.I18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: LanguageSelectorService, decorators: [{
28
+ type: Injectable,
29
+ args: [{ providedIn: 'root' }]
30
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: undefined, decorators: [{
31
+ type: Inject,
32
+ args: [LOCALE_ID]
33
+ }] }, { type: i2.I18nService }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbGFuZ3VhZ2Utc2VsZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHN0MsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNtQixNQUFxQixFQUVyQixPQUFlLEVBQ2YsV0FBd0I7UUFIeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUVyQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBTSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUM7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7SUFDM0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBZ0I7UUFDdkMsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUU7WUFDakQsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7OEdBdkJVLHVCQUF1QiwrQ0FPeEIsU0FBUztrSEFQUix1QkFBdUIsY0FEVixNQUFNOzsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBUTdCLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgTE9DQUxFX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAcnhhcC9jb25maWcnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VTZWxlY3RvclNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbGFuZ3VhZ2VzOiBhbnk7XG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0TGFuZ3VhZ2U6IHN0cmluZztcbiAgcHVibGljIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBASW5qZWN0KExPQ0FMRV9JRClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5sYW5ndWFnZXMgPSB0aGlzLmNvbmZpZy5nZXQ8YW55PignaTE4bi5sYW5ndWFnZXMnKSA/PyB7fTtcbiAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZSA9XG4gICAgICB0aGlzLmNvbmZpZy5nZXQoJ2kxOG4uZGVmYXVsdExhbmd1YWdlJykgPz9cbiAgICAgIE9iamVjdC5rZXlzKHRoaXMubGFuZ3VhZ2VzKVswXSA/P1xuICAgICAgJ2VuJztcbiAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgaWYgKGxhbmd1YWdlICE9PSB0aGlzLmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgYXdhaXQgdGhpcy5pMThuU2VydmljZS5zZXRMYW5ndWFnZShsYW5ndWFnZSk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==