@onecx/shell-core 7.0.0-rc.2 → 7.0.0-rc.3
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.
|
@@ -35,10 +35,10 @@ class GlobalErrorComponent {
|
|
|
35
35
|
reload() {
|
|
36
36
|
window.location.reload();
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GlobalErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", 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(--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:#fff;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"] }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GlobalErrorComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
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(--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:#fff;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"] }]
|
|
44
44
|
}], ctorParameters: () => [], propDecorators: { errCode: [{
|
|
@@ -62,8 +62,8 @@ let HeaderComponent = class HeaderComponent {
|
|
|
62
62
|
this.themeLogoLoadingFailed = data;
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderComponent, isStandalone: false, selector: "ocx-shell-header", inputs: { menuButtonTitle: "menuButtonTitle", fullPortalLayout: "fullPortalLayout", homeNavUrl: "homeNavUrl", homeNavTitle: "homeNavTitle" }, outputs: { menuButtonClick: "menuButtonClick" }, ngImport: i0, template: "<header class=\"onecx-header\" id=\"ocx_header\">\n <!-- Placeholder for onecx-shell-header slot group -->\n <div class=\"onecx-header-start\" [attr.aria-label]=\"'OCX_HEADER.HEADER_LEFT' | translate\">\n <ocx-slot\n name=\"onecx-shell-header-left\"\n class=\"flex flex-row flex-nowrap justify-content-start align-items-center\"\n [inputs]=\"{ imageStyleClass: 'max-h-3rem max-w-9rem vertical-align-middle' }\"\n [outputs]=\"{ imageLoadingFailed: logoLoadingEmitter }\"\n >\n </ocx-slot>\n <div *ngIf=\"themeLogoLoadingFailed\"></div>\n </div>\n <div class=\"onecx-header-center\" [attr.aria-label]=\"'OCX_HEADER.HEADER_CENTER' | translate\">\n <div>\n <ocx-slot name=\"onecx-shell-horizontal-menu\"></ocx-slot>\n </div>\n </div>\n <div class=\"onecx-header-end\" [attr.aria-label]=\"'OCX_HEADER.HEADER_RIGHT' | translate\">\n <div class=\"onecx_header_end_actions_right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"onecx_header_end_actions_right_items\"> </ocx-slot>\n </div>\n </div>\n</header>\n", styles: [".onecx-header{color:var(--topbar-item-text-color);background-color:var(--topbar-bg-color);width:100%;height:4rem;transition:width var(--p-transition-duration);display:flex;justify-content:space-between;align-items:center;row-gap:1rem}.onecx-header ocx-slot{height:100%}.onecx-header .onecx-header-start,.onecx-header .onecx-header-center,.onecx-header .onecx-header-end{height:100%;display:flex;align-items:center;justify-content:space-between}.onecx-header .onecx-header-start{flex-grow:0;flex-shrink:1;background-color:var(--topbar-left-bg-color);max-width:20rem}.onecx-header .onecx-header-start .onecx-menu-button{display:flex;position:relative;right:1.25rem;width:2.5rem;height:2.5rem;cursor:pointer;border-radius:50%;color:var(--topbar-menu-button-text-color, #ffffff);background-color:var(--topbar-menu-button-bg-color)}.onecx-header .onecx-header-start .onecx-menu-button i{transition:transform var(--p-transition-duration)}.onecx-header .onecx-header-start .onecx-menu-button .toggle-button-direction{transform:rotate(180deg)}.onecx-header .onecx-header-start .onecx-menu-button .hidden{display:none}.onecx-header .onecx-header-center{flex-grow:1;flex-shrink:1;justify-content:left}.onecx-header .onecx-header-end{flex-grow:0;flex-shrink:1;max-width:25rem}.onecx-header .onecx-header-end .onecx_header_end_actions_right{height:100%;margin-right:.75rem}.onecx-header .onecx-header-end .onecx_header_end_actions_right .onecx_header_end_actions_right_items{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;height:100%}.onecx-header .onecx-header-end .onecx_header_end_actions_right .onecx_header_end_actions_right_items>*{margin:auto}\n"], dependencies: [{ kind: "component", type: i1.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "slotStyles", "slotClasses", "inputs", "outputs"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [
|
|
67
67
|
trigger('topbarActionPanelAnimation', [
|
|
68
68
|
transition(':enter', [
|
|
69
69
|
style({ opacity: 0, transform: 'scaleY(0.8)' }),
|
|
@@ -77,7 +77,7 @@ HeaderComponent = __decorate([
|
|
|
77
77
|
UntilDestroy(),
|
|
78
78
|
__metadata("design:paramtypes", [])
|
|
79
79
|
], HeaderComponent);
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
81
81
|
type: Component,
|
|
82
82
|
args: [{ standalone: false, selector: 'ocx-shell-header', animations: [
|
|
83
83
|
trigger('topbarActionPanelAnimation', [
|
|
@@ -105,10 +105,10 @@ const SHOW_CONTENT_PROVIDER = new InjectionToken('SHOW_CONTENT_PROVIDER');
|
|
|
105
105
|
const WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER = new InjectionToken('WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER');
|
|
106
106
|
|
|
107
107
|
class AppLoadingSpinnerComponent {
|
|
108
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AppLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", 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"] }); }
|
|
110
110
|
}
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AppLoadingSpinnerComponent, decorators: [{
|
|
112
112
|
type: Component,
|
|
113
113
|
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"] }]
|
|
114
114
|
}] });
|
|
@@ -175,16 +175,16 @@ let PortalViewportComponent = class PortalViewportComponent {
|
|
|
175
175
|
this.globalErrMsg = err;
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
179
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PortalViewportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
179
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: PortalViewportComponent, isStandalone: false, selector: "ocx-shell-portal-viewport", ngImport: i0, template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n class=\"onecx-viewport-wrapper\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n}\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\"></ocx-shell-header>\n\n <p-toast [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div class=\"onecx-subheader\">\n <!-- Placeholder for onecx-shell-subheader slot group -->\n </div>\n <div class=\"onecx-body-wrapper\">\n <div class=\"onecx-body-start\">\n <!-- Placeholder for onecx-shell-body-start slot group -->\n <ocx-slot [name]=\"verticalMenuSlotName\"> </ocx-slot>\n </div>\n <div class=\"onecx-body-center\">\n <!-- Placeholder for onecx-shell-body-header slot group -->\n <div class=\"onecx-body-header\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n </div>\n <div class=\"onecx-body\">\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 <!-- Placeholder for onecx-shell-body-footer slot group -->\n <div class=\"onecx-body-footer\"></div>\n </div>\n <!-- Placeholder for onecx-shell-body-end slot group -->\n <div class=\"onecx-body-end\"></div>\n </div>\n <footer>\n <!-- Placeholder for onecx-shell-footer slot group -->\n <ocx-slot\n [name]=\"footerSlotName\"\n class=\"onecx-shell-footer mx-3 h-full flex flex-row flex-wrap align-items-center column-gap-3 row-gap-1 text-sm\"\n [inputs]=\"{ imageStyleClass: 'h-1rem vertical-align-middle' }\"\n >\n </ocx-slot>\n </footer>\n </ng-container>\n</div>\n\n<ng-template #noTheme>\n <div class=\"onecx-no-theme-main\">\n <div class=\"onecx-no-theme-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n</ng-template>\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: [".onecx-viewport-wrapper{display:flex;flex-direction:column;height:100vh}.onecx-body-wrapper{display:flex;flex-direction:row;flex-grow:1;flex-shrink:0}.onecx-body-wrapper .onecx-body-start{max-width:20rem;background-color:var(--menu-bg-color);box-shadow:1px 1px #0003;overflow:auto;flex-grow:0;flex-shrink:0;display:flex;flex-direction:column;height:100%}.onecx-body-wrapper .onecx-body-center{flex-grow:1;overflow:auto;display:flex;flex-direction:column}.onecx-body-wrapper .onecx-body-end{max-width:25rem;flex-grow:0;flex-shrink:0}.onecx-no-theme-main{padding-top:4rem;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;transition:margin-left var(--animation-duration)}.onecx-no-theme-main .onecx-no-theme-content{flex:1 1 0}\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: i4.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"], 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" }] }); }
|
|
180
180
|
};
|
|
181
181
|
PortalViewportComponent = __decorate([
|
|
182
182
|
UntilDestroy(),
|
|
183
183
|
__metadata("design:paramtypes", [])
|
|
184
184
|
], PortalViewportComponent);
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PortalViewportComponent, decorators: [{
|
|
186
186
|
type: Component,
|
|
187
|
-
args: [{ standalone: false, selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n}\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\"></ocx-shell-header>\n\n <p-toast [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div class=\"onecx-subheader\">\n <!-- Placeholder for onecx-shell-subheader slot group -->\n </div>\n <div class=\"onecx-body-wrapper\">\n <div class=\"onecx-body-start\">\n <!-- Placeholder for onecx-shell-body-start slot group -->\n <ocx-slot [name]=\"verticalMenuSlotName\"> </ocx-slot>\n </div>\n <div class=\"onecx-body-center\">\n <!-- Placeholder for onecx-shell-body-header slot group -->\n <div class=\"onecx-body-header\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n </div>\n <div class=\"onecx-body\">\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 <!-- Placeholder for onecx-shell-body-footer slot group -->\n <div class=\"onecx-body-footer\"></div>\n </div>\n <!-- Placeholder for onecx-shell-body-end slot group -->\n <div class=\"onecx-body-end\"></div>\n </div>\n <footer>\n <!-- Placeholder for onecx-shell-footer slot group -->\n <ocx-slot\n [name]=\"footerSlotName\"\n class=\"onecx-shell-footer mx-3 h-full flex flex-row flex-wrap align-items-center column-gap-3 row-gap-1 text-sm\"\n [inputs]=\"{ imageStyleClass: 'h-1rem vertical-align-middle' }\"\n >\n </ocx-slot>\n </footer>\n </ng-container>\n</div>\n\n<ng-template #noTheme>\n <div class=\"onecx-no-theme-main\">\n <div class=\"onecx-no-theme-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n</ng-template>\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: [".onecx-
|
|
187
|
+
args: [{ standalone: false, selector: 'ocx-shell-portal-viewport', template: "<div\n *ngIf=\"!globalErrMsg; else globalError\"\n class=\"onecx-viewport-wrapper\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n}\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\"></ocx-shell-header>\n\n <p-toast [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div class=\"onecx-subheader\">\n <!-- Placeholder for onecx-shell-subheader slot group -->\n </div>\n <div class=\"onecx-body-wrapper\">\n <div class=\"onecx-body-start\">\n <!-- Placeholder for onecx-shell-body-start slot group -->\n <ocx-slot [name]=\"verticalMenuSlotName\"> </ocx-slot>\n </div>\n <div class=\"onecx-body-center\">\n <!-- Placeholder for onecx-shell-body-header slot group -->\n <div class=\"onecx-body-header\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n </div>\n <div class=\"onecx-body\">\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 <!-- Placeholder for onecx-shell-body-footer slot group -->\n <div class=\"onecx-body-footer\"></div>\n </div>\n <!-- Placeholder for onecx-shell-body-end slot group -->\n <div class=\"onecx-body-end\"></div>\n </div>\n <footer>\n <!-- Placeholder for onecx-shell-footer slot group -->\n <ocx-slot\n [name]=\"footerSlotName\"\n class=\"onecx-shell-footer mx-3 h-full flex flex-row flex-wrap align-items-center column-gap-3 row-gap-1 text-sm\"\n [inputs]=\"{ imageStyleClass: 'h-1rem vertical-align-middle' }\"\n >\n </ocx-slot>\n </footer>\n </ng-container>\n</div>\n\n<ng-template #noTheme>\n <div class=\"onecx-no-theme-main\">\n <div class=\"onecx-no-theme-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n</ng-template>\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: [".onecx-viewport-wrapper{display:flex;flex-direction:column;height:100vh}.onecx-body-wrapper{display:flex;flex-direction:row;flex-grow:1;flex-shrink:0}.onecx-body-wrapper .onecx-body-start{max-width:20rem;background-color:var(--menu-bg-color);box-shadow:1px 1px #0003;overflow:auto;flex-grow:0;flex-shrink:0;display:flex;flex-direction:column;height:100%}.onecx-body-wrapper .onecx-body-center{flex-grow:1;overflow:auto;display:flex;flex-direction:column}.onecx-body-wrapper .onecx-body-end{max-width:25rem;flex-grow:0;flex-shrink:0}.onecx-no-theme-main{padding-top:4rem;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;transition:margin-left var(--animation-duration)}.onecx-no-theme-main .onecx-no-theme-content{flex:1 1 0}\n"] }]
|
|
188
188
|
}], ctorParameters: () => [] });
|
|
189
189
|
|
|
190
190
|
class ShellSrcDirective {
|
|
@@ -236,10 +236,10 @@ class ShellSrcDirective {
|
|
|
236
236
|
this.error = new EventEmitter();
|
|
237
237
|
this.el.nativeElement.style.visibility = 'hidden';
|
|
238
238
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
240
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShellSrcDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
240
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: ShellSrcDirective, isStandalone: false, selector: "[ocxShellSrc]", inputs: { ocxShellSrc: "ocxShellSrc" }, outputs: { error: "error" }, ngImport: i0 }); }
|
|
241
241
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShellSrcDirective, decorators: [{
|
|
243
243
|
type: Directive,
|
|
244
244
|
args: [{ selector: '[ocxShellSrc]', standalone: false }]
|
|
245
245
|
}], ctorParameters: () => [], propDecorators: { error: [{
|
|
@@ -249,8 +249,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
249
249
|
}] } });
|
|
250
250
|
|
|
251
251
|
class ShellCoreModule {
|
|
252
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
253
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShellCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
253
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: ShellCoreModule, declarations: [PortalViewportComponent,
|
|
254
254
|
HeaderComponent,
|
|
255
255
|
GlobalErrorComponent,
|
|
256
256
|
AppLoadingSpinnerComponent,
|
|
@@ -266,7 +266,7 @@ class ShellCoreModule {
|
|
|
266
266
|
ToastModule,
|
|
267
267
|
TooltipModule,
|
|
268
268
|
TranslateModule] }); }
|
|
269
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
269
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShellCoreModule, providers: [
|
|
270
270
|
providePrimeNG(),
|
|
271
271
|
{ provide: MessageService, useClass: MessageService },
|
|
272
272
|
provideTranslationPathFromMeta(import.meta.url, 'onecx-shell-core/assets/i18n/'),
|
|
@@ -280,7 +280,7 @@ class ShellCoreModule {
|
|
|
280
280
|
TooltipModule,
|
|
281
281
|
TranslateModule] }); }
|
|
282
282
|
}
|
|
283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ShellCoreModule, decorators: [{
|
|
284
284
|
type: NgModule,
|
|
285
285
|
args: [{
|
|
286
286
|
imports: [
|
|
@@ -326,10 +326,10 @@ class PermissionsCacheService {
|
|
|
326
326
|
}
|
|
327
327
|
return this.permissions[key];
|
|
328
328
|
}
|
|
329
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
330
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
329
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PermissionsCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
330
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PermissionsCacheService, providedIn: 'root' }); }
|
|
331
331
|
}
|
|
332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
332
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PermissionsCacheService, decorators: [{
|
|
333
333
|
type: Injectable,
|
|
334
334
|
args: [{ providedIn: 'root' }]
|
|
335
335
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onecx-shell-core.mjs","sources":["../../../../libs/shell-core/src/lib/components/error-component/global-error.component.ts","../../../../libs/shell-core/src/lib/components/error-component/global-error.component.html","../../../../libs/shell-core/src/lib/components/portal-header/header.component.ts","../../../../libs/shell-core/src/lib/components/portal-header/header.component.html","../../../../libs/shell-core/src/lib/shell-interface/show-content-provider.ts","../../../../libs/shell-core/src/lib/shell-interface/workspace-config-bff-service-provider.ts","../../../../libs/shell-core/src/lib/components/app-loading-spinner/app-loading-spinner.component.ts","../../../../libs/shell-core/src/lib/components/app-loading-spinner/app-loading-spinner.component.html","../../../../libs/shell-core/src/lib/components/portal-viewport/portal-viewport.component.ts","../../../../libs/shell-core/src/lib/components/portal-viewport/portal-viewport.component.html","../../../../libs/shell-core/src/lib/directives/src.directive.ts","../../../../libs/shell-core/src/lib/shell-core.module.ts","../../../../libs/shell-core/src/lib/services/permissions-cache.service.ts","../../../../libs/shell-core/src/lib/model/constants.ts","../../../../libs/shell-core/src/onecx-shell-core.ts"],"sourcesContent":["import { Component, Input, inject } from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\n\n@Component({\n standalone: false,\n selector: 'ocx-shell-error',\n templateUrl: './global-error.component.html',\n styleUrls: ['./global-error.component.scss'],\n})\nexport class GlobalErrorComponent {\n private router = inject(Router)\n private route = inject(ActivatedRoute)\n\n @Input()\n errCode: string | undefined\n backUrl: string\n\n constructor() {\n this.errCode = this.route.snapshot.queryParamMap.get('err') || 'E1001_FAILED_START'\n this.backUrl = this.route.snapshot.queryParamMap.get('return') || '/'\n }\n\n onGoBack() {\n this.router.navigateByUrl(this.backUrl)\n }\n\n reload() {\n window.location.reload()\n }\n}\n","<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","import { animate, style, transition, trigger } from '@angular/animations'\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core'\nimport { UntilDestroy } from '@ngneat/until-destroy'\nimport { Observable } from 'rxjs'\n\nimport { Theme, ThemeService } from '@onecx/angular-integration-interface'\n\n@Component({\n standalone: false,\n selector: 'ocx-shell-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n animations: [\n trigger('topbarActionPanelAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 1, transform: '*' })),\n ]),\n transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),\n ]),\n ],\n})\n@UntilDestroy()\nexport class HeaderComponent {\n @Input() menuButtonTitle: string | undefined\n @Input() fullPortalLayout = true\n @Input() homeNavUrl = '/'\n @Input() homeNavTitle = 'Home'\n @Output() menuButtonClick: EventEmitter<any> = new EventEmitter()\n\n private themeService = inject(ThemeService)\n\n menuExpanded = false\n // slot configuration: get theme logo\n public slotName = 'onecx-theme-data'\n public currentTheme$: Observable<Theme>\n public logoLoadingEmitter = new EventEmitter<boolean>()\n public themeLogoLoadingFailed = false\n\n constructor() {\n this.currentTheme$ = this.themeService.currentTheme$.asObservable()\n this.logoLoadingEmitter.subscribe((data: boolean) => {\n this.themeLogoLoadingFailed = data\n })\n }\n}\n","<header class=\"onecx-header\" id=\"ocx_header\">\n <!-- Placeholder for onecx-shell-header slot group -->\n <div class=\"onecx-header-start\" [attr.aria-label]=\"'OCX_HEADER.HEADER_LEFT' | translate\">\n <ocx-slot\n name=\"onecx-shell-header-left\"\n class=\"flex flex-row flex-nowrap justify-content-start align-items-center\"\n [inputs]=\"{ imageStyleClass: 'max-h-3rem max-w-9rem vertical-align-middle' }\"\n [outputs]=\"{ imageLoadingFailed: logoLoadingEmitter }\"\n >\n </ocx-slot>\n <div *ngIf=\"themeLogoLoadingFailed\"></div>\n </div>\n <div class=\"onecx-header-center\" [attr.aria-label]=\"'OCX_HEADER.HEADER_CENTER' | translate\">\n <div>\n <ocx-slot name=\"onecx-shell-horizontal-menu\"></ocx-slot>\n </div>\n </div>\n <div class=\"onecx-header-end\" [attr.aria-label]=\"'OCX_HEADER.HEADER_RIGHT' | translate\">\n <div class=\"onecx_header_end_actions_right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"onecx_header_end_actions_right_items\"> </ocx-slot>\n </div>\n </div>\n</header>\n","import { InjectionToken } from \"@angular/core\"\nimport { BehaviorSubject } from \"rxjs\"\n\nexport const SHOW_CONTENT_PROVIDER = new InjectionToken<ShowContentProvider>('SHOW_CONTENT_PROVIDER')\n\nexport interface ShowContentProvider {\n showContent$: BehaviorSubject<boolean>\n}","import { HttpContext, HttpResponse, HttpEvent } from '@angular/common/http'\nimport { InjectionToken } from '@angular/core'\nimport { Observable } from 'rxjs'\n\nexport const WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER = new InjectionToken<WorkspaceConfigBffService>(\n 'WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER'\n)\n\nexport interface WorkspaceConfigBffService {\n getThemeFaviconByName(\n name: string,\n observe?: 'body',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<Blob>\n getThemeFaviconByName(\n name: string,\n observe?: 'response',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpResponse<Blob>>\n getThemeFaviconByName(\n name: string,\n observe?: 'events',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpEvent<Blob>>\n getThemeFaviconByName(\n name: string,\n observe: 'body',\n reportProgress: false,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<any>\n\n getThemeLogoByName(\n name: string,\n observe?: 'body',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<Blob>\n getThemeLogoByName(\n name: string,\n observe?: 'response',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpResponse<Blob>>\n getThemeLogoByName(\n name: string,\n observe?: 'events',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpEvent<Blob>>\n getThemeLogoByName(\n name: string,\n observe: 'body',\n reportProgress: false,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<any>\n}\n","import { Component } from '@angular/core'\n\n@Component({\n standalone: false,\n selector: 'ocx-app-loading-spinner',\n templateUrl: 'app-loading-spinner.component.html',\n styleUrl: 'app-loading-spinner.component.scss',\n})\nexport class AppLoadingSpinnerComponent {}\n","<div class=\"w-full h-full absolute top-0 left-0 element-overlay\">\n <div class=\"loader\"></div>\n</div>","import { HttpClient } from '@angular/common/http'\nimport { Component, OnInit, inject } from '@angular/core'\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\nimport {\n AppStateService,\n Message,\n PortalMessageService,\n ThemeService,\n UserService,\n} from '@onecx/angular-integration-interface'\nimport { MessageService } from 'primeng/api'\nimport { PrimeNG } from 'primeng/config'\nimport { filter, first, from, mergeMap, Observable, of } from 'rxjs'\nimport { SHOW_CONTENT_PROVIDER, ShowContentProvider } from '../../shell-interface/show-content-provider'\nimport {\n WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER,\n WorkspaceConfigBffService,\n} from '../../shell-interface/workspace-config-bff-service-provider'\nimport { SlotService } from '@onecx/angular-remote-components'\n\n@Component({\n standalone: false,\n selector: 'ocx-shell-portal-viewport',\n templateUrl: './portal-viewport.component.html',\n styleUrls: ['./portal-viewport.component.scss'],\n})\n@UntilDestroy()\nexport class PortalViewportComponent implements OnInit {\n private primengConfig = inject(PrimeNG)\n private messageService = inject(MessageService)\n private appStateService = inject(AppStateService)\n private portalMessageService = inject(PortalMessageService)\n private userService = inject(UserService)\n themeService = inject(ThemeService)\n private httpClient = inject(HttpClient)\n showContentProvider = inject<ShowContentProvider | undefined>(SHOW_CONTENT_PROVIDER, { optional: true })\n workspaceConfigBffService = inject<WorkspaceConfigBffService | undefined>(WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, {\n optional: true,\n })\n private slotService = inject(SlotService)\n\n menuButtonTitle = ''\n\n colorScheme: 'auto' | 'light' | 'dark' = 'light'\n menuMode: 'horizontal' | 'static' | 'overlay' | 'slim' | 'slimplus' = 'static'\n inputStyle = 'outline'\n ripple = true\n globalErrMsg: string | undefined\n verticalMenuSlotName = 'onecx-shell-vertical-menu'\n isVerticalMenuComponentDefined$: Observable<boolean>\n footerSlotName = 'onecx-shell-footer'\n isFooterComponentDefined$: Observable<boolean>\n\n constructor() {\n this.portalMessageService.message$.subscribe((message: Message) => this.messageService.add(message))\n this.userService.profile$.pipe(untilDestroyed(this)).subscribe((profile) => {\n this.menuMode =\n (profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() as\n | typeof this.menuMode\n | undefined) ?? this.menuMode\n\n this.colorScheme =\n (profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() as\n | typeof this.colorScheme\n | undefined) ?? this.colorScheme\n })\n\n this.themeService.currentTheme$\n .pipe(\n first(),\n mergeMap((theme) => {\n return (\n theme.faviconUrl\n ? this.httpClient.get(theme.faviconUrl ?? '', { responseType: 'blob' })\n : (this.workspaceConfigBffService?.getThemeFaviconByName(theme.name ?? '') ?? of())\n ).pipe(\n filter((blob) => !!blob),\n mergeMap((blob) => {\n return from(\n new Promise((resolve) => {\n const reader = new FileReader()\n reader.onload = (e) => resolve(e.target?.result)\n reader.readAsDataURL(blob)\n })\n )\n })\n )\n })\n )\n .subscribe((url) => {\n let link = document.querySelector(\"link[rel~='icon']\") as any\n if (!link) {\n link = document.createElement('link')\n link.rel = 'icon'\n document.head.appendChild(link)\n }\n link.href = url\n })\n\n this.isVerticalMenuComponentDefined$ = this.slotService.isSomeComponentDefinedForSlot(this.verticalMenuSlotName)\n this.isFooterComponentDefined$ = this.slotService.isSomeComponentDefinedForSlot(this.footerSlotName)\n }\n\n ngOnInit() {\n this.primengConfig.ripple.set(true)\n\n this.appStateService.globalError$\n .pipe(untilDestroyed(this))\n .pipe(filter((i) => i !== undefined))\n .subscribe((err: string | undefined) => {\n console.error('global error')\n this.globalErrMsg = err\n })\n }\n}\n","<div\n *ngIf=\"!globalErrMsg; else globalError\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n}\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\"></ocx-shell-header>\n\n <p-toast [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div class=\"onecx-subheader\">\n <!-- Placeholder for onecx-shell-subheader slot group -->\n </div>\n <div class=\"onecx-body-wrapper\">\n <div class=\"onecx-body-start\">\n <!-- Placeholder for onecx-shell-body-start slot group -->\n <ocx-slot [name]=\"verticalMenuSlotName\"> </ocx-slot>\n </div>\n <div class=\"onecx-body-center\">\n <!-- Placeholder for onecx-shell-body-header slot group -->\n <div class=\"onecx-body-header\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n </div>\n <div class=\"onecx-body\">\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 <!-- Placeholder for onecx-shell-body-footer slot group -->\n <div class=\"onecx-body-footer\"></div>\n </div>\n <!-- Placeholder for onecx-shell-body-end slot group -->\n <div class=\"onecx-body-end\"></div>\n </div>\n <footer>\n <!-- Placeholder for onecx-shell-footer slot group -->\n <ocx-slot\n [name]=\"footerSlotName\"\n class=\"onecx-shell-footer mx-3 h-full flex flex-row flex-wrap align-items-center column-gap-3 row-gap-1 text-sm\"\n [inputs]=\"{ imageStyleClass: 'h-1rem vertical-align-middle' }\"\n >\n </ocx-slot>\n </footer>\n </ng-container>\n</div>\n\n<ng-template #noTheme>\n <div class=\"onecx-no-theme-main\">\n <div class=\"onecx-no-theme-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n</ng-template>\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","import { HttpClient, HttpResponse } from '@angular/common/http'\nimport { Directive, ElementRef, EventEmitter, Input, Output, inject } from '@angular/core'\n\n@Directive({ selector: '[ocxShellSrc]', standalone: false })\nexport class ShellSrcDirective {\n private el = inject(ElementRef)\n private httpClient = inject(HttpClient)\n\n private _src: string | undefined\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() error = new EventEmitter<void>()\n\n @Input()\n get ocxShellSrc(): string | undefined {\n return this._src\n }\n set ocxShellSrc(value: string | undefined) {\n if (value && this._src !== value && window.location.hostname) {\n try {\n if (new URL(value, window.location.origin).hostname === window.location.hostname) {\n this.httpClient.get(value, { observe: 'response', responseType: 'blob' }).subscribe(\n (response: HttpResponse<Blob>) => {\n // ok with content\n if (response?.status === 200) {\n const url = URL.createObjectURL(response.body as Blob)\n this.el.nativeElement.addEventListener('load', () => {\n URL.revokeObjectURL(url)\n })\n this.el.nativeElement.src = url\n }\n // no content\n if (response?.status === 204) {\n this.error.emit()\n }\n },\n () => {\n // on error\n this.error.emit()\n },\n () => {\n // on complete\n this.el.nativeElement.style.visibility = 'initial'\n }\n )\n } else {\n this.el.nativeElement.src = value\n this.el.nativeElement.style.visibility = 'initial'\n }\n } catch (error) {\n console.error('Cannot parse URL ', value, error)\n this.el.nativeElement.src = value\n this.el.nativeElement.style.visibility = 'initial'\n }\n this._src = value\n }\n }\n\n constructor() {\n this.el.nativeElement.style.visibility = 'hidden'\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { AngularRemoteComponentsModule } from '@onecx/angular-remote-components'\nimport { ToastModule } from 'primeng/toast'\nimport { providePrimeNG } from 'primeng/config'\nimport { GlobalErrorComponent } from './components/error-component/global-error.component'\nimport { HeaderComponent } from './components/portal-header/header.component'\nimport { PortalViewportComponent } from './components/portal-viewport/portal-viewport.component'\nimport { SkeletonModule } from 'primeng/skeleton'\nimport { AppLoadingSpinnerComponent } from './components/app-loading-spinner/app-loading-spinner.component'\nimport { ShellSrcDirective } from './directives/src.directive'\nimport { TranslateModule } from '@ngx-translate/core'\nimport { TooltipModule } from 'primeng/tooltip'\nimport { MessageService } from 'primeng/api'\nimport { provideTranslationPathFromMeta } from '@onecx/angular-utils'\n\n@NgModule({\n imports: [\n AngularRemoteComponentsModule,\n CommonModule,\n RouterModule,\n SkeletonModule,\n ToastModule,\n TooltipModule,\n TranslateModule,\n ],\n declarations: [\n PortalViewportComponent,\n HeaderComponent,\n GlobalErrorComponent,\n AppLoadingSpinnerComponent,\n ShellSrcDirective,\n ],\n exports: [\n GlobalErrorComponent,\n HeaderComponent,\n PortalViewportComponent,\n ToastModule,\n TooltipModule,\n TranslateModule,\n ],\n providers: [\n providePrimeNG(), \n { provide: MessageService, useClass: MessageService }, \n provideTranslationPathFromMeta(import.meta.url, 'onecx-shell-core/assets/i18n/'),\n ],\n})\nexport class ShellCoreModule {}\n","import { Injectable } from '@angular/core'\nimport { Observable, shareReplay } from 'rxjs'\n\n@Injectable({ providedIn: 'root' })\nexport class PermissionsCacheService {\n permissions: Record<string, Observable<string[]>> = {}\n\n getPermissions(\n appId: string,\n productName: string,\n cacheMissFkt: (appId: string, productName: string) => Observable<string[]>\n ): Observable<string[]> {\n const key = appId + '|' + productName\n if (!this.permissions[key]) {\n this.permissions[key] = cacheMissFkt(appId, productName).pipe(shareReplay())\n }\n return this.permissions[key]\n }\n}\n","export const SHELL_BFF_PREFIX = 'shell-bff'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i5.HeaderComponent","i6.GlobalErrorComponent","i7.AppLoadingSpinnerComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onecx-shell-core.mjs","sources":["../../../../libs/shell-core/src/lib/components/error-component/global-error.component.ts","../../../../libs/shell-core/src/lib/components/error-component/global-error.component.html","../../../../libs/shell-core/src/lib/components/portal-header/header.component.ts","../../../../libs/shell-core/src/lib/components/portal-header/header.component.html","../../../../libs/shell-core/src/lib/shell-interface/show-content-provider.ts","../../../../libs/shell-core/src/lib/shell-interface/workspace-config-bff-service-provider.ts","../../../../libs/shell-core/src/lib/components/app-loading-spinner/app-loading-spinner.component.ts","../../../../libs/shell-core/src/lib/components/app-loading-spinner/app-loading-spinner.component.html","../../../../libs/shell-core/src/lib/components/portal-viewport/portal-viewport.component.ts","../../../../libs/shell-core/src/lib/components/portal-viewport/portal-viewport.component.html","../../../../libs/shell-core/src/lib/directives/src.directive.ts","../../../../libs/shell-core/src/lib/shell-core.module.ts","../../../../libs/shell-core/src/lib/services/permissions-cache.service.ts","../../../../libs/shell-core/src/lib/model/constants.ts","../../../../libs/shell-core/src/onecx-shell-core.ts"],"sourcesContent":["import { Component, Input, inject } from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\n\n@Component({\n standalone: false,\n selector: 'ocx-shell-error',\n templateUrl: './global-error.component.html',\n styleUrls: ['./global-error.component.scss'],\n})\nexport class GlobalErrorComponent {\n private router = inject(Router)\n private route = inject(ActivatedRoute)\n\n @Input()\n errCode: string | undefined\n backUrl: string\n\n constructor() {\n this.errCode = this.route.snapshot.queryParamMap.get('err') || 'E1001_FAILED_START'\n this.backUrl = this.route.snapshot.queryParamMap.get('return') || '/'\n }\n\n onGoBack() {\n this.router.navigateByUrl(this.backUrl)\n }\n\n reload() {\n window.location.reload()\n }\n}\n","<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","import { animate, style, transition, trigger } from '@angular/animations'\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core'\nimport { UntilDestroy } from '@ngneat/until-destroy'\nimport { Observable } from 'rxjs'\n\nimport { Theme, ThemeService } from '@onecx/angular-integration-interface'\n\n@Component({\n standalone: false,\n selector: 'ocx-shell-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n animations: [\n trigger('topbarActionPanelAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 1, transform: '*' })),\n ]),\n transition(':leave', [animate('.1s linear', style({ opacity: 0 }))]),\n ]),\n ],\n})\n@UntilDestroy()\nexport class HeaderComponent {\n @Input() menuButtonTitle: string | undefined\n @Input() fullPortalLayout = true\n @Input() homeNavUrl = '/'\n @Input() homeNavTitle = 'Home'\n @Output() menuButtonClick: EventEmitter<any> = new EventEmitter()\n\n private themeService = inject(ThemeService)\n\n menuExpanded = false\n // slot configuration: get theme logo\n public slotName = 'onecx-theme-data'\n public currentTheme$: Observable<Theme>\n public logoLoadingEmitter = new EventEmitter<boolean>()\n public themeLogoLoadingFailed = false\n\n constructor() {\n this.currentTheme$ = this.themeService.currentTheme$.asObservable()\n this.logoLoadingEmitter.subscribe((data: boolean) => {\n this.themeLogoLoadingFailed = data\n })\n }\n}\n","<header class=\"onecx-header\" id=\"ocx_header\">\n <!-- Placeholder for onecx-shell-header slot group -->\n <div class=\"onecx-header-start\" [attr.aria-label]=\"'OCX_HEADER.HEADER_LEFT' | translate\">\n <ocx-slot\n name=\"onecx-shell-header-left\"\n class=\"flex flex-row flex-nowrap justify-content-start align-items-center\"\n [inputs]=\"{ imageStyleClass: 'max-h-3rem max-w-9rem vertical-align-middle' }\"\n [outputs]=\"{ imageLoadingFailed: logoLoadingEmitter }\"\n >\n </ocx-slot>\n <div *ngIf=\"themeLogoLoadingFailed\"></div>\n </div>\n <div class=\"onecx-header-center\" [attr.aria-label]=\"'OCX_HEADER.HEADER_CENTER' | translate\">\n <div>\n <ocx-slot name=\"onecx-shell-horizontal-menu\"></ocx-slot>\n </div>\n </div>\n <div class=\"onecx-header-end\" [attr.aria-label]=\"'OCX_HEADER.HEADER_RIGHT' | translate\">\n <div class=\"onecx_header_end_actions_right\">\n <ocx-slot name=\"onecx-shell-header-right\" class=\"onecx_header_end_actions_right_items\"> </ocx-slot>\n </div>\n </div>\n</header>\n","import { InjectionToken } from \"@angular/core\"\nimport { BehaviorSubject } from \"rxjs\"\n\nexport const SHOW_CONTENT_PROVIDER = new InjectionToken<ShowContentProvider>('SHOW_CONTENT_PROVIDER')\n\nexport interface ShowContentProvider {\n showContent$: BehaviorSubject<boolean>\n}","import { HttpContext, HttpResponse, HttpEvent } from '@angular/common/http'\nimport { InjectionToken } from '@angular/core'\nimport { Observable } from 'rxjs'\n\nexport const WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER = new InjectionToken<WorkspaceConfigBffService>(\n 'WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER'\n)\n\nexport interface WorkspaceConfigBffService {\n getThemeFaviconByName(\n name: string,\n observe?: 'body',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<Blob>\n getThemeFaviconByName(\n name: string,\n observe?: 'response',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpResponse<Blob>>\n getThemeFaviconByName(\n name: string,\n observe?: 'events',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpEvent<Blob>>\n getThemeFaviconByName(\n name: string,\n observe: 'body',\n reportProgress: false,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<any>\n\n getThemeLogoByName(\n name: string,\n observe?: 'body',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<Blob>\n getThemeLogoByName(\n name: string,\n observe?: 'response',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpResponse<Blob>>\n getThemeLogoByName(\n name: string,\n observe?: 'events',\n reportProgress?: boolean,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<HttpEvent<Blob>>\n getThemeLogoByName(\n name: string,\n observe: 'body',\n reportProgress: false,\n options?: { httpHeaderAccept?: 'image/*'; context?: HttpContext }\n ): Observable<any>\n}\n","import { Component } from '@angular/core'\n\n@Component({\n standalone: false,\n selector: 'ocx-app-loading-spinner',\n templateUrl: 'app-loading-spinner.component.html',\n styleUrl: 'app-loading-spinner.component.scss',\n})\nexport class AppLoadingSpinnerComponent {}\n","<div class=\"w-full h-full absolute top-0 left-0 element-overlay\">\n <div class=\"loader\"></div>\n</div>","import { HttpClient } from '@angular/common/http'\nimport { Component, OnInit, inject } from '@angular/core'\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\nimport {\n AppStateService,\n Message,\n PortalMessageService,\n ThemeService,\n UserService,\n} from '@onecx/angular-integration-interface'\nimport { MessageService } from 'primeng/api'\nimport { PrimeNG } from 'primeng/config'\nimport { filter, first, from, mergeMap, Observable, of } from 'rxjs'\nimport { SHOW_CONTENT_PROVIDER, ShowContentProvider } from '../../shell-interface/show-content-provider'\nimport {\n WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER,\n WorkspaceConfigBffService,\n} from '../../shell-interface/workspace-config-bff-service-provider'\nimport { SlotService } from '@onecx/angular-remote-components'\n\n@Component({\n standalone: false,\n selector: 'ocx-shell-portal-viewport',\n templateUrl: './portal-viewport.component.html',\n styleUrls: ['./portal-viewport.component.scss'],\n})\n@UntilDestroy()\nexport class PortalViewportComponent implements OnInit {\n private primengConfig = inject(PrimeNG)\n private messageService = inject(MessageService)\n private appStateService = inject(AppStateService)\n private portalMessageService = inject(PortalMessageService)\n private userService = inject(UserService)\n themeService = inject(ThemeService)\n private httpClient = inject(HttpClient)\n showContentProvider = inject<ShowContentProvider | undefined>(SHOW_CONTENT_PROVIDER, { optional: true })\n workspaceConfigBffService = inject<WorkspaceConfigBffService | undefined>(WORKSPACE_CONFIG_BFF_SERVICE_PROVIDER, {\n optional: true,\n })\n private slotService = inject(SlotService)\n\n menuButtonTitle = ''\n\n colorScheme: 'auto' | 'light' | 'dark' = 'light'\n menuMode: 'horizontal' | 'static' | 'overlay' | 'slim' | 'slimplus' = 'static'\n inputStyle = 'outline'\n ripple = true\n globalErrMsg: string | undefined\n verticalMenuSlotName = 'onecx-shell-vertical-menu'\n isVerticalMenuComponentDefined$: Observable<boolean>\n footerSlotName = 'onecx-shell-footer'\n isFooterComponentDefined$: Observable<boolean>\n\n constructor() {\n this.portalMessageService.message$.subscribe((message: Message) => this.messageService.add(message))\n this.userService.profile$.pipe(untilDestroyed(this)).subscribe((profile) => {\n this.menuMode =\n (profile?.accountSettings?.layoutAndThemeSettings?.menuMode?.toLowerCase() as\n | typeof this.menuMode\n | undefined) ?? this.menuMode\n\n this.colorScheme =\n (profile?.accountSettings?.layoutAndThemeSettings?.colorScheme?.toLowerCase() as\n | typeof this.colorScheme\n | undefined) ?? this.colorScheme\n })\n\n this.themeService.currentTheme$\n .pipe(\n first(),\n mergeMap((theme) => {\n return (\n theme.faviconUrl\n ? this.httpClient.get(theme.faviconUrl ?? '', { responseType: 'blob' })\n : (this.workspaceConfigBffService?.getThemeFaviconByName(theme.name ?? '') ?? of())\n ).pipe(\n filter((blob) => !!blob),\n mergeMap((blob) => {\n return from(\n new Promise((resolve) => {\n const reader = new FileReader()\n reader.onload = (e) => resolve(e.target?.result)\n reader.readAsDataURL(blob)\n })\n )\n })\n )\n })\n )\n .subscribe((url) => {\n let link = document.querySelector(\"link[rel~='icon']\") as any\n if (!link) {\n link = document.createElement('link')\n link.rel = 'icon'\n document.head.appendChild(link)\n }\n link.href = url\n })\n\n this.isVerticalMenuComponentDefined$ = this.slotService.isSomeComponentDefinedForSlot(this.verticalMenuSlotName)\n this.isFooterComponentDefined$ = this.slotService.isSomeComponentDefinedForSlot(this.footerSlotName)\n }\n\n ngOnInit() {\n this.primengConfig.ripple.set(true)\n\n this.appStateService.globalError$\n .pipe(untilDestroyed(this))\n .pipe(filter((i) => i !== undefined))\n .subscribe((err: string | undefined) => {\n console.error('global error')\n this.globalErrMsg = err\n })\n }\n}\n","<div\n *ngIf=\"!globalErrMsg; else globalError\"\n class=\"onecx-viewport-wrapper\"\n [ngClass]=\"{\n 'p-input-filled': inputStyle === 'filled', \n 'p-ripple-disabled': !ripple,\n}\"\n>\n <ng-container *ngIf=\"themeService.currentTheme$ | async; else noTheme\">\n <ocx-shell-header [menuButtonTitle]=\"menuButtonTitle\"></ocx-shell-header>\n\n <p-toast [style]=\"{'word-break': 'break-word'}\"></p-toast>\n\n <div class=\"onecx-subheader\">\n <!-- Placeholder for onecx-shell-subheader slot group -->\n </div>\n <div class=\"onecx-body-wrapper\">\n <div class=\"onecx-body-start\">\n <!-- Placeholder for onecx-shell-body-start slot group -->\n <ocx-slot [name]=\"verticalMenuSlotName\"> </ocx-slot>\n </div>\n <div class=\"onecx-body-center\">\n <!-- Placeholder for onecx-shell-body-header slot group -->\n <div class=\"onecx-body-header\">\n <ocx-slot name=\"onecx-shell-sub-header\"></ocx-slot>\n </div>\n <div class=\"onecx-body\">\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 <!-- Placeholder for onecx-shell-body-footer slot group -->\n <div class=\"onecx-body-footer\"></div>\n </div>\n <!-- Placeholder for onecx-shell-body-end slot group -->\n <div class=\"onecx-body-end\"></div>\n </div>\n <footer>\n <!-- Placeholder for onecx-shell-footer slot group -->\n <ocx-slot\n [name]=\"footerSlotName\"\n class=\"onecx-shell-footer mx-3 h-full flex flex-row flex-wrap align-items-center column-gap-3 row-gap-1 text-sm\"\n [inputs]=\"{ imageStyleClass: 'h-1rem vertical-align-middle' }\"\n >\n </ocx-slot>\n </footer>\n </ng-container>\n</div>\n\n<ng-template #noTheme>\n <div class=\"onecx-no-theme-main\">\n <div class=\"onecx-no-theme-content relative\">\n <ng-content></ng-content>\n <router-outlet></router-outlet>\n </div>\n </div>\n</ng-template>\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","import { HttpClient, HttpResponse } from '@angular/common/http'\nimport { Directive, ElementRef, EventEmitter, Input, Output, inject } from '@angular/core'\n\n@Directive({ selector: '[ocxShellSrc]', standalone: false })\nexport class ShellSrcDirective {\n private el = inject(ElementRef)\n private httpClient = inject(HttpClient)\n\n private _src: string | undefined\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() error = new EventEmitter<void>()\n\n @Input()\n get ocxShellSrc(): string | undefined {\n return this._src\n }\n set ocxShellSrc(value: string | undefined) {\n if (value && this._src !== value && window.location.hostname) {\n try {\n if (new URL(value, window.location.origin).hostname === window.location.hostname) {\n this.httpClient.get(value, { observe: 'response', responseType: 'blob' }).subscribe(\n (response: HttpResponse<Blob>) => {\n // ok with content\n if (response?.status === 200) {\n const url = URL.createObjectURL(response.body as Blob)\n this.el.nativeElement.addEventListener('load', () => {\n URL.revokeObjectURL(url)\n })\n this.el.nativeElement.src = url\n }\n // no content\n if (response?.status === 204) {\n this.error.emit()\n }\n },\n () => {\n // on error\n this.error.emit()\n },\n () => {\n // on complete\n this.el.nativeElement.style.visibility = 'initial'\n }\n )\n } else {\n this.el.nativeElement.src = value\n this.el.nativeElement.style.visibility = 'initial'\n }\n } catch (error) {\n console.error('Cannot parse URL ', value, error)\n this.el.nativeElement.src = value\n this.el.nativeElement.style.visibility = 'initial'\n }\n this._src = value\n }\n }\n\n constructor() {\n this.el.nativeElement.style.visibility = 'hidden'\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { AngularRemoteComponentsModule } from '@onecx/angular-remote-components'\nimport { ToastModule } from 'primeng/toast'\nimport { providePrimeNG } from 'primeng/config'\nimport { GlobalErrorComponent } from './components/error-component/global-error.component'\nimport { HeaderComponent } from './components/portal-header/header.component'\nimport { PortalViewportComponent } from './components/portal-viewport/portal-viewport.component'\nimport { SkeletonModule } from 'primeng/skeleton'\nimport { AppLoadingSpinnerComponent } from './components/app-loading-spinner/app-loading-spinner.component'\nimport { ShellSrcDirective } from './directives/src.directive'\nimport { TranslateModule } from '@ngx-translate/core'\nimport { TooltipModule } from 'primeng/tooltip'\nimport { MessageService } from 'primeng/api'\nimport { provideTranslationPathFromMeta } from '@onecx/angular-utils'\n\n@NgModule({\n imports: [\n AngularRemoteComponentsModule,\n CommonModule,\n RouterModule,\n SkeletonModule,\n ToastModule,\n TooltipModule,\n TranslateModule,\n ],\n declarations: [\n PortalViewportComponent,\n HeaderComponent,\n GlobalErrorComponent,\n AppLoadingSpinnerComponent,\n ShellSrcDirective,\n ],\n exports: [\n GlobalErrorComponent,\n HeaderComponent,\n PortalViewportComponent,\n ToastModule,\n TooltipModule,\n TranslateModule,\n ],\n providers: [\n providePrimeNG(), \n { provide: MessageService, useClass: MessageService }, \n provideTranslationPathFromMeta(import.meta.url, 'onecx-shell-core/assets/i18n/'),\n ],\n})\nexport class ShellCoreModule {}\n","import { Injectable } from '@angular/core'\nimport { Observable, shareReplay } from 'rxjs'\n\n@Injectable({ providedIn: 'root' })\nexport class PermissionsCacheService {\n permissions: Record<string, Observable<string[]>> = {}\n\n getPermissions(\n appId: string,\n productName: string,\n cacheMissFkt: (appId: string, productName: string) => Observable<string[]>\n ): Observable<string[]> {\n const key = appId + '|' + productName\n if (!this.permissions[key]) {\n this.permissions[key] = cacheMissFkt(appId, productName).pipe(shareReplay())\n }\n return this.permissions[key]\n }\n}\n","export const SHELL_BFF_PREFIX = 'shell-bff'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i5.HeaderComponent","i6.GlobalErrorComponent","i7.AppLoadingSpinnerComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onecx/shell-core",
|
|
3
|
-
"version": "7.0.0-rc.
|
|
3
|
+
"version": "7.0.0-rc.3",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"rxjs": "^7.8.1",
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
"@angular/core": "^19.0.0",
|
|
10
10
|
"@angular/router": "^19.0.0",
|
|
11
11
|
"@ngneat/until-destroy": "^10.0.0",
|
|
12
|
-
"@onecx/angular-integration-interface": "^7.0.0-rc.
|
|
13
|
-
"@onecx/angular-utils": "^7.0.0-rc.
|
|
14
|
-
"@onecx/angular-remote-components": "^7.0.0-rc.
|
|
12
|
+
"@onecx/angular-integration-interface": "^7.0.0-rc.3",
|
|
13
|
+
"@onecx/angular-utils": "^7.0.0-rc.3",
|
|
14
|
+
"@onecx/angular-remote-components": "^7.0.0-rc.3",
|
|
15
15
|
"@ngx-translate/core": "^16.0.0",
|
|
16
16
|
"primeng": "^19.0.0",
|
|
17
17
|
"@nx/devkit": "^20.3.0",
|
|
18
|
-
"@onecx/nx-migration-utils": "^7.0.0-rc.
|
|
18
|
+
"@onecx/nx-migration-utils": "^7.0.0-rc.3"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"tslib": "^2.3.0"
|