@onecx/shell-core 6.0.0-rc.2 → 6.0.0-rc.20

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';
10
- import { AngularRemoteComponentsModule } from '@onecx/angular-remote-components';
11
- import * as i7 from 'primeng/toast';
4
+ import { inject, Input, Component, EventEmitter, Output, InjectionToken, HostListener, ElementRef, Directive, 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';
8
+ import { SlotService, AngularRemoteComponentsModule } from '@onecx/angular-remote-components';
9
+ import * as i5$1 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';
18
12
  import { __decorate, __metadata } from 'tslib';
19
13
  import { trigger, transition, style, animate } from '@angular/animations';
20
14
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
21
- import * as i5$2 from 'primeng/skeleton';
15
+ import { ThemeService, AppStateService, PortalMessageService, UserService } from '@onecx/angular-integration-interface';
16
+ import * as i3 from 'primeng/skeleton';
22
17
  import { SkeletonModule } from 'primeng/skeleton';
23
- import * as i3$1 from '@angular/common/http';
18
+ import * as i4 from 'primeng/tooltip';
19
+ import { TooltipModule } from 'primeng/tooltip';
20
+ import * as i5 from '@ngx-translate/core';
21
+ import { TranslateModule } from '@ngx-translate/core';
24
22
  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';
23
+ import { MessageService } from 'primeng/api';
24
+ import { first, mergeMap, of, filter, from, shareReplay } from 'rxjs';
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,104 +36,42 @@ 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.2.11", ngImport: i0, type: GlobalErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", 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-onecx-divider-color);border-radius:6px}.pages-body .pages-panel.card img{width:100%}.pages-body .pages-panel.card>.card{background-color:var(--p-onecx-content-alt-bg-color)}.pages-body .pages-panel .pages-header{margin-top:-3rem;color:#fff;border:1.5px solid var(--p-onecx-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-onecx-text-secondary-color)}.pages-body.error-page{background-size:cover;background-color:var(--p-onecx-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.2.11", 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-onecx-divider-color);border-radius:6px}.pages-body .pages-panel.card img{width:100%}.pages-body .pages-panel.card>.card{background-color:var(--p-onecx-content-alt-bg-color)}.pages-body .pages-panel .pages-header{margin-top:-3rem;color:#fff;border:1.5px solid var(--p-onecx-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-onecx-text-secondary-color)}.pages-body.error-page{background-size:cover;background-color:var(--p-onecx-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
- const WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER = new InjectionToken('WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER');
54
-
55
- 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]) => {
63
- const mfeInfoVersion = mfe?.version || '';
64
- const mfeName = mfe?.displayName;
65
- const hostVersion = this.configurationService.getProperty(CONFIG_KEY.APP_VERSION) || 'DEV-LOCAL';
66
- const mfInfoText = mfeName ? `MF ${mfeName} v${mfeInfoVersion}` : '';
67
- return `Portal: ${portal.portalName} v${hostVersion} ${mfInfoText}`;
68
- }));
69
- this.logoUrl$ = combineLatest([
70
- this.themeService.currentTheme$.asObservable(),
71
- this.appState.currentWorkspace$.asObservable(),
72
- ]).pipe(mergeMap(([theme, portalData]) => {
73
- if (!theme.logoUrl && !portalData.logoUrl) {
74
- return (this.workspaceConfigBffService?.getThemeLogoByName(theme.name ?? '') ?? of()).pipe(filter((blob) => !!blob), map((blob) => URL.createObjectURL(blob)));
75
- }
76
- return of(theme.logoUrl || portalData.logoUrl);
77
- }));
78
- }
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
- onErrorHandleSrc() {
90
- this.logoUrl$ = of(undefined);
91
- }
92
- onLoad(logoUrl) {
93
- if (logoUrl.startsWith('blob: ')) {
94
- URL.revokeObjectURL(logoUrl);
95
- }
96
- }
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" }] }); }
99
- }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalFooterComponent, decorators: [{
101
- 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
- }] }] });
109
-
110
49
  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;
50
+ constructor() {
117
51
  this.fullPortalLayout = true;
118
52
  this.homeNavUrl = '/';
119
53
  this.homeNavTitle = 'Home';
54
+ this.isStaticalMenu = false;
55
+ this.isHorizontalMenu = false;
120
56
  this.menuButtonClick = new EventEmitter();
121
- this.logoUrl$ = combineLatest([
122
- this.themeService.currentTheme$.asObservable(),
123
- this.appStateService.currentWorkspace$.asObservable(),
124
- ]).pipe(mergeMap(([theme, portal]) => {
125
- if (!theme.logoUrl && !portal.logoUrl) {
126
- return (this.workspaceConfigBffService?.getThemeLogoByName(theme.name ?? '') ?? of()).pipe(filter((blob) => !!blob), map((blob) => URL.createObjectURL(blob)));
127
- }
128
- return of(theme.logoUrl || portal.logoUrl);
129
- }));
57
+ this.themeService = inject(ThemeService);
58
+ this.slotService = inject(SlotService);
59
+ this.menuExpanded = false;
60
+ // slot configuration: get theme logo
61
+ this.slotName = 'onecx-theme-data';
62
+ this.logoLoadingEmitter = new EventEmitter();
63
+ this.themeLogoLoadingFailed = false;
64
+ this.isComponentDefined$ = this.slotService.isSomeComponentDefinedForSlot(this.slotName);
65
+ this.currentTheme$ = this.themeService.currentTheme$.asObservable();
66
+ this.logoLoadingEmitter.subscribe((data) => {
67
+ this.themeLogoLoadingFailed = data;
68
+ });
130
69
  }
131
70
  onMenuButtonClick(e) {
132
71
  this.menuButtonClick.emit(e);
133
72
  }
134
- onLoad(logoUrl) {
135
- if (logoUrl.startsWith('blob: ')) {
136
- URL.revokeObjectURL(logoUrl);
137
- }
138
- }
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: [
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: HeaderComponent, isStandalone: false, selector: "ocx-shell-header", inputs: { menuButtonTitle: "menuButtonTitle", fullPortalLayout: "fullPortalLayout", homeNavUrl: "homeNavUrl", homeNavTitle: "homeNavTitle", isStaticalMenu: "isStaticalMenu", isHorizontalMenu: "isHorizontalMenu" }, outputs: { menuButtonClick: "menuButtonClick" }, ngImport: i0, template: "<div class=\"layout-topbar_flex\" id=\"ocx_header\" role=\"banner\">\n <div\n class=\"layout-topbar-left flex relative justify-content-center align-items-center\"\n [ngClass]=\"{'vertical-menu': !isHorizontalMenu}\"\n >\n <!-- LOGO -->\n @if (currentTheme$ | async; as theme) { @if (isComponentDefined$ | async) {\n <ocx-slot\n [name]=\"slotName\"\n [inputs]=\"{\n dataType: 'logo',\n themeName: theme.name,\n imageUrl: theme.logoUrl,\n imageStyleClass: 'max-h-3rem max-w-11rem',\n logEnabled: false,\n logPrefix: 'header left logo'\n }\"\n [outputs]=\"{ imageLoadingFailed: logoLoadingEmitter }\"\n ></ocx-slot>\n } @if (themeLogoLoadingFailed) {\n <div><!-- portal logo --></div>\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\n [ngClass]=\"{'toggle-button-direction': isStaticalMenu && (isComponentDefined$ | async) === true}\"\n class=\"pi pi-chevron-right\"\n ></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_flex\">\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-onecx-logo-color, #12abdb);fill:currentColor}.layout-topbar_flex{position:fixed;top:0;left:0;z-index:998;width:100%;height:4rem;transition:width var(--p-transition-duration);display:flex;justify-content:space-between;align-items:center;row-gap:1rem}.layout-topbar_flex ul{margin:0;padding:0;border:0;outline:0;text-decoration:none;list-style-type:none}.layout-topbar_flex .layout-topbar-left{min-width:10rem}.layout-topbar_flex .layout-topbar-left.vertical-menu{flex:0 0 17rem}.layout-topbar_flex .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_flex .layout-topbar-left .layout-menu-button i{transition:transform var(--p-transition-duration)}.layout-topbar_flex .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_flex .layout-topbar-right{display:flex;flex-grow:1;align-items:center;justify-content:space-between;row-gap:0;margin-left:1.5rem;padding-left:1.25rem;height:100%;min-width:0}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-left{display:flex;flex-grow:1;align-items:center;height:100%;min-width:0}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-left .layout-menubar .p-menubar-root-list>.p-menuitem .p-menuitem-text{white-space:nowrap}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex{height:100%;margin-right:.75rem}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;height:100%}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item{display:flex;align-items:center;position:relative}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action{-webkit-user-select:none;user-select:none;justify-content:center;height:3.2rem;width:3.2rem;min-width:3.2rem;border-radius:50%;cursor:pointer;margin:0;padding:.5rem!important;color:var(--p-onecx-topbar-item-text-color);background-color:var(--p-onecx-topbar-bg-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action:hover,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action:focus{color:var(--p-onecx-topbar-item-text-hover-color);background-color:var(--p-onecx-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:absolute;top:4rem;right:0;z-index:1000;min-width:13rem;padding:.5rem 0;transform-origin:top}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel .layout-topbar-action-item{cursor:pointer}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .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_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input{border-radius:0;border:0 none}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:focus{outline:0 none;box-shadow:none}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel i{font-weight:700}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon{border:0 none}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .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_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .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_flex .layout-topbar-left{padding-right:0}.layout-menu-button-hidden .layout-topbar_flex .layout-topbar-left .layout-menu-button{display:none}.layout-menu-button-hidden .layout-topbar_flex .layout-topbar-right{padding-left:0}.toggle-button-direction{transform:rotate(180deg)}@media (max-width: var(--mobile-break-point)){.layout-topbar_flex .layout-topbar-left{flex-shrink:1}.layout-topbar_flex .layout-topbar-right{min-width:auto}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex{padding-right:.25rem}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:fixed;min-width:100vw;max-width:100vw;width:100vw}}.layout-topbar_flex{color:var(--p-onecx-topbar-item-text-color);background-color:var(--p-onecx-topbar-bg-color)}.layout-topbar_flex .layout-topbar-left{background-color:var(--p-onecx-topbar-left-bg-color)}.layout-topbar_flex .layout-topbar-left .layout-menu-button{background-color:var(--p-onecx-topbar-menu-button-bg-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-left .layout-menubar{background:none;border:none}.layout-topbar_flex .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_flex .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_flex .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-onecx-topbar-item-text-color)}.layout-topbar_flex .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-onecx-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .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_flex .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_flex .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(onecx-topbar-item-text-color)}.layout-topbar_flex .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-onecx-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-action-panel{background-color:var(--p-onecx-overlay-content-bg-color);color:var(--p-onecx-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-action-panel .layout-topbar-action-item{color:var(--p-onecx-menu-item-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-action-panel .layout-topbar-action-item:hover{background-color:var(--p-onecx-menu-item-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:hover,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:first-child{background-color:var(--p-onecx-body-bg-color);color:var(--p-onecx-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:last-child{background-color:var(--p-onecx-body-bg-color);color:var(--p-onecx-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon .p-button-text{color:var(--p-onecx-text-color)}\n"], dependencies: [{ kind: "component", type: i1.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "slotStyles", "slotClasses", "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: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
141
75
  trigger('topbarActionPanelAnimation', [
142
76
  transition(':enter', [
143
77
  style({ opacity: 0, transform: 'scaleY(0.8)' }),
@@ -149,12 +83,11 @@ let HeaderComponent = class HeaderComponent {
149
83
  };
150
84
  HeaderComponent = __decorate([
151
85
  UntilDestroy(),
152
- __metadata("design:paramtypes", [ThemeService,
153
- AppStateService, Object])
86
+ __metadata("design:paramtypes", [])
154
87
  ], HeaderComponent);
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HeaderComponent, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: HeaderComponent, decorators: [{
156
89
  type: Component,
157
- args: [{ selector: 'ocx-shell-header', animations: [
90
+ args: [{ standalone: false, selector: 'ocx-shell-header', animations: [
158
91
  trigger('topbarActionPanelAnimation', [
159
92
  transition(':enter', [
160
93
  style({ opacity: 0, transform: 'scaleY(0.8)' }),
@@ -162,13 +95,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
162
95
  ]),
163
96
  transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),
164
97
  ]),
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: [{
98
+ ], template: "<div class=\"layout-topbar_flex\" id=\"ocx_header\" role=\"banner\">\n <div\n class=\"layout-topbar-left flex relative justify-content-center align-items-center\"\n [ngClass]=\"{'vertical-menu': !isHorizontalMenu}\"\n >\n <!-- LOGO -->\n @if (currentTheme$ | async; as theme) { @if (isComponentDefined$ | async) {\n <ocx-slot\n [name]=\"slotName\"\n [inputs]=\"{\n dataType: 'logo',\n themeName: theme.name,\n imageUrl: theme.logoUrl,\n imageStyleClass: 'max-h-3rem max-w-11rem',\n logEnabled: false,\n logPrefix: 'header left logo'\n }\"\n [outputs]=\"{ imageLoadingFailed: logoLoadingEmitter }\"\n ></ocx-slot>\n } @if (themeLogoLoadingFailed) {\n <div><!-- portal logo --></div>\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\n [ngClass]=\"{'toggle-button-direction': isStaticalMenu && (isComponentDefined$ | async) === true}\"\n class=\"pi pi-chevron-right\"\n ></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_flex\">\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-onecx-logo-color, #12abdb);fill:currentColor}.layout-topbar_flex{position:fixed;top:0;left:0;z-index:998;width:100%;height:4rem;transition:width var(--p-transition-duration);display:flex;justify-content:space-between;align-items:center;row-gap:1rem}.layout-topbar_flex ul{margin:0;padding:0;border:0;outline:0;text-decoration:none;list-style-type:none}.layout-topbar_flex .layout-topbar-left{min-width:10rem}.layout-topbar_flex .layout-topbar-left.vertical-menu{flex:0 0 17rem}.layout-topbar_flex .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_flex .layout-topbar-left .layout-menu-button i{transition:transform var(--p-transition-duration)}.layout-topbar_flex .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_flex .layout-topbar-right{display:flex;flex-grow:1;align-items:center;justify-content:space-between;row-gap:0;margin-left:1.5rem;padding-left:1.25rem;height:100%;min-width:0}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-left{display:flex;flex-grow:1;align-items:center;height:100%;min-width:0}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-left .layout-menubar .p-menubar-root-list>.p-menuitem .p-menuitem-text{white-space:nowrap}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex{height:100%;margin-right:.75rem}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;height:100%}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item{display:flex;align-items:center;position:relative}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action{-webkit-user-select:none;user-select:none;justify-content:center;height:3.2rem;width:3.2rem;min-width:3.2rem;border-radius:50%;cursor:pointer;margin:0;padding:.5rem!important;color:var(--p-onecx-topbar-item-text-color);background-color:var(--p-onecx-topbar-bg-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action:hover,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action:focus{color:var(--p-onecx-topbar-item-text-hover-color);background-color:var(--p-onecx-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:absolute;top:4rem;right:0;z-index:1000;min-width:13rem;padding:.5rem 0;transform-origin:top}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel .layout-topbar-action-item{cursor:pointer}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .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_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input{border-radius:0;border:0 none}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:focus{outline:0 none;box-shadow:none}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel i{font-weight:700}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon{border:0 none}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .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_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .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_flex .layout-topbar-left{padding-right:0}.layout-menu-button-hidden .layout-topbar_flex .layout-topbar-left .layout-menu-button{display:none}.layout-menu-button-hidden .layout-topbar_flex .layout-topbar-right{padding-left:0}.toggle-button-direction{transform:rotate(180deg)}@media (max-width: var(--mobile-break-point)){.layout-topbar_flex .layout-topbar-left{flex-shrink:1}.layout-topbar_flex .layout-topbar-right{min-width:auto}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex{padding-right:.25rem}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item .layout-topbar-action-panel{position:fixed;min-width:100vw;max-width:100vw;width:100vw}}.layout-topbar_flex{color:var(--p-onecx-topbar-item-text-color);background-color:var(--p-onecx-topbar-bg-color)}.layout-topbar_flex .layout-topbar-left{background-color:var(--p-onecx-topbar-left-bg-color)}.layout-topbar_flex .layout-topbar-left .layout-menu-button{background-color:var(--p-onecx-topbar-menu-button-bg-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-left .layout-menubar{background:none;border:none}.layout-topbar_flex .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_flex .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_flex .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-onecx-topbar-item-text-color)}.layout-topbar_flex .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-onecx-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .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_flex .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_flex .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(onecx-topbar-item-text-color)}.layout-topbar_flex .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-onecx-topbar-item-text-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-action-panel{background-color:var(--p-onecx-overlay-content-bg-color);color:var(--p-onecx-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-action-panel .layout-topbar-action-item{color:var(--p-onecx-menu-item-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-action-panel .layout-topbar-action-item:hover{background-color:var(--p-onecx-menu-item-hover-bg-color);transition:background-color var(--p-transition-duration)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel input:hover,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:first-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:first-child{background-color:var(--p-onecx-body-bg-color);color:var(--p-onecx-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup button:last-child,.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup input:last-child{background-color:var(--p-onecx-body-bg-color);color:var(--p-onecx-text-color)}.layout-topbar_flex .layout-topbar-right .layout-topbar-actions-right_flex .layout-topbar-items .layout-topbar-item.layout-search-item .layout-search-panel .p-inputgroup-addon .p-button-text{color:var(--p-onecx-text-color)}\n"] }]
99
+ }], ctorParameters: () => [], propDecorators: { menuButtonTitle: [{
172
100
  type: Input
173
101
  }], fullPortalLayout: [{
174
102
  type: Input
@@ -176,40 +104,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
176
104
  type: Input
177
105
  }], homeNavTitle: [{
178
106
  type: Input
107
+ }], isStaticalMenu: [{
108
+ type: Input
109
+ }], isHorizontalMenu: [{
110
+ type: Input
179
111
  }], menuButtonClick: [{
180
112
  type: Output
181
113
  }] } });
182
114
 
183
115
  const SHOW_CONTENT_PROVIDER = new InjectionToken('SHOW_CONTENT_PROVIDER');
184
116
 
117
+ const WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER = new InjectionToken('WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER');
118
+
119
+ class AppLoadingSpinnerComponent {
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AppLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", 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"] }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: AppLoadingSpinnerComponent, decorators: [{
124
+ type: Component,
125
+ 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"] }]
126
+ }] });
127
+
185
128
  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;
129
+ constructor() {
130
+ this.primengConfig = inject(PrimeNG);
131
+ this.messageService = inject(MessageService);
132
+ this.appStateService = inject(AppStateService);
133
+ this.portalMessageService = inject(PortalMessageService);
134
+ this.userService = inject(UserService);
135
+ this.themeService = inject(ThemeService);
136
+ this.httpClient = inject(HttpClient);
137
+ this.showContentProvider = inject(SHOW_CONTENT_PROVIDER, { optional: true });
138
+ this.workspaceConfigBffService = inject(WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, {
139
+ optional: true,
140
+ });
141
+ this.slotService = inject(SlotService);
198
142
  this.menuButtonTitle = '';
199
143
  this.menuActive = true;
200
- this.topbarTheme = 'var';
201
144
  this.colorScheme = 'light';
202
- this.layoutMode = 'light';
203
145
  this.menuMode = 'static';
204
146
  this.inputStyle = 'outline';
205
147
  this.ripple = true;
206
148
  this.isMobile = false;
149
+ this.verticalMenuSlotName = 'onecx-shell-vertical-menu';
207
150
  this.portalMessageService.message$.subscribe((message) => this.messageService.add(message));
208
151
  this.userService.profile$.pipe(untilDestroyed(this)).subscribe((profile) => {
209
152
  this.menuMode =
210
- profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() || this.menuMode;
153
+ profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() ?? this.menuMode;
211
154
  this.colorScheme =
212
- profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() || this.colorScheme;
155
+ profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() ?? this.colorScheme;
213
156
  });
214
157
  this.themeService.currentTheme$
215
158
  .pipe(first(), mergeMap((theme) => {
@@ -232,13 +175,15 @@ let PortalViewportComponent = class PortalViewportComponent {
232
175
  }
233
176
  link.href = url;
234
177
  });
178
+ this.isVerticalMenuComponentDefined$ = this.slotService.isSomeComponentDefinedForSlot(this.verticalMenuSlotName);
235
179
  }
236
180
  ngOnInit() {
237
- this.primengConfig.ripple = true;
181
+ this.primengConfig.ripple.set(true);
238
182
  this.appStateService.globalError$
239
183
  .pipe(untilDestroyed(this))
240
184
  .pipe(filter((i) => i !== undefined))
241
185
  .subscribe((err) => {
186
+ console.error('global error');
242
187
  this.globalErrMsg = err;
243
188
  });
244
189
  this.onResize();
@@ -269,50 +214,138 @@ let PortalViewportComponent = class PortalViewportComponent {
269
214
  isHorizontalMenuVisible() {
270
215
  return this.isHorizontalMenuMode();
271
216
  }
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" }] }); }
217
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PortalViewportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
218
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.11", 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': themeService.currentTheme$ | async,\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible() && (isVerticalMenuComponentDefined$ | async),\n }\"\n [class]=\"'layout-menu-' + this.colorScheme\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header\n [menuButtonTitle]=\"menuButtonTitle\"\n (menuButtonClick)=\"onMenuButtonClick($event)\"\n [isStaticalMenu]=\"isStaticalMenuVisible()\"\n [isHorizontalMenu]=\"isHorizontalMenuMode()\"\n >\n <div [hidden]=\"!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 [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div [hidden]=\"!isStaticalMenuVisible()\" class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\">\n <ocx-slot name=\"{{verticalMenuSlotName}}\">\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-slot name=\"onecx-page-footer\"></ocx-slot>\n </div>\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n </ng-container>\n\n <ng-template #noTheme>\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}.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-onecx-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-onecx-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-onecx-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li a{color:var(--p-onecx-menu-item-text-color);border-left:4px solid transparent}.menu-wrapper .layout-menu-container .layout-menu li a:hover{background-color:var(--p-onecx-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-menu li a.active-menuitem-routerlink{background-color:var(--p-onecx-menu-active-item-bg-color);color:var(--p-onecx-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-onecx-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li.active-menuitem>a{background-color:var(--p-onecx-menu-active-item-bg-color);color:var(--p-onecx-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-onecx-primary-color)}.menu-wrapper .layout-menu-container .layout-inline-menu{border-color:var(--p-onecx-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-onecx-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-onecx-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel{background-color:var(--p-onecx-menu-bg-color)}.layout-wrapper .menu-wrapper{transform:translate3d(-17rem,0,0);transition:transform var(--p-onecx-animation-duration);transition-timing-function:cubic-bezier(.86,0,.07,1)}.layout-wrapper .layout-main{transition:margin-left var(--p-onecx-animation-duration)}.layout-wrapper.layout-menu-active .menu-wrapper{transform:translateZ(0)}.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", "slotStyles", "slotClasses", "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$1.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", "isStaticalMenu", "isHorizontalMenu"], outputs: ["menuButtonClick"] }, { 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
219
  };
275
220
  PortalViewportComponent = __decorate([
276
221
  UntilDestroy(),
277
- __metadata("design:paramtypes", [Renderer2,
278
- PrimeNGConfig,
279
- MessageService,
280
- AppStateService,
281
- PortalMessageService,
282
- UserService,
283
- ThemeService,
284
- HttpClient,
285
- Router, Object, Object])
222
+ __metadata("design:paramtypes", [])
286
223
  ], PortalViewportComponent);
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalViewportComponent, decorators: [{
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PortalViewportComponent, decorators: [{
288
225
  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: [{
226
+ args: [{ standalone: false, selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n [ngClass]=\"{\n 'layout-wrapper layout-topbar-var': themeService.currentTheme$ | async,\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible() && (isVerticalMenuComponentDefined$ | async),\n }\"\n [class]=\"'layout-menu-' + this.colorScheme\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header\n [menuButtonTitle]=\"menuButtonTitle\"\n (menuButtonClick)=\"onMenuButtonClick($event)\"\n [isStaticalMenu]=\"isStaticalMenuVisible()\"\n [isHorizontalMenu]=\"isHorizontalMenuMode()\"\n >\n <div [hidden]=\"!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 [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div [hidden]=\"!isStaticalMenuVisible()\" class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\">\n <ocx-slot name=\"{{verticalMenuSlotName}}\">\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-slot name=\"onecx-page-footer\"></ocx-slot>\n </div>\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n </ng-container>\n\n <ng-template #noTheme>\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}.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-onecx-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-onecx-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-onecx-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li a{color:var(--p-onecx-menu-item-text-color);border-left:4px solid transparent}.menu-wrapper .layout-menu-container .layout-menu li a:hover{background-color:var(--p-onecx-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-menu li a.active-menuitem-routerlink{background-color:var(--p-onecx-menu-active-item-bg-color);color:var(--p-onecx-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-onecx-primary-color)}.menu-wrapper .layout-menu-container .layout-menu li.active-menuitem>a{background-color:var(--p-onecx-menu-active-item-bg-color);color:var(--p-onecx-menu-active-item-text-color);font-weight:700;border-left:4px solid var(--p-onecx-primary-color)}.menu-wrapper .layout-menu-container .layout-inline-menu{border-color:var(--p-onecx-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-onecx-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-onecx-menu-item-hover-bg-color)}.menu-wrapper .layout-menu-container .layout-inline-menu .layout-inline-menu-action-panel{background-color:var(--p-onecx-menu-bg-color)}.layout-wrapper .menu-wrapper{transform:translate3d(-17rem,0,0);transition:transform var(--p-onecx-animation-duration);transition-timing-function:cubic-bezier(.86,0,.07,1)}.layout-wrapper .layout-main{transition:margin-left var(--p-onecx-animation-duration)}.layout-wrapper.layout-menu-active .menu-wrapper{transform:translateZ(0)}.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"] }]
227
+ }], ctorParameters: () => [], propDecorators: { onResize: [{
301
228
  type: HostListener,
302
229
  args: ['window:resize']
303
230
  }] } });
304
231
 
232
+ class ShellSrcDirective {
233
+ get ocxShellSrc() {
234
+ return this._src;
235
+ }
236
+ set ocxShellSrc(value) {
237
+ if (value && this._src !== value && window.location.hostname) {
238
+ try {
239
+ if (new URL(value, window.location.origin).hostname === window.location.hostname) {
240
+ this.httpClient.get(value, { observe: 'response', responseType: 'blob' }).subscribe((response) => {
241
+ // ok with content
242
+ if (response?.status === 200) {
243
+ const url = URL.createObjectURL(response.body);
244
+ this.el.nativeElement.addEventListener('load', () => {
245
+ URL.revokeObjectURL(url);
246
+ });
247
+ this.el.nativeElement.src = url;
248
+ }
249
+ // no content
250
+ if (response?.status === 204) {
251
+ this.error.emit();
252
+ }
253
+ }, () => {
254
+ // on error
255
+ this.error.emit();
256
+ }, () => {
257
+ // on complete
258
+ this.el.nativeElement.style.visibility = 'initial';
259
+ });
260
+ }
261
+ else {
262
+ this.el.nativeElement.src = value;
263
+ this.el.nativeElement.style.visibility = 'initial';
264
+ }
265
+ }
266
+ catch (error) {
267
+ console.error('Cannot parse URL ', value, error);
268
+ this.el.nativeElement.src = value;
269
+ this.el.nativeElement.style.visibility = 'initial';
270
+ }
271
+ this._src = value;
272
+ }
273
+ }
274
+ constructor() {
275
+ this.el = inject(ElementRef);
276
+ this.httpClient = inject(HttpClient);
277
+ // eslint-disable-next-line @angular-eslint/no-output-native
278
+ this.error = new EventEmitter();
279
+ this.el.nativeElement.style.visibility = 'hidden';
280
+ }
281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ShellSrcDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
282
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.11", type: ShellSrcDirective, isStandalone: false, selector: "[ocxShellSrc]", inputs: { ocxShellSrc: "ocxShellSrc" }, outputs: { error: "error" }, ngImport: i0 }); }
283
+ }
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ShellSrcDirective, decorators: [{
285
+ type: Directive,
286
+ args: [{ selector: '[ocxShellSrc]', standalone: false }]
287
+ }], ctorParameters: () => [], propDecorators: { error: [{
288
+ type: Output
289
+ }], ocxShellSrc: [{
290
+ type: Input
291
+ }] } });
292
+
305
293
  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] }); }
294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ShellCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
295
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: ShellCoreModule, declarations: [PortalViewportComponent,
296
+ HeaderComponent,
297
+ GlobalErrorComponent,
298
+ AppLoadingSpinnerComponent,
299
+ ShellSrcDirective], imports: [AngularRemoteComponentsModule,
300
+ CommonModule,
301
+ RouterModule,
302
+ SkeletonModule,
303
+ ToastModule,
304
+ TooltipModule,
305
+ TranslateModule], exports: [GlobalErrorComponent,
306
+ HeaderComponent,
307
+ PortalViewportComponent,
308
+ ToastModule,
309
+ TooltipModule,
310
+ TranslateModule] }); }
311
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ShellCoreModule, providers: [providePrimeNG(), { provide: MessageService, useClass: MessageService }], imports: [AngularRemoteComponentsModule,
312
+ CommonModule,
313
+ RouterModule,
314
+ SkeletonModule,
315
+ ToastModule,
316
+ TooltipModule,
317
+ TranslateModule, ToastModule,
318
+ TooltipModule,
319
+ TranslateModule] }); }
309
320
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, decorators: [{
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ShellCoreModule, decorators: [{
311
322
  type: NgModule,
312
323
  args: [{
313
- imports: [CommonModule, RouterModule, AngularRemoteComponentsModule, AngularAcceleratorModule, ToastModule, SkeletonModule, PortalCoreModule],
314
- declarations: [PortalViewportComponent, HeaderComponent, PortalFooterComponent, GlobalErrorComponent],
315
- exports: [PortalViewportComponent, HeaderComponent, PortalFooterComponent, ToastModule, GlobalErrorComponent],
324
+ imports: [
325
+ AngularRemoteComponentsModule,
326
+ CommonModule,
327
+ RouterModule,
328
+ SkeletonModule,
329
+ ToastModule,
330
+ TooltipModule,
331
+ TranslateModule,
332
+ ],
333
+ declarations: [
334
+ PortalViewportComponent,
335
+ HeaderComponent,
336
+ GlobalErrorComponent,
337
+ AppLoadingSpinnerComponent,
338
+ ShellSrcDirective,
339
+ ],
340
+ exports: [
341
+ GlobalErrorComponent,
342
+ HeaderComponent,
343
+ PortalViewportComponent,
344
+ ToastModule,
345
+ TooltipModule,
346
+ TranslateModule,
347
+ ],
348
+ providers: [providePrimeNG(), { provide: MessageService, useClass: MessageService }],
316
349
  }]
317
350
  }] });
318
351
 
@@ -327,10 +360,10 @@ class PermissionsCacheService {
327
360
  }
328
361
  return this.permissions[key];
329
362
  }
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' }); }
363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PermissionsCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
364
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PermissionsCacheService, providedIn: 'root' }); }
332
365
  }
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PermissionsCacheService, decorators: [{
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: PermissionsCacheService, decorators: [{
334
367
  type: Injectable,
335
368
  args: [{ providedIn: 'root' }]
336
369
  }] });
@@ -341,5 +374,5 @@ const SHELL_BFF_PREFIX = 'shell-bff';
341
374
  * Generated bundle index. Do not edit.
342
375
  */
343
376
 
344
- export { GlobalErrorComponent, HeaderComponent, PermissionsCacheService, PortalFooterComponent, PortalViewportComponent, SHELL_BFF_PREFIX, SHOW_CONTENT_PROVIDER, ShellCoreModule, WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER };
377
+ export { GlobalErrorComponent, HeaderComponent, PermissionsCacheService, PortalViewportComponent, SHELL_BFF_PREFIX, SHOW_CONTENT_PROVIDER, ShellCoreModule, WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER };
345
378
  //# sourceMappingURL=onecx-shell-core.mjs.map