@rxap/layout 16.0.0-dev.9 → 16.0.0

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 (44) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/LICENSE +621 -0
  3. package/LICENSE.md +621 -0
  4. package/README.md +1 -1
  5. package/esm2022/index.mjs +1 -4
  6. package/esm2022/lib/app-url.service.mjs +38 -25
  7. package/esm2022/lib/footer/footer.component.mjs +3 -3
  8. package/esm2022/lib/header/apps-button/apps-button.component.mjs +3 -3
  9. package/esm2022/lib/header/header.component.mjs +30 -47
  10. package/esm2022/lib/header/language-selector/language-selector.component.mjs +6 -6
  11. package/esm2022/lib/header/reset-button/reset-button.component.mjs +3 -3
  12. package/esm2022/lib/header/settings-button/settings-button.component.mjs +87 -0
  13. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +15 -18
  14. package/esm2022/lib/header/sign-out/sign-out.component.mjs +3 -3
  15. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +24 -21
  16. package/esm2022/lib/layout/layout.component.mjs +50 -28
  17. package/esm2022/lib/layout/layout.component.service.mjs +53 -19
  18. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +3 -8
  19. package/esm2022/lib/navigation/navigation.component.mjs +6 -10
  20. package/esm2022/lib/sidenav/sidenav.component.mjs +3 -3
  21. package/esm2022/lib/sidenav/version/version.component.mjs +2 -8
  22. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +3 -3
  23. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +6 -7
  24. package/fesm2022/rxap-layout.mjs +363 -335
  25. package/fesm2022/rxap-layout.mjs.map +1 -1
  26. package/index.d.ts +0 -3
  27. package/lib/app-url.service.d.ts +7 -4
  28. package/lib/header/header.component.d.ts +10 -17
  29. package/lib/header/language-selector/language-selector.component.d.ts +1 -1
  30. package/lib/header/settings-button/settings-button.component.d.ts +39 -0
  31. package/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +6 -3
  32. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +10 -10
  33. package/lib/layout/layout.component.d.ts +17 -5
  34. package/lib/layout/layout.component.service.d.ts +15 -9
  35. package/lib/navigation/navigation-item/navigation-item.component.d.ts +1 -1
  36. package/lib/navigation/navigation.component.d.ts +1 -1
  37. package/package.json +82 -46
  38. package/theme.css +1 -1
  39. package/esm2022/lib/i18n-check.guard.mjs +0 -34
  40. package/esm2022/lib/i18n.service.mjs +0 -36
  41. package/esm2022/lib/language-selector.service.mjs +0 -34
  42. package/lib/i18n-check.guard.d.ts +0 -14
  43. package/lib/i18n.service.d.ts +0 -12
  44. package/lib/language-selector.service.d.ts +0 -15
package/index.d.ts CHANGED
@@ -23,7 +23,4 @@ export * from './lib/toggle-window-sidenav-button/toggle-window-sidenav-button.c
23
23
  export * from './lib/window-container-sidenav/window-container-sidenav.component';
24
24
  export * from './lib/footer.directive';
25
25
  export * from './lib/types';
26
- export * from './lib/i18n-check.guard';
27
- export * from './lib/i18n.service';
28
- export * from './lib/language-selector.service';
29
26
  export * from './lib/app-url.service';
@@ -1,5 +1,6 @@
1
+ import { AuthorizationService } from '@rxap/authorization';
1
2
  import { ConfigService } from '@rxap/config';
2
- import { RxapUserProfileService } from '@rxap/authentication';
3
+ import { Environment } from '@rxap/environment';
3
4
  import * as i0 from "@angular/core";
4
5
  export interface ExternalApps {
5
6
  image?: string;
@@ -13,11 +14,13 @@ export interface ExternalApps {
13
14
  export declare class AppUrlService {
14
15
  private readonly config;
15
16
  private readonly localeId;
16
- private readonly userProfileService;
17
+ private readonly authorizationService;
18
+ private readonly environment;
17
19
  private _apps;
18
- constructor(config: ConfigService, localeId: string, userProfileService: RxapUserProfileService);
20
+ constructor(config: ConfigService, localeId: string, authorizationService: AuthorizationService, environment: Environment);
19
21
  getApp(appId: string): ExternalApps | null;
20
- getAppUrl(appId: string, path: string): string | null;
22
+ getAppUrl(appId: string, path: string, infix?: string | null): string | null;
23
+ getAppUrlOrThrow(appId: string, path: string): string;
21
24
  navigate(appId: string, path: string): void;
22
25
  getAppList(): Promise<Array<ExternalApps>>;
23
26
  private getPathPrefix;
@@ -1,23 +1,16 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
2
- import { Constructor } from '@rxap/utilities';
3
- import { Subscription } from 'rxjs';
4
- import { MatSidenav } from '@angular/material/sidenav';
5
- import { HeaderService, ThemeService } from '@rxap/services';
1
+ import { Signal } from '@angular/core';
6
2
  import { ThemePalette } from '@angular/material/core';
3
+ import { HeaderService } from '@rxap/services';
4
+ import { LayoutComponentService } from '../layout/layout.component.service';
7
5
  import * as i0 from "@angular/core";
8
- export declare class HeaderComponent implements OnInit, OnDestroy {
6
+ export declare class HeaderComponent {
9
7
  readonly headerComponentService: HeaderService;
8
+ readonly layoutComponentService: LayoutComponentService;
10
9
  headerComponent: any;
11
- readonly theme: ThemeService;
12
- sidenav?: MatSidenav;
13
- components: Array<Constructor<any>>;
14
- subscriptions: Subscription;
15
10
  color: ThemePalette;
16
- isDevMode: boolean;
17
- constructor(headerComponentService: HeaderService, headerComponent: any, theme: ThemeService);
18
- ngOnInit(): void;
19
- updateComponents(): void;
20
- ngOnDestroy(): void;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, [null, { optional: true; }, null]>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "rxap-header", never, { "sidenav": { "alias": "sidenav"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], true, never>;
11
+ readonly collapsable: Signal<boolean>;
12
+ readonly opened: Signal<boolean>;
13
+ constructor(headerComponentService: HeaderService, layoutComponentService: LayoutComponentService, headerComponent: any);
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, [null, null, { optional: true; }]>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "rxap-header", never, { "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], true, never>;
23
16
  }
@@ -1,4 +1,4 @@
1
- import { LanguageSelectorService } from '../../language-selector.service';
1
+ import { LanguageSelectorService } from '@rxap/ngx-localize';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class LanguageSelectorComponent {
4
4
  readonly language: LanguageSelectorService;
@@ -0,0 +1,39 @@
1
+ import { ComponentPortal } from '@angular/cdk/portal';
2
+ import { Injector, OnDestroy, OnInit } from '@angular/core';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { ChangelogService } from '@rxap/ngx-changelog';
5
+ import { ThemeDensity, ThemeService } from '@rxap/ngx-theme';
6
+ import * as i0 from "@angular/core";
7
+ export declare class SettingsButtonComponent implements OnInit, OnDestroy {
8
+ readonly theme: ThemeService;
9
+ private readonly route;
10
+ private readonly injector;
11
+ private readonly changelogService;
12
+ isDevMode: boolean;
13
+ items: import("@angular/core").WritableSignal<ComponentPortal<unknown>[]>;
14
+ private _subscription?;
15
+ private savePreviewDensityValue;
16
+ private currentDensityValue;
17
+ private savePreviewTypographyValue;
18
+ private currentTypographyValue;
19
+ readonly availableTypographies: string[];
20
+ private savePreviewThemeValue;
21
+ readonly availableThemes: string[];
22
+ private currentThemeValue;
23
+ constructor(theme: ThemeService, route: ActivatedRoute, injector: Injector, changelogService: ChangelogService);
24
+ ngOnDestroy(): void;
25
+ ngOnInit(): void;
26
+ private getCustomMenuItems;
27
+ openChangelogDialog(): void;
28
+ previewDensity(density: ThemeDensity): void;
29
+ restoreDensity(): void;
30
+ setDensity(density: ThemeDensity): void;
31
+ previewTypography(typography: string): void;
32
+ restoreTypography(): void;
33
+ setTypography(typography: string): void;
34
+ previewTheme(theme: string): void;
35
+ restoreTheme(): void;
36
+ setTheme(theme: string): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsButtonComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsButtonComponent, "rxap-settings-button", never, {}, {}, never, never, true, never>;
39
+ }
@@ -1,7 +1,10 @@
1
- import { MatSidenav } from '@angular/material/sidenav';
1
+ import { Signal } from '@angular/core';
2
+ import { LayoutComponentService } from '../../layout/layout.component.service';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class SidenavToggleButtonComponent {
4
- sidenav: MatSidenav;
5
+ readonly layoutComponentService: LayoutComponentService;
6
+ readonly opened: Signal<boolean>;
7
+ constructor(layoutComponentService: LayoutComponentService);
5
8
  static ɵfac: i0.ɵɵFactoryDeclaration<SidenavToggleButtonComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<SidenavToggleButtonComponent, "rxap-sidenav-toggle-button", never, { "sidenav": { "alias": "sidenav"; "required": false; }; }, {}, never, never, true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidenavToggleButtonComponent, "rxap-sidenav-toggle-button", never, {}, {}, never, never, true, never>;
7
10
  }
@@ -1,15 +1,15 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
2
- import { RxapAuthenticationService, RxapUserProfileService } from '@rxap/authentication';
1
+ import { InjectionToken, Signal } from '@angular/core';
2
+ import { RxapAuthenticationService } from '@rxap/authentication';
3
+ import { UserProfileDataSource } from '@rxap/ngx-user';
3
4
  import * as i0 from "@angular/core";
4
- export declare class UserProfileIconComponent implements OnInit, OnDestroy {
5
+ export type ExtractUsernameFromProfileFn<T = unknown> = (profile: T) => string | null;
6
+ export declare const EXTRACT_USERNAME_FROM_PROFILE: InjectionToken<ExtractUsernameFromProfileFn<unknown>>;
7
+ export declare class UserProfileIconComponent<T = unknown> {
5
8
  private readonly userProfileService;
6
9
  private readonly authenticationService;
7
- username: import("@angular/core").WritableSignal<string | null>;
8
- private _subscription?;
9
- constructor(userProfileService: RxapUserProfileService, authenticationService: RxapAuthenticationService);
10
- ngOnInit(): void;
11
- ngOnDestroy(): void;
10
+ username: Signal<string | null>;
11
+ constructor(userProfileService: UserProfileDataSource<T>, authenticationService: RxapAuthenticationService, extractUsernameFromProfile: ExtractUsernameFromProfileFn<T>);
12
12
  logout(): Promise<void>;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileIconComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileIconComponent, "rxap-user-profile-icon", never, {}, {}, never, never, true, never>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileIconComponent<any>, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileIconComponent<any>, "rxap-user-profile-icon", never, {}, {}, never, never, true, never>;
15
15
  }
@@ -1,15 +1,27 @@
1
+ import { OnDestroy, OnInit, Signal } from '@angular/core';
1
2
  import { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';
2
3
  import { Environment } from '@rxap/environment';
4
+ import { IconLoaderService } from '@rxap/icon';
3
5
  import { LayoutComponentService } from './layout.component.service';
4
6
  import * as i0 from "@angular/core";
5
- export declare class LayoutComponent {
7
+ export declare class LayoutComponent implements OnInit, OnDestroy {
6
8
  readonly layoutComponentService: LayoutComponentService;
7
9
  private readonly environment;
8
- sidenavMode: MatDrawerMode;
10
+ readonly sidenavMode: Signal<MatDrawerMode>;
11
+ readonly fixedBottomGap: Signal<number>;
12
+ readonly fixedTopGap: Signal<number>;
13
+ readonly pinned: Signal<boolean>;
14
+ readonly collapsable: Signal<boolean>;
15
+ readonly logoSrc: string;
16
+ readonly logoWidth: number;
17
+ readonly release: string;
18
+ readonly opened: Signal<boolean>;
9
19
  sidenav: MatSidenav;
10
- constructor(layoutComponentService: LayoutComponentService, environment: Environment);
11
- get release(): string;
12
- toggleSidenavMode(): void;
20
+ private readonly userSettingsThemeService;
21
+ private readonly themeService;
22
+ constructor(layoutComponentService: LayoutComponentService, environment: Environment, iconLoaderService: IconLoaderService);
23
+ ngOnDestroy(): void;
24
+ ngOnInit(): void;
13
25
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponent, never>;
14
26
  static ɵcmp: i0.ɵɵComponentDeclaration<LayoutComponent, "rxap-layout", never, {}, {}, never, never, true, never>;
15
27
  }
@@ -1,19 +1,25 @@
1
- import { BehaviorSubject, Observable } from 'rxjs';
1
+ import { MediaMatcher } from '@angular/cdk/layout';
2
+ import { Signal, WritableSignal } from '@angular/core';
3
+ import { MatDrawerMode } from '@angular/material/sidenav';
4
+ import { ConfigService } from '@rxap/config';
2
5
  import { FooterService, HeaderService } from '@rxap/services';
3
6
  import { LogoConfig } from '../types';
4
- import { ConfigService } from '@rxap/config';
5
- import { MatDrawerMode } from '@angular/material/sidenav';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class LayoutComponentService {
8
9
  readonly footerComponentService: FooterService;
9
10
  readonly headerComponentService: HeaderService;
10
11
  private readonly config;
11
- opened$: BehaviorSubject<boolean>;
12
- mode$: BehaviorSubject<MatDrawerMode>;
13
- fixedBottomGap$: Observable<number>;
14
- fixedTopGap$: BehaviorSubject<number>;
15
12
  logo: LogoConfig;
16
- constructor(footerComponentService: FooterService, headerComponentService: HeaderService, logoConfig: LogoConfig | null | undefined, config: ConfigService);
17
- static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponentService, [null, null, { optional: true; }, null]>;
13
+ readonly opened: WritableSignal<boolean>;
14
+ readonly mode: WritableSignal<MatDrawerMode>;
15
+ readonly pinned: WritableSignal<boolean>;
16
+ readonly collapsable: WritableSignal<boolean>;
17
+ readonly fixedBottomGap: Signal<number>;
18
+ readonly fixedTopGap: Signal<number>;
19
+ private readonly currentThemeDensity;
20
+ constructor(footerComponentService: FooterService, headerComponentService: HeaderService, logoConfig: LogoConfig | null | undefined, config: ConfigService, mediaMatcher: MediaMatcher);
21
+ toggleOpened(): void;
22
+ togglePinned(): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponentService, [null, null, { optional: true; }, null, null]>;
18
24
  static ɵprov: i0.ɵɵInjectableDeclaration<LayoutComponentService>;
19
25
  }
@@ -28,5 +28,5 @@ export declare class NavigationItemComponent implements OnChanges, OnDestroy {
28
28
  isNavigationItem(item: NavigationItem | NavigationDividerItem): item is NavigationItem;
29
29
  asNavigationItem(item: NavigationItem | NavigationDividerItem): NavigationItem;
30
30
  static ɵfac: i0.ɵɵFactoryDeclaration<NavigationItemComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<NavigationItemComponent, "li[rxap-navigation-item]", never, { "level": { "alias": "level"; "required": false; }; "item": { "alias": "item"; "required": false; }; }, {}, never, never, true, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavigationItemComponent, "li[rxap-navigation-item]", never, { "level": { "alias": "level"; "required": false; }; "item": { "alias": "item"; "required": true; }; }, {}, never, never, true, never>;
32
32
  }
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Subscription } from 'rxjs';
3
+ import { SidenavComponentService } from '../sidenav/sidenav.component.service';
3
4
  import { Navigation, NavigationDividerItem, NavigationItem } from './navigation-item';
4
5
  import { NavigationService } from './navigation.service';
5
- import { SidenavComponentService } from '../sidenav/sidenav.component.service';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class NavigationComponent implements OnInit, OnDestroy {
8
8
  private readonly navigationService;
package/package.json CHANGED
@@ -1,6 +1,10 @@
1
1
  {
2
+ "version": "16.0.0",
2
3
  "name": "@rxap/layout",
3
- "version": "16.0.0-dev.9",
4
+ "license": "GPL-3.0-or-later",
5
+ "dependencies": {
6
+ "tslib": "2.6.2"
7
+ },
4
8
  "peerDependencies": {
5
9
  "@angular/animations": "^16.1.4",
6
10
  "@angular/cdk": "^16.1.4",
@@ -10,92 +14,124 @@
10
14
  "@angular/forms": "^16.1.4",
11
15
  "@angular/material": "^16.1.4",
12
16
  "@angular/router": "^16.1.4",
13
- "@rxap/authentication": "^16.0.0-dev.6",
14
- "@rxap/browser-utilities": "^0.0.2-dev.0",
15
- "@rxap/config": "^16.0.0-dev.7",
16
- "@rxap/data-source": "^16.0.0-dev.7",
17
- "@rxap/directives": "^16.0.0-dev.6",
18
- "@rxap/environment": "^16.0.0-dev.6",
19
- "@rxap/material-directives": "^16.0.0-dev.8",
20
- "@rxap/services": "^16.0.0-dev.6",
21
- "@rxap/utilities": "^16.0.0-dev.4",
22
- "rxjs": "^7.8.0"
17
+ "@rxap/authentication": "^16.0.0",
18
+ "@rxap/authorization": "^16.0.0",
19
+ "@rxap/browser-utilities": "^1.0.1",
20
+ "@rxap/config": "^16.0.0",
21
+ "@rxap/data-source": "^16.0.0",
22
+ "@rxap/directives": "^16.0.0",
23
+ "@rxap/environment": "^16.0.0",
24
+ "@rxap/icon": "^16.0.0",
25
+ "@rxap/material-directives": "^16.0.0",
26
+ "@rxap/ngx-changelog": "^16.1.0",
27
+ "@rxap/ngx-localize": "^16.1.0",
28
+ "@rxap/ngx-status-check": "^16.1.0",
29
+ "@rxap/ngx-theme": "^16.1.0",
30
+ "@rxap/ngx-user": "^16.1.0",
31
+ "@rxap/services": "^16.0.0",
32
+ "@rxap/utilities": "^16.0.0",
33
+ "rxjs": "^7.8.1",
34
+ "@faker-js/faker": "8.0.2"
23
35
  },
24
- "sideEffects": false,
25
- "dependencies": {
26
- "tslib": "2.5.3"
36
+ "author": {
37
+ "name": "Merzough Münker",
38
+ "email": "mmuenker@digitaix.com"
27
39
  },
28
- "publishConfig": {
29
- "access": "public",
30
- "directory": "../../../dist/packages/angular/layout"
40
+ "bugs": {
41
+ "url": "https://gitlab.com/rxap/packages/-/issues",
42
+ "email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
31
43
  },
44
+ "homepage": "https:/gitlab.com/rxap/packages/packages/angular/layout",
32
45
  "keywords": [
33
- "rxap",
34
46
  "angular",
47
+ "angular-layout",
48
+ "layout",
35
49
  "ngx",
36
50
  "packages",
37
- "layout"
51
+ "rxap"
38
52
  ],
39
- "homepage": "https:/gitlab.com/rxap/packages/packages/angular/layout",
40
- "bugs": {
41
- "url": "https://gitlab.com/rxap/packages/-/issues",
42
- "email": "incoming+rxap-packages-14898188-issue-@incoming.gitlab.com"
43
- },
44
- "license": "GPL-3.0-or-later",
45
- "repository": {
46
- "type": "git",
47
- "url": "https://gitlab.com/rxap/packages.git",
48
- "directory": "packages/angular/layout"
49
- },
50
- "author": {
51
- "name": "Merzough Münker",
52
- "email": "mmuenker@digitaix.com"
53
- },
54
53
  "nx-migrations": {
55
54
  "packageGroup": [
56
55
  {
57
56
  "package": "@rxap/authentication",
58
- "version": "16.0.0-dev.6"
57
+ "version": "16.0.0"
58
+ },
59
+ {
60
+ "package": "@rxap/authorization",
61
+ "version": "16.0.0"
59
62
  },
60
63
  {
61
64
  "package": "@rxap/browser-utilities",
62
- "version": "0.0.2-dev.0"
65
+ "version": "1.0.1"
63
66
  },
64
67
  {
65
68
  "package": "@rxap/config",
66
- "version": "16.0.0-dev.7"
69
+ "version": "16.0.0"
67
70
  },
68
71
  {
69
72
  "package": "@rxap/data-source",
70
- "version": "16.0.0-dev.7"
73
+ "version": "16.0.0"
71
74
  },
72
75
  {
73
76
  "package": "@rxap/directives",
74
- "version": "16.0.0-dev.6"
77
+ "version": "16.0.0"
75
78
  },
76
79
  {
77
80
  "package": "@rxap/environment",
78
- "version": "16.0.0-dev.6"
81
+ "version": "16.0.0"
82
+ },
83
+ {
84
+ "package": "@rxap/icon",
85
+ "version": "16.0.0"
79
86
  },
80
87
  {
81
88
  "package": "@rxap/material-directives",
82
- "version": "16.0.0-dev.8"
89
+ "version": "16.0.0"
83
90
  },
84
91
  {
85
- "package": "@rxap/services",
86
- "version": "16.0.0-dev.6"
92
+ "package": "@rxap/ngx-changelog",
93
+ "version": "16.1.0"
87
94
  },
88
95
  {
89
- "package": "@rxap/utilities",
90
- "version": "16.0.0-dev.4"
96
+ "package": "@rxap/ngx-localize",
97
+ "version": "16.1.0"
98
+ },
99
+ {
100
+ "package": "@rxap/ngx-status-check",
101
+ "version": "16.1.0"
102
+ },
103
+ {
104
+ "package": "@rxap/ngx-theme",
105
+ "version": "16.1.0"
106
+ },
107
+ {
108
+ "package": "@rxap/ngx-user",
109
+ "version": "16.1.0"
91
110
  },
92
111
  {
93
112
  "package": "@rxap/rxjs",
94
113
  "version": "1.0.1-dev.0"
114
+ },
115
+ {
116
+ "package": "@rxap/services",
117
+ "version": "16.0.0"
118
+ },
119
+ {
120
+ "package": "@rxap/utilities",
121
+ "version": "16.0.0"
95
122
  }
96
123
  ]
97
124
  },
98
- "gitHead": "38078f7707e6461caef781fca512fb2c9e53506b",
125
+ "publishConfig": {
126
+ "access": "public",
127
+ "directory": "../../../dist/packages/angular/layout"
128
+ },
129
+ "repository": {
130
+ "type": "git",
131
+ "url": "https://gitlab.com/rxap/packages.git",
132
+ "directory": "packages/angular/layout"
133
+ },
134
+ "sideEffects": false,
99
135
  "module": "fesm2022/rxap-layout.mjs",
100
136
  "typings": "index.d.ts",
101
137
  "exports": {
package/theme.css CHANGED
@@ -1 +1 @@
1
- .container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.top-0{top:0}.z-10{z-index:10}.mx-16{margin-left:4rem;margin-right:4rem}.mb-16{margin-bottom:4rem}.mb-32{margin-bottom:8rem}.ml-16{margin-left:4rem}.mt-16{margin-top:4rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-6{height:1.5rem}.h-full{height:100%}.h-screen{height:100vh}.w-full{width:100%}.grow{flex-grow:1}.grow-0{flex-grow:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-stretch{justify-items:stretch}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.self-stretch{align-self:stretch}.whitespace-nowrap{white-space:nowrap}.border-l-4{border-left-width:4px}.border-accent-600{border-color:var(--accent-600)}.p-10{padding:2.5rem}.p-4{padding:1rem}.px-16{padding-left:4rem;padding-right:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-0{padding-left:0}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-5{padding-right:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.text-accent-400{color:var(--accent-400)}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.outline{outline-style:solid}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-400){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-white:hover){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}
1
+ .container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);font-size:.875em;border-radius:.3125rem;padding:.1875em .375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:initial}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-50{z-index:50}.m-8{margin:2rem}.mx-16{margin-left:4rem;margin-right:4rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-16{margin-left:4rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-3{height:.75rem}.h-6{height:1.5rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-3{width:.75rem}.w-96{width:24rem}.w-full{width:100%}.min-w-full{min-width:100%}.\!max-w-none{max-width:none!important}.max-w-6xl{max-width:72rem}.grow{flex-grow:1}.grow-0{flex-grow:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-stretch{justify-items:stretch}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-accent-600{border-color:var(--accent-600)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-green-900{--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity))}.bg-primary-500{background-color:var(--primary-500)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-red-900{background-color:rgb(127 29 29/var(--tw-bg-opacity))}.bg-red-900,.bg-white{--tw-bg-opacity:1}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}.bg-yellow-900{--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity))}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-16{padding-left:4rem;padding-right:4rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.pl-0{padding-left:0}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pr-5{padding-right:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.text-accent-400{color:var(--accent-400)}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.drop-shadow-2xl{--tw-drop-shadow:drop-shadow(0 25px 25px #00000026)}.drop-shadow-2xl,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-colors{transition-duration:.15s}:is(.dark .dark\:prose-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}:is(.dark .dark\:bg-black){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-900){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-900){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity))}:is(.dark .dark\:bg-yellow-900){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity))}:is(.dark .dark\:text-green-300){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity))}:is(.dark .dark\:text-neutral-400){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity))}:is(.dark .dark\:text-red-300){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-300){--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}:is(.dark .dark\:hover\:bg-gray-900:hover){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:text-white:hover){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media (min-width:768px){.md\:w-1\/2{width:50%}}
@@ -1,34 +0,0 @@
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
@@ -1,36 +0,0 @@
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==
@@ -1,34 +0,0 @@
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==
@@ -1,14 +0,0 @@
1
- import { ConfigService } from '@rxap/config';
2
- import { I18nService } from './i18n.service';
3
- import { RxapUserProfileService } from '@rxap/authentication';
4
- import * as i0 from "@angular/core";
5
- export declare class I18nCheckGuard {
6
- private readonly config;
7
- private readonly localId;
8
- private readonly i18nService;
9
- private readonly userProfileService;
10
- constructor(config: ConfigService, localId: string, i18nService: I18nService, userProfileService: RxapUserProfileService);
11
- canActivate(): Promise<boolean>;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<I18nCheckGuard, never>;
13
- static ɵprov: i0.ɵɵInjectableDeclaration<I18nCheckGuard>;
14
- }