@onecx/shell-core 6.0.0-rc.3 → 6.0.0-rc.4

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.
@@ -1,36 +1,32 @@
1
- import * as i5 from '@angular/common';
1
+ import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Input, InjectionToken, Optional, Inject, EventEmitter, Output, Renderer2, HostListener, NgModule, Injectable } from '@angular/core';
5
- import * as i1 from '@angular/router';
6
- import { Router, RouterModule } from '@angular/router';
7
- import * as i5$1 from '@onecx/angular-accelerator';
8
- import { AngularAcceleratorModule } from '@onecx/angular-accelerator';
9
- import * as i4 from '@onecx/angular-remote-components';
4
+ import { inject, Component, Input, InjectionToken, ElementRef, EventEmitter, Directive, Output, HostListener, NgModule, Injectable } from '@angular/core';
5
+ import * as i3$1 from '@angular/router';
6
+ import { Router, ActivatedRoute, RouterModule } from '@angular/router';
7
+ import * as i1 from '@onecx/angular-remote-components';
10
8
  import { AngularRemoteComponentsModule } from '@onecx/angular-remote-components';
11
- import * as i7 from 'primeng/toast';
9
+ import * as i5 from 'primeng/toast';
12
10
  import { ToastModule } from 'primeng/toast';
13
- import * as i2 from 'primeng/button';
14
- import * as i3 from 'primeng/ripple';
15
- import * as i1$1 from '@onecx/angular-integration-interface';
16
- import { CONFIG_KEY, ThemeService, AppStateService, PortalMessageService, UserService } from '@onecx/angular-integration-interface';
17
- import { withLatestFrom, map, combineLatest, mergeMap, of, filter, concat, first, from, shareReplay } from 'rxjs';
11
+ import { PrimeNG, providePrimeNG } from 'primeng/config';
12
+ import { ConfigurationService, AppStateService, ThemeService, CONFIG_KEY, PortalMessageService, UserService } from '@onecx/angular-integration-interface';
13
+ import { withLatestFrom, map, combineLatest, mergeMap, of, filter, first, from, shareReplay } from 'rxjs';
14
+ import { HttpClient } from '@angular/common/http';
18
15
  import { __decorate, __metadata } from 'tslib';
19
16
  import { trigger, transition, style, animate } from '@angular/animations';
20
17
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
21
- import * as i5$2 from 'primeng/skeleton';
18
+ import * as i3 from 'primeng/skeleton';
22
19
  import { SkeletonModule } from 'primeng/skeleton';
23
- import * as i3$1 from '@angular/common/http';
24
- import { HttpClient } from '@angular/common/http';
25
- import * as i1$2 from 'primeng/api';
26
- import { PrimeNGConfig, MessageService } from 'primeng/api';
27
- import * as i9 from '@onecx/portal-integration-angular';
28
- import { PortalCoreModule } from '@onecx/portal-integration-angular';
20
+ import * as i4 from 'primeng/tooltip';
21
+ import { TooltipModule } from 'primeng/tooltip';
22
+ import * as i6 from '@ngx-translate/core';
23
+ import { TranslateModule } from '@ngx-translate/core';
24
+ import { MessageService } from 'primeng/api';
29
25
 
30
26
  class GlobalErrorComponent {
31
- constructor(router, route) {
32
- this.router = router;
33
- this.route = route;
27
+ constructor() {
28
+ this.router = inject(Router);
29
+ this.route = inject(ActivatedRoute);
34
30
  this.errCode = this.route.snapshot.queryParamMap.get('err') || 'E1001_FAILED_START';
35
31
  this.backUrl = this.route.snapshot.queryParamMap.get('return') || '/';
36
32
  }
@@ -40,31 +36,94 @@ class GlobalErrorComponent {
40
36
  reload() {
41
37
  window.location.reload();
42
38
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GlobalErrorComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: GlobalErrorComponent, selector: "ocx-shell-error", inputs: { errCode: "errCode" }, ngImport: i0, template: "<div class=\"pages-body error-page flex flex-column\">\n <div class=\"align-self-center mt-auto mb-auto\">\n <div class=\"pages-panel card flex flex-column\">\n <div class=\"pages-header px-3 py-1\">\n <h2>ERROR</h2>\n </div>\n <div class=\"card mt-3 px-6\">\n <img src=\"assets/images/error.png\" alt=\"\" />\n </div>\n <div class=\"pages-detail pb-6\">{{errCode}}</div>\n <button pButton pRipple type=\"button\" label=\"Try Again\" (click)=\"reload()\" class=\"p-button-text\"></button>\n </div>\n </div>\n</div>\n", styles: [".pages-body{height:100vh}.pages-body .topbar{box-shadow:0 2px 5px #00000042;background-color:#1565c0;z-index:100}.pages-body .topbar .topbar-left img{height:2rem}.pages-body .topbar .p-button.p-button-text.p-button-plain{color:#fff}.pages-body .pages-panel{text-align:center;z-index:200}.pages-body .pages-panel.card{border:1.5px solid var(--divider-color);border-radius:6px}.pages-body .pages-panel.card img{width:100%}.pages-body .pages-panel.card>.card{background-color:var(--content-alt-bg-color)}.pages-body .pages-panel .pages-header{margin-top:-3rem;color:var(--primary-color-text);border:1.5px solid var(--divider-color);border-radius:4px;margin-left:auto;margin-right:auto}.pages-body .pages-panel .pages-header h2{margin:0}.pages-body .pages-panel .pages-detail{color:var(--text-secondary-color)}.pages-body.error-page{background-size:cover;background-color:var(--primary-color)}.pages-body.error-page .pages-panel .pages-header{background:#d81b60}.pages-body.notfound-page{background-size:cover}.pages-body.notfound-page .pages-panel .pages-header{background:#455a64}.pages-body.accessdenied-page{background-size:cover}.pages-body.accessdenied-page .pages-panel .pages-header{background:#fb8c00}@media screen and (max-width: 768px){.pages-body.contact-page .pages-panel{padding-bottom:10em}.pages-body.contact-page .pages-panel .p-button{width:100%}.pages-body.contact-page .pages-panel .card .right-panel{text-align:center}}\n"], dependencies: [{ kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i3.Ripple, selector: "[pRipple]" }] }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: GlobalErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: GlobalErrorComponent, isStandalone: false, selector: "ocx-shell-error", inputs: { errCode: "errCode" }, ngImport: i0, template: "<div class=\"pages-body error-page flex flex-column\">\n <div class=\"align-self-center mt-auto mb-auto\">\n <div class=\"pages-panel card flex flex-column\">\n <div class=\"pages-header px-3 py-1\">\n <h2>ERROR</h2>\n </div>\n <div class=\"card mt-3 px-6\">\n <img src=\"assets/images/error.png\" alt=\"\" />\n </div>\n <div class=\"pages-detail pb-6\">{{errCode}}</div>\n <button pButton pRipple type=\"button\" label=\"Try Again\" (click)=\"reload()\" class=\"p-button-text\"></button>\n </div>\n </div>\n</div>\n", styles: [".pages-body{height:100vh}.pages-body .topbar{box-shadow:0 2px 5px #00000042;background-color:#1565c0;z-index:100}.pages-body .topbar .topbar-left img{height:2rem}.pages-body .topbar .p-button.p-button-text.p-button-plain{color:#fff}.pages-body .pages-panel{text-align:center;z-index:200}.pages-body .pages-panel.card{border:1.5px solid var(--p-divider-color);border-radius:6px}.pages-body .pages-panel.card img{width:100%}.pages-body .pages-panel.card>.card{background-color:var(--p-content-alt-bg-color)}.pages-body .pages-panel .pages-header{margin-top:-3rem;color:#fff;border:1.5px solid var(--p-divider-color);border-radius:4px;margin-left:auto;margin-right:auto}.pages-body .pages-panel .pages-header h2{margin:0}.pages-body .pages-panel .pages-detail{color:var(--p-text-secondary-color)}.pages-body.error-page{background-size:cover;background-color:var(--p-primary-color)}.pages-body.error-page .pages-panel .pages-header{background:#d81b60}.pages-body.notfound-page{background-size:cover}.pages-body.notfound-page .pages-panel .pages-header{background:#455a64}.pages-body.accessdenied-page{background-size:cover}.pages-body.accessdenied-page .pages-panel .pages-header{background:#fb8c00}@media screen and (max-width: 768px){.pages-body.contact-page .pages-panel{padding-bottom:10em}.pages-body.contact-page .pages-panel .p-button{width:100%}.pages-body.contact-page .pages-panel .card .right-panel{text-align:center}}\n"] }); }
45
41
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GlobalErrorComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: GlobalErrorComponent, decorators: [{
47
43
  type: Component,
48
- args: [{ selector: 'ocx-shell-error', template: "<div class=\"pages-body error-page flex flex-column\">\n <div class=\"align-self-center mt-auto mb-auto\">\n <div class=\"pages-panel card flex flex-column\">\n <div class=\"pages-header px-3 py-1\">\n <h2>ERROR</h2>\n </div>\n <div class=\"card mt-3 px-6\">\n <img src=\"assets/images/error.png\" alt=\"\" />\n </div>\n <div class=\"pages-detail pb-6\">{{errCode}}</div>\n <button pButton pRipple type=\"button\" label=\"Try Again\" (click)=\"reload()\" class=\"p-button-text\"></button>\n </div>\n </div>\n</div>\n", styles: [".pages-body{height:100vh}.pages-body .topbar{box-shadow:0 2px 5px #00000042;background-color:#1565c0;z-index:100}.pages-body .topbar .topbar-left img{height:2rem}.pages-body .topbar .p-button.p-button-text.p-button-plain{color:#fff}.pages-body .pages-panel{text-align:center;z-index:200}.pages-body .pages-panel.card{border:1.5px solid var(--divider-color);border-radius:6px}.pages-body .pages-panel.card img{width:100%}.pages-body .pages-panel.card>.card{background-color:var(--content-alt-bg-color)}.pages-body .pages-panel .pages-header{margin-top:-3rem;color:var(--primary-color-text);border:1.5px solid var(--divider-color);border-radius:4px;margin-left:auto;margin-right:auto}.pages-body .pages-panel .pages-header h2{margin:0}.pages-body .pages-panel .pages-detail{color:var(--text-secondary-color)}.pages-body.error-page{background-size:cover;background-color:var(--primary-color)}.pages-body.error-page .pages-panel .pages-header{background:#d81b60}.pages-body.notfound-page{background-size:cover}.pages-body.notfound-page .pages-panel .pages-header{background:#455a64}.pages-body.accessdenied-page{background-size:cover}.pages-body.accessdenied-page .pages-panel .pages-header{background:#fb8c00}@media screen and (max-width: 768px){.pages-body.contact-page .pages-panel{padding-bottom:10em}.pages-body.contact-page .pages-panel .p-button{width:100%}.pages-body.contact-page .pages-panel .card .right-panel{text-align:center}}\n"] }]
49
- }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { errCode: [{
44
+ args: [{ standalone: false, selector: 'ocx-shell-error', template: "<div class=\"pages-body error-page flex flex-column\">\n <div class=\"align-self-center mt-auto mb-auto\">\n <div class=\"pages-panel card flex flex-column\">\n <div class=\"pages-header px-3 py-1\">\n <h2>ERROR</h2>\n </div>\n <div class=\"card mt-3 px-6\">\n <img src=\"assets/images/error.png\" alt=\"\" />\n </div>\n <div class=\"pages-detail pb-6\">{{errCode}}</div>\n <button pButton pRipple type=\"button\" label=\"Try Again\" (click)=\"reload()\" class=\"p-button-text\"></button>\n </div>\n </div>\n</div>\n", styles: [".pages-body{height:100vh}.pages-body .topbar{box-shadow:0 2px 5px #00000042;background-color:#1565c0;z-index:100}.pages-body .topbar .topbar-left img{height:2rem}.pages-body .topbar .p-button.p-button-text.p-button-plain{color:#fff}.pages-body .pages-panel{text-align:center;z-index:200}.pages-body .pages-panel.card{border:1.5px solid var(--p-divider-color);border-radius:6px}.pages-body .pages-panel.card img{width:100%}.pages-body .pages-panel.card>.card{background-color:var(--p-content-alt-bg-color)}.pages-body .pages-panel .pages-header{margin-top:-3rem;color:#fff;border:1.5px solid var(--p-divider-color);border-radius:4px;margin-left:auto;margin-right:auto}.pages-body .pages-panel .pages-header h2{margin:0}.pages-body .pages-panel .pages-detail{color:var(--p-text-secondary-color)}.pages-body.error-page{background-size:cover;background-color:var(--p-primary-color)}.pages-body.error-page .pages-panel .pages-header{background:#d81b60}.pages-body.notfound-page{background-size:cover}.pages-body.notfound-page .pages-panel .pages-header{background:#455a64}.pages-body.accessdenied-page{background-size:cover}.pages-body.accessdenied-page .pages-panel .pages-header{background:#fb8c00}@media screen and (max-width: 768px){.pages-body.contact-page .pages-panel{padding-bottom:10em}.pages-body.contact-page .pages-panel .p-button{width:100%}.pages-body.contact-page .pages-panel .card .right-panel{text-align:center}}\n"] }]
45
+ }], ctorParameters: () => [], propDecorators: { errCode: [{
50
46
  type: Input
51
47
  }] } });
52
48
 
53
49
  const WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER = new InjectionToken('WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER');
54
50
 
51
+ class ShellSrcDirective {
52
+ get ocxShellSrc() {
53
+ return this._src;
54
+ }
55
+ set ocxShellSrc(value) {
56
+ if (value && this._src !== value && window.location.hostname) {
57
+ try {
58
+ if (new URL(value, window.location.origin).hostname === window.location.hostname) {
59
+ this.httpClient.get(value, { observe: 'response', responseType: 'blob' }).subscribe((response) => {
60
+ // ok with content
61
+ if (response?.status === 200) {
62
+ const url = URL.createObjectURL(response.body);
63
+ this.el.nativeElement.addEventListener('load', () => {
64
+ URL.revokeObjectURL(url);
65
+ });
66
+ this.el.nativeElement.src = url;
67
+ }
68
+ // no content
69
+ if (response?.status === 204) {
70
+ this.error.emit();
71
+ }
72
+ }, () => {
73
+ // on error
74
+ this.error.emit();
75
+ }, () => {
76
+ // on complete
77
+ this.el.nativeElement.style.visibility = 'initial';
78
+ });
79
+ }
80
+ else {
81
+ this.el.nativeElement.src = value;
82
+ this.el.nativeElement.style.visibility = 'initial';
83
+ }
84
+ }
85
+ catch (error) {
86
+ console.error('Cannot parse URL ', value, error);
87
+ this.el.nativeElement.src = value;
88
+ this.el.nativeElement.style.visibility = 'initial';
89
+ }
90
+ this._src = value;
91
+ }
92
+ }
93
+ constructor() {
94
+ this.el = inject(ElementRef);
95
+ this.httpClient = inject(HttpClient);
96
+ // eslint-disable-next-line @angular-eslint/no-output-native
97
+ this.error = new EventEmitter();
98
+ this.el.nativeElement.style.visibility = 'hidden';
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ShellSrcDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.4", type: ShellSrcDirective, isStandalone: false, selector: "[ocxShellSrc]", inputs: { ocxShellSrc: "ocxShellSrc" }, outputs: { error: "error" }, ngImport: i0 }); }
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ShellSrcDirective, decorators: [{
104
+ type: Directive,
105
+ args: [{ selector: '[ocxShellSrc]', standalone: false }]
106
+ }], ctorParameters: () => [], propDecorators: { error: [{
107
+ type: Output
108
+ }], ocxShellSrc: [{
109
+ type: Input
110
+ }] } });
111
+
55
112
  class PortalFooterComponent {
56
- constructor(configurationService, router, appState, themeService, workspaceConfigBffService) {
57
- this.configurationService = configurationService;
58
- this.router = router;
59
- this.appState = appState;
60
- this.themeService = themeService;
61
- this.workspaceConfigBffService = workspaceConfigBffService;
62
- this.versionInfo$ = this.appState.currentMfe$.pipe(withLatestFrom(this.appState.currentPortal$.asObservable()), map(([mfe, portal]) => {
113
+ constructor() {
114
+ this.configurationService = inject(ConfigurationService);
115
+ this.router = inject(Router);
116
+ this.appState = inject(AppStateService);
117
+ this.themeService = inject(ThemeService);
118
+ this.workspaceConfigBffService = inject(WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, {
119
+ optional: true,
120
+ });
121
+ this.versionInfo$ = this.appState.currentMfe$.pipe(withLatestFrom(this.appState.currentWorkspace$.asObservable()), map(([mfe, workspace]) => {
63
122
  const mfeInfoVersion = mfe?.version || '';
64
123
  const mfeName = mfe?.displayName;
65
124
  const hostVersion = this.configurationService.getProperty(CONFIG_KEY.APP_VERSION) || 'DEV-LOCAL';
66
125
  const mfInfoText = mfeName ? `MF ${mfeName} v${mfeInfoVersion}` : '';
67
- return `Portal: ${portal.portalName} v${hostVersion} ${mfInfoText}`;
126
+ return `Portal: ${workspace.workspaceName} v${hostVersion} ${mfInfoText}`;
68
127
  }));
69
128
  this.logoUrl$ = combineLatest([
70
129
  this.themeService.currentTheme$.asObservable(),
@@ -76,16 +135,6 @@ class PortalFooterComponent {
76
135
  return of(theme.logoUrl || portalData.logoUrl);
77
136
  }));
78
137
  }
79
- ngOnInit() {
80
- this.copyrightMsg$ = concat(of('All rights reserved.'), this.appState.currentWorkspace$.pipe(map((portalData) => {
81
- if (!(portalData.footerLabel === '' ||
82
- portalData.footerLabel === 'string' ||
83
- portalData.footerLabel === undefined)) {
84
- return portalData.companyName || portalData.footerLabel || 'All rights reserved.';
85
- }
86
- return '';
87
- })));
88
- }
89
138
  onErrorHandleSrc() {
90
139
  this.logoUrl$ = of(undefined);
91
140
  }
@@ -94,30 +143,28 @@ class PortalFooterComponent {
94
143
  URL.revokeObjectURL(logoUrl);
95
144
  }
96
145
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalFooterComponent, deps: [{ token: i1$1.ConfigurationService }, { token: i1.Router }, { token: i1$1.AppStateService }, { token: i1$1.ThemeService }, { token: WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: PortalFooterComponent, selector: "ocx-shell-footer", ngImport: i0, template: "<div class=\"ml-3 py-2 lg:ml-5 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n <div class=\"flex flex-wrap align-items-center justify-content-start gap-3 row-gap-1\">\n <img\n *ngIf=\"logoUrl$ | async as logoUrl\"\n alt=\"logo\"\n class=\"max-h-1rem\"\n [ocxSrc]=\"(logoUrl$ | async) ?? ''\"\n (error)=\"onErrorHandleSrc()\"\n (load)=\"onLoad(logoUrl)\"\n />\n <div class=\"flex-none text-sm\">&copy; {{copyrightMsg$ | async}}</div>\n <ocx-slot name=\"onecx-shell-footer\"></ocx-slot>\n </div>\n <div class=\"mr-5 text-sm\">{{versionInfo$ | async}}</div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i5$1.SrcDirective, selector: "[ocxSrc]", inputs: ["ocxSrc"], outputs: ["error"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PortalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: PortalFooterComponent, isStandalone: false, selector: "ocx-shell-footer", ngImport: i0, template: "<div class=\"mx-3 sm:ml-4 py-2 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n <div class=\"flex flex-wrap align-items-center justify-content-start column-gap-3 row-gap-1\">\n @if (logoUrl$ | async; as logoUrl) {\n <img\n alt=\"logo\"\n class=\"max-h-1rem\"\n [ocxShellSrc]=\"logoUrl ?? ''\"\n (error)=\"onErrorHandleSrc()\"\n (load)=\"onLoad(logoUrl)\"\n />\n }\n <ocx-slot name=\"onecx-shell-footer\"></ocx-slot>\n </div>\n <div class=\"text-xs\">{{versionInfo$ | async}}</div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: ShellSrcDirective, selector: "[ocxShellSrc]", inputs: ["ocxShellSrc"], outputs: ["error"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
99
148
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalFooterComponent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PortalFooterComponent, decorators: [{
101
150
  type: Component,
102
- args: [{ selector: 'ocx-shell-footer', template: "<div class=\"ml-3 py-2 lg:ml-5 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n <div class=\"flex flex-wrap align-items-center justify-content-start gap-3 row-gap-1\">\n <img\n *ngIf=\"logoUrl$ | async as logoUrl\"\n alt=\"logo\"\n class=\"max-h-1rem\"\n [ocxSrc]=\"(logoUrl$ | async) ?? ''\"\n (error)=\"onErrorHandleSrc()\"\n (load)=\"onLoad(logoUrl)\"\n />\n <div class=\"flex-none text-sm\">&copy; {{copyrightMsg$ | async}}</div>\n <ocx-slot name=\"onecx-shell-footer\"></ocx-slot>\n </div>\n <div class=\"mr-5 text-sm\">{{versionInfo$ | async}}</div>\n</div>\n" }]
103
- }], ctorParameters: () => [{ type: i1$1.ConfigurationService }, { type: i1.Router }, { type: i1$1.AppStateService }, { type: i1$1.ThemeService }, { type: undefined, decorators: [{
104
- type: Optional
105
- }, {
106
- type: Inject,
107
- args: [WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER]
108
- }] }] });
151
+ args: [{ standalone: false, selector: 'ocx-shell-footer', template: "<div class=\"mx-3 sm:ml-4 py-2 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n <div class=\"flex flex-wrap align-items-center justify-content-start column-gap-3 row-gap-1\">\n @if (logoUrl$ | async; as logoUrl) {\n <img\n alt=\"logo\"\n class=\"max-h-1rem\"\n [ocxShellSrc]=\"logoUrl ?? ''\"\n (error)=\"onErrorHandleSrc()\"\n (load)=\"onLoad(logoUrl)\"\n />\n }\n <ocx-slot name=\"onecx-shell-footer\"></ocx-slot>\n </div>\n <div class=\"text-xs\">{{versionInfo$ | async}}</div>\n</div>\n" }]
152
+ }], ctorParameters: () => [] });
109
153
 
110
154
  let HeaderComponent = class HeaderComponent {
111
- constructor(themeService, appStateService, workspaceConfigBffService) {
112
- this.themeService = themeService;
113
- this.appStateService = appStateService;
114
- this.workspaceConfigBffService = workspaceConfigBffService;
115
- this.menuExpanded = false;
116
- this.fallbackImg = false;
155
+ constructor() {
117
156
  this.fullPortalLayout = true;
118
157
  this.homeNavUrl = '/';
119
158
  this.homeNavTitle = 'Home';
159
+ this.isHorizontalMenu = false;
120
160
  this.menuButtonClick = new EventEmitter();
161
+ this.themeService = inject(ThemeService);
162
+ this.appStateService = inject(AppStateService);
163
+ this.workspaceConfigBffService = inject(WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, {
164
+ optional: true,
165
+ });
166
+ this.menuExpanded = false;
167
+ this.fallbackImg = false;
121
168
  this.logoUrl$ = combineLatest([
122
169
  this.themeService.currentTheme$.asObservable(),
123
170
  this.appStateService.currentWorkspace$.asObservable(),
@@ -136,8 +183,8 @@ let HeaderComponent = class HeaderComponent {
136
183
  URL.revokeObjectURL(logoUrl);
137
184
  }
138
185
  }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HeaderComponent, deps: [{ token: i1$1.ThemeService }, { token: i1$1.AppStateService }, { token: WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: HeaderComponent, selector: "ocx-shell-header", inputs: { menuButtonTitle: "menuButtonTitle", fullPortalLayout: "fullPortalLayout", homeNavUrl: "homeNavUrl", homeNavTitle: "homeNavTitle" }, outputs: { menuButtonClick: "menuButtonClick" }, ngImport: i0, template: "<div class=\"layout-topbar shadow-4\" id=\"header\" role=\"banner\">\n <div class=\"layout-topbar-left\">\n <a class=\"layout-topbar-logo\">\n <ng-container *ngIf=\"logoUrl$ | async as logoUrl\">\n <img\n *ngIf=\"logoUrl && !fallbackImg\"\n id=\"app-logo\"\n [ocxSrc]=\"logoUrl\"\n alt=\"Logo\"\n style=\"max-height: 100%; max-width: 100%\"\n (error)=\"fallbackImg=true\"\n (load)=\"onLoad(logoUrl)\"\n />\n </ng-container>\n <svg *ngIf=\"((logoUrl$ | async) === null) || fallbackImg\" width=\"160\" viewBox=\"0 0 283 72\" class=\"default-logo\">\n <defs id=\"SvgjsDefs4962\"></defs>\n <g\n id=\"SvgjsG4963\"\n featurekey=\"symbolFeature-0\"\n transform=\"matrix(0.7555406501686023,0,0,0.7555406501686023,-4.883814572467361,-0.26595028490140254)\"\n >\n <path\n xmlns=\"http://www.w3.org/2000/svg\"\n d=\"M88.54,46.256L9.464,0.616c-0.616-0.352-1.384-0.352-2,0c-0.62,0.36-1,1.02-1,1.736v91.296c0,0.716,0.38,1.375,1,1.731 c0.308,0.185,0.656,0.269,1,0.269c0.344,0,0.692-0.084,1-0.269L88.54,49.729c0.616-0.36,1-1.021,1-1.736 C89.54,47.276,89.152,46.616,88.54,46.256z M60.08,49.771L21.388,69.805c-0.288,0.147-0.604,0.223-0.92,0.223 c-0.36,0-0.72-0.092-1.04-0.287c-0.596-0.364-0.96-1.008-0.96-1.713v-40.06c0-0.696,0.364-1.344,0.96-1.712 c0.596-0.36,1.336-0.392,1.96-0.068l38.696,20.028c0.664,0.344,1.084,1.032,1.084,1.772C61.164,48.74,60.744,49.428,60.08,49.771z\"\n ></path>\n <path xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.464,64.744l32.345-16.748l-32.345-16.74V64.744z\"></path>\n </g>\n <g\n id=\"SvgjsG4964\"\n featurekey=\"nameFeature-0\"\n transform=\"matrix(1.0207331753701396,0,0,1.0207331753701396,81.5644404108694,15.72408377414908)\"\n >\n <path\n d=\"M17.344 32.6562 c-0.78125 -0.15625 -1.5105 -0.3907 -2.1876 -0.7032 c-1.4584 -0.67711 -2.7344 -1.6146 -3.8281 -2.8125 c-1.0416 -1.0938 -1.875 -2.4479 -2.5 -4.0625 c-0.57289 -1.6146 -0.85938 -3.2552 -0.85938 -4.9219 l0 -0.15625 l0 -0.23438 c0 -1.7188 0.28648 -3.3854 0.85938 -5 c0.67711 -1.6666 1.5105 -2.9948 2.5001 -3.9844 c1.0416 -1.1979 2.2916 -2.1094 3.75 -2.7344 c0.88539 -0.41664 1.6406 -0.67703 2.2656 -0.78117 l0 -5.8594 c-1.8229 0.26039 -3.4375 0.70313 -4.8438 1.3281 c-2.2916 0.98961 -4.2448 2.3177 -5.8594 3.9844 s-2.8906 3.6458 -3.8281 5.9374 s-1.4063 4.6875 -1.4063 7.1875 l0 0.15625 l0 0.23438 c0 2.5521 0.46875 4.948 1.4063 7.1876 c0.83336 2.2396 2.0834 4.1927 3.75 5.8594 c1.6666 1.7188 3.6198 3.0469 5.8594 3.9844 c1.4063 0.625 3.0469 1.0677 4.9219 1.3281 l0 -5.9375 z M38.594 20 l0.000076294 -0.23438 c0 -2.5521 -0.46875 -4.948 -1.4063 -7.1876 c-0.9375 -2.2916 -2.2135 -4.2708 -3.8281 -5.9374 c-1.5625 -1.6666 -3.4896 -2.9688 -5.7813 -3.9063 c-1.3021 -0.625 -2.8906 -1.0677 -4.7656 -1.3281 l0 5.9375 l0.9375 0.3125 c0.46875 0.15625 0.83336 0.28648 1.0938 0.39063 c1.4584 0.67711 2.7344 1.6146 3.8281 2.8125 c1.0416 1.0938 1.875 2.4479 2.5 4.0625 c0.57289 1.6146 0.85938 3.2552 0.85938 4.9219 l0 0.15625 l0 0.23438 c0 1.7188 -0.28648 3.3854 -0.85938 5 c-0.67711 1.6666 -1.5105 2.9948 -2.5001 3.9844 c-1.0416 1.1979 -2.2916 2.1094 -3.75 2.7344 c-0.67711 0.3125 -1.3802 0.54688 -2.1094 0.70313 l0 5.9375 c1.5625 -0.20836 3.125 -0.65109 4.6875 -1.3282 c2.1354 -0.88539 4.0885 -2.2135 5.8594 -3.9844 c1.7188 -1.8229 2.9948 -3.802 3.8281 -5.9374 c0.9375 -2.2916 1.4063 -4.6875 1.4063 -7.1875 l0 -0.15625 z M43.8281 38.5937 l6.4844 0 l0 -19.922 l-6.4844 -9.1406 l0 29.063 z M69.76599999999999 1.4059999999999988 l0 25.703 l-18.359 -25.703 l-7.0313 0 l26.406 37.188 l5.3906 0 l0 -37.188 l-6.4063 0 z M86.0938 1.4059999999999988 l27.813 0 l0 5.9375 l-27.813 0 l0 -5.9375 z M86.0938 32.6562 l27.734 0 l0 5.9375 l-27.734 0 l0 -5.9375 z M86.0938 16.875 l25.078 0 l0 5.8594 l-25.078 0 l0 -5.8594 z M127.2656 12.5 c0.9375 -2.2916 2.2916 -4.2447 4.0624 -5.8593 c1.6146 -1.6146 3.698 -2.9167 6.2501 -3.9063 s5.2344 -1.4844 8.0469 -1.4844 l8.6719 0 l0 5.9375 l-8.5938 0 c-2.0313 0 -3.8281 0.33852 -5.3906 1.0156 c-1.6666 0.67711 -3.0208 1.5625 -4.0624 2.6563 c-1.0938 1.0416 -1.9791 2.3958 -2.6563 4.0624 c-0.625 1.5104 -0.9375 3.2031 -0.9375 5.0781 s0.3125 3.5677 0.9375 5.0781 c0.625 1.5625 1.5104 2.9166 2.6563 4.0625 c1.0416 1.0416 2.3958 1.901 4.0624 2.5781 c1.6666 0.625 3.4635 0.9375 5.3906 0.9375 l8.5938 0 l0 5.9375 l-8.6719 0 c-2.9166 0 -5.5729 -0.46875 -7.9688 -1.4063 c-2.5 -1.0416 -4.6094 -2.3698 -6.3281 -3.9844 c-1.7709 -1.6666 -3.125 -3.6458 -4.0625 -5.9374 c-0.98961 -2.3959 -1.4844 -4.8438 -1.4844 -7.3438 c0 -2.6563 0.49477 -5.1302 1.4844 -7.4219 z M176.484 29.375 l3.5156 -4.6875 l-0.078125 -0.15625 z M196.875 1.4059999999999988 l-7.5 0 l-9.2969 13.359 l-9.2188 -13.359 l-7.7344 0 l13.047 18.281 l-13.516 18.906 l8.3594 0 z M197.344 38.5937 l-10.313 -14.609 l-3.9063 5.2344 l6.5625 9.375 l7.6563 0 z\"\n ></path>\n </g>\n </svg>\n </a>\n\n <a\n class=\"layout-menu-button shadow-6\"\n (click)=\"onMenuButtonClick($event)\"\n pRipple\n [title]=\"menuButtonTitle ?? ('OCX_HEADER.MENU_TOGGLE')\"\n >\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\">\n <div class=\"layout-topbar-actions-left\">\n <ng-content></ng-content>\n </div>\n <div class=\"layout-topbar-actions-right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"layout-topbar-items\">\n <ng-template #skeleton>\n <div class=\"flex align-items-center h-full justify-content-center\" style=\"width: 56px\">\n <p-skeleton shape=\"circle\" size=\"2.5rem\" class=\"h-full flex align-items-center\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n</div>\n", styles: [".http-progress-loader{margin-left:8px;padding-top:5px}@media screen and (max-width: 1024px){.http-progress-loader{margin-left:0;margin-right:8px}}.default-logo{color:var(--logo-color, #12abdb);fill:currentColor}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i5$1.SrcDirective, selector: "[ocxSrc]", inputs: ["ocxSrc"], outputs: ["error"] }, { kind: "component", type: i5$2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: i3.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: [
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: HeaderComponent, isStandalone: false, selector: "ocx-shell-header", inputs: { menuButtonTitle: "menuButtonTitle", fullPortalLayout: "fullPortalLayout", homeNavUrl: "homeNavUrl", homeNavTitle: "homeNavTitle", isHorizontalMenu: "isHorizontalMenu" }, outputs: { menuButtonClick: "menuButtonClick" }, ngImport: i0, template: "<div class=\"layout-topbar\" id=\"ocx_header\" role=\"banner\">\n <div class=\"layout-topbar-left\" [ngClass]=\"{'vertical-menu': !isHorizontalMenu}\">\n @if (logoUrl$ | async; as logoUrl) {\n <div class=\"layout-topbar-logo\">\n @if (logoUrl && !fallbackImg) {\n <img\n id=\"app-logo\"\n [ocxShellSrc]=\"logoUrl\"\n alt=\"Logo\"\n style=\"max-height: 100%; max-width: 100%\"\n (error)=\"fallbackImg=true\"\n (load)=\"onLoad(logoUrl)\"\n />\n }\n </div>\n } @if (((logoUrl$ | async) === null) || fallbackImg) {\n <svg width=\"160\" viewBox=\"0 0 283 72\" class=\"default-logo\">\n <defs id=\"SvgjsDefs4962\"></defs>\n <g\n id=\"SvgjsG4963\"\n featurekey=\"symbolFeature-0\"\n transform=\"matrix(0.7555406501686023,0,0,0.7555406501686023,-4.883814572467361,-0.26595028490140254)\"\n >\n <path\n xmlns=\"http://www.w3.org/2000/svg\"\n d=\"M88.54,46.256L9.464,0.616c-0.616-0.352-1.384-0.352-2,0c-0.62,0.36-1,1.02-1,1.736v91.296c0,0.716,0.38,1.375,1,1.731 c0.308,0.185,0.656,0.269,1,0.269c0.344,0,0.692-0.084,1-0.269L88.54,49.729c0.616-0.36,1-1.021,1-1.736 C89.54,47.276,89.152,46.616,88.54,46.256z M60.08,49.771L21.388,69.805c-0.288,0.147-0.604,0.223-0.92,0.223 c-0.36,0-0.72-0.092-1.04-0.287c-0.596-0.364-0.96-1.008-0.96-1.713v-40.06c0-0.696,0.364-1.344,0.96-1.712 c0.596-0.36,1.336-0.392,1.96-0.068l38.696,20.028c0.664,0.344,1.084,1.032,1.084,1.772C61.164,48.74,60.744,49.428,60.08,49.771z\"\n ></path>\n <path xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.464,64.744l32.345-16.748l-32.345-16.74V64.744z\"></path>\n </g>\n <g\n id=\"SvgjsG4964\"\n featurekey=\"nameFeature-0\"\n transform=\"matrix(1.0207331753701396,0,0,1.0207331753701396,81.5644404108694,15.72408377414908)\"\n >\n <path\n d=\"M17.344 32.6562 c-0.78125 -0.15625 -1.5105 -0.3907 -2.1876 -0.7032 c-1.4584 -0.67711 -2.7344 -1.6146 -3.8281 -2.8125 c-1.0416 -1.0938 -1.875 -2.4479 -2.5 -4.0625 c-0.57289 -1.6146 -0.85938 -3.2552 -0.85938 -4.9219 l0 -0.15625 l0 -0.23438 c0 -1.7188 0.28648 -3.3854 0.85938 -5 c0.67711 -1.6666 1.5105 -2.9948 2.5001 -3.9844 c1.0416 -1.1979 2.2916 -2.1094 3.75 -2.7344 c0.88539 -0.41664 1.6406 -0.67703 2.2656 -0.78117 l0 -5.8594 c-1.8229 0.26039 -3.4375 0.70313 -4.8438 1.3281 c-2.2916 0.98961 -4.2448 2.3177 -5.8594 3.9844 s-2.8906 3.6458 -3.8281 5.9374 s-1.4063 4.6875 -1.4063 7.1875 l0 0.15625 l0 0.23438 c0 2.5521 0.46875 4.948 1.4063 7.1876 c0.83336 2.2396 2.0834 4.1927 3.75 5.8594 c1.6666 1.7188 3.6198 3.0469 5.8594 3.9844 c1.4063 0.625 3.0469 1.0677 4.9219 1.3281 l0 -5.9375 z M38.594 20 l0.000076294 -0.23438 c0 -2.5521 -0.46875 -4.948 -1.4063 -7.1876 c-0.9375 -2.2916 -2.2135 -4.2708 -3.8281 -5.9374 c-1.5625 -1.6666 -3.4896 -2.9688 -5.7813 -3.9063 c-1.3021 -0.625 -2.8906 -1.0677 -4.7656 -1.3281 l0 5.9375 l0.9375 0.3125 c0.46875 0.15625 0.83336 0.28648 1.0938 0.39063 c1.4584 0.67711 2.7344 1.6146 3.8281 2.8125 c1.0416 1.0938 1.875 2.4479 2.5 4.0625 c0.57289 1.6146 0.85938 3.2552 0.85938 4.9219 l0 0.15625 l0 0.23438 c0 1.7188 -0.28648 3.3854 -0.85938 5 c-0.67711 1.6666 -1.5105 2.9948 -2.5001 3.9844 c-1.0416 1.1979 -2.2916 2.1094 -3.75 2.7344 c-0.67711 0.3125 -1.3802 0.54688 -2.1094 0.70313 l0 5.9375 c1.5625 -0.20836 3.125 -0.65109 4.6875 -1.3282 c2.1354 -0.88539 4.0885 -2.2135 5.8594 -3.9844 c1.7188 -1.8229 2.9948 -3.802 3.8281 -5.9374 c0.9375 -2.2916 1.4063 -4.6875 1.4063 -7.1875 l0 -0.15625 z M43.8281 38.5937 l6.4844 0 l0 -19.922 l-6.4844 -9.1406 l0 29.063 z M69.76599999999999 1.4059999999999988 l0 25.703 l-18.359 -25.703 l-7.0313 0 l26.406 37.188 l5.3906 0 l0 -37.188 l-6.4063 0 z M86.0938 1.4059999999999988 l27.813 0 l0 5.9375 l-27.813 0 l0 -5.9375 z M86.0938 32.6562 l27.734 0 l0 5.9375 l-27.734 0 l0 -5.9375 z M86.0938 16.875 l25.078 0 l0 5.8594 l-25.078 0 l0 -5.8594 z M127.2656 12.5 c0.9375 -2.2916 2.2916 -4.2447 4.0624 -5.8593 c1.6146 -1.6146 3.698 -2.9167 6.2501 -3.9063 s5.2344 -1.4844 8.0469 -1.4844 l8.6719 0 l0 5.9375 l-8.5938 0 c-2.0313 0 -3.8281 0.33852 -5.3906 1.0156 c-1.6666 0.67711 -3.0208 1.5625 -4.0624 2.6563 c-1.0938 1.0416 -1.9791 2.3958 -2.6563 4.0624 c-0.625 1.5104 -0.9375 3.2031 -0.9375 5.0781 s0.3125 3.5677 0.9375 5.0781 c0.625 1.5625 1.5104 2.9166 2.6563 4.0625 c1.0416 1.0416 2.3958 1.901 4.0624 2.5781 c1.6666 0.625 3.4635 0.9375 5.3906 0.9375 l8.5938 0 l0 5.9375 l-8.6719 0 c-2.9166 0 -5.5729 -0.46875 -7.9688 -1.4063 c-2.5 -1.0416 -4.6094 -2.3698 -6.3281 -3.9844 c-1.7709 -1.6666 -3.125 -3.6458 -4.0625 -5.9374 c-0.98961 -2.3959 -1.4844 -4.8438 -1.4844 -7.3438 c0 -2.6563 0.49477 -5.1302 1.4844 -7.4219 z M176.484 29.375 l3.5156 -4.6875 l-0.078125 -0.15625 z M196.875 1.4059999999999988 l-7.5 0 l-9.2969 13.359 l-9.2188 -13.359 l-7.7344 0 l13.047 18.281 l-13.516 18.906 l8.3594 0 z M197.344 38.5937 l-10.313 -14.609 l-3.9063 5.2344 l6.5625 9.375 l7.6563 0 z\"\n ></path>\n </g>\n </svg>\n }\n <a\n id=\"ocx_vertical_menu_action_toggle\"\n class=\"layout-menu-button\"\n (click)=\"onMenuButtonClick($event)\"\n pRipple\n [pTooltip]=\"'OCX_HEADER.MENU_TOGGLE' | translate\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n >\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\">\n <div class=\"layout-topbar-actions-left\">\n <ng-content></ng-content>\n </div>\n <div class=\"layout-topbar-actions-right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"layout-topbar-items\">\n <ng-template #skeleton>\n <div class=\"flex align-items-center h-full justify-content-center\" style=\"width: 56px\">\n <p-skeleton shape=\"circle\" size=\"2.5rem\" class=\"h-full flex align-items-center\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n</div>\n", styles: [".layout-topbar-items>*{margin:auto}.http-progress-loader{margin-left:8px;padding-top:5px}@media screen and (max-width: 1024px){.http-progress-loader{margin-left:0;margin-right:8px}}.default-logo{color:var(--p-logo-color, #12abdb);fill:currentColor}.layout-topbar{position:fixed;top:0;left:0;z-index:998;width:100%;height:4rem;transition:width var(--p-transition-duration);display:flex}.layout-topbar ul{margin:0;padding:0;border:0;outline:0;text-decoration:none;list-style-type:none}.layout-topbar .layout-topbar-left{display:flex;align-items:center;height:100%;position:relative;flex:0 0 17rem}.layout-topbar .layout-topbar-left .layout-topbar-logo{width:100%;height:100%;padding:.7rem .9rem}.layout-topbar .layout-topbar-left .layout-topbar-logo>*{object-fit:contain;width:100%;height:100%;max-width:100%;max-height:100%}.layout-topbar .layout-topbar-left .layout-menu-button{position:absolute;top:50%;right:-1.25rem;width:2.5rem;height:2.5rem;margin-top:-1.25rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%}.layout-topbar .layout-topbar-left .layout-menu-button i{transition:transform var(--p-transition-duration)}.layout-topbar .layout-topbar-left .layout-topbar-mobile-button{display:none;align-items:center;padding:0 .8rem;margin:0 .5rem 0 auto;border-radius:50%;height:3.2rem;cursor:pointer}.layout-topbar .layout-topbar-right{display:flex;flex-grow:1;align-items:center;justify-content:space-between;padding-left:1.25rem;height:100%;min-width:0}.layout-topbar .layout-topbar-right .layout-topbar-actions-left{display:flex;flex-grow:1;align-items:center;height:100%;min-width:0}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar .p-menubar-root-list>.p-menuitem .p-menuitem-text{white-space:nowrap}.layout-topbar .layout-topbar-right .layout-topbar-actions-right{height:100%;padding-right:.9rem}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items{display:flex;flex-direction:row;justify-content:center;height:100%}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item{display:flex;align-items:center;position:relative}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action{-webkit-user-select:none;user-select:none;padding:0 .8rem;margin:0 .1rem;border-radius:4px;height:3.2rem;min-width:3.2rem;display:flex;align-items:center;cursor:pointer}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:absolute;top:4rem;right:0;z-index:1000;min-width:25rem;padding:1rem 0;transform-origin:top}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel .layout-topbar-action-item{cursor:pointer;padding:1rem}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel{height:4rem;width:100%;position:fixed;top:0;left:0;z-index:1000;transform-origin:top}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input{border-radius:0;border:0 none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:focus{outline:0 none;box-shadow:none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel i{font-weight:700}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon{border:0 none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left{padding-right:0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left .layout-menu-button{display:none}.layout-menu-button-hidden .layout-topbar .layout-topbar-right{padding-left:0}@media (max-width: var(--mobile-break-point)){.layout-topbar .layout-topbar-left{flex-shrink:1}.layout-topbar .layout-topbar-right{min-width:auto}.layout-topbar .layout-topbar-right .layout-topbar-actions-right{padding-right:.25rem}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:fixed;min-width:100vw;max-width:100vw;width:100vw}}.layout-topbar{color:var(--p-topbar-item-text-color);background-color:var(--p-topbar-bg-color)}.layout-topbar a{color:var(--p-topbar-item-text-color)}.layout-topbar a:hover{background-color:var(--p-topbar-item-text-hover-bg-color);color:var(--p-topbar-item-text-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-left{background-color:var(--p-topbar-left-bg-color)}.layout-topbar .layout-topbar-left .layout-menu-button{background-color:var(--p-topbar-menu-button-bg-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar{background:none;border:none}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:var(--p-topbar-item-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link:not(.p-disabled):hover{background:var(--p-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-text,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-icon,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-submenu-icon{color:var(--p-topbar-item-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover{background:var(--p-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel{background-color:var(--p-overlay-content-bg-color);color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel a{color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel a:hover{background-color:transparent;transition:none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel .layout-topbar-action-item:hover{background-color:var(--p-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:hover,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:first-child{background-color:var(--p-body-bg-color);color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:last-child{background-color:var(--p-body-bg-colorbody-bg-color);color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon .p-button-text{color:var(--p-text-color)}\n"], dependencies: [{ kind: "component", type: i1.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: ShellSrcDirective, selector: "[ocxShellSrc]", inputs: ["ocxShellSrc"], outputs: ["error"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], animations: [
141
188
  trigger('topbarActionPanelAnimation', [
142
189
  transition(':enter', [
143
190
  style({ opacity: 0, transform: 'scaleY(0.8)' }),
@@ -149,12 +196,11 @@ let HeaderComponent = class HeaderComponent {
149
196
  };
150
197
  HeaderComponent = __decorate([
151
198
  UntilDestroy(),
152
- __metadata("design:paramtypes", [ThemeService,
153
- AppStateService, Object])
199
+ __metadata("design:paramtypes", [])
154
200
  ], HeaderComponent);
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HeaderComponent, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: HeaderComponent, decorators: [{
156
202
  type: Component,
157
- args: [{ selector: 'ocx-shell-header', animations: [
203
+ args: [{ standalone: false, selector: 'ocx-shell-header', animations: [
158
204
  trigger('topbarActionPanelAnimation', [
159
205
  transition(':enter', [
160
206
  style({ opacity: 0, transform: 'scaleY(0.8)' }),
@@ -162,13 +208,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
162
208
  ]),
163
209
  transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),
164
210
  ]),
165
- ], template: "<div class=\"layout-topbar shadow-4\" id=\"header\" role=\"banner\">\n <div class=\"layout-topbar-left\">\n <a class=\"layout-topbar-logo\">\n <ng-container *ngIf=\"logoUrl$ | async as logoUrl\">\n <img\n *ngIf=\"logoUrl && !fallbackImg\"\n id=\"app-logo\"\n [ocxSrc]=\"logoUrl\"\n alt=\"Logo\"\n style=\"max-height: 100%; max-width: 100%\"\n (error)=\"fallbackImg=true\"\n (load)=\"onLoad(logoUrl)\"\n />\n </ng-container>\n <svg *ngIf=\"((logoUrl$ | async) === null) || fallbackImg\" width=\"160\" viewBox=\"0 0 283 72\" class=\"default-logo\">\n <defs id=\"SvgjsDefs4962\"></defs>\n <g\n id=\"SvgjsG4963\"\n featurekey=\"symbolFeature-0\"\n transform=\"matrix(0.7555406501686023,0,0,0.7555406501686023,-4.883814572467361,-0.26595028490140254)\"\n >\n <path\n xmlns=\"http://www.w3.org/2000/svg\"\n d=\"M88.54,46.256L9.464,0.616c-0.616-0.352-1.384-0.352-2,0c-0.62,0.36-1,1.02-1,1.736v91.296c0,0.716,0.38,1.375,1,1.731 c0.308,0.185,0.656,0.269,1,0.269c0.344,0,0.692-0.084,1-0.269L88.54,49.729c0.616-0.36,1-1.021,1-1.736 C89.54,47.276,89.152,46.616,88.54,46.256z M60.08,49.771L21.388,69.805c-0.288,0.147-0.604,0.223-0.92,0.223 c-0.36,0-0.72-0.092-1.04-0.287c-0.596-0.364-0.96-1.008-0.96-1.713v-40.06c0-0.696,0.364-1.344,0.96-1.712 c0.596-0.36,1.336-0.392,1.96-0.068l38.696,20.028c0.664,0.344,1.084,1.032,1.084,1.772C61.164,48.74,60.744,49.428,60.08,49.771z\"\n ></path>\n <path xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.464,64.744l32.345-16.748l-32.345-16.74V64.744z\"></path>\n </g>\n <g\n id=\"SvgjsG4964\"\n featurekey=\"nameFeature-0\"\n transform=\"matrix(1.0207331753701396,0,0,1.0207331753701396,81.5644404108694,15.72408377414908)\"\n >\n <path\n d=\"M17.344 32.6562 c-0.78125 -0.15625 -1.5105 -0.3907 -2.1876 -0.7032 c-1.4584 -0.67711 -2.7344 -1.6146 -3.8281 -2.8125 c-1.0416 -1.0938 -1.875 -2.4479 -2.5 -4.0625 c-0.57289 -1.6146 -0.85938 -3.2552 -0.85938 -4.9219 l0 -0.15625 l0 -0.23438 c0 -1.7188 0.28648 -3.3854 0.85938 -5 c0.67711 -1.6666 1.5105 -2.9948 2.5001 -3.9844 c1.0416 -1.1979 2.2916 -2.1094 3.75 -2.7344 c0.88539 -0.41664 1.6406 -0.67703 2.2656 -0.78117 l0 -5.8594 c-1.8229 0.26039 -3.4375 0.70313 -4.8438 1.3281 c-2.2916 0.98961 -4.2448 2.3177 -5.8594 3.9844 s-2.8906 3.6458 -3.8281 5.9374 s-1.4063 4.6875 -1.4063 7.1875 l0 0.15625 l0 0.23438 c0 2.5521 0.46875 4.948 1.4063 7.1876 c0.83336 2.2396 2.0834 4.1927 3.75 5.8594 c1.6666 1.7188 3.6198 3.0469 5.8594 3.9844 c1.4063 0.625 3.0469 1.0677 4.9219 1.3281 l0 -5.9375 z M38.594 20 l0.000076294 -0.23438 c0 -2.5521 -0.46875 -4.948 -1.4063 -7.1876 c-0.9375 -2.2916 -2.2135 -4.2708 -3.8281 -5.9374 c-1.5625 -1.6666 -3.4896 -2.9688 -5.7813 -3.9063 c-1.3021 -0.625 -2.8906 -1.0677 -4.7656 -1.3281 l0 5.9375 l0.9375 0.3125 c0.46875 0.15625 0.83336 0.28648 1.0938 0.39063 c1.4584 0.67711 2.7344 1.6146 3.8281 2.8125 c1.0416 1.0938 1.875 2.4479 2.5 4.0625 c0.57289 1.6146 0.85938 3.2552 0.85938 4.9219 l0 0.15625 l0 0.23438 c0 1.7188 -0.28648 3.3854 -0.85938 5 c-0.67711 1.6666 -1.5105 2.9948 -2.5001 3.9844 c-1.0416 1.1979 -2.2916 2.1094 -3.75 2.7344 c-0.67711 0.3125 -1.3802 0.54688 -2.1094 0.70313 l0 5.9375 c1.5625 -0.20836 3.125 -0.65109 4.6875 -1.3282 c2.1354 -0.88539 4.0885 -2.2135 5.8594 -3.9844 c1.7188 -1.8229 2.9948 -3.802 3.8281 -5.9374 c0.9375 -2.2916 1.4063 -4.6875 1.4063 -7.1875 l0 -0.15625 z M43.8281 38.5937 l6.4844 0 l0 -19.922 l-6.4844 -9.1406 l0 29.063 z M69.76599999999999 1.4059999999999988 l0 25.703 l-18.359 -25.703 l-7.0313 0 l26.406 37.188 l5.3906 0 l0 -37.188 l-6.4063 0 z M86.0938 1.4059999999999988 l27.813 0 l0 5.9375 l-27.813 0 l0 -5.9375 z M86.0938 32.6562 l27.734 0 l0 5.9375 l-27.734 0 l0 -5.9375 z M86.0938 16.875 l25.078 0 l0 5.8594 l-25.078 0 l0 -5.8594 z M127.2656 12.5 c0.9375 -2.2916 2.2916 -4.2447 4.0624 -5.8593 c1.6146 -1.6146 3.698 -2.9167 6.2501 -3.9063 s5.2344 -1.4844 8.0469 -1.4844 l8.6719 0 l0 5.9375 l-8.5938 0 c-2.0313 0 -3.8281 0.33852 -5.3906 1.0156 c-1.6666 0.67711 -3.0208 1.5625 -4.0624 2.6563 c-1.0938 1.0416 -1.9791 2.3958 -2.6563 4.0624 c-0.625 1.5104 -0.9375 3.2031 -0.9375 5.0781 s0.3125 3.5677 0.9375 5.0781 c0.625 1.5625 1.5104 2.9166 2.6563 4.0625 c1.0416 1.0416 2.3958 1.901 4.0624 2.5781 c1.6666 0.625 3.4635 0.9375 5.3906 0.9375 l8.5938 0 l0 5.9375 l-8.6719 0 c-2.9166 0 -5.5729 -0.46875 -7.9688 -1.4063 c-2.5 -1.0416 -4.6094 -2.3698 -6.3281 -3.9844 c-1.7709 -1.6666 -3.125 -3.6458 -4.0625 -5.9374 c-0.98961 -2.3959 -1.4844 -4.8438 -1.4844 -7.3438 c0 -2.6563 0.49477 -5.1302 1.4844 -7.4219 z M176.484 29.375 l3.5156 -4.6875 l-0.078125 -0.15625 z M196.875 1.4059999999999988 l-7.5 0 l-9.2969 13.359 l-9.2188 -13.359 l-7.7344 0 l13.047 18.281 l-13.516 18.906 l8.3594 0 z M197.344 38.5937 l-10.313 -14.609 l-3.9063 5.2344 l6.5625 9.375 l7.6563 0 z\"\n ></path>\n </g>\n </svg>\n </a>\n\n <a\n class=\"layout-menu-button shadow-6\"\n (click)=\"onMenuButtonClick($event)\"\n pRipple\n [title]=\"menuButtonTitle ?? ('OCX_HEADER.MENU_TOGGLE')\"\n >\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\">\n <div class=\"layout-topbar-actions-left\">\n <ng-content></ng-content>\n </div>\n <div class=\"layout-topbar-actions-right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"layout-topbar-items\">\n <ng-template #skeleton>\n <div class=\"flex align-items-center h-full justify-content-center\" style=\"width: 56px\">\n <p-skeleton shape=\"circle\" size=\"2.5rem\" class=\"h-full flex align-items-center\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n</div>\n", styles: [".http-progress-loader{margin-left:8px;padding-top:5px}@media screen and (max-width: 1024px){.http-progress-loader{margin-left:0;margin-right:8px}}.default-logo{color:var(--logo-color, #12abdb);fill:currentColor}\n"] }]
166
- }], ctorParameters: () => [{ type: i1$1.ThemeService }, { type: i1$1.AppStateService }, { type: undefined, decorators: [{
167
- type: Optional
168
- }, {
169
- type: Inject,
170
- args: [WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER]
171
- }] }], propDecorators: { menuButtonTitle: [{
211
+ ], template: "<div class=\"layout-topbar\" id=\"ocx_header\" role=\"banner\">\n <div class=\"layout-topbar-left\" [ngClass]=\"{'vertical-menu': !isHorizontalMenu}\">\n @if (logoUrl$ | async; as logoUrl) {\n <div class=\"layout-topbar-logo\">\n @if (logoUrl && !fallbackImg) {\n <img\n id=\"app-logo\"\n [ocxShellSrc]=\"logoUrl\"\n alt=\"Logo\"\n style=\"max-height: 100%; max-width: 100%\"\n (error)=\"fallbackImg=true\"\n (load)=\"onLoad(logoUrl)\"\n />\n }\n </div>\n } @if (((logoUrl$ | async) === null) || fallbackImg) {\n <svg width=\"160\" viewBox=\"0 0 283 72\" class=\"default-logo\">\n <defs id=\"SvgjsDefs4962\"></defs>\n <g\n id=\"SvgjsG4963\"\n featurekey=\"symbolFeature-0\"\n transform=\"matrix(0.7555406501686023,0,0,0.7555406501686023,-4.883814572467361,-0.26595028490140254)\"\n >\n <path\n xmlns=\"http://www.w3.org/2000/svg\"\n d=\"M88.54,46.256L9.464,0.616c-0.616-0.352-1.384-0.352-2,0c-0.62,0.36-1,1.02-1,1.736v91.296c0,0.716,0.38,1.375,1,1.731 c0.308,0.185,0.656,0.269,1,0.269c0.344,0,0.692-0.084,1-0.269L88.54,49.729c0.616-0.36,1-1.021,1-1.736 C89.54,47.276,89.152,46.616,88.54,46.256z M60.08,49.771L21.388,69.805c-0.288,0.147-0.604,0.223-0.92,0.223 c-0.36,0-0.72-0.092-1.04-0.287c-0.596-0.364-0.96-1.008-0.96-1.713v-40.06c0-0.696,0.364-1.344,0.96-1.712 c0.596-0.36,1.336-0.392,1.96-0.068l38.696,20.028c0.664,0.344,1.084,1.032,1.084,1.772C61.164,48.74,60.744,49.428,60.08,49.771z\"\n ></path>\n <path xmlns=\"http://www.w3.org/2000/svg\" d=\"M22.464,64.744l32.345-16.748l-32.345-16.74V64.744z\"></path>\n </g>\n <g\n id=\"SvgjsG4964\"\n featurekey=\"nameFeature-0\"\n transform=\"matrix(1.0207331753701396,0,0,1.0207331753701396,81.5644404108694,15.72408377414908)\"\n >\n <path\n d=\"M17.344 32.6562 c-0.78125 -0.15625 -1.5105 -0.3907 -2.1876 -0.7032 c-1.4584 -0.67711 -2.7344 -1.6146 -3.8281 -2.8125 c-1.0416 -1.0938 -1.875 -2.4479 -2.5 -4.0625 c-0.57289 -1.6146 -0.85938 -3.2552 -0.85938 -4.9219 l0 -0.15625 l0 -0.23438 c0 -1.7188 0.28648 -3.3854 0.85938 -5 c0.67711 -1.6666 1.5105 -2.9948 2.5001 -3.9844 c1.0416 -1.1979 2.2916 -2.1094 3.75 -2.7344 c0.88539 -0.41664 1.6406 -0.67703 2.2656 -0.78117 l0 -5.8594 c-1.8229 0.26039 -3.4375 0.70313 -4.8438 1.3281 c-2.2916 0.98961 -4.2448 2.3177 -5.8594 3.9844 s-2.8906 3.6458 -3.8281 5.9374 s-1.4063 4.6875 -1.4063 7.1875 l0 0.15625 l0 0.23438 c0 2.5521 0.46875 4.948 1.4063 7.1876 c0.83336 2.2396 2.0834 4.1927 3.75 5.8594 c1.6666 1.7188 3.6198 3.0469 5.8594 3.9844 c1.4063 0.625 3.0469 1.0677 4.9219 1.3281 l0 -5.9375 z M38.594 20 l0.000076294 -0.23438 c0 -2.5521 -0.46875 -4.948 -1.4063 -7.1876 c-0.9375 -2.2916 -2.2135 -4.2708 -3.8281 -5.9374 c-1.5625 -1.6666 -3.4896 -2.9688 -5.7813 -3.9063 c-1.3021 -0.625 -2.8906 -1.0677 -4.7656 -1.3281 l0 5.9375 l0.9375 0.3125 c0.46875 0.15625 0.83336 0.28648 1.0938 0.39063 c1.4584 0.67711 2.7344 1.6146 3.8281 2.8125 c1.0416 1.0938 1.875 2.4479 2.5 4.0625 c0.57289 1.6146 0.85938 3.2552 0.85938 4.9219 l0 0.15625 l0 0.23438 c0 1.7188 -0.28648 3.3854 -0.85938 5 c-0.67711 1.6666 -1.5105 2.9948 -2.5001 3.9844 c-1.0416 1.1979 -2.2916 2.1094 -3.75 2.7344 c-0.67711 0.3125 -1.3802 0.54688 -2.1094 0.70313 l0 5.9375 c1.5625 -0.20836 3.125 -0.65109 4.6875 -1.3282 c2.1354 -0.88539 4.0885 -2.2135 5.8594 -3.9844 c1.7188 -1.8229 2.9948 -3.802 3.8281 -5.9374 c0.9375 -2.2916 1.4063 -4.6875 1.4063 -7.1875 l0 -0.15625 z M43.8281 38.5937 l6.4844 0 l0 -19.922 l-6.4844 -9.1406 l0 29.063 z M69.76599999999999 1.4059999999999988 l0 25.703 l-18.359 -25.703 l-7.0313 0 l26.406 37.188 l5.3906 0 l0 -37.188 l-6.4063 0 z M86.0938 1.4059999999999988 l27.813 0 l0 5.9375 l-27.813 0 l0 -5.9375 z M86.0938 32.6562 l27.734 0 l0 5.9375 l-27.734 0 l0 -5.9375 z M86.0938 16.875 l25.078 0 l0 5.8594 l-25.078 0 l0 -5.8594 z M127.2656 12.5 c0.9375 -2.2916 2.2916 -4.2447 4.0624 -5.8593 c1.6146 -1.6146 3.698 -2.9167 6.2501 -3.9063 s5.2344 -1.4844 8.0469 -1.4844 l8.6719 0 l0 5.9375 l-8.5938 0 c-2.0313 0 -3.8281 0.33852 -5.3906 1.0156 c-1.6666 0.67711 -3.0208 1.5625 -4.0624 2.6563 c-1.0938 1.0416 -1.9791 2.3958 -2.6563 4.0624 c-0.625 1.5104 -0.9375 3.2031 -0.9375 5.0781 s0.3125 3.5677 0.9375 5.0781 c0.625 1.5625 1.5104 2.9166 2.6563 4.0625 c1.0416 1.0416 2.3958 1.901 4.0624 2.5781 c1.6666 0.625 3.4635 0.9375 5.3906 0.9375 l8.5938 0 l0 5.9375 l-8.6719 0 c-2.9166 0 -5.5729 -0.46875 -7.9688 -1.4063 c-2.5 -1.0416 -4.6094 -2.3698 -6.3281 -3.9844 c-1.7709 -1.6666 -3.125 -3.6458 -4.0625 -5.9374 c-0.98961 -2.3959 -1.4844 -4.8438 -1.4844 -7.3438 c0 -2.6563 0.49477 -5.1302 1.4844 -7.4219 z M176.484 29.375 l3.5156 -4.6875 l-0.078125 -0.15625 z M196.875 1.4059999999999988 l-7.5 0 l-9.2969 13.359 l-9.2188 -13.359 l-7.7344 0 l13.047 18.281 l-13.516 18.906 l8.3594 0 z M197.344 38.5937 l-10.313 -14.609 l-3.9063 5.2344 l6.5625 9.375 l7.6563 0 z\"\n ></path>\n </g>\n </svg>\n }\n <a\n id=\"ocx_vertical_menu_action_toggle\"\n class=\"layout-menu-button\"\n (click)=\"onMenuButtonClick($event)\"\n pRipple\n [pTooltip]=\"'OCX_HEADER.MENU_TOGGLE' | translate\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n >\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\">\n <div class=\"layout-topbar-actions-left\">\n <ng-content></ng-content>\n </div>\n <div class=\"layout-topbar-actions-right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"layout-topbar-items\">\n <ng-template #skeleton>\n <div class=\"flex align-items-center h-full justify-content-center\" style=\"width: 56px\">\n <p-skeleton shape=\"circle\" size=\"2.5rem\" class=\"h-full flex align-items-center\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n</div>\n", styles: [".layout-topbar-items>*{margin:auto}.http-progress-loader{margin-left:8px;padding-top:5px}@media screen and (max-width: 1024px){.http-progress-loader{margin-left:0;margin-right:8px}}.default-logo{color:var(--p-logo-color, #12abdb);fill:currentColor}.layout-topbar{position:fixed;top:0;left:0;z-index:998;width:100%;height:4rem;transition:width var(--p-transition-duration);display:flex}.layout-topbar ul{margin:0;padding:0;border:0;outline:0;text-decoration:none;list-style-type:none}.layout-topbar .layout-topbar-left{display:flex;align-items:center;height:100%;position:relative;flex:0 0 17rem}.layout-topbar .layout-topbar-left .layout-topbar-logo{width:100%;height:100%;padding:.7rem .9rem}.layout-topbar .layout-topbar-left .layout-topbar-logo>*{object-fit:contain;width:100%;height:100%;max-width:100%;max-height:100%}.layout-topbar .layout-topbar-left .layout-menu-button{position:absolute;top:50%;right:-1.25rem;width:2.5rem;height:2.5rem;margin-top:-1.25rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%}.layout-topbar .layout-topbar-left .layout-menu-button i{transition:transform var(--p-transition-duration)}.layout-topbar .layout-topbar-left .layout-topbar-mobile-button{display:none;align-items:center;padding:0 .8rem;margin:0 .5rem 0 auto;border-radius:50%;height:3.2rem;cursor:pointer}.layout-topbar .layout-topbar-right{display:flex;flex-grow:1;align-items:center;justify-content:space-between;padding-left:1.25rem;height:100%;min-width:0}.layout-topbar .layout-topbar-right .layout-topbar-actions-left{display:flex;flex-grow:1;align-items:center;height:100%;min-width:0}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar .p-menubar-root-list>.p-menuitem .p-menuitem-text{white-space:nowrap}.layout-topbar .layout-topbar-right .layout-topbar-actions-right{height:100%;padding-right:.9rem}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items{display:flex;flex-direction:row;justify-content:center;height:100%}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item{display:flex;align-items:center;position:relative}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action{-webkit-user-select:none;user-select:none;padding:0 .8rem;margin:0 .1rem;border-radius:4px;height:3.2rem;min-width:3.2rem;display:flex;align-items:center;cursor:pointer}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:absolute;top:4rem;right:0;z-index:1000;min-width:25rem;padding:1rem 0;transform-origin:top}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel .layout-topbar-action-item{cursor:pointer;padding:1rem}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel{height:4rem;width:100%;position:fixed;top:0;left:0;z-index:1000;transform-origin:top}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input{border-radius:0;border:0 none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:focus{outline:0 none;box-shadow:none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel i{font-weight:700}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon{border:0 none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left{padding-right:0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left .layout-menu-button{display:none}.layout-menu-button-hidden .layout-topbar .layout-topbar-right{padding-left:0}@media (max-width: var(--mobile-break-point)){.layout-topbar .layout-topbar-left{flex-shrink:1}.layout-topbar .layout-topbar-right{min-width:auto}.layout-topbar .layout-topbar-right .layout-topbar-actions-right{padding-right:.25rem}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:fixed;min-width:100vw;max-width:100vw;width:100vw}}.layout-topbar{color:var(--p-topbar-item-text-color);background-color:var(--p-topbar-bg-color)}.layout-topbar a{color:var(--p-topbar-item-text-color)}.layout-topbar a:hover{background-color:var(--p-topbar-item-text-hover-bg-color);color:var(--p-topbar-item-text-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-left{background-color:var(--p-topbar-left-bg-color)}.layout-topbar .layout-topbar-left .layout-menu-button{background-color:var(--p-topbar-menu-button-bg-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar{background:none;border:none}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-text,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-menuitem-icon,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link .p-submenu-icon{color:var(--p-topbar-item-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-content .p-menuitem-link:not(.p-disabled):hover{background:var(--p-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-text,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-menuitem-icon,.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link .p-submenu-icon{color:var(--p-topbar-item-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-left .layout-menubar.p-menubar .p-menubar-root-list>.p-menuitem>.p-menuitem-link:not(.p-disabled):hover{background:var(--p-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel{background-color:var(--p-overlay-content-bg-color);color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel a{color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel a:hover{background-color:transparent;transition:none}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-action-panel .layout-topbar-action-item:hover{background-color:var(--p-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:hover,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:first-child{background-color:var(--p-body-bg-color);color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:last-child{background-color:var(--p-body-bg-colorbody-bg-color);color:var(--p-text-color)}.layout-topbar .layout-topbar-right .layout-topbar-actions-right .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon .p-button-text{color:var(--p-text-color)}\n"] }]
212
+ }], ctorParameters: () => [], propDecorators: { menuButtonTitle: [{
172
213
  type: Input
173
214
  }], fullPortalLayout: [{
174
215
  type: Input
@@ -176,30 +217,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
176
217
  type: Input
177
218
  }], homeNavTitle: [{
178
219
  type: Input
220
+ }], isHorizontalMenu: [{
221
+ type: Input
179
222
  }], menuButtonClick: [{
180
223
  type: Output
181
224
  }] } });
182
225
 
183
226
  const SHOW_CONTENT_PROVIDER = new InjectionToken('SHOW_CONTENT_PROVIDER');
184
227
 
228
+ class AppLoadingSpinnerComponent {
229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AppLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: AppLoadingSpinnerComponent, isStandalone: false, selector: "ocx-app-loading-spinner", ngImport: i0, template: "<div class=\"w-full h-full absolute top-0 left-0 element-overlay\">\n <div class=\"loader\"></div>\n</div>", styles: ["@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.element-overlay{position:relative;width:100%;cursor:default;pointer-events:none}.element-overlay:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1}.loader{width:28px;height:28px;border:3px solid var(--p-primary-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2}.loader.loader-small{width:20px;height:20px;top:20%;left:45%}\n"] }); }
231
+ }
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AppLoadingSpinnerComponent, decorators: [{
233
+ type: Component,
234
+ args: [{ standalone: false, selector: 'ocx-app-loading-spinner', template: "<div class=\"w-full h-full absolute top-0 left-0 element-overlay\">\n <div class=\"loader\"></div>\n</div>", styles: ["@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.element-overlay{position:relative;width:100%;cursor:default;pointer-events:none}.element-overlay:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1}.loader{width:28px;height:28px;border:3px solid var(--p-primary-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2}.loader.loader-small{width:20px;height:20px;top:20%;left:45%}\n"] }]
235
+ }] });
236
+
185
237
  let PortalViewportComponent = class PortalViewportComponent {
186
- constructor(renderer, primengConfig, messageService, appStateService, portalMessageService, userService, themeService, httpClient, router, showContentProvider, workspaceConfigBffService) {
187
- this.renderer = renderer;
188
- this.primengConfig = primengConfig;
189
- this.messageService = messageService;
190
- this.appStateService = appStateService;
191
- this.portalMessageService = portalMessageService;
192
- this.userService = userService;
193
- this.themeService = themeService;
194
- this.httpClient = httpClient;
195
- this.router = router;
196
- this.showContentProvider = showContentProvider;
197
- this.workspaceConfigBffService = workspaceConfigBffService;
238
+ constructor() {
239
+ this.primengConfig = inject(PrimeNG);
240
+ this.messageService = inject(MessageService);
241
+ this.appStateService = inject(AppStateService);
242
+ this.portalMessageService = inject(PortalMessageService);
243
+ this.userService = inject(UserService);
244
+ this.themeService = inject(ThemeService);
245
+ this.httpClient = inject(HttpClient);
246
+ this.showContentProvider = inject(SHOW_CONTENT_PROVIDER, { optional: true });
247
+ this.workspaceConfigBffService = inject(WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, {
248
+ optional: true,
249
+ });
198
250
  this.menuButtonTitle = '';
199
251
  this.menuActive = true;
200
- this.topbarTheme = 'var';
201
252
  this.colorScheme = 'light';
202
- this.layoutMode = 'light';
203
253
  this.menuMode = 'static';
204
254
  this.inputStyle = 'outline';
205
255
  this.ripple = true;
@@ -207,9 +257,9 @@ let PortalViewportComponent = class PortalViewportComponent {
207
257
  this.portalMessageService.message$.subscribe((message) => this.messageService.add(message));
208
258
  this.userService.profile$.pipe(untilDestroyed(this)).subscribe((profile) => {
209
259
  this.menuMode =
210
- profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() || this.menuMode;
260
+ profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() ?? this.menuMode;
211
261
  this.colorScheme =
212
- profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() || this.colorScheme;
262
+ profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() ?? this.colorScheme;
213
263
  });
214
264
  this.themeService.currentTheme$
215
265
  .pipe(first(), mergeMap((theme) => {
@@ -234,11 +284,12 @@ let PortalViewportComponent = class PortalViewportComponent {
234
284
  });
235
285
  }
236
286
  ngOnInit() {
237
- this.primengConfig.ripple = true;
287
+ this.primengConfig.ripple.set(true);
238
288
  this.appStateService.globalError$
239
289
  .pipe(untilDestroyed(this))
240
290
  .pipe(filter((i) => i !== undefined))
241
291
  .subscribe((err) => {
292
+ console.error('global error');
242
293
  this.globalErrMsg = err;
243
294
  });
244
295
  this.onResize();
@@ -269,50 +320,81 @@ let PortalViewportComponent = class PortalViewportComponent {
269
320
  isHorizontalMenuVisible() {
270
321
  return this.isHorizontalMenuMode();
271
322
  }
272
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalViewportComponent, deps: [{ token: i0.Renderer2 }, { token: i1$2.PrimeNGConfig }, { token: i1$2.MessageService }, { token: i1$1.AppStateService }, { token: i1$1.PortalMessageService }, { token: i1$1.UserService }, { token: i1$1.ThemeService }, { token: i3$1.HttpClient }, { token: i1.Router }, { token: SHOW_CONTENT_PROVIDER, optional: true }, { token: WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
273
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: PortalViewportComponent, selector: "ocx-shell-portal-viewport", host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n class=\"layout-wrapper\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible(),\n 'layout-menu-button-hidden': isHorizontalMenuMode()\n }\"\n [class]=\"'layout-menu-' + colorScheme + ' layout-topbar-' + topbarTheme\"\n>\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\" (menuButtonClick)=\"onMenuButtonClick($event)\">\n <div *ngIf=\"isHorizontalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-horizontal-menu\">\n <ng-template #skeleton>\n <div class=\"ml-4 flex flex-row gap-4\">\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </ocx-shell-header>\n\n <p-toast></p-toast>\n\n <div class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\" *ngIf=\"isStaticalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-vertical-menu\">\n <ng-template #skeleton>\n <p-skeleton class=\"w-full h-full inline-block p-2\" height=\"35px\"></p-skeleton>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n <ng-container *ngIf=\"!showContentProvider || (showContentProvider.showContent$ | async); else appLoading\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </ng-container>\n </div>\n\n <ocx-shell-footer></ocx-shell-footer>\n </div>\n\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n</div>\n\n<ng-template #globalError>\n <ocx-shell-error [errCode]=\"globalErrMsg\"></ocx-shell-error>\n</ng-template>\n\n<ng-template #appLoading>\n <div [ocxLoadingIndicator]=\"true\" class=\"w-full h-full absolute top-0 left-0\"></div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "component", type: i7.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i5$2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: i9.LoadingIndicatorDirective, selector: "[ocxLoadingIndicator]", inputs: ["ocxLoadingIndicator", "overlayFullPage", "isLoaderSmall"] }, { kind: "component", type: HeaderComponent, selector: "ocx-shell-header", inputs: ["menuButtonTitle", "fullPortalLayout", "homeNavUrl", "homeNavTitle"], outputs: ["menuButtonClick"] }, { kind: "component", type: PortalFooterComponent, selector: "ocx-shell-footer" }, { kind: "component", type: GlobalErrorComponent, selector: "ocx-shell-error", inputs: ["errCode"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PortalViewportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
324
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: PortalViewportComponent, isStandalone: false, selector: "ocx-shell-portal-viewport", host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n [ngClass]=\"{\n 'layout-wrapper layout-topbar-var': appStateService.currentWorkspace$ | async,\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible(),\n 'layout-menu-button-hidden': isHorizontalMenuMode()\n }\"\n [class]=\"'layout-menu-' + this.colorScheme\"\n>\n <ng-container *ngIf=\"appStateService.currentWorkspace$ | async; else noWorkspace\">\n <ocx-shell-header\n [menuButtonTitle]=\"menuButtonTitle\"\n (menuButtonClick)=\"onMenuButtonClick($event)\"\n [isHorizontalMenu]=\"isHorizontalMenuMode()\"\n >\n <div *ngIf=\"isHorizontalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-horizontal-menu\">\n <ng-template #skeleton>\n <div class=\"ml-4 flex flex-row gap-4\">\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </ocx-shell-header>\n\n <p-toast></p-toast>\n\n <div *ngIf=\"isStaticalMenuVisible()\" class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\">\n <ocx-slot name=\"onecx-shell-vertical-menu\">\n <ng-template #skeleton>\n <p-skeleton class=\"w-full h-full inline-block p-2\" height=\"35px\"></p-skeleton>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n <ng-container *ngIf=\"!showContentProvider || (showContentProvider.showContent$ | async); else appLoading\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </ng-container>\n </div>\n\n <ocx-shell-footer></ocx-shell-footer>\n </div>\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n </ng-container>\n\n <ng-template #noWorkspace>\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #globalError>\n <ocx-shell-error [errCode]=\"globalErrMsg\"></ocx-shell-error>\n</ng-template>\n\n<ng-template #appLoading>\n <ocx-app-loading-spinner></ocx-app-loading-spinner>\n</ng-template>\n", styles: [".layout-wrapper .layout-main{padding-top:4rem;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.layout-wrapper .layout-main .layout-content{flex:1 1 0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left{padding-right:0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left .layout-menu-button{display:none}.layout-menu-button-hidden .layout-topbar .layout-topbar-right{padding-left:0}.menu-wrapper .layout-inline-menu{display:flex;flex-direction:column;justify-content:center;border:0px;border-style:solid;border-bottom-width:1px;transition:all var(--p-transition-duration)}.menu-wrapper .layout-inline-menu.layout-inline-menu-active .layout-inline-menu-icon{transform:rotate(-180deg)}.menu-wrapper .layout-inline-menu .layout-inline-menu-action{cursor:pointer}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel{padding:0 .5rem;transform-origin:top}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item{margin-top:.2rem;border-radius:var(--p-border-radius-md);transition:all var(--p-transition-duration);cursor:pointer;-webkit-user-select:none;user-select:none}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item:last-child{margin-bottom:.5rem}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item a{padding:.75rem}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item a i{margin-right:.75rem}.menu-wrapper{height:calc(100% - 4rem);width:17rem;position:fixed;left:0;top:4rem;z-index:997;transform:none}.menu-wrapper ul{margin:0;padding:0;border:0;outline:0;text-decoration:none;list-style-type:none}.menu-wrapper .layout-menu-container{display:flex;flex-direction:column;height:100%}.menu-wrapper .layout-menu-container app-menu{overflow-y:auto}.menu-wrapper .layout-menu-container .layout-menu{padding-bottom:2rem}.menu-wrapper .layout-menu-container .layout-menu li.layout-root-menuitem>a{display:none}.menu-wrapper .layout-menu-container .layout-menu li.layout-root-menuitem>div{padding-left:1rem;margin-bottom:.5rem;margin-top:1.5rem}.menu-wrapper .layout-menu-container .layout-menu li.layout-root-menuitem>div>.layout-menuitem-text{font-size:.857rem;font-weight:600;text-transform:uppercase}.menu-wrapper .layout-menu-container .layout-menu li>a{display:flex;align-items:center;padding:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--p-transition-duration),color var(--p-transition-duration)}.menu-wrapper .layout-menu-container .layout-menu li>a .layout-menuitem-text{margin-left:.75rem}.menu-wrapper .layout-menu-container .layout-menu li>a .p-badge{margin-left:auto;min-width:1.143rem;height:1.143rem;line-height:1.143rem}.menu-wrapper .layout-menu-container .layout-menu li>a .layout-submenu-toggler{margin-left:auto}.menu-wrapper .layout-menu-container .layout-menu li>a.rotated-icon .layout-menuitem-icon{transform:rotate(90deg)}.menu-wrapper .layout-menu-container .layout-menu li>a .p-badge+.layout-submenu-toggler{margin-left:.5rem}.menu-wrapper .layout-menu-container .layout-menu li.active-menuitem>a .layout-submenu-toggler{transition:all var(--p-transition-duration);transform:rotate(-180deg)}.menu-wrapper .layout-menu-container .layout-menu li>ul li ul{padding:0 0 .25rem;overflow:hidden}.menu-wrapper .layout-menu-container .layout-menu li>ul>li{margin-top:.2rem}.menu-wrapper .layout-menu-container .layout-menu li>ul>li.layout-root-menuitem>a{display:flex}.menu-wrapper .layout-menu-container .layout-menu li>ul>li ul li a{padding-left:2.625rem}.menu-wrapper .layout-menu-container .layout-menu li>ul>li ul li ul li a{padding-left:4.375rem}.menu-wrapper .layout-menu-container .layout-menu li>ul>li ul li ul li ul li a{padding-left:6.125rem}.menu-wrapper{background-color:var(--p-menu-bg-color);box-shadow:2px 0 4px -1px #0003,4px 0 5px #00000024,1px 0 10px #0000001f}.menu-wrapper .layout-menu-container .layout-menu>li>div .layout-menuitem-text{color:var(--p-menu-text-color)}.menu-wrapper .layout-menu-container .layout-menu li{border-left:0px}.menu-wrapper .layout-menu-container .layout-menu li.active-menu-parent.parent-menu{border-left:4px solid var(--p-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li a{color:var(--p-menu-item-text-color);border-left:4px solid transparent}.menu-wrapper .layout-menu-container .layout-menu li a:hover{background-color:var(--p-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-menu li a.active-menuitem-routerlink{background-color:var(--p-menu-active-item-bg-color);color:var(--p-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li.active-menuitem>a{background-color:var(--p-menu-active-item-bg-color);color:var(--p-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-primary-color)}.menu-wrapper .layout-menu-container .layout-inline-menu{border-color:var(--p-menu-inline-border-color)}.menu-wrapper .layout-menu-container .layout-inline-menu a,.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action,.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item{color:var(--p-menu-item-text-color)}.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action:hover,.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item:hover{background-color:var(--p-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel{background-color:var(--p-menu-bg-color)}.layout-wrapper .menu-wrapper{transform:translate3d(-17rem,0,0);transition:transform var(--p-animation-duration);transition-timing-function:cubic-bezier(.86,0,.07,1)}.layout-wrapper .layout-main{transition:margin-left var(--p-animation-duration)}.layout-wrapper.layout-menu-active .menu-wrapper{transform:translateZ(0)}.layout-wrapper.layout-menu-active .layout-topbar .layout-topbar-left .layout-menu-button>i{transform:rotate(180deg)}.layout-wrapper.layout-menu-active .layout-main{margin-left:17rem}@media (max-width: var(--mobile-break-point)){.layout-wrapper .menu-wrapper{top:4rem;height:calc(100% - 4rem)}.layout-wrapper.layout-menu-active{overflow:hidden;height:100vh}.layout-wrapper.layout-menu-active .layout-main{margin-left:0}.layout-wrapper .layout-mask{display:block}}\n"], dependencies: [{ kind: "component", type: i1.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i5.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: HeaderComponent, selector: "ocx-shell-header", inputs: ["menuButtonTitle", "fullPortalLayout", "homeNavUrl", "homeNavTitle", "isHorizontalMenu"], outputs: ["menuButtonClick"] }, { kind: "component", type: PortalFooterComponent, selector: "ocx-shell-footer" }, { kind: "component", type: GlobalErrorComponent, selector: "ocx-shell-error", inputs: ["errCode"] }, { kind: "component", type: AppLoadingSpinnerComponent, selector: "ocx-app-loading-spinner" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
274
325
  };
275
326
  PortalViewportComponent = __decorate([
276
327
  UntilDestroy(),
277
- __metadata("design:paramtypes", [Renderer2,
278
- PrimeNGConfig,
279
- MessageService,
280
- AppStateService,
281
- PortalMessageService,
282
- UserService,
283
- ThemeService,
284
- HttpClient,
285
- Router, Object, Object])
328
+ __metadata("design:paramtypes", [])
286
329
  ], PortalViewportComponent);
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalViewportComponent, decorators: [{
330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PortalViewportComponent, decorators: [{
288
331
  type: Component,
289
- args: [{ selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n class=\"layout-wrapper\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible(),\n 'layout-menu-button-hidden': isHorizontalMenuMode()\n }\"\n [class]=\"'layout-menu-' + colorScheme + ' layout-topbar-' + topbarTheme\"\n>\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\" (menuButtonClick)=\"onMenuButtonClick($event)\">\n <div *ngIf=\"isHorizontalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-horizontal-menu\">\n <ng-template #skeleton>\n <div class=\"ml-4 flex flex-row gap-4\">\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </ocx-shell-header>\n\n <p-toast></p-toast>\n\n <div class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\" *ngIf=\"isStaticalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-vertical-menu\">\n <ng-template #skeleton>\n <p-skeleton class=\"w-full h-full inline-block p-2\" height=\"35px\"></p-skeleton>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n <ng-container *ngIf=\"!showContentProvider || (showContentProvider.showContent$ | async); else appLoading\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </ng-container>\n </div>\n\n <ocx-shell-footer></ocx-shell-footer>\n </div>\n\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n</div>\n\n<ng-template #globalError>\n <ocx-shell-error [errCode]=\"globalErrMsg\"></ocx-shell-error>\n</ng-template>\n\n<ng-template #appLoading>\n <div [ocxLoadingIndicator]=\"true\" class=\"w-full h-full absolute top-0 left-0\"></div>\n</ng-template>\n" }]
290
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1$2.PrimeNGConfig }, { type: i1$2.MessageService }, { type: i1$1.AppStateService }, { type: i1$1.PortalMessageService }, { type: i1$1.UserService }, { type: i1$1.ThemeService }, { type: i3$1.HttpClient }, { type: i1.Router }, { type: undefined, decorators: [{
291
- type: Optional
292
- }, {
293
- type: Inject,
294
- args: [SHOW_CONTENT_PROVIDER]
295
- }] }, { type: undefined, decorators: [{
296
- type: Optional
297
- }, {
298
- type: Inject,
299
- args: [WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER]
300
- }] }], propDecorators: { onResize: [{
332
+ args: [{ standalone: false, selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n [ngClass]=\"{\n 'layout-wrapper layout-topbar-var': appStateService.currentWorkspace$ | async,\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible(),\n 'layout-menu-button-hidden': isHorizontalMenuMode()\n }\"\n [class]=\"'layout-menu-' + this.colorScheme\"\n>\n <ng-container *ngIf=\"appStateService.currentWorkspace$ | async; else noWorkspace\">\n <ocx-shell-header\n [menuButtonTitle]=\"menuButtonTitle\"\n (menuButtonClick)=\"onMenuButtonClick($event)\"\n [isHorizontalMenu]=\"isHorizontalMenuMode()\"\n >\n <div *ngIf=\"isHorizontalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-horizontal-menu\">\n <ng-template #skeleton>\n <div class=\"ml-4 flex flex-row gap-4\">\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </ocx-shell-header>\n\n <p-toast></p-toast>\n\n <div *ngIf=\"isStaticalMenuVisible()\" class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\">\n <ocx-slot name=\"onecx-shell-vertical-menu\">\n <ng-template #skeleton>\n <p-skeleton class=\"w-full h-full inline-block p-2\" height=\"35px\"></p-skeleton>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n <ng-container *ngIf=\"!showContentProvider || (showContentProvider.showContent$ | async); else appLoading\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </ng-container>\n </div>\n\n <ocx-shell-footer></ocx-shell-footer>\n </div>\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n </ng-container>\n\n <ng-template #noWorkspace>\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #globalError>\n <ocx-shell-error [errCode]=\"globalErrMsg\"></ocx-shell-error>\n</ng-template>\n\n<ng-template #appLoading>\n <ocx-app-loading-spinner></ocx-app-loading-spinner>\n</ng-template>\n", styles: [".layout-wrapper .layout-main{padding-top:4rem;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.layout-wrapper .layout-main .layout-content{flex:1 1 0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left{padding-right:0}.layout-menu-button-hidden .layout-topbar .layout-topbar-left .layout-menu-button{display:none}.layout-menu-button-hidden .layout-topbar .layout-topbar-right{padding-left:0}.menu-wrapper .layout-inline-menu{display:flex;flex-direction:column;justify-content:center;border:0px;border-style:solid;border-bottom-width:1px;transition:all var(--p-transition-duration)}.menu-wrapper .layout-inline-menu.layout-inline-menu-active .layout-inline-menu-icon{transform:rotate(-180deg)}.menu-wrapper .layout-inline-menu .layout-inline-menu-action{cursor:pointer}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel{padding:0 .5rem;transform-origin:top}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item{margin-top:.2rem;border-radius:var(--p-border-radius-md);transition:all var(--p-transition-duration);cursor:pointer;-webkit-user-select:none;user-select:none}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item:last-child{margin-bottom:.5rem}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item a{padding:.75rem}.menu-wrapper .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item a i{margin-right:.75rem}.menu-wrapper{height:calc(100% - 4rem);width:17rem;position:fixed;left:0;top:4rem;z-index:997;transform:none}.menu-wrapper ul{margin:0;padding:0;border:0;outline:0;text-decoration:none;list-style-type:none}.menu-wrapper .layout-menu-container{display:flex;flex-direction:column;height:100%}.menu-wrapper .layout-menu-container app-menu{overflow-y:auto}.menu-wrapper .layout-menu-container .layout-menu{padding-bottom:2rem}.menu-wrapper .layout-menu-container .layout-menu li.layout-root-menuitem>a{display:none}.menu-wrapper .layout-menu-container .layout-menu li.layout-root-menuitem>div{padding-left:1rem;margin-bottom:.5rem;margin-top:1.5rem}.menu-wrapper .layout-menu-container .layout-menu li.layout-root-menuitem>div>.layout-menuitem-text{font-size:.857rem;font-weight:600;text-transform:uppercase}.menu-wrapper .layout-menu-container .layout-menu li>a{display:flex;align-items:center;padding:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--p-transition-duration),color var(--p-transition-duration)}.menu-wrapper .layout-menu-container .layout-menu li>a .layout-menuitem-text{margin-left:.75rem}.menu-wrapper .layout-menu-container .layout-menu li>a .p-badge{margin-left:auto;min-width:1.143rem;height:1.143rem;line-height:1.143rem}.menu-wrapper .layout-menu-container .layout-menu li>a .layout-submenu-toggler{margin-left:auto}.menu-wrapper .layout-menu-container .layout-menu li>a.rotated-icon .layout-menuitem-icon{transform:rotate(90deg)}.menu-wrapper .layout-menu-container .layout-menu li>a .p-badge+.layout-submenu-toggler{margin-left:.5rem}.menu-wrapper .layout-menu-container .layout-menu li.active-menuitem>a .layout-submenu-toggler{transition:all var(--p-transition-duration);transform:rotate(-180deg)}.menu-wrapper .layout-menu-container .layout-menu li>ul li ul{padding:0 0 .25rem;overflow:hidden}.menu-wrapper .layout-menu-container .layout-menu li>ul>li{margin-top:.2rem}.menu-wrapper .layout-menu-container .layout-menu li>ul>li.layout-root-menuitem>a{display:flex}.menu-wrapper .layout-menu-container .layout-menu li>ul>li ul li a{padding-left:2.625rem}.menu-wrapper .layout-menu-container .layout-menu li>ul>li ul li ul li a{padding-left:4.375rem}.menu-wrapper .layout-menu-container .layout-menu li>ul>li ul li ul li ul li a{padding-left:6.125rem}.menu-wrapper{background-color:var(--p-menu-bg-color);box-shadow:2px 0 4px -1px #0003,4px 0 5px #00000024,1px 0 10px #0000001f}.menu-wrapper .layout-menu-container .layout-menu>li>div .layout-menuitem-text{color:var(--p-menu-text-color)}.menu-wrapper .layout-menu-container .layout-menu li{border-left:0px}.menu-wrapper .layout-menu-container .layout-menu li.active-menu-parent.parent-menu{border-left:4px solid var(--p-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li a{color:var(--p-menu-item-text-color);border-left:4px solid transparent}.menu-wrapper .layout-menu-container .layout-menu li a:hover{background-color:var(--p-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-menu li a.active-menuitem-routerlink{background-color:var(--p-menu-active-item-bg-color);color:var(--p-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li.active-menuitem>a{background-color:var(--p-menu-active-item-bg-color);color:var(--p-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-primary-color)}.menu-wrapper .layout-menu-container .layout-inline-menu{border-color:var(--p-menu-inline-border-color)}.menu-wrapper .layout-menu-container .layout-inline-menu a,.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action,.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item{color:var(--p-menu-item-text-color)}.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action:hover,.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item:hover{background-color:var(--p-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel{background-color:var(--p-menu-bg-color)}.layout-wrapper .menu-wrapper{transform:translate3d(-17rem,0,0);transition:transform var(--p-animation-duration);transition-timing-function:cubic-bezier(.86,0,.07,1)}.layout-wrapper .layout-main{transition:margin-left var(--p-animation-duration)}.layout-wrapper.layout-menu-active .menu-wrapper{transform:translateZ(0)}.layout-wrapper.layout-menu-active .layout-topbar .layout-topbar-left .layout-menu-button>i{transform:rotate(180deg)}.layout-wrapper.layout-menu-active .layout-main{margin-left:17rem}@media (max-width: var(--mobile-break-point)){.layout-wrapper .menu-wrapper{top:4rem;height:calc(100% - 4rem)}.layout-wrapper.layout-menu-active{overflow:hidden;height:100vh}.layout-wrapper.layout-menu-active .layout-main{margin-left:0}.layout-wrapper .layout-mask{display:block}}\n"] }]
333
+ }], ctorParameters: () => [], propDecorators: { onResize: [{
301
334
  type: HostListener,
302
335
  args: ['window:resize']
303
336
  }] } });
304
337
 
305
338
  class ShellCoreModule {
306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
307
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, declarations: [PortalViewportComponent, HeaderComponent, PortalFooterComponent, GlobalErrorComponent], imports: [CommonModule, RouterModule, AngularRemoteComponentsModule, AngularAcceleratorModule, ToastModule, SkeletonModule, PortalCoreModule], exports: [PortalViewportComponent, HeaderComponent, PortalFooterComponent, ToastModule, GlobalErrorComponent] }); }
308
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, imports: [CommonModule, RouterModule, AngularRemoteComponentsModule, AngularAcceleratorModule, ToastModule, SkeletonModule, PortalCoreModule, ToastModule] }); }
339
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ShellCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
340
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.4", ngImport: i0, type: ShellCoreModule, declarations: [PortalViewportComponent,
341
+ HeaderComponent,
342
+ PortalFooterComponent,
343
+ GlobalErrorComponent,
344
+ AppLoadingSpinnerComponent,
345
+ ShellSrcDirective], imports: [AngularRemoteComponentsModule,
346
+ CommonModule,
347
+ RouterModule,
348
+ SkeletonModule,
349
+ ToastModule,
350
+ TooltipModule,
351
+ TranslateModule], exports: [GlobalErrorComponent,
352
+ HeaderComponent,
353
+ PortalViewportComponent,
354
+ PortalFooterComponent,
355
+ ToastModule,
356
+ TooltipModule,
357
+ TranslateModule] }); }
358
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ShellCoreModule, providers: [providePrimeNG()], imports: [AngularRemoteComponentsModule,
359
+ CommonModule,
360
+ RouterModule,
361
+ SkeletonModule,
362
+ ToastModule,
363
+ TooltipModule,
364
+ TranslateModule, ToastModule,
365
+ TooltipModule,
366
+ TranslateModule] }); }
309
367
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, decorators: [{
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ShellCoreModule, decorators: [{
311
369
  type: NgModule,
312
370
  args: [{
313
- imports: [CommonModule, RouterModule, AngularRemoteComponentsModule, AngularAcceleratorModule, ToastModule, SkeletonModule, PortalCoreModule],
314
- declarations: [PortalViewportComponent, HeaderComponent, PortalFooterComponent, GlobalErrorComponent],
315
- exports: [PortalViewportComponent, HeaderComponent, PortalFooterComponent, ToastModule, GlobalErrorComponent],
371
+ imports: [
372
+ AngularRemoteComponentsModule,
373
+ CommonModule,
374
+ RouterModule,
375
+ SkeletonModule,
376
+ ToastModule,
377
+ TooltipModule,
378
+ TranslateModule,
379
+ ],
380
+ declarations: [
381
+ PortalViewportComponent,
382
+ HeaderComponent,
383
+ PortalFooterComponent,
384
+ GlobalErrorComponent,
385
+ AppLoadingSpinnerComponent,
386
+ ShellSrcDirective,
387
+ ],
388
+ exports: [
389
+ GlobalErrorComponent,
390
+ HeaderComponent,
391
+ PortalViewportComponent,
392
+ PortalFooterComponent,
393
+ ToastModule,
394
+ TooltipModule,
395
+ TranslateModule,
396
+ ],
397
+ providers: [providePrimeNG()],
316
398
  }]
317
399
  }] });
318
400
 
@@ -327,10 +409,10 @@ class PermissionsCacheService {
327
409
  }
328
410
  return this.permissions[key];
329
411
  }
330
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
331
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsCacheService, providedIn: 'root' }); }
412
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PermissionsCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
413
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PermissionsCacheService, providedIn: 'root' }); }
332
414
  }
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsCacheService, decorators: [{
415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: PermissionsCacheService, decorators: [{
334
416
  type: Injectable,
335
417
  args: [{ providedIn: 'root' }]
336
418
  }] });