@rxap/layout 18.0.3-dev.1 → 18.1.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +267 -1
- package/compodoc/changelog.html +16 -0
- package/compodoc/components/AppsButtonComponent.html +197 -153
- package/compodoc/components/BaseLayoutComponent.html +351 -0
- package/compodoc/components/DefaultHeaderComponent.html +545 -0
- package/compodoc/components/FooterComponent.html +58 -79
- package/compodoc/components/HeaderComponent.html +49 -294
- package/compodoc/components/LanguageSelectorComponent.html +6 -54
- package/compodoc/components/LayoutComponent.html +69 -464
- package/compodoc/components/MinimalLayoutComponent.html +349 -0
- package/compodoc/components/NavigationComponent.html +116 -312
- package/compodoc/components/NavigationItemComponent.html +130 -361
- package/compodoc/components/NavigationProgressBarComponent.html +41 -107
- package/compodoc/components/ReleaseInfoComponent.html +536 -0
- package/compodoc/components/SettingsButtonComponent.html +186 -225
- package/compodoc/components/SidenavComponent.html +566 -142
- package/compodoc/components/SidenavToggleButtonComponent.html +71 -91
- package/compodoc/components/SignOutComponent.html +7 -60
- package/compodoc/components/UserProfileIconComponent.html +97 -161
- package/compodoc/dependencies.html +9 -25
- package/compodoc/directives/FooterDirective-1.html +293 -0
- package/compodoc/directives/FooterDirective.html +8 -86
- package/compodoc/directives/HeaderDirective.html +293 -0
- package/compodoc/index.html +177 -2
- package/compodoc/injectables/ExternalAppsService.html +1311 -0
- package/compodoc/injectables/FooterService.html +573 -0
- package/compodoc/injectables/HeaderService.html +576 -0
- package/compodoc/injectables/LayoutService.html +899 -0
- package/compodoc/injectables/LogoService.html +411 -0
- package/compodoc/injectables/NavigationService.html +46 -57
- package/compodoc/interfaces/ReleaseInfoModule.html +385 -0
- package/compodoc/interfaces/SettingsMenuItem.html +385 -0
- package/compodoc/js/menu-wc.js +24 -40
- package/compodoc/js/menu-wc_es5.js +1 -1
- package/compodoc/js/search/search_index.js +2 -2
- package/compodoc/miscellaneous/functions.html +532 -0
- package/compodoc/miscellaneous/typealiases.html +40 -2
- package/compodoc/miscellaneous/variables.html +123 -9
- package/compodoc/overview.html +2 -10
- package/compodoc/properties.html +1 -1
- package/docs/assets/highlight.css +42 -0
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/AppsButtonComponent.html +8 -8
- package/docs/classes/BaseLayoutComponent.html +2 -0
- package/docs/classes/DefaultHeaderComponent.html +7 -0
- package/docs/classes/ExternalAppsService.html +19 -0
- package/docs/classes/FooterComponent.html +5 -3
- package/docs/classes/FooterDirective.html +2 -2
- package/docs/classes/FooterService.html +14 -0
- package/docs/classes/HeaderComponent.html +6 -8
- package/docs/classes/HeaderDirective.html +8 -0
- package/docs/classes/HeaderService.html +14 -0
- package/docs/classes/LayoutComponent.html +4 -12
- package/docs/classes/LayoutService.html +20 -0
- package/docs/classes/LogoService.html +7 -0
- package/docs/classes/MinimalLayoutComponent.html +2 -0
- package/docs/classes/NavigationComponent.html +7 -8
- package/docs/classes/NavigationItemComponent.html +6 -9
- package/docs/classes/NavigationProgressBarComponent.html +3 -3
- package/docs/classes/NavigationService.html +3 -3
- package/docs/classes/ReleaseInfoComponent.html +6 -0
- package/docs/classes/SettingsButtonComponent.html +6 -11
- package/docs/classes/SidenavComponent.html +17 -5
- package/docs/classes/SidenavFooterDirective.html +2 -2
- package/docs/classes/SidenavHeaderDirective.html +2 -2
- package/docs/classes/SidenavToggleButtonComponent.html +4 -3
- package/docs/classes/UserProfileIconComponent.html +5 -4
- package/docs/documentation.json +9635 -9292
- package/docs/functions/IsNavigationDividerItem.html +1 -1
- package/docs/functions/IsNavigationInsertItem.html +1 -1
- package/docs/functions/IsNavigationItem.html +1 -1
- package/docs/functions/provideLayout.html +1 -0
- package/docs/functions/widthDefaultHeaderComponent.html +1 -0
- package/docs/functions/withExternalApps.html +1 -0
- package/docs/functions/withFooterComponents.html +1 -0
- package/docs/functions/withHeaderComponents.html +1 -0
- package/docs/functions/withNavigationConfig.html +1 -0
- package/docs/functions/withNavigationInserts.html +1 -0
- package/docs/functions/withReleaseInfoModules.html +1 -0
- package/docs/functions/withSettingsMenuItems.html +1 -0
- package/docs/index.html +65 -2
- package/docs/interfaces/NavigationDividerItem.html +2 -2
- package/docs/interfaces/NavigationInsertItem.html +2 -2
- package/docs/interfaces/NavigationItem.html +2 -2
- package/docs/interfaces/NavigationStatus.html +2 -2
- package/docs/interfaces/ReleaseInfoModule.html +4 -0
- package/docs/interfaces/SettingsMenuItem.html +4 -0
- package/docs/modules.html +31 -17
- package/docs/types/ExternalApp.html +1 -0
- package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
- package/docs/types/Navigation.html +1 -1
- package/docs/types/NavigationWithInserts.html +1 -1
- package/docs/types/SettingsMenuItemComponent.html +1 -0
- package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
- package/docs/variables/RXAP_EXTERNAL_APP.html +1 -0
- package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -0
- package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -1
- package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -1
- package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -1
- package/docs/variables/RXAP_LOGO_CONFIG.html +1 -1
- package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -1
- package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -1
- package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -0
- package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -0
- package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -0
- package/esm2022/index.mjs +35 -40
- package/esm2022/lib/base-layout/base-layout.component.mjs +16 -0
- package/esm2022/lib/default-header/apps-button/apps-button.component.mjs +40 -0
- package/esm2022/lib/default-header/default-header.component.mjs +32 -0
- package/esm2022/lib/default-header/settings-button/settings-button.component.mjs +73 -0
- package/esm2022/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +24 -0
- package/esm2022/lib/default-header/user-profile-icon/user-profile-icon.component.mjs +35 -0
- package/esm2022/lib/external-apps.service.mjs +99 -0
- package/esm2022/lib/footer/footer.component.mjs +13 -13
- package/esm2022/lib/footer/footer.directive.mjs +30 -0
- package/esm2022/lib/footer.service.mjs +58 -0
- package/esm2022/lib/header/header.component.mjs +17 -65
- package/esm2022/lib/header/header.directive.mjs +30 -0
- package/esm2022/lib/header.service.mjs +60 -0
- package/esm2022/lib/layout/layout.component.mjs +33 -47
- package/esm2022/lib/layout.service.mjs +93 -0
- package/esm2022/lib/logo.service.mjs +23 -0
- package/esm2022/lib/minimal-layout/minimal-layout.component.mjs +14 -0
- package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +30 -64
- package/esm2022/lib/navigation/navigation.component.mjs +22 -48
- package/esm2022/lib/navigation-progress-bar/navigation-progress-bar.component.mjs +23 -0
- package/esm2022/lib/navigation.service.mjs +141 -0
- package/esm2022/lib/provide.mjs +80 -0
- package/esm2022/lib/release-info/release-info.component.mjs +28 -0
- package/esm2022/lib/sidenav/sidenav.component.mjs +50 -33
- package/esm2022/lib/tokens.mjs +10 -1
- package/esm2022/lib/types.mjs +1 -1
- package/fesm2022/rxap-layout.mjs +856 -833
- package/fesm2022/rxap-layout.mjs.map +1 -1
- package/index.d.ts +18 -19
- package/lib/base-layout/base-layout.component.d.ts +5 -0
- package/lib/default-header/apps-button/apps-button.component.d.ts +15 -0
- package/lib/default-header/default-header.component.d.ts +11 -0
- package/lib/{header → default-header}/settings-button/settings-button.component.d.ts +6 -14
- package/lib/{header → default-header}/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +3 -5
- package/lib/default-header/user-profile-icon/user-profile-icon.component.d.ts +10 -0
- package/lib/external-apps.service.d.ts +26 -0
- package/lib/footer/footer.component.d.ts +3 -3
- package/lib/{footer.directive.d.ts → footer/footer.directive.d.ts} +2 -4
- package/lib/footer.service.d.ts +32 -0
- package/lib/header/header.component.d.ts +6 -12
- package/lib/header/header.directive.d.ts +12 -0
- package/lib/header.service.d.ts +34 -0
- package/lib/layout/layout.component.d.ts +4 -17
- package/lib/layout.service.d.ts +26 -0
- package/lib/logo.service.d.ts +10 -0
- package/lib/minimal-layout/minimal-layout.component.d.ts +5 -0
- package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -18
- package/lib/navigation/navigation.component.d.ts +10 -15
- package/lib/{header/navigation-progress-bar → navigation-progress-bar}/navigation-progress-bar.component.d.ts +1 -3
- package/lib/{navigation/navigation.service.d.ts → navigation.service.d.ts} +4 -5
- package/lib/provide.d.ts +13 -0
- package/lib/release-info/release-info.component.d.ts +9 -0
- package/lib/sidenav/sidenav.component.d.ts +18 -6
- package/lib/tokens.d.ts +12 -3
- package/lib/types.d.ts +15 -4
- package/package.json +30 -66
- package/theme.css +1 -1
- package/docs/classes/AppUrlService.html +0 -13
- package/docs/classes/AuthenticationServiceMock.html +0 -3
- package/docs/classes/LanguageSelectorComponent.html +0 -3
- package/docs/classes/LayoutComponentService.html +0 -15
- package/docs/classes/ReplaceRouterPathsPipe.html +0 -4
- package/docs/classes/ReplaceRouterPathsService.html +0 -3
- package/docs/classes/ResetButtonComponent.html +0 -3
- package/docs/classes/SidenavComponentService.html +0 -5
- package/docs/classes/SignOutComponent.html +0 -4
- package/docs/classes/ToggleWindowSidenavButtonComponent.html +0 -5
- package/docs/classes/VersionComponent.html +0 -7
- package/docs/classes/WindowContainerSidenavComponent.html +0 -10
- package/docs/interfaces/ExternalApps.html +0 -8
- package/docs/interfaces/LogoConfig.html +0 -4
- package/esm2022/lib/app-url.service.mjs +0 -78
- package/esm2022/lib/authentication.service.mock.mjs +0 -13
- package/esm2022/lib/footer.directive.mjs +0 -40
- package/esm2022/lib/header/apps-button/apps-button.component.mjs +0 -46
- package/esm2022/lib/header/language-selector/language-selector.component.mjs +0 -35
- package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -30
- package/esm2022/lib/header/reset-button/reset-button.component.mjs +0 -23
- package/esm2022/lib/header/settings-button/settings-button.component.mjs +0 -87
- package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -26
- package/esm2022/lib/header/sign-out/sign-out.component.mjs +0 -23
- package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +0 -45
- package/esm2022/lib/layout/layout.component.service.mjs +0 -77
- package/esm2022/lib/navigation/navigation.service.mjs +0 -145
- package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +0 -22
- package/esm2022/lib/navigation/replace-router-paths.service.mjs +0 -15
- package/esm2022/lib/sidenav/sidenav.component.service.mjs +0 -22
- package/esm2022/lib/sidenav/version/version.component.mjs +0 -28
- package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +0 -30
- package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +0 -54
- package/lib/app-url.service.d.ts +0 -29
- package/lib/authentication.service.mock.d.ts +0 -6
- package/lib/header/apps-button/apps-button.component.d.ts +0 -16
- package/lib/header/language-selector/language-selector.component.d.ts +0 -8
- package/lib/header/reset-button/reset-button.component.d.ts +0 -8
- package/lib/header/sign-out/sign-out.component.d.ts +0 -9
- package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +0 -15
- package/lib/layout/layout.component.service.d.ts +0 -25
- package/lib/navigation/replace-router-paths.pipe.d.ts +0 -11
- package/lib/navigation/replace-router-paths.service.d.ts +0 -7
- package/lib/sidenav/sidenav.component.service.d.ts +0 -11
- package/lib/sidenav/version/version.component.d.ts +0 -14
- package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +0 -9
- package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +0 -17
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { AsyncPipe, NgIf, } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Inject, InjectionToken, } from '@angular/core';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
6
|
-
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
7
|
-
import { UserProfileDataSource } from '@rxap/ngx-user';
|
|
8
|
-
import { distinctUntilChanged, filter, skip, } from 'rxjs';
|
|
9
|
-
import { map, switchMap, } from 'rxjs/operators';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@rxap/ngx-user";
|
|
12
|
-
import * as i2 from "@rxap/authentication";
|
|
13
|
-
import * as i3 from "@angular/material/menu";
|
|
14
|
-
import * as i4 from "@angular/material/icon";
|
|
15
|
-
export const EXTRACT_USERNAME_FROM_PROFILE = new InjectionToken('extract-username-from-profile', {
|
|
16
|
-
providedIn: 'root',
|
|
17
|
-
factory: () => (profile) => (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
|
|
18
|
-
});
|
|
19
|
-
export class UserProfileIconComponent {
|
|
20
|
-
constructor(userProfileService, authenticationService, extractUsernameFromProfile) {
|
|
21
|
-
this.userProfileService = userProfileService;
|
|
22
|
-
this.authenticationService = authenticationService;
|
|
23
|
-
this.username = toSignal(this.authenticationService.isAuthenticated$.pipe(filter(Boolean), switchMap(() => this.userProfileService.connect({
|
|
24
|
-
viewChange: this.authenticationService.isAuthenticated$.pipe(skip(1), filter(Boolean), distinctUntilChanged()),
|
|
25
|
-
})), filter(Boolean), map(extractUsernameFromProfile)), { initialValue: null });
|
|
26
|
-
}
|
|
27
|
-
async logout() {
|
|
28
|
-
await this.authenticationService.signOut();
|
|
29
|
-
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UserProfileIconComponent, deps: [{ token: i1.UserProfileDataSource }, { token: i2.RxapAuthenticationService }, { token: EXTRACT_USERNAME_FROM_PROFILE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: UserProfileIconComponent, isStandalone: true, selector: "rxap-user-profile-icon", ngImport: i0, template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon flex flex-row justify-center items-center\">\n <mat-icon class=\"avatar-icon\" svgIcon=\"account-circle\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\" class=\"!max-w-none\">\n <button mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"account\"></mat-icon>\n <span>{{username()}}</span>\n </span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"logout\"></mat-icon>\n <span i18n>Logout</span>\n </span>\n </button>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon .avatar-icon{width:32px;height:32px;font-size:32px}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], 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 }); }
|
|
32
|
-
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UserProfileIconComponent, decorators: [{
|
|
34
|
-
type: Component,
|
|
35
|
-
args: [{ selector: 'rxap-user-profile-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
36
|
-
MatMenuModule,
|
|
37
|
-
MatIconModule,
|
|
38
|
-
NgIf,
|
|
39
|
-
AsyncPipe,
|
|
40
|
-
], template: "<button [matMenuTriggerFor]=\"menu\"\n [disabled]=\"!username()\"\n class=\"profile-icon flex flex-row justify-center items-center\">\n <mat-icon class=\"avatar-icon\" svgIcon=\"account-circle\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\" [yPosition]=\"'below'\" class=\"!max-w-none\">\n <button mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"account\"></mat-icon>\n <span>{{username()}}</span>\n </span>\n </button>\n <button (click)=\"logout()\" mat-menu-item>\n <span class=\"flex flex-row gap-2\">\n <mat-icon svgIcon=\"logout\"></mat-icon>\n <span i18n>Logout</span>\n </span>\n </button>\n</mat-menu>\n", styles: [".profile-icon{border-radius:100%;border:none;height:32px;width:32px;overflow:hidden;background-position:center center;background-repeat:no-repeat;background-size:cover}.profile-icon .avatar-icon{width:32px;height:32px;font-size:32px}.profile-icon:hover{cursor:pointer}.profile-icon:focus{outline:none}\n"] }]
|
|
41
|
-
}], ctorParameters: () => [{ type: i1.UserProfileDataSource }, { type: i2.RxapAuthenticationService }, { type: undefined, decorators: [{
|
|
42
|
-
type: Inject,
|
|
43
|
-
args: [EXTRACT_USERNAME_FROM_PROFILE]
|
|
44
|
-
}] }] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9oZWFkZXIvdXNlci1wcm9maWxlLWljb24vdXNlci1wcm9maWxlLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sY0FBYyxHQUVmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUl4QixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FDN0QsK0JBQStCLEVBQy9CO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUk7Q0FDOUcsQ0FDRixDQUFDO0FBZUYsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUNtQixrQkFBNEMsRUFDNUMscUJBQWdELEVBRS9ELDBCQUEyRDtRQUg1Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTBCO1FBQzVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7UUFJakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQzlDLFVBQVUsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMxRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLG9CQUFvQixFQUFFLENBQ3ZCO1NBQ0YsQ0FBQyxDQUFDLEVBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUNoQyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdDLENBQUM7OEdBMUJVLHdCQUF3QixnR0FPekIsNkJBQTZCO2tHQVA1Qix3QkFBd0Isa0ZDakRyQyw0ckJBb0JBLHdXRHVCSSxhQUFhLDZ2QkFDYixhQUFhOzsyRkFLSix3QkFBd0I7a0JBYnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixTQUFTO3FCQUNWOzswQkFTRSxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFzeW5jUGlwZSxcbiAgTmdJZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIFNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFJ4YXBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICdAcnhhcC9hdXRoZW50aWNhdGlvbic7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZURhdGFTb3VyY2UgfSBmcm9tICdAcnhhcC9uZ3gtdXNlcic7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBza2lwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIG1hcCxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlRm48VCA9IHVua25vd24+ID0gKHByb2ZpbGU6IFQpID0+IHN0cmluZyB8IG51bGw7XG5cbmV4cG9ydCBjb25zdCBFWFRSQUNUX1VTRVJOQU1FX0ZST01fUFJPRklMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFeHRyYWN0VXNlcm5hbWVGcm9tUHJvZmlsZUZuPihcbiAgJ2V4dHJhY3QtdXNlcm5hbWUtZnJvbS1wcm9maWxlJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiAocHJvZmlsZTogYW55KSA9PiAocHJvZmlsZSA/IHByb2ZpbGUudXNlcm5hbWUgPz8gcHJvZmlsZS5lbWFpbCA/PyBwcm9maWxlLm5hbWUgOiBudWxsKSA/PyBudWxsLFxuICB9LFxuKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC11c2VyLXByb2ZpbGUtaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi91c2VyLXByb2ZpbGUtaWNvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdJZixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJQcm9maWxlSWNvbkNvbXBvbmVudDxUID0gdW5rbm93bj4ge1xuXG4gIHB1YmxpYyB1c2VybmFtZTogU2lnbmFsPHN0cmluZyB8IG51bGw+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclByb2ZpbGVTZXJ2aWNlOiBVc2VyUHJvZmlsZURhdGFTb3VyY2U8VD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IFJ4YXBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgQEluamVjdChFWFRSQUNUX1VTRVJOQU1FX0ZST01fUFJPRklMRSlcbiAgICAgIGV4dHJhY3RVc2VybmFtZUZyb21Qcm9maWxlOiBFeHRyYWN0VXNlcm5hbWVGcm9tUHJvZmlsZUZuPFQ+LFxuICApIHtcbiAgICB0aGlzLnVzZXJuYW1lID0gdG9TaWduYWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJC5waXBlKFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudXNlclByb2ZpbGVTZXJ2aWNlLmNvbm5lY3Qoe1xuICAgICAgICB2aWV3Q2hhbmdlOiB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQkLnBpcGUoXG4gICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgKSxcbiAgICAgIH0pKSxcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgIG1hcChleHRyYWN0VXNlcm5hbWVGcm9tUHJvZmlsZSksXG4gICAgKSwgeyBpbml0aWFsVmFsdWU6IG51bGwgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCkge1xuICAgIGF3YWl0IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLnNpZ25PdXQoKTtcbiAgfVxuXG5cbn1cbiIsIjxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXVzZXJuYW1lKClcIlxuICAgICAgICBjbGFzcz1cInByb2ZpbGUtaWNvbiBmbGV4IGZsZXgtcm93IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICA8bWF0LWljb24gY2xhc3M9XCJhdmF0YXItaWNvblwiIHN2Z0ljb249XCJhY2NvdW50LWNpcmNsZVwiPjwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIFt5UG9zaXRpb25dPVwiJ2JlbG93J1wiIGNsYXNzPVwiIW1heC13LW5vbmVcIj5cbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtPlxuICAgIDxzcGFuIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJhY2NvdW50XCI+PC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7dXNlcm5hbWUoKX19PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cImxvZ291dCgpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICA8c3BhbiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTJcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibG9nb3V0XCI+PC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIGkxOG4+TG9nb3V0PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuIl19
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { MediaMatcher } from '@angular/cdk/layout';
|
|
2
|
-
import { computed, effect, Inject, Injectable, Optional, signal, } from '@angular/core';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { ConfigService } from '@rxap/config';
|
|
5
|
-
import { ObserveCurrentThemeDensity } from '@rxap/ngx-theme';
|
|
6
|
-
import { FooterService, HeaderService, } from '@rxap/services';
|
|
7
|
-
import { RXAP_LOGO_CONFIG } from '../tokens';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@rxap/services";
|
|
10
|
-
import * as i2 from "@angular/cdk/layout";
|
|
11
|
-
import * as i3 from "@rxap/config";
|
|
12
|
-
export class LayoutComponentService {
|
|
13
|
-
constructor(footerComponentService, headerComponentService, logoConfig = null, config, mediaMatcher) {
|
|
14
|
-
this.footerComponentService = footerComponentService;
|
|
15
|
-
this.headerComponentService = headerComponentService;
|
|
16
|
-
this.config = config;
|
|
17
|
-
this.currentThemeDensity = toSignal(ObserveCurrentThemeDensity());
|
|
18
|
-
const mobileQuery = mediaMatcher.matchMedia('(max-width: 959px)');
|
|
19
|
-
const mobile = mobileQuery.matches;
|
|
20
|
-
const initialCollapsable = this.config.get('navigation.collapsable', true);
|
|
21
|
-
const collapsable = initialCollapsable && !mobile;
|
|
22
|
-
const pinned = this.config.get('navigation.pinned', false);
|
|
23
|
-
const mode = this.config.get('navigation.mode', pinned || !collapsable ? 'side' : 'over');
|
|
24
|
-
const opened = this.config.get('navigation.opened', (!collapsable || pinned) && !mobile);
|
|
25
|
-
this.opened = signal(opened);
|
|
26
|
-
this.mode = signal(mode);
|
|
27
|
-
this.pinned = signal(pinned);
|
|
28
|
-
this.collapsable = signal(collapsable);
|
|
29
|
-
this.fixedBottomGap = computed(() => this.footerComponentService.portalCount() * (64 + (this.currentThemeDensity() ?? 0) * 4));
|
|
30
|
-
this.fixedTopGap = computed(() => this.headerComponentService.componentCount() * (64 + (this.currentThemeDensity() ?? 0) * 4));
|
|
31
|
-
this.logo = logoConfig ?? {
|
|
32
|
-
src: 'assets/logo.png',
|
|
33
|
-
width: 192,
|
|
34
|
-
};
|
|
35
|
-
mobileQuery.addEventListener('change', (event) => {
|
|
36
|
-
if (initialCollapsable) {
|
|
37
|
-
this.collapsable.set(!event.matches);
|
|
38
|
-
if (this.collapsable()) {
|
|
39
|
-
if (!this.pinned()) {
|
|
40
|
-
this.opened.set(false);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
effect(() => {
|
|
46
|
-
if (this.pinned()) {
|
|
47
|
-
this.mode.set('side');
|
|
48
|
-
this.opened.set(true);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.mode.set('over');
|
|
52
|
-
this.opened.set(false);
|
|
53
|
-
}
|
|
54
|
-
}, { allowSignalWrites: true });
|
|
55
|
-
}
|
|
56
|
-
toggleOpened() {
|
|
57
|
-
this.opened.set(!this.opened());
|
|
58
|
-
}
|
|
59
|
-
togglePinned() {
|
|
60
|
-
this.pinned.set(!this.pinned());
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LayoutComponentService, deps: [{ token: i1.FooterService }, { token: i1.HeaderService }, { token: RXAP_LOGO_CONFIG, optional: true }, { token: ConfigService }, { token: i2.MediaMatcher }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LayoutComponentService, providedIn: 'root' }); }
|
|
64
|
-
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LayoutComponentService, decorators: [{
|
|
66
|
-
type: Injectable,
|
|
67
|
-
args: [{ providedIn: 'root' }]
|
|
68
|
-
}], ctorParameters: () => [{ type: i1.FooterService }, { type: i1.HeaderService }, { type: undefined, decorators: [{
|
|
69
|
-
type: Optional
|
|
70
|
-
}, {
|
|
71
|
-
type: Inject,
|
|
72
|
-
args: [RXAP_LOGO_CONFIG]
|
|
73
|
-
}] }, { type: i3.ConfigService, decorators: [{
|
|
74
|
-
type: Inject,
|
|
75
|
-
args: [ConfigService]
|
|
76
|
-
}] }, { type: i2.MediaMatcher }] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFjakMsWUFDa0Isc0JBQXFDLEVBQ3JDLHNCQUFxQyxFQUNmLGFBQWdDLElBQUksRUFFekQsTUFBcUIsRUFDdEMsWUFBMEI7UUFMViwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWU7UUFDckMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFlO1FBR3BDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFSdkIsd0JBQW1CLEdBQUcsUUFBUSxDQUFDLDBCQUEwQixFQUFFLENBQUMsQ0FBQztRQVc1RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUNuQyxNQUFNLGtCQUFr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O1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQTdFVSxzQkFBc0IsNEVBaUJYLGdCQUFnQiw2QkFDNUIsYUFBYTtrSEFsQlosc0JBQXNCLGNBRFQsTUFBTTs7MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWtCN0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWwsXG4gIHNpZ25hbCxcbiAgU2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE1hdERyYXdlck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAcnhhcC9jb25maWcnO1xuaW1wb3J0IHsgT2JzZXJ2ZUN1cnJlbnRUaGVtZURlbnNpdHkgfSBmcm9tICdAcnhhcC9uZ3gtdGhlbWUnO1xuaW1wb3J0IHtcbiAgRm9vdGVyU2VydmljZSxcbiAgSGVhZGVyU2VydmljZSxcbn0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHsgUlhBUF9MT0dPX0NPTkZJRyB9IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBMb2dvQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyBsb2dvOiBMb2dvQ29uZmlnO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcGVuZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuICBwdWJsaWMgcmVhZG9ubHkgbW9kZTogV3JpdGFibGVTaWduYWw8TWF0RHJhd2VyTW9kZT47XG4gIHB1YmxpYyByZWFkb25seSBwaW5uZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuICBwdWJsaWMgcmVhZG9ubHkgY29sbGFwc2FibGU6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRCb3R0b21HYXA6IFNpZ25hbDxudW1iZXI+O1xuICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRUb3BHYXA6IFNpZ25hbDxudW1iZXI+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFRoZW1lRGVuc2l0eSA9IHRvU2lnbmFsKE9ic2VydmVDdXJyZW50VGhlbWVEZW5zaXR5KCkpO1xuXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmb290ZXJDb21wb25lbnRTZXJ2aWNlOiBGb290ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJDb21wb25lbnRTZXJ2aWNlOiBIZWFkZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUlhBUF9MT0dPX0NPTkZJRykgbG9nb0NvbmZpZzogTG9nb0NvbmZpZyB8IG51bGwgPSBudWxsLFxuICAgIEBJbmplY3QoQ29uZmlnU2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgKSB7XG4gICAgY29uc3QgbW9iaWxlUXVlcnkgPSBtZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogOTU5cHgpJyk7XG4gICAgY29uc3QgbW9iaWxlID0gbW9iaWxlUXVlcnkubWF0Y2hlcztcbiAgICBjb25zdCBpbml0aWFsQ29sbGFwc2FibGUgPSB0aGlzLmNvbmZpZy5nZXQoJ25hdmlnYXRpb24uY29sbGFwc2FibGUnLCB0cnVlKTtcbiAgICBjb25zdCBjb2xsYXBzYWJsZSA9IGluaXRpYWxDb2xsYXBzYWJsZSAmJiAhbW9iaWxlO1xuICAgIGNvbnN0IHBpbm5lZCA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5waW5uZWQnLCBmYWxzZSk7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuY29uZmlnLmdldCgnbmF2aWdhdGlvbi5tb2RlJywgcGlubmVkIHx8ICFjb2xsYXBzYWJsZSA/ICdzaWRlJyA6ICdvdmVyJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gdGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLm9wZW5lZCcsICghY29sbGFwc2FibGUgfHwgcGlubmVkKSAmJiAhbW9iaWxlKTtcblxuICAgIHRoaXMub3BlbmVkID0gc2lnbmFsKG9wZW5lZCk7XG4gICAgdGhpcy5tb2RlID0gc2lnbmFsKG1vZGUpO1xuICAgIHRoaXMucGlubmVkID0gc2lnbmFsKHBpbm5lZCk7XG4gICAgdGhpcy5jb2xsYXBzYWJsZSA9IHNpZ25hbChjb2xsYXBzYWJsZSk7XG5cbiAgICB0aGlzLmZpeGVkQm90dG9tR2FwID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb290ZXJDb21wb25lbnRTZXJ2aWNlLnBvcnRhbENvdW50KCkgKiAoXG4gICAgICA2NCArIChcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGhlbWVEZW5zaXR5KCkgPz8gMFxuICAgICAgICAgKSAqIDRcbiAgICApKTtcbiAgICB0aGlzLmZpeGVkVG9wR2FwID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5oZWFkZXJDb21wb25lbnRTZXJ2aWNlLmNvbXBvbmVudENvdW50KCkgKiAoXG4gICAgICA2NCArIChcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGhlbWVEZW5zaXR5KCkgPz8gMFxuICAgICAgICAgKSAqIDRcbiAgICApKTtcblxuICAgIHRoaXMubG9nbyA9IGxvZ29Db25maWcgPz8ge1xuICAgICAgc3JjOiAnYXNzZXRzL2xvZ28ucG5nJyxcbiAgICAgIHdpZHRoOiAxOTIsXG4gICAgfTtcbiAgICBtb2JpbGVRdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChpbml0aWFsQ29sbGFwc2FibGUpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzYWJsZS5zZXQoIWV2ZW50Lm1hdGNoZXMpO1xuICAgICAgICBpZiAodGhpcy5jb2xsYXBzYWJsZSgpKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLnBpbm5lZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5lZC5zZXQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5waW5uZWQoKSkge1xuICAgICAgICB0aGlzLm1vZGUuc2V0KCdzaWRlJyk7XG4gICAgICAgIHRoaXMub3BlbmVkLnNldCh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9kZS5zZXQoJ292ZXInKTtcbiAgICAgICAgdGhpcy5vcGVuZWQuc2V0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU9wZW5lZCgpIHtcbiAgICB0aGlzLm9wZW5lZC5zZXQoIXRoaXMub3BlbmVkKCkpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBpbm5lZCgpIHtcbiAgICB0aGlzLnBpbm5lZC5zZXQoIXRoaXMucGlubmVkKCkpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, INJECTOR, Optional, } from '@angular/core';
|
|
2
|
-
import { combineLatest, from, of, ReplaySubject, } from 'rxjs';
|
|
3
|
-
import { IsNavigationDividerItem, IsNavigationInsertItem, IsNavigationItem, } from './navigation-item';
|
|
4
|
-
import { RXAP_NAVIGATION_CONFIG, RXAP_NAVIGATION_CONFIG_INSERTS, } from '../tokens';
|
|
5
|
-
import { catchError, map, switchMap, } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class NavigationService {
|
|
8
|
-
constructor(navigation, injector, inserts = null) {
|
|
9
|
-
this.injector = injector;
|
|
10
|
-
this.inserts = new Map();
|
|
11
|
-
this.navigation$ = new ReplaySubject(1);
|
|
12
|
-
if (typeof navigation === 'function') {
|
|
13
|
-
this.navigation = navigation();
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
this.navigation = navigation;
|
|
17
|
-
}
|
|
18
|
-
if (inserts) {
|
|
19
|
-
Object.entries(inserts).forEach(([id, insert]) => this.insert(id, insert, false));
|
|
20
|
-
}
|
|
21
|
-
this.updateNavigation();
|
|
22
|
-
this.config$ = this.navigation$.pipe(switchMap((navigationWithoutStatusCheck) => this.checkNavigationStatusProviders(navigationWithoutStatusCheck)));
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated use add instead
|
|
26
|
-
* @param id
|
|
27
|
-
* @param value
|
|
28
|
-
* @param update
|
|
29
|
-
*/
|
|
30
|
-
insert(id, value, update = true) {
|
|
31
|
-
this.add(id, value, update);
|
|
32
|
-
}
|
|
33
|
-
add(id, value, update = true) {
|
|
34
|
-
this.inserts.set(id, value);
|
|
35
|
-
if (update) {
|
|
36
|
-
this.updateNavigation();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
has(id) {
|
|
40
|
-
return this.inserts.has(id);
|
|
41
|
-
}
|
|
42
|
-
get(id) {
|
|
43
|
-
return this.inserts.get(id);
|
|
44
|
-
}
|
|
45
|
-
remove(id, update = true) {
|
|
46
|
-
this.inserts.delete(id);
|
|
47
|
-
if (update) {
|
|
48
|
-
this.updateNavigation();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
updateNavigation() {
|
|
52
|
-
this.navigation$.next(this.replaceInserts(this.navigation));
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* @internal
|
|
56
|
-
* @param navigationItem
|
|
57
|
-
*/
|
|
58
|
-
checkNavigationItemStatusProviders(navigationItem) {
|
|
59
|
-
if (IsNavigationDividerItem(navigationItem) || !navigationItem.status) {
|
|
60
|
-
return of(navigationItem);
|
|
61
|
-
}
|
|
62
|
-
const isVisibleArray$ = navigationItem.status
|
|
63
|
-
.map((statusToken) => this.injector.get(statusToken))
|
|
64
|
-
.map((status) => {
|
|
65
|
-
const isVisible = status.isVisible(navigationItem);
|
|
66
|
-
if (typeof isVisible === 'boolean') {
|
|
67
|
-
return of(isVisible);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
return from(isVisible);
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
.map(isVisible$ => isVisible$.pipe(catchError(e => {
|
|
74
|
-
console.error('isVisible method failed: ' +
|
|
75
|
-
e.message);
|
|
76
|
-
return of(false);
|
|
77
|
-
})));
|
|
78
|
-
// TODO : dont wait for all status services to complete, but cancel waiting if one returns false
|
|
79
|
-
return combineLatest(isVisibleArray$).pipe(map((isVisibleArray) => isVisibleArray.reduce((acc, isVisible) => acc && isVisible, true)), map((isVisible) => (isVisible ? navigationItem : null)), switchMap((navigationItemOrNull) => {
|
|
80
|
-
if (navigationItemOrNull) {
|
|
81
|
-
if (navigationItemOrNull.children?.length) {
|
|
82
|
-
return this.checkNavigationStatusProviders(navigationItemOrNull.children).pipe(map((children) => ({
|
|
83
|
-
...navigationItemOrNull,
|
|
84
|
-
children,
|
|
85
|
-
})));
|
|
86
|
-
}
|
|
87
|
-
return of(navigationItemOrNull);
|
|
88
|
-
}
|
|
89
|
-
return of(null);
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* @internal
|
|
94
|
-
* @param navigationItem
|
|
95
|
-
*/
|
|
96
|
-
checkNavigationStatusProviders(navigation) {
|
|
97
|
-
return combineLatest(navigation.map((navigationItem) => this.checkNavigationItemStatusProviders(navigationItem))).pipe(map((navigationWithNullItems) => {
|
|
98
|
-
const cleanNavigation = [];
|
|
99
|
-
for (const navigationItem of navigationWithNullItems) {
|
|
100
|
-
if (navigationItem !== null) {
|
|
101
|
-
cleanNavigation.push(navigationItem);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return cleanNavigation;
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
107
|
-
replaceInserts(navigationWithInserts) {
|
|
108
|
-
const navigation = [];
|
|
109
|
-
for (const navigationItem of navigationWithInserts) {
|
|
110
|
-
if (IsNavigationInsertItem(navigationItem)) {
|
|
111
|
-
if (this.inserts.has(navigationItem.insert)) {
|
|
112
|
-
navigation.push(...this.replaceInserts(this.inserts.get(navigationItem.insert)));
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else if (IsNavigationItem(navigationItem)) {
|
|
116
|
-
navigation.push({
|
|
117
|
-
...navigationItem,
|
|
118
|
-
children: this.replaceInserts(navigationItem.children ?? []),
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
else if (IsNavigationDividerItem(navigationItem)) {
|
|
122
|
-
navigation.push(navigationItem);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return navigation;
|
|
126
|
-
}
|
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NavigationService, deps: [{ token: RXAP_NAVIGATION_CONFIG }, { token: INJECTOR }, { token: RXAP_NAVIGATION_CONFIG_INSERTS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
128
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NavigationService, providedIn: 'root' }); }
|
|
129
|
-
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: NavigationService, decorators: [{
|
|
131
|
-
type: Injectable,
|
|
132
|
-
args: [{ providedIn: 'root' }]
|
|
133
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
134
|
-
type: Inject,
|
|
135
|
-
args: [RXAP_NAVIGATION_CONFIG]
|
|
136
|
-
}] }, { type: undefined, decorators: [{
|
|
137
|
-
type: Inject,
|
|
138
|
-
args: [INJECTOR]
|
|
139
|
-
}] }, { type: undefined, decorators: [{
|
|
140
|
-
type: Optional
|
|
141
|
-
}, {
|
|
142
|
-
type: Inject,
|
|
143
|
-
args: [RXAP_NAVIGATION_CONFIG_INSERTS]
|
|
144
|
-
}] }] });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9sYXlvdXQvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsSUFBSSxFQUVKLEVBQUUsRUFDRixhQUFhLEdBQ2QsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixnQkFBZ0IsR0FLakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDhCQUE4QixHQUMvQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsVUFBVSxFQUNWLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHeEIsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixZQUVJLFVBQWUsRUFFQSxRQUFrQixFQUdqQyxVQUFzQixJQUFJO1FBSFgsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVY3QixZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFJMUMsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBYSxDQUFDLENBQUMsQ0FBQztRQVc5RCxJQUFJLE9BQU8sVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxFQUFFLEVBQUUsTUFBTSxDQUFtQixFQUFFLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUMvQixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2xDLFNBQVMsQ0FBQyxDQUFDLDRCQUE0QixFQUFFLEVBQUUsQ0FDekMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLDRCQUE0QixDQUFDLENBQ2xFLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FDWCxFQUFVLEVBQ1YsS0FBNEIsRUFDNUIsTUFBTSxHQUFHLElBQUk7UUFFYixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLEdBQUcsQ0FDUixFQUFVLEVBQ1YsS0FBNEIsRUFDNUIsTUFBTSxHQUFHLElBQUk7UUFFYixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRU0sR0FBRyxDQUFDLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sR0FBRyxDQUFDLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVUsRUFBRSxNQUFNLEdBQUcsSUFBSTtRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0NBQWtDLENBQ3ZDLGNBQXNEO1FBRXRELElBQUksdUJBQXVCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEUsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUErQixjQUFjLENBQUMsTUFBTTthQUNOLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3JDLFdBQVcsQ0FBQyxDQUFDO2FBQ2QsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDZCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUNoQyxjQUFjLENBQUMsQ0FBQztZQUNsQixJQUFJLE9BQU8sU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCO2dCQUN2QyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsZ0dBQWdHO1FBQ2hHLE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDckIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQ2xFLEVBQ0QsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN2RCxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFO1lBQ2pDLElBQUksb0JBQW9CLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQzFDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUN4QyxvQkFBb0IsQ0FBQyxRQUFRLENBQzlCLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDakIsR0FBRyxvQkFBb0I7d0JBQ3ZCLFFBQVE7cUJBQ1QsQ0FBQyxDQUFDLENBQ0osQ0FBQztnQkFDSixDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksOEJBQThCLENBQ25DLFVBQXNCO1FBRXRCLE9BQU8sYUFBYSxDQUNsQixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsQ0FBQyxDQUN4RCxDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLEVBQUU7WUFDOUIsTUFBTSxlQUFlLEdBQWUsRUFBRSxDQUFDO1lBRXZDLEtBQUssTUFBTSxjQUFjLElBQUksdUJBQXVCLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzVCLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQ3BCLHFCQUE0QztRQUU1QyxNQUFNLFVBQVUsR0FBZSxFQUFFLENBQUM7UUFFbEMsS0FBSyxNQUFNLGNBQWMsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQ25ELElBQUksc0JBQXNCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDNUMsVUFBVSxDQUFDLElBQUksQ0FDYixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBRSxDQUFDLENBQ2pFLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxVQUFVLENBQUMsSUFBSSxDQUFDO29CQUNkLEdBQUcsY0FBYztvQkFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7aUJBQzdELENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs4R0FyTFUsaUJBQWlCLGtCQVVsQixzQkFBc0IsYUFFdEIsUUFBUSxhQUdSLDhCQUE4QjtrSEFmN0IsaUJBQWlCLGNBREosTUFBTTs7MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQVc3QixNQUFNOzJCQUFDLHNCQUFzQjs7MEJBRTdCLE1BQU07MkJBQUMsUUFBUTs7MEJBRWYsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIElOSkVDVE9SLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBmcm9tLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBJc05hdmlnYXRpb25EaXZpZGVySXRlbSxcbiAgSXNOYXZpZ2F0aW9uSW5zZXJ0SXRlbSxcbiAgSXNOYXZpZ2F0aW9uSXRlbSxcbiAgTmF2aWdhdGlvbixcbiAgTmF2aWdhdGlvbkRpdmlkZXJJdGVtLFxuICBOYXZpZ2F0aW9uSXRlbSxcbiAgTmF2aWdhdGlvbldpdGhJbnNlcnRzLFxufSBmcm9tICcuL25hdmlnYXRpb24taXRlbSc7XG5pbXBvcnQge1xuICBSWEFQX05BVklHQVRJT05fQ09ORklHLFxuICBSWEFQX05BVklHQVRJT05fQ09ORklHX0lOU0VSVFMsXG59IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyQ6IE9ic2VydmFibGU8TmF2aWdhdGlvbj47XG5cbiAgcHJpdmF0ZSBpbnNlcnRzID0gbmV3IE1hcDxzdHJpbmcsIE5hdmlnYXRpb25XaXRoSW5zZXJ0cz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb246IE5hdmlnYXRpb25XaXRoSW5zZXJ0cztcblxuICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb24kID0gbmV3IFJlcGxheVN1YmplY3Q8TmF2aWdhdGlvbj4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChSWEFQX05BVklHQVRJT05fQ09ORklHKVxuICAgICAgbmF2aWdhdGlvbjogYW55LFxuICAgIEBJbmplY3QoSU5KRUNUT1IpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFJYQVBfTkFWSUdBVElPTl9DT05GSUdfSU5TRVJUUylcbiAgICAgIGluc2VydHM6IGFueSB8IG51bGwgPSBudWxsLFxuICApIHtcbiAgICBpZiAodHlwZW9mIG5hdmlnYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbiA9IG5hdmlnYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uID0gbmF2aWdhdGlvbjtcbiAgICB9XG4gICAgaWYgKGluc2VydHMpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKGluc2VydHMpLmZvckVhY2goKFsgaWQsIGluc2VydCBdOiBbIHN0cmluZywgYW55IF0pID0+XG4gICAgICAgIHRoaXMuaW5zZXJ0KGlkLCBpbnNlcnQsIGZhbHNlKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuICAgIHRoaXMuY29uZmlnJCA9IHRoaXMubmF2aWdhdGlvbiQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgobmF2aWdhdGlvbldpdGhvdXRTdGF0dXNDaGVjaykgPT5cbiAgICAgICAgdGhpcy5jaGVja05hdmlnYXRpb25TdGF0dXNQcm92aWRlcnMobmF2aWdhdGlvbldpdGhvdXRTdGF0dXNDaGVjayksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFkZCBpbnN0ZWFkXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHBhcmFtIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIGluc2VydChcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBOYXZpZ2F0aW9uV2l0aEluc2VydHMsXG4gICAgdXBkYXRlID0gdHJ1ZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5hZGQoaWQsIHZhbHVlLCB1cGRhdGUpO1xuICB9XG5cbiAgcHVibGljIGFkZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHZhbHVlOiBOYXZpZ2F0aW9uV2l0aEluc2VydHMsXG4gICAgdXBkYXRlID0gdHJ1ZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5pbnNlcnRzLnNldChpZCwgdmFsdWUpO1xuICAgIGlmICh1cGRhdGUpIHtcbiAgICAgIHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXMoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmluc2VydHMuaGFzKGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoaWQ6IHN0cmluZyk6IE5hdmlnYXRpb25XaXRoSW5zZXJ0cyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0cy5nZXQoaWQpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShpZDogc3RyaW5nLCB1cGRhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5pbnNlcnRzLmRlbGV0ZShpZCk7XG4gICAgaWYgKHVwZGF0ZSkge1xuICAgICAgdGhpcy51cGRhdGVOYXZpZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZU5hdmlnYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5uYXZpZ2F0aW9uJC5uZXh0KHRoaXMucmVwbGFjZUluc2VydHModGhpcy5uYXZpZ2F0aW9uKSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSBuYXZpZ2F0aW9uSXRlbVxuICAgKi9cbiAgcHVibGljIGNoZWNrTmF2aWdhdGlvbkl0ZW1TdGF0dXNQcm92aWRlcnMoXG4gICAgbmF2aWdhdGlvbkl0ZW06IE5hdmlnYXRpb25JdGVtIHwgTmF2aWdhdGlvbkRpdmlkZXJJdGVtLFxuICApOiBPYnNlcnZhYmxlPE5hdmlnYXRpb25JdGVtIHwgTmF2aWdhdGlvbkRpdmlkZXJJdGVtIHwgbnVsbD4ge1xuICAgIGlmIChJc05hdmlnYXRpb25EaXZpZGVySXRlbShuYXZpZ2F0aW9uSXRlbSkgfHwgIW5hdmlnYXRpb25JdGVtLnN0YXR1cykge1xuICAgICAgcmV0dXJuIG9mKG5hdmlnYXRpb25JdGVtKTtcbiAgICB9XG4gICAgY29uc3QgaXNWaXNpYmxlQXJyYXkkOiBBcnJheTxPYnNlcnZhYmxlPGJvb2xlYW4+PiA9IG5hdmlnYXRpb25JdGVtLnN0YXR1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHN0YXR1c1Rva2VuKSA9PiB0aGlzLmluamVjdG9yLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1Rva2VuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHN0YXR1cy5pc1Zpc2libGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXNWaXNpYmxlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGlzVmlzaWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbShpc1Zpc2libGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChpc1Zpc2libGUkID0+IGlzVmlzaWJsZSQucGlwZShjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignaXNWaXNpYmxlIG1ldGhvZCBmYWlsZWQ6ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkpO1xuICAgIC8vIFRPRE8gOiBkb250IHdhaXQgZm9yIGFsbCBzdGF0dXMgc2VydmljZXMgdG8gY29tcGxldGUsIGJ1dCBjYW5jZWwgd2FpdGluZyBpZiBvbmUgcmV0dXJucyBmYWxzZVxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGlzVmlzaWJsZUFycmF5JCkucGlwZShcbiAgICAgIG1hcCgoaXNWaXNpYmxlQXJyYXkpID0+XG4gICAgICAgIGlzVmlzaWJsZUFycmF5LnJlZHVjZSgoYWNjLCBpc1Zpc2libGUpID0+IGFjYyAmJiBpc1Zpc2libGUsIHRydWUpLFxuICAgICAgKSxcbiAgICAgIG1hcCgoaXNWaXNpYmxlKSA9PiAoaXNWaXNpYmxlID8gbmF2aWdhdGlvbkl0ZW0gOiBudWxsKSksXG4gICAgICBzd2l0Y2hNYXAoKG5hdmlnYXRpb25JdGVtT3JOdWxsKSA9PiB7XG4gICAgICAgIGlmIChuYXZpZ2F0aW9uSXRlbU9yTnVsbCkge1xuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSXRlbU9yTnVsbC5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jaGVja05hdmlnYXRpb25TdGF0dXNQcm92aWRlcnMoXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JdGVtT3JOdWxsLmNoaWxkcmVuLFxuICAgICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKGNoaWxkcmVuKSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLm5hdmlnYXRpb25JdGVtT3JOdWxsLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2YobmF2aWdhdGlvbkl0ZW1Pck51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSBuYXZpZ2F0aW9uSXRlbVxuICAgKi9cbiAgcHVibGljIGNoZWNrTmF2aWdhdGlvblN0YXR1c1Byb3ZpZGVycyhcbiAgICBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uLFxuICApOiBPYnNlcnZhYmxlPE5hdmlnYXRpb24+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgIG5hdmlnYXRpb24ubWFwKChuYXZpZ2F0aW9uSXRlbSkgPT5cbiAgICAgICAgdGhpcy5jaGVja05hdmlnYXRpb25JdGVtU3RhdHVzUHJvdmlkZXJzKG5hdmlnYXRpb25JdGVtKSxcbiAgICAgICksXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChuYXZpZ2F0aW9uV2l0aE51bGxJdGVtcykgPT4ge1xuICAgICAgICBjb25zdCBjbGVhbk5hdmlnYXRpb246IE5hdmlnYXRpb24gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IG5hdmlnYXRpb25JdGVtIG9mIG5hdmlnYXRpb25XaXRoTnVsbEl0ZW1zKSB7XG4gICAgICAgICAgaWYgKG5hdmlnYXRpb25JdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjbGVhbk5hdmlnYXRpb24ucHVzaChuYXZpZ2F0aW9uSXRlbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsZWFuTmF2aWdhdGlvbjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VJbnNlcnRzKFxuICAgIG5hdmlnYXRpb25XaXRoSW5zZXJ0czogTmF2aWdhdGlvbldpdGhJbnNlcnRzLFxuICApOiBOYXZpZ2F0aW9uIHtcbiAgICBjb25zdCBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG5hdmlnYXRpb25JdGVtIG9mIG5hdmlnYXRpb25XaXRoSW5zZXJ0cykge1xuICAgICAgaWYgKElzTmF2aWdhdGlvbkluc2VydEl0ZW0obmF2aWdhdGlvbkl0ZW0pKSB7XG4gICAgICAgIGlmICh0aGlzLmluc2VydHMuaGFzKG5hdmlnYXRpb25JdGVtLmluc2VydCkpIHtcbiAgICAgICAgICBuYXZpZ2F0aW9uLnB1c2goXG4gICAgICAgICAgICAuLi50aGlzLnJlcGxhY2VJbnNlcnRzKHRoaXMuaW5zZXJ0cy5nZXQobmF2aWdhdGlvbkl0ZW0uaW5zZXJ0KSEpLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoSXNOYXZpZ2F0aW9uSXRlbShuYXZpZ2F0aW9uSXRlbSkpIHtcbiAgICAgICAgbmF2aWdhdGlvbi5wdXNoKHtcbiAgICAgICAgICAuLi5uYXZpZ2F0aW9uSXRlbSxcbiAgICAgICAgICBjaGlsZHJlbjogdGhpcy5yZXBsYWNlSW5zZXJ0cyhuYXZpZ2F0aW9uSXRlbS5jaGlsZHJlbiA/PyBbXSksXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChJc05hdmlnYXRpb25EaXZpZGVySXRlbShuYXZpZ2F0aW9uSXRlbSkpIHtcbiAgICAgICAgbmF2aWdhdGlvbi5wdXNoKG5hdmlnYXRpb25JdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmF2aWdhdGlvbjtcbiAgfVxufVxuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Pipe, } from '@angular/core';
|
|
2
|
-
import { ReplaceRouterPathsService } from './replace-router-paths.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./replace-router-paths.service";
|
|
5
|
-
export class ReplaceRouterPathsPipe {
|
|
6
|
-
constructor(rrp) {
|
|
7
|
-
this.rrp = rrp;
|
|
8
|
-
}
|
|
9
|
-
transform(routerLink) {
|
|
10
|
-
return this.rrp.transform(routerLink);
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ReplaceRouterPathsPipe, deps: [{ token: i1.ReplaceRouterPathsService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
13
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ReplaceRouterPathsPipe, isStandalone: true, name: "replaceRouterPaths" }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ReplaceRouterPathsPipe, decorators: [{
|
|
16
|
-
type: Pipe,
|
|
17
|
-
args: [{
|
|
18
|
-
name: 'replaceRouterPaths',
|
|
19
|
-
standalone: true,
|
|
20
|
-
}]
|
|
21
|
-
}], ctorParameters: () => [{ type: i1.ReplaceRouterPathsService }] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1yb3V0ZXItcGF0aHMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9yZXBsYWNlLXJvdXRlci1wYXRocy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQU0zRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsR0FBOEI7UUFBOUIsUUFBRyxHQUFILEdBQUcsQ0FBMkI7SUFFdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFvQjtRQUM1QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBUlUsc0JBQXNCOzRHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXBsYWNlUm91dGVyUGF0aHNTZXJ2aWNlIH0gZnJvbSAnLi9yZXBsYWNlLXJvdXRlci1wYXRocy5zZXJ2aWNlJztcblxuQFBpcGUoe1xuICBuYW1lOiAncmVwbGFjZVJvdXRlclBhdGhzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUmVwbGFjZVJvdXRlclBhdGhzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcnJwOiBSZXBsYWNlUm91dGVyUGF0aHNTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHRyYW5zZm9ybShyb3V0ZXJMaW5rOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5ycnAudHJhbnNmb3JtKHJvdXRlckxpbmspO1xuICB9XG59XG5cblxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { of, } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ReplaceRouterPathsService {
|
|
5
|
-
transform(routerLink) {
|
|
6
|
-
return of(routerLink);
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ReplaceRouterPathsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ReplaceRouterPathsService, providedIn: 'root' }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ReplaceRouterPathsService, decorators: [{
|
|
12
|
-
type: Injectable,
|
|
13
|
-
args: [{ providedIn: 'root' }]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1yb3V0ZXItcGF0aHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvbmF2aWdhdGlvbi9yZXBsYWNlLXJvdXRlci1wYXRocy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQzs7QUFHZCxNQUFNLE9BQU8seUJBQXlCO0lBRTdCLFNBQVMsQ0FBQyxVQUFvQjtRQUNuQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQUpVLHlCQUF5QjtrSEFBekIseUJBQXlCLGNBRFosTUFBTTs7MkZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUmVwbGFjZVJvdXRlclBhdGhzU2VydmljZSB7XG5cbiAgcHVibGljIHRyYW5zZm9ybShyb3V0ZXJMaW5rOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gb2Yocm91dGVyTGluayk7XG4gIH1cblxufVxuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { ConfigService } from '@rxap/config';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@rxap/config";
|
|
6
|
-
export class SidenavComponentService {
|
|
7
|
-
constructor(config) {
|
|
8
|
-
this.config = config;
|
|
9
|
-
this.collapsed$ = new BehaviorSubject(true);
|
|
10
|
-
this.collapsed$.next(this.config.get('navigation.collapsed', this.collapsed$.value));
|
|
11
|
-
}
|
|
12
|
-
toggleNavigationCollapse() {
|
|
13
|
-
this.collapsed$.next(!this.collapsed$.value);
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidenavComponentService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidenavComponentService, providedIn: 'root' }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidenavComponentService, decorators: [{
|
|
19
|
-
type: Injectable,
|
|
20
|
-
args: [{ providedIn: 'root' }]
|
|
21
|
-
}], ctorParameters: () => [{ type: i1.ConfigService }] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHN0MsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUE2QixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRmxDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUdyRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs4R0FWVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQURWLE1BQU07OzJGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHJ4YXAvY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTaWRlbmF2Q29tcG9uZW50U2VydmljZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxhcHNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5jb2xsYXBzZWQkLm5leHQodGhpcy5jb25maWcuZ2V0KCduYXZpZ2F0aW9uLmNvbGxhcHNlZCcsIHRoaXMuY29sbGFwc2VkJC52YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU5hdmlnYXRpb25Db2xsYXBzZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlZCQubmV4dCghdGhpcy5jb2xsYXBzZWQkLnZhbHVlKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
|
|
2
|
-
import { VersionService, } from '@rxap/services';
|
|
3
|
-
import { tap } from 'rxjs/operators';
|
|
4
|
-
import { KeyValuePipe, NgFor, } from '@angular/common';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@rxap/services";
|
|
7
|
-
export class VersionComponent {
|
|
8
|
-
constructor(version) {
|
|
9
|
-
this.version = version;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this.modules = this.version.get();
|
|
13
|
-
this.subscription = this.version.update$.pipe(tap(() => this.modules = this.version.get())).subscribe();
|
|
14
|
-
}
|
|
15
|
-
ngOnDestroy() {
|
|
16
|
-
this.subscription?.unsubscribe();
|
|
17
|
-
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VersionComponent, deps: [{ token: VersionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: VersionComponent, isStandalone: true, selector: "rxap-version", ngImport: i0, template: "<div class=\"version flex flex-col gap-2\">\n <div *ngFor=\"let module of modules | keyvalue\" class=\"flex flex-col\">\n <span class=\"name grow-0\">{{module.value.name}}</span>\n <span class=\"semantic grow-0\">{{module.value.semantic}}</span>\n <span class=\"hash grow-0\">{{module.value.hash}}</span>\n </div>\n</div>\n", styles: [".version{width:100%;font-size:9px;padding:8px}.version .name{padding-bottom:12px;font-size:10px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VersionComponent, decorators: [{
|
|
22
|
-
type: Component,
|
|
23
|
-
args: [{ selector: 'rxap-version', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, KeyValuePipe], template: "<div class=\"version flex flex-col gap-2\">\n <div *ngFor=\"let module of modules | keyvalue\" class=\"flex flex-col\">\n <span class=\"name grow-0\">{{module.value.name}}</span>\n <span class=\"semantic grow-0\">{{module.value.semantic}}</span>\n <span class=\"hash grow-0\">{{module.value.hash}}</span>\n </div>\n</div>\n", styles: [".version{width:100%;font-size:9px;padding:8px}.version .name{padding-bottom:12px;font-size:10px}\n"] }]
|
|
24
|
-
}], ctorParameters: () => [{ type: i1.VersionService, decorators: [{
|
|
25
|
-
type: Inject,
|
|
26
|
-
args: [VersionService]
|
|
27
|
-
}] }] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL3NpZGVuYXYvdmVyc2lvbi92ZXJzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvc2lkZW5hdi92ZXJzaW9uL3ZlcnNpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxjQUFjLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUt4QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUNMLFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxpQkFBaUIsQ0FBQzs7O0FBVXpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDa0MsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFFekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FDN0MsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBcEJVLGdCQUFnQixrQkFPakIsY0FBYztrR0FQYixnQkFBZ0Isd0VDOUI3QixnVkFPQSw0SkRxQmEsS0FBSyw4R0FBRSxZQUFZOzsyRkFFbkIsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBRSxLQUFLLEVBQUUsWUFBWSxDQUFFOzswQkFTN0IsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBWZXJzaW9uLFxuICBWZXJzaW9uU2VydmljZSxcbn0gZnJvbSAnQHJ4YXAvc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgS2V5VmFsdWUsXG4gIFJlcXVpcmVkLFxufSBmcm9tICdAcnhhcC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBLZXlWYWx1ZVBpcGUsXG4gIE5nRm9yLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyeGFwLXZlcnNpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi92ZXJzaW9uLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogWyBOZ0ZvciwgS2V5VmFsdWVQaXBlIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZlcnNpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIG1vZHVsZXMhOiBLZXlWYWx1ZTxWZXJzaW9uPjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZlcnNpb25TZXJ2aWNlKSBwcml2YXRlIHZlcnNpb246IFZlcnNpb25TZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZHVsZXMgPSB0aGlzLnZlcnNpb24uZ2V0KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnZlcnNpb24udXBkYXRlJC5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMubW9kdWxlcyA9IHRoaXMudmVyc2lvbi5nZXQoKSksXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidmVyc2lvbiBmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IG1vZHVsZSBvZiBtb2R1bGVzIHwga2V5dmFsdWVcIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm5hbWUgZ3Jvdy0wXCI+e3ttb2R1bGUudmFsdWUubmFtZX19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2VtYW50aWMgZ3Jvdy0wXCI+e3ttb2R1bGUudmFsdWUuc2VtYW50aWN9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImhhc2ggZ3Jvdy0wXCI+e3ttb2R1bGUudmFsdWUuaGFzaH19PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
-
import { NgIf } from '@angular/common';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/button";
|
|
7
|
-
import * as i2 from "@angular/material/icon";
|
|
8
|
-
export class ToggleWindowSidenavButtonComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.openWindowSidenav = false;
|
|
11
|
-
this.openWindowSidenavChange = new EventEmitter();
|
|
12
|
-
}
|
|
13
|
-
toggle() {
|
|
14
|
-
this.openWindowSidenav = !this.openWindowSidenav;
|
|
15
|
-
this.openWindowSidenavChange.emit(this.openWindowSidenav);
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleWindowSidenavButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ToggleWindowSidenavButtonComponent, isStandalone: true, selector: "rxap-toggle-window-sidenav-button", inputs: { openWindowSidenav: "openWindowSidenav" }, outputs: { openWindowSidenavChange: "openWindowSidenavChange" }, host: { classAttribute: "rxap-toggle-window-sidenav-button" }, ngImport: i0, template: "<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon svgIcon=\"arrow-left-bold\"></mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon svgIcon=\"arrow-right-bold\"></mat-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".toggle-button{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:#000}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ToggleWindowSidenavButtonComponent, decorators: [{
|
|
21
|
-
type: Component,
|
|
22
|
-
args: [{ selector: 'rxap-toggle-window-sidenav-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
23
|
-
class: 'rxap-toggle-window-sidenav-button',
|
|
24
|
-
}, standalone: true, imports: [MatButtonModule, NgIf, MatIconModule], template: "<div class=\"toggle-button\">\n <button (click)=\"toggle()\" mat-icon-button>\n <ng-template [ngIfElse]=\"hide\" [ngIf]=\"!openWindowSidenav\">\n <mat-icon svgIcon=\"arrow-left-bold\"></mat-icon>\n </ng-template>\n <ng-template #hide>\n <mat-icon svgIcon=\"arrow-right-bold\"></mat-icon>\n </ng-template>\n </button>\n</div>\n", styles: [".toggle-button{position:absolute;top:70px;right:0;z-index:10000;border-radius:15px 0 0 15px;border:1px solid black;background:#000}\n"] }]
|
|
25
|
-
}], propDecorators: { openWindowSidenav: [{
|
|
26
|
-
type: Input
|
|
27
|
-
}], openWindowSidenavChange: [{
|
|
28
|
-
type: Output
|
|
29
|
-
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL3RvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24vdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL3RvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24vdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWMzRCxNQUFNLE9BQU8sa0NBQWtDO0lBWi9DO1FBZVMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRzFCLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FPOUQ7SUFMUSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUQsQ0FBQzs4R0FYVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxpUkN2Qi9DLGdXQVVBLDhMRFdhLGVBQWUsNElBQUUsSUFBSSw0RkFBRSxhQUFhOzsyRkFFcEMsa0NBQWtDO2tCQVo5QyxTQUFTOytCQUNFLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTSxRQUV6Qzt3QkFDSixLQUFLLEVBQUUsbUNBQW1DO3FCQUMzQyxjQUNXLElBQUksV0FDUCxDQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFFOzhCQUsxQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsdUJBQXVCO3NCQUQ3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC10b2dnbGUtd2luZG93LXNpZGVuYXYtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vdG9nZ2xlLXdpbmRvdy1zaWRlbmF2LWJ1dHRvbi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdyeGFwLXRvZ2dsZS13aW5kb3ctc2lkZW5hdi1idXR0b24nLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbIE1hdEJ1dHRvbk1vZHVsZSwgTmdJZiwgTWF0SWNvbk1vZHVsZSBdLFxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVXaW5kb3dTaWRlbmF2QnV0dG9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3BlbldpbmRvd1NpZGVuYXYgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9wZW5XaW5kb3dTaWRlbmF2Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgdGhpcy5vcGVuV2luZG93U2lkZW5hdiA9ICF0aGlzLm9wZW5XaW5kb3dTaWRlbmF2O1xuICAgIHRoaXMub3BlbldpbmRvd1NpZGVuYXZDaGFuZ2UuZW1pdCh0aGlzLm9wZW5XaW5kb3dTaWRlbmF2KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiPlxuICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGUoKVwiIG1hdC1pY29uLWJ1dHRvbj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZFbHNlXT1cImhpZGVcIiBbbmdJZl09XCIhb3BlbldpbmRvd1NpZGVuYXZcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiYXJyb3ctbGVmdC1ib2xkXCI+PC9tYXQtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGlkZT5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiYXJyb3ctcmlnaHQtYm9sZFwiPjwvbWF0LWljb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject, } from '@angular/core';
|
|
2
|
-
import { WindowContainerSidenavService, } from '@rxap/services';
|
|
3
|
-
import { ComponentPortal, PortalModule, } from '@angular/cdk/portal';
|
|
4
|
-
import { tap } from 'rxjs/operators';
|
|
5
|
-
import { Subscription } from 'rxjs';
|
|
6
|
-
import { NgFor } from '@angular/common';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/cdk/portal";
|
|
9
|
-
import * as i2 from "@rxap/services";
|
|
10
|
-
export class WindowContainerSidenavComponent {
|
|
11
|
-
constructor(service) {
|
|
12
|
-
this.service = service;
|
|
13
|
-
this.portals = new Map();
|
|
14
|
-
this.subscription = new Subscription();
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
const components = this.service.getAll();
|
|
18
|
-
for (const component of components) {
|
|
19
|
-
this.add(component);
|
|
20
|
-
}
|
|
21
|
-
this.subscription.add(this.service.add$.pipe(tap(component => this.add(component))).subscribe());
|
|
22
|
-
this.subscription.add(this.service.remove$.pipe(tap(component => this.remove(component))).subscribe());
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this.subscription.unsubscribe();
|
|
26
|
-
}
|
|
27
|
-
trackBy(index, id) {
|
|
28
|
-
return id;
|
|
29
|
-
}
|
|
30
|
-
add(component) {
|
|
31
|
-
if (this.portals.has(component.id)) {
|
|
32
|
-
throw new Error(`Component portal with id ${component.id} already exists`);
|
|
33
|
-
}
|
|
34
|
-
const portal = new ComponentPortal(component.component, component.viewContainerRef, component.injector, component.componentFactoryResolver);
|
|
35
|
-
this.portals.set(component.id, portal);
|
|
36
|
-
}
|
|
37
|
-
remove(component) {
|
|
38
|
-
if (this.portals.has(component.id)) {
|
|
39
|
-
const portal = this.portals.get(component.id);
|
|
40
|
-
this.portals.delete(component.id);
|
|
41
|
-
portal.detach();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WindowContainerSidenavComponent, deps: [{ token: WindowContainerSidenavService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: WindowContainerSidenavComponent, isStandalone: true, selector: "rxap-window-container-sidenav", ngImport: i0, template: "<div class=\"flex flex-col gap-4 p-2\">\n\n <div *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\" class=\"grow-0\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
-
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WindowContainerSidenavComponent, decorators: [{
|
|
48
|
-
type: Component,
|
|
49
|
-
args: [{ selector: 'rxap-window-container-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, PortalModule], template: "<div class=\"flex flex-col gap-4 p-2\">\n\n <div *ngFor=\"let portalId of portals.keys(); trackBy: trackBy\" class=\"grow-0\">\n <ng-template [cdkPortalOutlet]=\"portals.get(portalId)\"></ng-template>\n </div>\n\n</div>\n" }]
|
|
50
|
-
}], ctorParameters: () => [{ type: i2.WindowContainerSidenavService, decorators: [{
|
|
51
|
-
type: Inject,
|
|
52
|
-
args: [WindowContainerSidenavService]
|
|
53
|
-
}] }] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbGF5b3V0L3NyYy9saWIvd2luZG93LWNvbnRhaW5lci1zaWRlbmF2L3dpbmRvdy1jb250YWluZXItc2lkZW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2xheW91dC9zcmMvbGliL3dpbmRvdy1jb250YWluZXItc2lkZW5hdi93aW5kb3ctY29udGFpbmVyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCw2QkFBNkIsR0FDOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVV4QyxNQUFNLE9BQU8sK0JBQStCO0lBTTFDLFlBRWtCLE9BQXNDO1FBQXRDLFlBQU8sR0FBUCxPQUFPLENBQStCO1FBTmpELFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztRQUVqRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFNMUMsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMxQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ3RDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUN6QyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWEsRUFBRSxFQUFVO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLEdBQUcsQ0FBQyxTQUE2QjtRQUN2QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTZCLFNBQVMsQ0FBQyxFQUFHLGlCQUFpQixDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUNoQyxTQUFTLENBQUMsU0FBUyxFQUNuQixTQUFTLENBQUMsZ0JBQWdCLEVBQzFCLFNBQVMsQ0FBQyxRQUFRLEVBQ2xCLFNBQVMsQ0FBQyx3QkFBd0IsQ0FDbkMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUE2QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDOzhHQXBEVSwrQkFBK0Isa0JBT2hDLDZCQUE2QjtrR0FQNUIsK0JBQStCLHlGQzNCNUMsb09BT0EsMEREa0JhLEtBQUssa0hBQUUsWUFBWTs7MkZBRW5CLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDRSwrQkFBK0IsbUJBR3hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUUsS0FBSyxFQUFFLFlBQVksQ0FBRTs7MEJBUzdCLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250YWluZXJDb21wb25lbnQsXG4gIFdpbmRvd0NvbnRhaW5lclNpZGVuYXZTZXJ2aWNlLFxufSBmcm9tICdAcnhhcC9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIFBvcnRhbE1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnhhcC13aW5kb3ctY29udGFpbmVyLXNpZGVuYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2luZG93LWNvbnRhaW5lci1zaWRlbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL3dpbmRvdy1jb250YWluZXItc2lkZW5hdi5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFsgTmdGb3IsIFBvcnRhbE1vZHVsZSBdLFxufSlcbmV4cG9ydCBjbGFzcyBXaW5kb3dDb250YWluZXJTaWRlbmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBwb3J0YWxzID0gbmV3IE1hcDxzdHJpbmcsIENvbXBvbmVudFBvcnRhbDxhbnk+PigpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoV2luZG93Q29udGFpbmVyU2lkZW5hdlNlcnZpY2UpXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFdpbmRvd0NvbnRhaW5lclNpZGVuYXZTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRzID0gdGhpcy5zZXJ2aWNlLmdldEFsbCgpO1xuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIGNvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuYWRkKGNvbXBvbmVudCk7XG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnNlcnZpY2UuYWRkJC5waXBlKFxuICAgICAgdGFwKGNvbXBvbmVudCA9PiB0aGlzLmFkZChjb21wb25lbnQpKSxcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5zZXJ2aWNlLnJlbW92ZSQucGlwZShcbiAgICAgIHRhcChjb21wb25lbnQgPT4gdGhpcy5yZW1vdmUoY29tcG9uZW50KSksXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5KGluZGV4OiBudW1iZXIsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBwcml2YXRlIGFkZChjb21wb25lbnQ6IENvbnRhaW5lckNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLnBvcnRhbHMuaGFzKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHBvcnRhbCB3aXRoIGlkICR7IGNvbXBvbmVudC5pZCB9IGFscmVhZHkgZXhpc3RzYCk7XG4gICAgfVxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBjb21wb25lbnQuY29tcG9uZW50LFxuICAgICAgY29tcG9uZW50LnZpZXdDb250YWluZXJSZWYsXG4gICAgICBjb21wb25lbnQuaW5qZWN0b3IsXG4gICAgICBjb21wb25lbnQuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICk7XG4gICAgdGhpcy5wb3J0YWxzLnNldChjb21wb25lbnQuaWQsIHBvcnRhbCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZShjb21wb25lbnQ6IENvbnRhaW5lckNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLnBvcnRhbHMuaGFzKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgIGNvbnN0IHBvcnRhbCA9IHRoaXMucG9ydGFscy5nZXQoY29tcG9uZW50LmlkKSE7XG4gICAgICB0aGlzLnBvcnRhbHMuZGVsZXRlKGNvbXBvbmVudC5pZCk7XG4gICAgICBwb3J0YWwuZGV0YWNoKCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00IHAtMlwiPlxuXG4gIDxkaXYgKm5nRm9yPVwibGV0IHBvcnRhbElkIG9mIHBvcnRhbHMua2V5cygpOyB0cmFja0J5OiB0cmFja0J5XCIgY2xhc3M9XCJncm93LTBcIj5cbiAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwb3J0YWxzLmdldChwb3J0YWxJZClcIj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
package/lib/app-url.service.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { AuthorizationService } from '@rxap/authorization';
|
|
2
|
-
import { ConfigService } from '@rxap/config';
|
|
3
|
-
import { Environment } from '@rxap/environment';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export interface ExternalApps {
|
|
6
|
-
image?: string;
|
|
7
|
-
label: string;
|
|
8
|
-
href: string;
|
|
9
|
-
empty?: false;
|
|
10
|
-
hidden?: boolean;
|
|
11
|
-
id?: string;
|
|
12
|
-
permissions: string[];
|
|
13
|
-
}
|
|
14
|
-
export declare class AppUrlService {
|
|
15
|
-
private readonly config;
|
|
16
|
-
private readonly localeId;
|
|
17
|
-
private readonly authorizationService;
|
|
18
|
-
private readonly environment;
|
|
19
|
-
private _apps;
|
|
20
|
-
constructor(config: ConfigService, localeId: string, authorizationService: AuthorizationService, environment: Environment);
|
|
21
|
-
getApp(appId: string): ExternalApps | null;
|
|
22
|
-
getAppUrl(appId: string, path: string, infix?: string | null): string | null;
|
|
23
|
-
getAppUrlOrThrow(appId: string, path: string): string;
|
|
24
|
-
navigate(appId: string, path: string): void;
|
|
25
|
-
getAppList(): Promise<Array<ExternalApps>>;
|
|
26
|
-
private getPathPrefix;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AppUrlService, never>;
|
|
28
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AppUrlService>;
|
|
29
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { AppUrlService, ExternalApps } from '../../app-url.service';
|
|
3
|
-
import { RxapAuthenticationService } from '@rxap/authentication';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class AppsButtonComponent implements OnInit, OnDestroy {
|
|
6
|
-
private readonly appUrlService;
|
|
7
|
-
private readonly authenticationService;
|
|
8
|
-
isOpen: boolean;
|
|
9
|
-
readonly appList: import("@angular/core").WritableSignal<ExternalApps[]>;
|
|
10
|
-
private _subscription?;
|
|
11
|
-
constructor(grid: any, appUrlService: AppUrlService, authenticationService: RxapAuthenticationService);
|
|
12
|
-
ngOnInit(): void;
|
|
13
|
-
ngOnDestroy(): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AppsButtonComponent, [{ optional: true; }, null, null]>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AppsButtonComponent, "rxap-apps-button", never, {}, {}, never, never, true, never>;
|
|
16
|
-
}
|