@onecx/shell-core 5.31.0 → 5.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/portal-footer/portal-footer.component.mjs +6 -16
- package/esm2022/lib/components/portal-header/header.component.mjs +15 -10
- package/esm2022/lib/components/portal-viewport/portal-viewport.component.mjs +15 -18
- package/esm2022/lib/shell-core.module.mjs +56 -6
- package/fesm2022/onecx-shell-core.mjs +81 -39
- package/fesm2022/onecx-shell-core.mjs.map +1 -1
- package/lib/components/portal-footer/portal-footer.component.d.ts +1 -4
- package/lib/components/portal-header/header.component.d.ts +5 -4
- package/lib/components/portal-viewport/portal-viewport.component.d.ts +4 -7
- package/lib/shell-core.module.d.ts +8 -6
- package/package.json +4 -3
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i3$1 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Component, Input, InjectionToken, EventEmitter, Directive, Output, Optional, Inject,
|
|
4
|
+
import { Component, Input, InjectionToken, EventEmitter, Directive, Output, Optional, Inject, HostListener, NgModule, Injectable } from '@angular/core';
|
|
5
5
|
import * as i1 from '@angular/router';
|
|
6
6
|
import { Router, RouterModule } from '@angular/router';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i3 from '@onecx/angular-remote-components';
|
|
8
8
|
import { AngularRemoteComponentsModule } from '@onecx/angular-remote-components';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i8 from 'primeng/toast';
|
|
10
10
|
import { ToastModule } from 'primeng/toast';
|
|
11
11
|
import * as i1$2 from '@onecx/angular-integration-interface';
|
|
12
12
|
import { CONFIG_KEY, ThemeService, AppStateService, PortalMessageService, UserService } from '@onecx/angular-integration-interface';
|
|
13
|
-
import { withLatestFrom, map, combineLatest, mergeMap, of, filter,
|
|
13
|
+
import { withLatestFrom, map, combineLatest, mergeMap, of, filter, first, from, shareReplay } from 'rxjs';
|
|
14
14
|
import * as i1$1 from '@angular/common/http';
|
|
15
15
|
import { HttpClient } from '@angular/common/http';
|
|
16
16
|
import { __decorate, __metadata } from 'tslib';
|
|
17
17
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
18
18
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
19
|
-
import * as i4
|
|
19
|
+
import * as i4 from 'primeng/skeleton';
|
|
20
20
|
import { SkeletonModule } from 'primeng/skeleton';
|
|
21
|
+
import * as i5 from 'primeng/tooltip';
|
|
22
|
+
import { TooltipModule } from 'primeng/tooltip';
|
|
23
|
+
import * as i7 from '@ngx-translate/core';
|
|
24
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
21
25
|
import * as i1$3 from 'primeng/api';
|
|
22
26
|
import { PrimeNGConfig, MessageService } from 'primeng/api';
|
|
23
27
|
|
|
@@ -131,16 +135,6 @@ class PortalFooterComponent {
|
|
|
131
135
|
return of(theme.logoUrl || portalData.logoUrl);
|
|
132
136
|
}));
|
|
133
137
|
}
|
|
134
|
-
ngOnInit() {
|
|
135
|
-
this.copyrightMsg$ = concat(of('All rights reserved.'), this.appState.currentWorkspace$.pipe(map((portalData) => {
|
|
136
|
-
if (!(portalData.footerLabel === '' ||
|
|
137
|
-
portalData.footerLabel === 'string' ||
|
|
138
|
-
portalData.footerLabel === undefined)) {
|
|
139
|
-
return portalData.companyName || portalData.footerLabel || 'All rights reserved.';
|
|
140
|
-
}
|
|
141
|
-
return '';
|
|
142
|
-
})));
|
|
143
|
-
}
|
|
144
138
|
onErrorHandleSrc() {
|
|
145
139
|
this.logoUrl$ = of(undefined);
|
|
146
140
|
}
|
|
@@ -150,11 +144,11 @@ class PortalFooterComponent {
|
|
|
150
144
|
}
|
|
151
145
|
}
|
|
152
146
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalFooterComponent, deps: [{ token: i1$2.ConfigurationService }, { token: i1.Router }, { token: i1$2.AppStateService }, { token: i1$2.ThemeService }, { token: WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: PortalFooterComponent, selector: "ocx-shell-footer", ngImport: i0, template: "<div class=\"
|
|
147
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: PortalFooterComponent, selector: "ocx-shell-footer", ngImport: i0, template: "<div class=\"mx-3 sm:ml-4 py-2 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n <div class=\"flex flex-wrap align-items-center justify-content-start column-gap-3 row-gap-1\">\n <img\n *ngIf=\"logoUrl$ | async as logoUrl\"\n alt=\"logo\"\n class=\"max-h-1rem\"\n [ocxShellSrc]=\"logoUrl ?? ''\"\n (error)=\"onErrorHandleSrc()\"\n (load)=\"onLoad(logoUrl)\"\n />\n <ocx-slot name=\"onecx-shell-footer\"></ocx-slot>\n </div>\n <div class=\"text-xs\">{{versionInfo$ | async}}</div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i3.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ShellSrcDirective, selector: "[ocxShellSrc]", inputs: ["ocxShellSrc"], outputs: ["error"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] }); }
|
|
154
148
|
}
|
|
155
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalFooterComponent, decorators: [{
|
|
156
150
|
type: Component,
|
|
157
|
-
args: [{ selector: 'ocx-shell-footer', template: "<div class=\"
|
|
151
|
+
args: [{ selector: 'ocx-shell-footer', template: "<div class=\"mx-3 sm:ml-4 py-2 flex flex-wrap align-items-center justify-content-between row-gap-1\">\n <div class=\"flex flex-wrap align-items-center justify-content-start column-gap-3 row-gap-1\">\n <img\n *ngIf=\"logoUrl$ | async as logoUrl\"\n alt=\"logo\"\n class=\"max-h-1rem\"\n [ocxShellSrc]=\"logoUrl ?? ''\"\n (error)=\"onErrorHandleSrc()\"\n (load)=\"onLoad(logoUrl)\"\n />\n <ocx-slot name=\"onecx-shell-footer\"></ocx-slot>\n </div>\n <div class=\"text-xs\">{{versionInfo$ | async}}</div>\n</div>\n" }]
|
|
158
152
|
}], ctorParameters: () => [{ type: i1$2.ConfigurationService }, { type: i1.Router }, { type: i1$2.AppStateService }, { type: i1$2.ThemeService }, { type: undefined, decorators: [{
|
|
159
153
|
type: Optional
|
|
160
154
|
}, {
|
|
@@ -167,12 +161,13 @@ let HeaderComponent = class HeaderComponent {
|
|
|
167
161
|
this.themeService = themeService;
|
|
168
162
|
this.appStateService = appStateService;
|
|
169
163
|
this.workspaceConfigBffService = workspaceConfigBffService;
|
|
170
|
-
this.menuExpanded = false;
|
|
171
|
-
this.fallbackImg = false;
|
|
172
164
|
this.fullPortalLayout = true;
|
|
173
165
|
this.homeNavUrl = '/';
|
|
174
166
|
this.homeNavTitle = 'Home';
|
|
167
|
+
this.isHorizontalMenu = false;
|
|
175
168
|
this.menuButtonClick = new EventEmitter();
|
|
169
|
+
this.menuExpanded = false;
|
|
170
|
+
this.fallbackImg = false;
|
|
176
171
|
this.logoUrl$ = combineLatest([
|
|
177
172
|
this.themeService.currentTheme$.asObservable(),
|
|
178
173
|
this.appStateService.currentWorkspace$.asObservable(),
|
|
@@ -192,7 +187,7 @@ let HeaderComponent = class HeaderComponent {
|
|
|
192
187
|
}
|
|
193
188
|
}
|
|
194
189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: HeaderComponent, deps: [{ token: i1$2.ThemeService }, { token: i1$2.AppStateService }, { token: WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
|
-
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
|
|
190
|
+
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", isHorizontalMenu: "isHorizontalMenu" }, outputs: { menuButtonClick: "menuButtonClick" }, ngImport: i0, template: "<div class=\"layout-topbar\" id=\"ocx_header\" role=\"banner\">\n <div class=\"layout-topbar-left\" [ngClass]=\"{'vertical-menu': !isHorizontalMenu}\">\n <div *ngIf=\"logoUrl$ | async as logoUrl\" class=\"layout-topbar-logo\">\n <img\n *ngIf=\"logoUrl && !fallbackImg\"\n id=\"ocx_app_logo\"\n [ocxShellSrc]=\"logoUrl\"\n alt=\"Logo\"\n (error)=\"fallbackImg = true\"\n (load)=\"onLoad(logoUrl)\"\n />\n\n <svg *ngIf=\"logoUrl === 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 </div>\n <a\n id=\"ocx_vertical_menu_action_toggle\"\n class=\"layout-menu-button\"\n (click)=\"onMenuButtonClick($event)\"\n pRipple\n [pTooltip]=\"'OCX_HEADER.MENU_TOGGLE' | translate\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n >\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\">\n <div class=\"layout-topbar-actions-left\">\n <ng-content></ng-content>\n </div>\n <div class=\"layout-topbar-actions-right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"layout-topbar-items\">\n <ng-template #skeleton>\n <div class=\"flex align-items-center h-full justify-content-center\" style=\"width: 56px\">\n <p-skeleton shape=\"circle\" size=\"2.5rem\" class=\"h-full flex align-items-center\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n</div>\n", styles: [".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: "component", type: i3.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: ShellSrcDirective, selector: "[ocxShellSrc]", inputs: ["ocxShellSrc"], outputs: ["error"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], animations: [
|
|
196
191
|
trigger('topbarActionPanelAnimation', [
|
|
197
192
|
transition(':enter', [
|
|
198
193
|
style({ opacity: 0, transform: 'scaleY(0.8)' }),
|
|
@@ -217,7 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
217
212
|
]),
|
|
218
213
|
transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),
|
|
219
214
|
]),
|
|
220
|
-
], template: "<div class=\"layout-topbar
|
|
215
|
+
], template: "<div class=\"layout-topbar\" id=\"ocx_header\" role=\"banner\">\n <div class=\"layout-topbar-left\" [ngClass]=\"{'vertical-menu': !isHorizontalMenu}\">\n <div *ngIf=\"logoUrl$ | async as logoUrl\" class=\"layout-topbar-logo\">\n <img\n *ngIf=\"logoUrl && !fallbackImg\"\n id=\"ocx_app_logo\"\n [ocxShellSrc]=\"logoUrl\"\n alt=\"Logo\"\n (error)=\"fallbackImg = true\"\n (load)=\"onLoad(logoUrl)\"\n />\n\n <svg *ngIf=\"logoUrl === 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 </div>\n <a\n id=\"ocx_vertical_menu_action_toggle\"\n class=\"layout-menu-button\"\n (click)=\"onMenuButtonClick($event)\"\n pRipple\n [pTooltip]=\"'OCX_HEADER.MENU_TOGGLE' | translate\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n >\n <i class=\"pi pi-chevron-right\"></i>\n </a>\n </div>\n\n <div class=\"layout-topbar-right\">\n <div class=\"layout-topbar-actions-left\">\n <ng-content></ng-content>\n </div>\n <div class=\"layout-topbar-actions-right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"layout-topbar-items\">\n <ng-template #skeleton>\n <div class=\"flex align-items-center h-full justify-content-center\" style=\"width: 56px\">\n <p-skeleton shape=\"circle\" size=\"2.5rem\" class=\"h-full flex align-items-center\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n</div>\n", styles: [".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"] }]
|
|
221
216
|
}], ctorParameters: () => [{ type: i1$2.ThemeService }, { type: i1$2.AppStateService }, { type: undefined, decorators: [{
|
|
222
217
|
type: Optional
|
|
223
218
|
}, {
|
|
@@ -231,6 +226,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
231
226
|
type: Input
|
|
232
227
|
}], homeNavTitle: [{
|
|
233
228
|
type: Input
|
|
229
|
+
}], isHorizontalMenu: [{
|
|
230
|
+
type: Input
|
|
234
231
|
}], menuButtonClick: [{
|
|
235
232
|
type: Output
|
|
236
233
|
}] } });
|
|
@@ -247,8 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
247
244
|
}] });
|
|
248
245
|
|
|
249
246
|
let PortalViewportComponent = class PortalViewportComponent {
|
|
250
|
-
constructor(
|
|
251
|
-
this.renderer = renderer;
|
|
247
|
+
constructor(primengConfig, messageService, appStateService, portalMessageService, userService, themeService, httpClient, router, showContentProvider, workspaceConfigBffService) {
|
|
252
248
|
this.primengConfig = primengConfig;
|
|
253
249
|
this.messageService = messageService;
|
|
254
250
|
this.appStateService = appStateService;
|
|
@@ -261,9 +257,7 @@ let PortalViewportComponent = class PortalViewportComponent {
|
|
|
261
257
|
this.workspaceConfigBffService = workspaceConfigBffService;
|
|
262
258
|
this.menuButtonTitle = '';
|
|
263
259
|
this.menuActive = true;
|
|
264
|
-
this.topbarTheme = 'var';
|
|
265
260
|
this.colorScheme = 'light';
|
|
266
|
-
this.layoutMode = 'light';
|
|
267
261
|
this.menuMode = 'static';
|
|
268
262
|
this.inputStyle = 'outline';
|
|
269
263
|
this.ripple = true;
|
|
@@ -271,9 +265,9 @@ let PortalViewportComponent = class PortalViewportComponent {
|
|
|
271
265
|
this.portalMessageService.message$.subscribe((message) => this.messageService.add(message));
|
|
272
266
|
this.userService.profile$.pipe(untilDestroyed(this)).subscribe((profile) => {
|
|
273
267
|
this.menuMode =
|
|
274
|
-
profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase()
|
|
268
|
+
profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() ?? this.menuMode;
|
|
275
269
|
this.colorScheme =
|
|
276
|
-
profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase()
|
|
270
|
+
profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() ?? this.colorScheme;
|
|
277
271
|
});
|
|
278
272
|
this.themeService.currentTheme$
|
|
279
273
|
.pipe(first(), mergeMap((theme) => {
|
|
@@ -303,6 +297,7 @@ let PortalViewportComponent = class PortalViewportComponent {
|
|
|
303
297
|
.pipe(untilDestroyed(this))
|
|
304
298
|
.pipe(filter((i) => i !== undefined))
|
|
305
299
|
.subscribe((err) => {
|
|
300
|
+
console.error('global error');
|
|
306
301
|
this.globalErrMsg = err;
|
|
307
302
|
});
|
|
308
303
|
this.onResize();
|
|
@@ -333,13 +328,12 @@ let PortalViewportComponent = class PortalViewportComponent {
|
|
|
333
328
|
isHorizontalMenuVisible() {
|
|
334
329
|
return this.isHorizontalMenuMode();
|
|
335
330
|
}
|
|
336
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalViewportComponent, deps: [{ token:
|
|
337
|
-
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
|
|
331
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalViewportComponent, deps: [{ token: i1$3.PrimeNGConfig }, { token: i1$3.MessageService }, { token: i1$2.AppStateService }, { token: i1$2.PortalMessageService }, { token: i1$2.UserService }, { token: i1$2.ThemeService }, { token: i1$1.HttpClient }, { token: i1.Router }, { token: SHOW_CONTENT_PROVIDER, optional: true }, { token: WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
332
|
+
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 [ngClass]=\"{\n 'layout-wrapper layout-topbar-var': appStateService.currentWorkspace$ | async,\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible(),\n 'layout-menu-button-hidden': isHorizontalMenuMode()\n }\"\n [class]=\"'layout-menu-' + this.colorScheme\"\n>\n <ng-container *ngIf=\"appStateService.currentWorkspace$ | async; else noWorkspace\">\n <ocx-shell-header\n [menuButtonTitle]=\"menuButtonTitle\"\n (menuButtonClick)=\"onMenuButtonClick($event)\"\n [isHorizontalMenu]=\"isHorizontalMenuMode()\"\n >\n <div *ngIf=\"isHorizontalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-horizontal-menu\">\n <ng-template #skeleton>\n <div class=\"ml-4 flex flex-row gap-4\">\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </ocx-shell-header>\n\n <p-toast></p-toast>\n\n <div *ngIf=\"isStaticalMenuVisible()\" class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\">\n <ocx-slot name=\"onecx-shell-vertical-menu\">\n <ng-template #skeleton>\n <p-skeleton class=\"w-full h-full inline-block p-2\" height=\"35px\"></p-skeleton>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n <ng-container *ngIf=\"!showContentProvider || (showContentProvider.showContent$ | async); else appLoading\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </ng-container>\n </div>\n\n <ocx-shell-footer></ocx-shell-footer>\n </div>\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n </ng-container>\n\n <ng-template #noWorkspace>\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #globalError>\n <ocx-shell-error [errCode]=\"globalErrMsg\"></ocx-shell-error>\n</ng-template>\n\n<ng-template #appLoading>\n <ocx-app-loading-spinner></ocx-app-loading-spinner>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i3.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.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.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i8.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: HeaderComponent, selector: "ocx-shell-header", inputs: ["menuButtonTitle", "fullPortalLayout", "homeNavUrl", "homeNavTitle", "isHorizontalMenu"], outputs: ["menuButtonClick"] }, { kind: "component", type: PortalFooterComponent, selector: "ocx-shell-footer" }, { kind: "component", type: GlobalErrorComponent, selector: "ocx-shell-error", inputs: ["errCode"] }, { kind: "component", type: AppLoadingSpinnerComponent, selector: "ocx-app-loading-spinner" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] }); }
|
|
338
333
|
};
|
|
339
334
|
PortalViewportComponent = __decorate([
|
|
340
335
|
UntilDestroy(),
|
|
341
|
-
__metadata("design:paramtypes", [
|
|
342
|
-
PrimeNGConfig,
|
|
336
|
+
__metadata("design:paramtypes", [PrimeNGConfig,
|
|
343
337
|
MessageService,
|
|
344
338
|
AppStateService,
|
|
345
339
|
PortalMessageService,
|
|
@@ -350,8 +344,8 @@ PortalViewportComponent = __decorate([
|
|
|
350
344
|
], PortalViewportComponent);
|
|
351
345
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PortalViewportComponent, decorators: [{
|
|
352
346
|
type: Component,
|
|
353
|
-
args: [{ selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n
|
|
354
|
-
}], ctorParameters: () => [{ type:
|
|
347
|
+
args: [{ selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n [ngClass]=\"{\n 'layout-wrapper layout-topbar-var': appStateService.currentWorkspace$ | async,\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n 'layout-menu-active': isStaticalMenuVisible(),\n 'layout-menu-button-hidden': isHorizontalMenuMode()\n }\"\n [class]=\"'layout-menu-' + this.colorScheme\"\n>\n <ng-container *ngIf=\"appStateService.currentWorkspace$ | async; else noWorkspace\">\n <ocx-shell-header\n [menuButtonTitle]=\"menuButtonTitle\"\n (menuButtonClick)=\"onMenuButtonClick($event)\"\n [isHorizontalMenu]=\"isHorizontalMenuMode()\"\n >\n <div *ngIf=\"isHorizontalMenuVisible()\">\n <ocx-slot name=\"onecx-shell-horizontal-menu\">\n <ng-template #skeleton>\n <div class=\"ml-4 flex flex-row gap-4\">\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n <p-skeleton class=\"w-full h-full inline-block\" height=\"35px\" width=\"120px\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </div>\n </ocx-shell-header>\n\n <p-toast></p-toast>\n\n <div *ngIf=\"isStaticalMenuVisible()\" class=\"menu-wrapper\">\n <div class=\"layout-menu-container overflow-auto\">\n <ocx-slot name=\"onecx-shell-vertical-menu\">\n <ng-template #skeleton>\n <p-skeleton class=\"w-full h-full inline-block p-2\" height=\"35px\"></p-skeleton>\n </ng-template>\n </ocx-slot>\n </div>\n </div>\n\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n <ng-container *ngIf=\"!showContentProvider || (showContentProvider.showContent$ | async); else appLoading\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </ng-container>\n </div>\n\n <ocx-shell-footer></ocx-shell-footer>\n </div>\n <div *ngIf=\"menuActive || !!activeTopbarItem\" class=\"layout-mask modal-in\"></div>\n </ng-container>\n\n <ng-template #noWorkspace>\n <div class=\"layout-main\">\n <div class=\"layout-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #globalError>\n <ocx-shell-error [errCode]=\"globalErrMsg\"></ocx-shell-error>\n</ng-template>\n\n<ng-template #appLoading>\n <ocx-app-loading-spinner></ocx-app-loading-spinner>\n</ng-template>\n" }]
|
|
348
|
+
}], ctorParameters: () => [{ type: i1$3.PrimeNGConfig }, { type: i1$3.MessageService }, { type: i1$2.AppStateService }, { type: i1$2.PortalMessageService }, { type: i1$2.UserService }, { type: i1$2.ThemeService }, { type: i1$1.HttpClient }, { type: i1.Router }, { type: undefined, decorators: [{
|
|
355
349
|
type: Optional
|
|
356
350
|
}, {
|
|
357
351
|
type: Inject,
|
|
@@ -368,15 +362,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
368
362
|
|
|
369
363
|
class ShellCoreModule {
|
|
370
364
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
371
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, declarations: [PortalViewportComponent,
|
|
372
|
-
|
|
365
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, declarations: [PortalViewportComponent,
|
|
366
|
+
HeaderComponent,
|
|
367
|
+
PortalFooterComponent,
|
|
368
|
+
GlobalErrorComponent,
|
|
369
|
+
AppLoadingSpinnerComponent,
|
|
370
|
+
ShellSrcDirective], imports: [AngularRemoteComponentsModule,
|
|
371
|
+
CommonModule,
|
|
372
|
+
RouterModule,
|
|
373
|
+
SkeletonModule,
|
|
374
|
+
ToastModule,
|
|
375
|
+
TooltipModule,
|
|
376
|
+
TranslateModule], exports: [GlobalErrorComponent,
|
|
377
|
+
HeaderComponent,
|
|
378
|
+
PortalViewportComponent,
|
|
379
|
+
PortalFooterComponent,
|
|
380
|
+
ToastModule,
|
|
381
|
+
TooltipModule,
|
|
382
|
+
TranslateModule] }); }
|
|
383
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, imports: [AngularRemoteComponentsModule,
|
|
384
|
+
CommonModule,
|
|
385
|
+
RouterModule,
|
|
386
|
+
SkeletonModule,
|
|
387
|
+
ToastModule,
|
|
388
|
+
TooltipModule,
|
|
389
|
+
TranslateModule, ToastModule,
|
|
390
|
+
TooltipModule,
|
|
391
|
+
TranslateModule] }); }
|
|
373
392
|
}
|
|
374
393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ShellCoreModule, decorators: [{
|
|
375
394
|
type: NgModule,
|
|
376
395
|
args: [{
|
|
377
|
-
imports: [
|
|
378
|
-
|
|
379
|
-
|
|
396
|
+
imports: [
|
|
397
|
+
AngularRemoteComponentsModule,
|
|
398
|
+
CommonModule,
|
|
399
|
+
RouterModule,
|
|
400
|
+
SkeletonModule,
|
|
401
|
+
ToastModule,
|
|
402
|
+
TooltipModule,
|
|
403
|
+
TranslateModule,
|
|
404
|
+
],
|
|
405
|
+
declarations: [
|
|
406
|
+
PortalViewportComponent,
|
|
407
|
+
HeaderComponent,
|
|
408
|
+
PortalFooterComponent,
|
|
409
|
+
GlobalErrorComponent,
|
|
410
|
+
AppLoadingSpinnerComponent,
|
|
411
|
+
ShellSrcDirective,
|
|
412
|
+
],
|
|
413
|
+
exports: [
|
|
414
|
+
GlobalErrorComponent,
|
|
415
|
+
HeaderComponent,
|
|
416
|
+
PortalViewportComponent,
|
|
417
|
+
PortalFooterComponent,
|
|
418
|
+
ToastModule,
|
|
419
|
+
TooltipModule,
|
|
420
|
+
TranslateModule,
|
|
421
|
+
],
|
|
380
422
|
}]
|
|
381
423
|
}] });
|
|
382
424
|
|