@pega/angular-sdk-components 0.25.5 → 0.25.7

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.
@@ -76,6 +76,7 @@ import * as i8$1 from '@angular/material/chips';
76
76
  import { MatChipsModule } from '@angular/material/chips';
77
77
  import cloneDeep from 'lodash.clonedeep';
78
78
  import download from 'downloadjs';
79
+ import debounce from 'lodash.debounce';
79
80
  import * as i3$3 from '@angular/material/badge';
80
81
  import { MatBadgeModule } from '@angular/material/badge';
81
82
  import * as i2$3 from '@angular/material/button-toggle';
@@ -1309,6 +1310,10 @@ function getRefreshProps(refreshConditions) {
1309
1310
  }
1310
1311
  return refreshConditions.filter(item => item.event && item.event === 'Changes').map(item => [item.field, item.field?.substring(1)]) || [];
1311
1312
  }
1313
+ function scrollToTop() {
1314
+ const scrollElement = document.querySelector('.psdk-view-container-top');
1315
+ scrollElement?.scrollIntoView();
1316
+ }
1312
1317
  class AssignmentComponent {
1313
1318
  constructor(angularPConnect, psService, erService, snackBar, bannerService) {
1314
1319
  this.angularPConnect = angularPConnect;
@@ -1372,6 +1377,7 @@ class AssignmentComponent {
1372
1377
  }
1373
1378
  }
1374
1379
  updateChanges() {
1380
+ scrollToTop();
1375
1381
  this.registerForRefresh();
1376
1382
  // pConn$ may be a 'reference' component, so normalize it
1377
1383
  this.newPConn$ = ReferenceComponent.normalizePConn(this.pConn$);
@@ -2345,6 +2351,7 @@ class FlowContainerComponent extends FlowContainerBaseComponent {
2345
2351
  // this.containerName$ = oWorkMeta["name"];
2346
2352
  if (bLoadChildren && oWorkData) {
2347
2353
  this.containerName$ = this.localizedVal(this.getActiveViewLabel() || oWorkData.caseInfo.assignments?.[0].name, undefined, this.localeReference);
2354
+ this.isMultiStep = this.utils.getBooleanValue(oWorkData.caseInfo.assignments?.[0].isMultiStep);
2348
2355
  }
2349
2356
  // turn off spinner
2350
2357
  this.psService.sendMessage(false);
@@ -2616,11 +2623,11 @@ class FlowContainerComponent extends FlowContainerBaseComponent {
2616
2623
  });
2617
2624
  }
2618
2625
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FlowContainerComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: ProgressSpinnerService }, { token: i2.FormBuilder }, { token: i0.NgZone }, { token: Utils }], target: i0.ɵɵFactoryTarget.Component }); }
2619
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: FlowContainerComponent, isStandalone: true, selector: "app-flow-container", inputs: { pConn$: "pConn$" }, providers: [Utils], usesInheritance: true, ngImport: i0, template: "<div style=\"text-align: left\" class=\"psdk-flow-container-top\">\n <div *ngIf=\"!bShowConfirm\">\n <div *ngIf=\"!todo_showTodo$\">\n <h2>{{ containerName$ }}</h2>\n <div *ngIf=\"banners?.length\">\n <component-mapper name=\"AlertBanner\" [props]=\"{ banners }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Todo\"\n [props]=\"{\n pConn$: pConnectOfActiveContainerItem,\n caseInfoID$: todo_caseInfoID$,\n datasource$: todo_datasource$,\n showTodoList$: todo_showTodoList$,\n headerText$: todo_headerText$,\n type$: 'TODO',\n context$: todo_context$,\n isConfirm: true\n }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Assignment\"\n [props]=\"{ pConn$: pConnectOfActiveContainerItem, formGroup$, arChildren$, itemKey$ }\"\n ></component-mapper>\n </div>\n </div>\n <div *ngIf=\"bHasCaseMessages$\">\n <mat-card class=\"psdk-message-card\">\n <div style=\"display: flex; flex-direction: row; align-items: center\">\n <div><img class=\"psdk-icon\" src=\"{{ checkSvg$ }}\" /></div>\n <div>{{ caseMessages$ }}</div>\n </div>\n </mat-card>\n </div>\n <div *ngIf=\"bShowBanner && bShowConfirm && confirm_pconn\">\n <component-mapper name=\"View\" [props]=\"{ formGroup$, pConn$: confirm_pconn }\"></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatCardModule) }, { kind: "component", type: i0.forwardRef(() => i1$1.MatCard), selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
2626
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: FlowContainerComponent, isStandalone: true, selector: "app-flow-container", inputs: { pConn$: "pConn$" }, providers: [Utils], usesInheritance: true, ngImport: i0, template: "<div style=\"text-align: left\" class=\"psdk-flow-container-top\">\n <div *ngIf=\"!bShowConfirm\">\n <div *ngIf=\"!todo_showTodo$\">\n <h2 *ngIf=\"!isMultiStep\">{{ containerName$ }}</h2>\n <div *ngIf=\"banners?.length\">\n <component-mapper name=\"AlertBanner\" [props]=\"{ banners }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Todo\"\n [props]=\"{\n pConn$: pConnectOfActiveContainerItem,\n caseInfoID$: todo_caseInfoID$,\n datasource$: todo_datasource$,\n showTodoList$: todo_showTodoList$,\n headerText$: todo_headerText$,\n type$: 'TODO',\n context$: todo_context$,\n isConfirm: true\n }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Assignment\"\n [props]=\"{ pConn$: pConnectOfActiveContainerItem, formGroup$, arChildren$, itemKey$ }\"\n ></component-mapper>\n </div>\n </div>\n <div *ngIf=\"bHasCaseMessages$\">\n <mat-card class=\"psdk-message-card\">\n <div style=\"display: flex; flex-direction: row; align-items: center\">\n <div><img class=\"psdk-icon\" src=\"{{ checkSvg$ }}\" /></div>\n <div>{{ caseMessages$ }}</div>\n </div>\n </mat-card>\n </div>\n <div *ngIf=\"bShowBanner && bShowConfirm && confirm_pconn\">\n <component-mapper name=\"View\" [props]=\"{ formGroup$, pConn$: confirm_pconn }\"></component-mapper>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatCardModule) }, { kind: "component", type: i0.forwardRef(() => i1$1.MatCard), selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
2620
2627
  }
2621
2628
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: FlowContainerComponent, decorators: [{
2622
2629
  type: Component,
2623
- args: [{ selector: 'app-flow-container', providers: [Utils], imports: [CommonModule, MatCardModule, forwardRef(() => ComponentMapperComponent)], template: "<div style=\"text-align: left\" class=\"psdk-flow-container-top\">\n <div *ngIf=\"!bShowConfirm\">\n <div *ngIf=\"!todo_showTodo$\">\n <h2>{{ containerName$ }}</h2>\n <div *ngIf=\"banners?.length\">\n <component-mapper name=\"AlertBanner\" [props]=\"{ banners }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Todo\"\n [props]=\"{\n pConn$: pConnectOfActiveContainerItem,\n caseInfoID$: todo_caseInfoID$,\n datasource$: todo_datasource$,\n showTodoList$: todo_showTodoList$,\n headerText$: todo_headerText$,\n type$: 'TODO',\n context$: todo_context$,\n isConfirm: true\n }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Assignment\"\n [props]=\"{ pConn$: pConnectOfActiveContainerItem, formGroup$, arChildren$, itemKey$ }\"\n ></component-mapper>\n </div>\n </div>\n <div *ngIf=\"bHasCaseMessages$\">\n <mat-card class=\"psdk-message-card\">\n <div style=\"display: flex; flex-direction: row; align-items: center\">\n <div><img class=\"psdk-icon\" src=\"{{ checkSvg$ }}\" /></div>\n <div>{{ caseMessages$ }}</div>\n </div>\n </mat-card>\n </div>\n <div *ngIf=\"bShowBanner && bShowConfirm && confirm_pconn\">\n <component-mapper name=\"View\" [props]=\"{ formGroup$, pConn$: confirm_pconn }\"></component-mapper>\n </div>\n</div>\n" }]
2630
+ args: [{ selector: 'app-flow-container', providers: [Utils], imports: [CommonModule, MatCardModule, forwardRef(() => ComponentMapperComponent)], template: "<div style=\"text-align: left\" class=\"psdk-flow-container-top\">\n <div *ngIf=\"!bShowConfirm\">\n <div *ngIf=\"!todo_showTodo$\">\n <h2 *ngIf=\"!isMultiStep\">{{ containerName$ }}</h2>\n <div *ngIf=\"banners?.length\">\n <component-mapper name=\"AlertBanner\" [props]=\"{ banners }\"></component-mapper>\n </div>\n </div>\n <div *ngIf=\"todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Todo\"\n [props]=\"{\n pConn$: pConnectOfActiveContainerItem,\n caseInfoID$: todo_caseInfoID$,\n datasource$: todo_datasource$,\n showTodoList$: todo_showTodoList$,\n headerText$: todo_headerText$,\n type$: 'TODO',\n context$: todo_context$,\n isConfirm: true\n }\"\n ></component-mapper>\n </div>\n <div *ngIf=\"!todo_showTodo$\">\n <component-mapper\n *ngIf=\"pConnectOfActiveContainerItem\"\n name=\"Assignment\"\n [props]=\"{ pConn$: pConnectOfActiveContainerItem, formGroup$, arChildren$, itemKey$ }\"\n ></component-mapper>\n </div>\n </div>\n <div *ngIf=\"bHasCaseMessages$\">\n <mat-card class=\"psdk-message-card\">\n <div style=\"display: flex; flex-direction: row; align-items: center\">\n <div><img class=\"psdk-icon\" src=\"{{ checkSvg$ }}\" /></div>\n <div>{{ caseMessages$ }}</div>\n </div>\n </mat-card>\n </div>\n <div *ngIf=\"bShowBanner && bShowConfirm && confirm_pconn\">\n <component-mapper name=\"View\" [props]=\"{ formGroup$, pConn$: confirm_pconn }\"></component-mapper>\n </div>\n</div>\n" }]
2624
2631
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: ProgressSpinnerService }, { type: i2.FormBuilder }, { type: i0.NgZone }, { type: Utils }], propDecorators: { pConn$: [{
2625
2632
  type: Input
2626
2633
  }] } });
@@ -9126,11 +9133,11 @@ class RichTextComponent extends FieldBase {
9126
9133
  }
9127
9134
  }
9128
9135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RichTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RichTextComponent, isStandalone: true, selector: "app-rich-text", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, isHtml$: true }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$; else noEdit\">\n <div *ngIf=\"bVisible$\">\n <component-mapper\n name=\"RichTextEditor\"\n [props]=\"{ placeholder, required: bRequired$, disabled: bDisabled$, label: label$, readonly: false, error, info, testId, value: value$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onBlur: fieldOnBlur, onChange: fieldOnChange }\"\n ></component-mapper>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <div *ngIf=\"bVisible$ !== false\">\n <component-mapper name=\"RichTextEditor\" [props]=\"{ label: label$, value: value$, readonly: true, testId }\" [parent]=\"this\"></component-mapper>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
9136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RichTextComponent, isStandalone: true, selector: "app-rich-text", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, isHtml$: true }\"></component-mapper>\n</div>\n\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$; else noEdit\">\n <div *ngIf=\"bVisible$\">\n <component-mapper\n name=\"RichTextEditor\"\n [props]=\"{ placeholder, required: bRequired$, disabled: bDisabled$, label: label$, readonly: false, error, info, testId, value: value$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onBlur: fieldOnBlur, onChange: fieldOnChange }\"\n ></component-mapper>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noEdit>\n <div *ngIf=\"bVisible$ !== false\">\n <component-mapper name=\"RichTextEditor\" [props]=\"{ label: label$, value: value$, readonly: true, testId }\" [parent]=\"this\"></component-mapper>\n </div>\n</ng-template>\n", styles: [":host{display:block;background-color:var(--mat-sys-surface, #fff);color:var(--mat-sys-on-surface, #000)}::ng-deep .tox-tinymce{border:1px solid var(--mat-sys-outline, #ccc)!important;border-radius:4px!important}::ng-deep .tox-edit-area__iframe{background-color:transparent!important}::ng-deep .tox .tox-toolbar,::ng-deep .tox .tox-toolbar__primary,::ng-deep .tox .tox-editor-header{background-color:var(--mat-sys-surface-container-high, #f0f0f0)!important;border-bottom:1px solid var(--mat-sys-outline-variant, #ccc)!important}::ng-deep .tox .tox-tbtn{color:var(--mat-sys-on-surface-variant, #555)!important;background:transparent!important}::ng-deep .tox .tox-tbtn svg{fill:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-tbtn:hover{background:var(--mat-sys-hover-state-layer-opacity, rgba(0, 0, 0, .05))!important}::ng-deep .tox .tox-tbtn--enabled,::ng-deep .tox .tox-tbtn--enabled:hover{background:var(--mat-sys-secondary-container, #e8def8)!important;color:var(--mat-sys-on-secondary-container, #1d192b)!important}::ng-deep .tox .tox-tbtn--enabled svg{fill:var(--mat-sys-on-secondary-container, #1d192b)!important}::ng-deep .tox .tox-tbtn--select{background-color:transparent!important;margin:2px 0}::ng-deep .tox .tox-tbtn__select-label{color:var(--mat-sys-on-surface, #000)!important}::ng-deep .tox .tox-tbtn__select-chevron svg{fill:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-tbtn--select:hover{background-color:var(--mat-sys-hover-state-layer-opacity, rgba(0, 0, 0, .05))!important}::ng-deep .tox .tox-statusbar{background-color:var(--mat-sys-surface-container-high, #f0f0f0)!important;border-top:1px solid var(--mat-sys-outline-variant, #ccc)!important;color:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-dialog{background-color:var(--mat-sys-surface-container, #fff)!important;color:var(--mat-sys-on-surface, #000)!important;border:1px solid var(--mat-sys-outline-variant, #ccc)!important;box-shadow:0 4px 12px var(--mat-sys-shadow, rgba(0, 0, 0, .2))!important}::ng-deep .tox .tox-dialog__header{background-color:var(--mat-sys-surface-container, #fff)!important;color:var(--mat-sys-on-surface, #000)!important;border-bottom:1px solid var(--mat-sys-outline-variant, #ccc)!important}::ng-deep .tox .tox-dialog__footer{background-color:var(--mat-sys-surface-container, #fff)!important;border-top:1px solid var(--mat-sys-outline-variant, #ccc)!important}::ng-deep .tox .tox-dialog-wrap__backdrop{background-color:var(--mat-sys-scrim, rgba(0, 0, 0, .5))!important;opacity:.6}::ng-deep .tox .tox-dialog__body input,::ng-deep .tox .tox-dialog__body textarea,::ng-deep .tox .tox-dialog__body select{background-color:transparent!important;color:var(--mat-sys-on-surface, #000)!important;border:1px solid var(--mat-sys-outline, #ccc)!important;border-radius:4px!important}::ng-deep .tox .tox-label{color:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-button--icon--hover:hover{background-color:var(--mat-sys-hover-state-layer-opacity)!important;color:var(--mat-sys-on-surface)!important}::ng-deep .tox .tox-dialog__footer .tox-button{background-color:var(--mat-sys-primary, #6200ee)!important;color:var(--mat-sys-on-primary, #fff)!important;border:none!important}::ng-deep .tox .tox-dialog__footer .tox-button--secondary{background-color:transparent!important;color:var(--mat-sys-primary, #6200ee)!important;border:1px solid var(--mat-sys-outline, #ccc)!important}::ng-deep .tox .tox-menu{background-color:var(--mat-sys-surface-container, #2e334f)!important;border:1px solid var(--mat-sys-outline-variant, #404562)!important;box-shadow:0 4px 10px var(--mat-sys-shadow, rgba(0, 0, 0, .3))!important}::ng-deep .tox .tox-collection__item{color:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-collection__item--active{background-color:var(--mat-sys-secondary-container, #810081)!important;color:var(--mat-sys-on-secondary-container, #ffd7f5)!important}::ng-deep .tox .tox-collection__item-icon svg{fill:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-collection__item-accessory{color:var(--mat-sys-on-surface-variant, #c0c5e7)!important}::ng-deep .tox .tox-swatches__picker-btn{border-color:var(--mat-sys-outline-variant)!important}::ng-deep .tox .tox-listbox{background-color:transparent!important;border:1px solid var(--mat-sys-outline, #8a8faf)!important;color:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-listbox__select-chevron svg{fill:var(--mat-sys-on-surface-variant, #c0c5e7)!important}::ng-deep .tox .tox-listbox__select-label{color:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-listboxfield .tox-listbox--select{background-color:transparent!important;color:var(--mat-sys-on-surface, #dde1ff)!important}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
9130
9137
  }
9131
9138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RichTextComponent, decorators: [{
9132
9139
  type: Component,
9133
- args: [{ selector: 'app-rich-text', imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, isHtml$: true }\"></component-mapper>\n</div>\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$; else noEdit\">\n <div *ngIf=\"bVisible$\">\n <component-mapper\n name=\"RichTextEditor\"\n [props]=\"{ placeholder, required: bRequired$, disabled: bDisabled$, label: label$, readonly: false, error, info, testId, value: value$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onBlur: fieldOnBlur, onChange: fieldOnChange }\"\n ></component-mapper>\n </div>\n </div>\n</ng-template>\n<ng-template #noEdit>\n <div *ngIf=\"bVisible$ !== false\">\n <component-mapper name=\"RichTextEditor\" [props]=\"{ label: label$, value: value$, readonly: true, testId }\" [parent]=\"this\"></component-mapper>\n </div>\n</ng-template>\n" }]
9140
+ args: [{ selector: 'app-rich-text', imports: [CommonModule, ReactiveFormsModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"displayMode$; else noDisplayMode\">\n <component-mapper *ngIf=\"bVisible$ !== false\" name=\"FieldValueList\" [props]=\"{ label$, value$, displayMode$, isHtml$: true }\"></component-mapper>\n</div>\n\n<ng-template #noDisplayMode>\n <div *ngIf=\"!bReadonly$; else noEdit\">\n <div *ngIf=\"bVisible$\">\n <component-mapper\n name=\"RichTextEditor\"\n [props]=\"{ placeholder, required: bRequired$, disabled: bDisabled$, label: label$, readonly: false, error, info, testId, value: value$ }\"\n [parent]=\"this\"\n [outputEvents]=\"{ onBlur: fieldOnBlur, onChange: fieldOnChange }\"\n ></component-mapper>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noEdit>\n <div *ngIf=\"bVisible$ !== false\">\n <component-mapper name=\"RichTextEditor\" [props]=\"{ label: label$, value: value$, readonly: true, testId }\" [parent]=\"this\"></component-mapper>\n </div>\n</ng-template>\n", styles: [":host{display:block;background-color:var(--mat-sys-surface, #fff);color:var(--mat-sys-on-surface, #000)}::ng-deep .tox-tinymce{border:1px solid var(--mat-sys-outline, #ccc)!important;border-radius:4px!important}::ng-deep .tox-edit-area__iframe{background-color:transparent!important}::ng-deep .tox .tox-toolbar,::ng-deep .tox .tox-toolbar__primary,::ng-deep .tox .tox-editor-header{background-color:var(--mat-sys-surface-container-high, #f0f0f0)!important;border-bottom:1px solid var(--mat-sys-outline-variant, #ccc)!important}::ng-deep .tox .tox-tbtn{color:var(--mat-sys-on-surface-variant, #555)!important;background:transparent!important}::ng-deep .tox .tox-tbtn svg{fill:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-tbtn:hover{background:var(--mat-sys-hover-state-layer-opacity, rgba(0, 0, 0, .05))!important}::ng-deep .tox .tox-tbtn--enabled,::ng-deep .tox .tox-tbtn--enabled:hover{background:var(--mat-sys-secondary-container, #e8def8)!important;color:var(--mat-sys-on-secondary-container, #1d192b)!important}::ng-deep .tox .tox-tbtn--enabled svg{fill:var(--mat-sys-on-secondary-container, #1d192b)!important}::ng-deep .tox .tox-tbtn--select{background-color:transparent!important;margin:2px 0}::ng-deep .tox .tox-tbtn__select-label{color:var(--mat-sys-on-surface, #000)!important}::ng-deep .tox .tox-tbtn__select-chevron svg{fill:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-tbtn--select:hover{background-color:var(--mat-sys-hover-state-layer-opacity, rgba(0, 0, 0, .05))!important}::ng-deep .tox .tox-statusbar{background-color:var(--mat-sys-surface-container-high, #f0f0f0)!important;border-top:1px solid var(--mat-sys-outline-variant, #ccc)!important;color:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-dialog{background-color:var(--mat-sys-surface-container, #fff)!important;color:var(--mat-sys-on-surface, #000)!important;border:1px solid var(--mat-sys-outline-variant, #ccc)!important;box-shadow:0 4px 12px var(--mat-sys-shadow, rgba(0, 0, 0, .2))!important}::ng-deep .tox .tox-dialog__header{background-color:var(--mat-sys-surface-container, #fff)!important;color:var(--mat-sys-on-surface, #000)!important;border-bottom:1px solid var(--mat-sys-outline-variant, #ccc)!important}::ng-deep .tox .tox-dialog__footer{background-color:var(--mat-sys-surface-container, #fff)!important;border-top:1px solid var(--mat-sys-outline-variant, #ccc)!important}::ng-deep .tox .tox-dialog-wrap__backdrop{background-color:var(--mat-sys-scrim, rgba(0, 0, 0, .5))!important;opacity:.6}::ng-deep .tox .tox-dialog__body input,::ng-deep .tox .tox-dialog__body textarea,::ng-deep .tox .tox-dialog__body select{background-color:transparent!important;color:var(--mat-sys-on-surface, #000)!important;border:1px solid var(--mat-sys-outline, #ccc)!important;border-radius:4px!important}::ng-deep .tox .tox-label{color:var(--mat-sys-on-surface-variant, #555)!important}::ng-deep .tox .tox-button--icon--hover:hover{background-color:var(--mat-sys-hover-state-layer-opacity)!important;color:var(--mat-sys-on-surface)!important}::ng-deep .tox .tox-dialog__footer .tox-button{background-color:var(--mat-sys-primary, #6200ee)!important;color:var(--mat-sys-on-primary, #fff)!important;border:none!important}::ng-deep .tox .tox-dialog__footer .tox-button--secondary{background-color:transparent!important;color:var(--mat-sys-primary, #6200ee)!important;border:1px solid var(--mat-sys-outline, #ccc)!important}::ng-deep .tox .tox-menu{background-color:var(--mat-sys-surface-container, #2e334f)!important;border:1px solid var(--mat-sys-outline-variant, #404562)!important;box-shadow:0 4px 10px var(--mat-sys-shadow, rgba(0, 0, 0, .3))!important}::ng-deep .tox .tox-collection__item{color:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-collection__item--active{background-color:var(--mat-sys-secondary-container, #810081)!important;color:var(--mat-sys-on-secondary-container, #ffd7f5)!important}::ng-deep .tox .tox-collection__item-icon svg{fill:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-collection__item-accessory{color:var(--mat-sys-on-surface-variant, #c0c5e7)!important}::ng-deep .tox .tox-swatches__picker-btn{border-color:var(--mat-sys-outline-variant)!important}::ng-deep .tox .tox-listbox{background-color:transparent!important;border:1px solid var(--mat-sys-outline, #8a8faf)!important;color:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-listbox__select-chevron svg{fill:var(--mat-sys-on-surface-variant, #c0c5e7)!important}::ng-deep .tox .tox-listbox__select-label{color:var(--mat-sys-on-surface, #dde1ff)!important}::ng-deep .tox .tox-listboxfield .tox-listbox--select{background-color:transparent!important;color:var(--mat-sys-on-surface, #dde1ff)!important}\n"] }]
9134
9141
  }] });
9135
9142
 
9136
9143
  class DataReferenceAdvancedSearchService {
@@ -9762,11 +9769,11 @@ class ConfirmationComponent {
9762
9769
  PCore.getPubSubUtils().publish(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.CLOSE_CONFIRM_VIEW, this.rootInfo);
9763
9770
  }
9764
9771
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ConfirmationComponent, deps: [{ token: AngularPConnectService }], target: i0.ɵɵFactoryTarget.Component }); }
9765
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ConfirmationComponent, isStandalone: true, selector: "app-confirmation", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"!showConfirmView && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
9772
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ConfirmationComponent, isStandalone: true, selector: "app-confirmation", inputs: { pConn$: "pConn$" }, ngImport: i0, template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\" class=\"confirmation-details\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"!showConfirmView && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
9766
9773
  }
9767
9774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ConfirmationComponent, decorators: [{
9768
9775
  type: Component,
9769
- args: [{ selector: 'app-confirmation', imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"!showConfirmView && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"] }]
9776
+ args: [{ selector: 'app-confirmation', imports: [CommonModule, MatButtonModule, forwardRef(() => ComponentMapperComponent)], template: "<div>\n <div *ngIf=\"showConfirmView\">\n <h2 id=\"confirm-label\" class=\"confirm-label\">{{ label }}</h2>\n <div *ngIf=\"showDetails\" class=\"confirmation-details\">\n <component-mapper name=\"Details\" [props]=\"{ pConn$ }\"></component-mapper>\n </div>\n <div *ngIf=\"showTasks && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Open Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n <div class=\"done-button\">\n <button mat-raised-button color=\"primary\" (click)=\"onConfirmViewClose()\">Done</button>\n </div>\n </div>\n <div *ngIf=\"!showConfirmView && toDoList?.length > 0\">\n <component-mapper\n name=\"Todo\"\n [props]=\"{ pConn$, datasource$: { source: toDoList }, headerText$: 'Tasks', type$: CONSTS.TODO, isConfirm: true }\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".done-button{justify-content:flex-end;display:flex;padding-bottom:1rem}.confirm-label{padding:0 16px;margin:0}\n"] }]
9770
9777
  }], ctorParameters: () => [{ type: AngularPConnectService }], propDecorators: { pConn$: [{
9771
9778
  type: Input
9772
9779
  }] } });
@@ -14385,11 +14392,11 @@ class SelfServiceCaseViewComponent {
14385
14392
  openProcessAction(data.ID, { ...data });
14386
14393
  }
14387
14394
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelfServiceCaseViewComponent, deps: [{ token: AngularPConnectService }, { token: Utils }], target: i0.ɵɵFactoryTarget.Component }); }
14388
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: SelfServiceCaseViewComponent, isStandalone: true, selector: "app-self-service-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, providers: [Utils], ngImport: i0, template: "<div *ngIf=\"showCaseActions\" class=\"psdk-self-service-case-view-header\">\n <div>{{ this.heading$ }}</div>\n <div class=\"psdk-case-view-buttons\">\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n</div>\n<div class=\"psdk-case-view\" id=\"case-view\">\n <div class=\"psdk-case-view-info\" *ngIf=\"showSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0)\">\n <mat-toolbar class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row class=\"psdk-case-view-toolbar-row\">\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n <div class=\"psdk-case-view-divider\"></div>\n <div class=\"psdk-case-view-summary\">\n <component-mapper\n name=\"CaseSummaryFields\"\n [props]=\"{ primaryFields$: primarySummaryFields, secondaryFields$: secondarySummaryFields }\"\n ></component-mapper>\n </div>\n </div>\n <div class=\"psdk-case-view-main\">\n <div>\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' &&\n kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages' &&\n showCaseLifecycle\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n </div>\n <div class=\"psdk-case-view-utilities\" *ngIf=\"arChildren$ && showUtilitiesRegion && isUtilitiesRegionNotEmpty()\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--mat-sys-on-primary-fixed);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;background-color:var(--mat-sys-surface-container);height:100%}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%;padding-left:0}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{background-color:var(--mat-sys-surface-container);width:21.875rem;float:left;padding:0rem .3125rem}.psdk-case-view-divider{border-bottom:.0625rem solid var(--mat-sys-outline-variant)}.psdk-status{padding:.3125rem;background-color:var(--mat-sys-primary);color:var(--mat-sys-surface-container);width:fit-content;margin:.625rem}.psdk-case-view-toolbar{background-color:var(--mat-sys-primary);justify-content:center}button{margin:0rem .3125rem}.psdk-case-view-toolbar-row{padding-left:1rem;white-space:normal;height:auto}.psdk-self-service-case-view-header{display:flex;justify-content:space-around;align-items:center;margin:10px;background-color:var(--mat-sys-primary)}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatToolbarModule) }, { kind: "component", type: i0.forwardRef(() => i4$4.MatToolbar), selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i0.forwardRef(() => i4$4.MatToolbarRow), selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
14395
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: SelfServiceCaseViewComponent, isStandalone: true, selector: "app-self-service-case-view", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, providers: [Utils], ngImport: i0, template: "<div class=\"psdk-self-service-case-view\">\n <div class=\"psdk-self-service-case-view-header\">\n <div class=\"heading\">{{ this.heading$ }}</div>\n <div *ngIf=\"showCaseActions\" class=\"psdk-case-view-buttons\">\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </div>\n <div class=\"psdk-case-view\" id=\"case-view\">\n <div class=\"psdk-case-view-info\" *ngIf=\"showSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0)\">\n <mat-toolbar class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row class=\"psdk-case-view-toolbar-row\">\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n <div class=\"psdk-case-view-divider\"></div>\n <div class=\"psdk-case-view-summary\">\n <component-mapper\n name=\"CaseSummaryFields\"\n [props]=\"{ primaryFields$: primarySummaryFields, secondaryFields$: secondarySummaryFields }\"\n ></component-mapper>\n </div>\n </div>\n <div class=\"psdk-case-view-main\">\n <div>\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' &&\n kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages' &&\n showCaseLifecycle\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n </div>\n <div class=\"psdk-case-view-utilities\" *ngIf=\"arChildren$ && showUtilitiesRegion && isUtilitiesRegionNotEmpty()\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--mat-sys-on-primary-fixed);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;background-color:var(--mat-sys-surface-container);height:100%}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%;padding-left:0}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{background-color:var(--mat-sys-surface-container);width:21.875rem;float:left;padding:0rem .3125rem}.psdk-case-view-divider{border-bottom:.0625rem solid var(--mat-sys-outline-variant)}.psdk-status{padding:.3125rem;background-color:var(--mat-sys-primary);color:var(--mat-sys-surface-container);width:fit-content;margin:.625rem}.psdk-case-view-toolbar{background-color:var(--mat-sys-primary);justify-content:center}button{margin:0rem .3125rem}.psdk-case-view-toolbar-row{padding-left:1rem;white-space:normal;height:auto}.psdk-self-service-case-view-header{height:50px;display:flex;justify-content:space-between;align-items:center;background-color:var(--mat-sys-primary);padding:0 8px}.heading{font-size:20px;color:var(--mat-sys-on-primary);font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatToolbarModule) }, { kind: "component", type: i0.forwardRef(() => i4$4.MatToolbar), selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i0.forwardRef(() => i4$4.MatToolbarRow), selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatButtonModule) }, { kind: "component", type: i0.forwardRef(() => i3.MatButton), selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: i0.forwardRef(() => MatMenuModule) }, { kind: "component", type: i0.forwardRef(() => i6.MatMenu), selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i0.forwardRef(() => i6.MatMenuItem), selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i0.forwardRef(() => i6.MatMenuTrigger), selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
14389
14396
  }
14390
14397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelfServiceCaseViewComponent, decorators: [{
14391
14398
  type: Component,
14392
- args: [{ selector: 'app-self-service-case-view', providers: [Utils], imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"showCaseActions\" class=\"psdk-self-service-case-view-header\">\n <div>{{ this.heading$ }}</div>\n <div class=\"psdk-case-view-buttons\">\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n</div>\n<div class=\"psdk-case-view\" id=\"case-view\">\n <div class=\"psdk-case-view-info\" *ngIf=\"showSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0)\">\n <mat-toolbar class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row class=\"psdk-case-view-toolbar-row\">\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n <div class=\"psdk-case-view-divider\"></div>\n <div class=\"psdk-case-view-summary\">\n <component-mapper\n name=\"CaseSummaryFields\"\n [props]=\"{ primaryFields$: primarySummaryFields, secondaryFields$: secondarySummaryFields }\"\n ></component-mapper>\n </div>\n </div>\n <div class=\"psdk-case-view-main\">\n <div>\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' &&\n kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages' &&\n showCaseLifecycle\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n </div>\n <div class=\"psdk-case-view-utilities\" *ngIf=\"arChildren$ && showUtilitiesRegion && isUtilitiesRegionNotEmpty()\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--mat-sys-on-primary-fixed);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;background-color:var(--mat-sys-surface-container);height:100%}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%;padding-left:0}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{background-color:var(--mat-sys-surface-container);width:21.875rem;float:left;padding:0rem .3125rem}.psdk-case-view-divider{border-bottom:.0625rem solid var(--mat-sys-outline-variant)}.psdk-status{padding:.3125rem;background-color:var(--mat-sys-primary);color:var(--mat-sys-surface-container);width:fit-content;margin:.625rem}.psdk-case-view-toolbar{background-color:var(--mat-sys-primary);justify-content:center}button{margin:0rem .3125rem}.psdk-case-view-toolbar-row{padding-left:1rem;white-space:normal;height:auto}.psdk-self-service-case-view-header{display:flex;justify-content:space-around;align-items:center;margin:10px;background-color:var(--mat-sys-primary)}\n"] }]
14399
+ args: [{ selector: 'app-self-service-case-view', providers: [Utils], imports: [CommonModule, MatToolbarModule, MatButtonModule, MatMenuModule, forwardRef(() => ComponentMapperComponent)], template: "<div class=\"psdk-self-service-case-view\">\n <div class=\"psdk-self-service-case-view-header\">\n <div class=\"heading\">{{ this.heading$ }}</div>\n <div *ngIf=\"showCaseActions\" class=\"psdk-case-view-buttons\">\n <button mat-raised-button color=\"secondary\" [matMenuTriggerFor]=\"actionMenu\">{{ localizedVal('Actions...', localeCategory) }}</button>\n <mat-menu #actionMenu=\"matMenu\" overlapTrigger=\"false\">\n <ng-container *ngFor=\"let action of arAvailableActions$\">\n <button mat-menu-item (click)=\"_menuActionClick(action)\">\n {{ localizedVal(action.name, '', localeKey) }}\n </button>\n </ng-container>\n <ng-container *ngFor=\"let process of arAvailabeProcesses$\">\n <button mat-menu-item (click)=\"_menuProcessClick(process)\">\n {{ process.name }}\n </button>\n </ng-container>\n </mat-menu>\n </div>\n </div>\n <div class=\"psdk-case-view\" id=\"case-view\">\n <div class=\"psdk-case-view-info\" *ngIf=\"showSummaryRegion && (primarySummaryFields.length > 0 || secondarySummaryFields.length > 0)\">\n <mat-toolbar class=\"psdk-case-view-toolbar\">\n <mat-toolbar-row class=\"psdk-case-view-toolbar-row\">\n <div class=\"psdk-case-view-heading\">\n <div>\n <h1 id=\"case-name\">{{ heading$ }}</h1>\n </div>\n <div id=\"current-caseID\" [hidden]=\"true\">{{ currentCaseID }}</div>\n <div class=\"psdk-case-view-heading-id\" id=\"caseId\">{{ id$ }}</div>\n </div>\n </mat-toolbar-row>\n </mat-toolbar>\n <div class=\"psdk-case-view-divider\"></div>\n <div class=\"psdk-case-view-summary\">\n <component-mapper\n name=\"CaseSummaryFields\"\n [props]=\"{ primaryFields$: primarySummaryFields, secondaryFields$: secondarySummaryFields }\"\n ></component-mapper>\n </div>\n </div>\n <div class=\"psdk-case-view-main\">\n <div>\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"\n kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' &&\n kid.getPConnect().getRawMetadata().name.toLowerCase() == 'stages' &&\n showCaseLifecycle\n \"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div\n *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name.toLowerCase() == 'todo'\"\n >\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata().type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata().name == 'Main'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect(), formGroup$ }\"></component-mapper>\n </div>\n </div>\n </div>\n <div class=\"psdk-case-view-utilities\" *ngIf=\"arChildren$ && showUtilitiesRegion && isUtilitiesRegionNotEmpty()\">\n <div *ngFor=\"let kid of arChildren$\">\n <div *ngIf=\"kid.getPConnect().getRawMetadata()?.type.toLowerCase() == 'region' && kid.getPConnect().getRawMetadata()?.name == 'Utilities'\">\n <component-mapper name=\"Region\" [props]=\"{ pConn$: kid.getPConnect() }\"></component-mapper>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["h1{font-size:1.1rem;line-height:1.3rem}::ng-deep .mat-mdc-menu-panel{overflow:unset;max-width:unset}.psdk-case-view-label{font-size:1rem;display:block;transform:translateY(.2em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(.2em) scale(.75);width:133.33333%;border-radius:.6125rem}.psdk-case-view{box-sizing:border-box;display:flex}.ng-case-view-toolbar{padding:.625rem}.psdk-case-icon-div{background-color:var(--mat-sys-on-primary-fixed);border-radius:1rem;padding:.5rem .3rem .3rem}.psdk-case-svg-icon{width:2rem;padding:0rem .3125rem;filter:var(--app-white-color-filter)}.psdk-case-view-info-box{display:flex;flex-direction:row;padding:0rem .3125rem 0rem 0rem}.psdk-case-view-info{flex:0 0 auto;width:25rem;float:left;background-color:var(--mat-sys-surface-container);height:100%}.psdk-case-view-main{flex-grow:2;float:left;padding:0rem .3125rem;height:100%;padding-left:0}.psdk-case-view-summary{padding-left:.75rem}.psdk-case-view-heading{display:block;text-align:left;padding-left:.5rem;padding-bottom:0;padding-top:5px}.psdk-case-view-heading-id{font-size:.9rem;font-weight:400}.psdk-case-view-buttons{display:flex;justify-content:flex-start;padding:.3125rem}.psdk-case-view-utilities{background-color:var(--mat-sys-surface-container);width:21.875rem;float:left;padding:0rem .3125rem}.psdk-case-view-divider{border-bottom:.0625rem solid var(--mat-sys-outline-variant)}.psdk-status{padding:.3125rem;background-color:var(--mat-sys-primary);color:var(--mat-sys-surface-container);width:fit-content;margin:.625rem}.psdk-case-view-toolbar{background-color:var(--mat-sys-primary);justify-content:center}button{margin:0rem .3125rem}.psdk-case-view-toolbar-row{padding-left:1rem;white-space:normal;height:auto}.psdk-self-service-case-view-header{height:50px;display:flex;justify-content:space-between;align-items:center;background-color:var(--mat-sys-primary);padding:0 8px}.heading{font-size:20px;color:var(--mat-sys-on-primary);font-weight:600}\n"] }]
14393
14400
  }], ctorParameters: () => [{ type: AngularPConnectService }, { type: Utils }], propDecorators: { pConn$: [{
14394
14401
  type: Input
14395
14402
  }], formGroup$: [{
@@ -16181,11 +16188,11 @@ class WssNavBarComponent {
16181
16188
  });
16182
16189
  }
16183
16190
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: WssNavBarComponent, deps: [{ token: AngularPConnectService }, { token: i0.ChangeDetectorRef }, { token: ProgressSpinnerService }, { token: i0.NgZone }, { token: Utils }], target: i0.ɵɵFactoryTarget.Component }); }
16184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: WssNavBarComponent, isStandalone: true, selector: "app-wss-nav-bar", inputs: { pConn$: "pConn$", appName$: "appName$", pages$: "pages$", caseTypes$: "caseTypes$", homePage: "homePage", portalLogoImage$: "portalLogoImage$" }, providers: [Utils], ngImport: i0, template: "<mat-toolbar style=\"margin-bottom: 5px; background-color: #262626\">\n <mat-toolbar-row mat-icon-button>\n <div class=\"psdk-nav-header\" (click)=\"navPanelButtonClick(homePage)\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ appName$ }}</div>\n </div>\n </div>\n\n <span class=\"spacer\"></span>\n\n <div *ngFor=\"let page of navPages$\">\n <div class=\"flex-box mat-list-item\" style=\"cursor: pointer; font-size: 1rem; text-transform: capitalize\" (click)=\"navPanelButtonClick(page)\">\n <div mat-button class=\"psdk-nav-button-span\">{{ page.pyLabel }}</div>\n </div>\n </div>\n\n <!-- <span class=\"spacer\"></span> -->\n\n <mat-list>\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </mat-toolbar-row>\n</mat-toolbar>\n", styles: [".psdk-nav-divider{border-bottom:.0625rem solid var(--app-divider-color);width:100%;align-items:center}.psdk-nav-header{display:flex;padding-top:.625rem;cursor:pointer;padding-right:1rem;align-items:center}.psdk-nav-logo{max-width:100%;height:3rem}.psdk-nav-svg-icon{filter:var(--app-white-color-filter);width:1.6rem;padding-right:.625rem}.psdk-nav-portal-name{font-size:.875rem}.psdk-nav-portal-app{font-size:1.5rem;color:var(--app-nav-color)}.psdk-appshell-nav{z-index:3;position:fixed;display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:100%;color:var(--app-nav-color);overflow-y:auto;overflow-x:hidden;white-space:nowrap;will-change:width}.psdk-appshell-nav:hover{width:var(--app-nav-width-expanded)}.psdk-appshell-topnav{display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:15%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-appshell-middlenav{display:flex;flex-direction:column;justify-content:space-between;background:var(--app-nav-bg);width:var(--app-nav-width);height:50%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-nav-ul-middle{display:block;list-style-type:none;margin:0rem;padding-inline-start:30px}.psdk-nav-li-middle{box-sizing:border-box;text-align:left}.psdk-icon{padding:0rem .125rem;min-width:unset}.psdk-nav-button-span{padding:0 1rem;color:var(--app-nav-color)}.psdk-nav-oper-avatar{margin:0rem;padding:0rem;min-width:2.5rem;min-height:2.5rem;max-width:2.5rem;max-height:2.5rem;border-radius:50%;justify-content:center;align-items:center;text-align:center;display:inline-flex;font-weight:400;font-size:1rem}mat-list{padding:0}.psdk-profile-list-item{padding-left:24px}mat-list-item{padding:20px 0 20px 30px;cursor:pointer!important;height:auto!important}mat-list-item .flex-box{display:flex;align-items:center;width:100%;text-align:left}.spacer{flex:1 1 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i4$4.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }] }); }
16191
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: WssNavBarComponent, isStandalone: true, selector: "app-wss-nav-bar", inputs: { pConn$: "pConn$", appName$: "appName$", pages$: "pages$", caseTypes$: "caseTypes$", homePage: "homePage", portalLogoImage$: "portalLogoImage$" }, providers: [Utils], ngImport: i0, template: "<mat-toolbar>\n <mat-toolbar-row mat-icon-button>\n <div class=\"psdk-nav-header\" (click)=\"navPanelButtonClick(homePage)\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ appName$ }}</div>\n </div>\n </div>\n\n <span class=\"spacer\"></span>\n\n <div *ngFor=\"let page of navPages$\">\n <div class=\"flex-box mat-list-item\" style=\"cursor: pointer; font-size: 1rem; text-transform: capitalize\" (click)=\"navPanelButtonClick(page)\">\n <div mat-button class=\"psdk-nav-button-span\">{{ page.pyLabel }}</div>\n </div>\n </div>\n\n <!-- <span class=\"spacer\"></span> -->\n\n <mat-list>\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </mat-toolbar-row>\n</mat-toolbar>\n", styles: [".psdk-nav-divider{border-bottom:.0625rem solid var(--app-divider-color);width:100%;align-items:center}.psdk-nav-header{display:flex;padding-top:.625rem;cursor:pointer;padding-right:1rem;align-items:center}.psdk-nav-logo{max-width:100%;height:3rem}.psdk-nav-svg-icon{filter:var(--app-white-color-filter);width:1.6rem;padding-right:.625rem}.psdk-nav-portal-name{font-size:.875rem}.psdk-nav-portal-app{font-size:1.5rem;color:var(--app-nav-color)}.psdk-appshell-nav{z-index:3;position:fixed;display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:100%;color:var(--app-nav-color);overflow-y:auto;overflow-x:hidden;white-space:nowrap;will-change:width}.psdk-appshell-nav:hover{width:var(--app-nav-width-expanded)}.psdk-appshell-topnav{display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:15%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-appshell-middlenav{display:flex;flex-direction:column;justify-content:space-between;background:var(--app-nav-bg);width:var(--app-nav-width);height:50%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-nav-ul-middle{display:block;list-style-type:none;margin:0rem;padding-inline-start:30px}.psdk-nav-li-middle{box-sizing:border-box;text-align:left}.psdk-icon{padding:0rem .125rem;min-width:unset}.psdk-nav-button-span{padding:0 1rem}.psdk-nav-oper-avatar{background-color:var(--mat-sys-primary);margin:0rem;padding:0rem;min-width:2.5rem;min-height:2.5rem;max-width:2.5rem;max-height:2.5rem;border-radius:50%;justify-content:center;align-items:center;text-align:center;display:inline-flex;font-weight:400;font-size:1rem}mat-toolbar{background-color:var(--mat-sys-surface-variant)}mat-list{padding:0}.psdk-profile-list-item{padding-left:24px}mat-list-item{padding:20px 0 20px 30px;cursor:pointer!important;height:auto!important}mat-list-item .flex-box{display:flex;align-items:center;width:100%;text-align:left}.spacer{flex:1 1 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i4$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i4$4.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }] }); }
16185
16192
  }
16186
16193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: WssNavBarComponent, decorators: [{
16187
16194
  type: Component,
16188
- args: [{ selector: 'app-wss-nav-bar', providers: [Utils], imports: [CommonModule, MatListModule, MatMenuModule, MatIconModule, MatToolbarModule], template: "<mat-toolbar style=\"margin-bottom: 5px; background-color: #262626\">\n <mat-toolbar-row mat-icon-button>\n <div class=\"psdk-nav-header\" (click)=\"navPanelButtonClick(homePage)\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ appName$ }}</div>\n </div>\n </div>\n\n <span class=\"spacer\"></span>\n\n <div *ngFor=\"let page of navPages$\">\n <div class=\"flex-box mat-list-item\" style=\"cursor: pointer; font-size: 1rem; text-transform: capitalize\" (click)=\"navPanelButtonClick(page)\">\n <div mat-button class=\"psdk-nav-button-span\">{{ page.pyLabel }}</div>\n </div>\n </div>\n\n <!-- <span class=\"spacer\"></span> -->\n\n <mat-list>\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </mat-toolbar-row>\n</mat-toolbar>\n", styles: [".psdk-nav-divider{border-bottom:.0625rem solid var(--app-divider-color);width:100%;align-items:center}.psdk-nav-header{display:flex;padding-top:.625rem;cursor:pointer;padding-right:1rem;align-items:center}.psdk-nav-logo{max-width:100%;height:3rem}.psdk-nav-svg-icon{filter:var(--app-white-color-filter);width:1.6rem;padding-right:.625rem}.psdk-nav-portal-name{font-size:.875rem}.psdk-nav-portal-app{font-size:1.5rem;color:var(--app-nav-color)}.psdk-appshell-nav{z-index:3;position:fixed;display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:100%;color:var(--app-nav-color);overflow-y:auto;overflow-x:hidden;white-space:nowrap;will-change:width}.psdk-appshell-nav:hover{width:var(--app-nav-width-expanded)}.psdk-appshell-topnav{display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:15%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-appshell-middlenav{display:flex;flex-direction:column;justify-content:space-between;background:var(--app-nav-bg);width:var(--app-nav-width);height:50%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-nav-ul-middle{display:block;list-style-type:none;margin:0rem;padding-inline-start:30px}.psdk-nav-li-middle{box-sizing:border-box;text-align:left}.psdk-icon{padding:0rem .125rem;min-width:unset}.psdk-nav-button-span{padding:0 1rem;color:var(--app-nav-color)}.psdk-nav-oper-avatar{margin:0rem;padding:0rem;min-width:2.5rem;min-height:2.5rem;max-width:2.5rem;max-height:2.5rem;border-radius:50%;justify-content:center;align-items:center;text-align:center;display:inline-flex;font-weight:400;font-size:1rem}mat-list{padding:0}.psdk-profile-list-item{padding-left:24px}mat-list-item{padding:20px 0 20px 30px;cursor:pointer!important;height:auto!important}mat-list-item .flex-box{display:flex;align-items:center;width:100%;text-align:left}.spacer{flex:1 1 auto}\n"] }]
16195
+ args: [{ selector: 'app-wss-nav-bar', providers: [Utils], imports: [CommonModule, MatListModule, MatMenuModule, MatIconModule, MatToolbarModule], template: "<mat-toolbar>\n <mat-toolbar-row mat-icon-button>\n <div class=\"psdk-nav-header\" (click)=\"navPanelButtonClick(homePage)\">\n <div>\n <img src=\"{{ portalLogoImage$ }}\" class=\"psdk-nav-logo\" />\n </div>\n <div class=\"psdk-nav-portal-info\">\n <div class=\"psdk-nav-portal-app\">{{ appName$ }}</div>\n </div>\n </div>\n\n <span class=\"spacer\"></span>\n\n <div *ngFor=\"let page of navPages$\">\n <div class=\"flex-box mat-list-item\" style=\"cursor: pointer; font-size: 1rem; text-transform: capitalize\" (click)=\"navPanelButtonClick(page)\">\n <div mat-button class=\"psdk-nav-button-span\">{{ page.pyLabel }}</div>\n </div>\n </div>\n\n <!-- <span class=\"spacer\"></span> -->\n\n <mat-list>\n <mat-list-item [matMenuTriggerFor]=\"menu\" class=\"psdk-profile-list-item\">\n <div class=\"flex-box\">\n <div class=\"psdk-nav-oper-avatar\">{{ portalOperatorInitials$ }}</div>\n </div>\n </mat-list-item>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"navPanelLogoutClick()\">{{ localizedVal('Log off', localeCategory) }}</button>\n </mat-menu>\n </mat-list>\n </mat-toolbar-row>\n</mat-toolbar>\n", styles: [".psdk-nav-divider{border-bottom:.0625rem solid var(--app-divider-color);width:100%;align-items:center}.psdk-nav-header{display:flex;padding-top:.625rem;cursor:pointer;padding-right:1rem;align-items:center}.psdk-nav-logo{max-width:100%;height:3rem}.psdk-nav-svg-icon{filter:var(--app-white-color-filter);width:1.6rem;padding-right:.625rem}.psdk-nav-portal-name{font-size:.875rem}.psdk-nav-portal-app{font-size:1.5rem;color:var(--app-nav-color)}.psdk-appshell-nav{z-index:3;position:fixed;display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:100%;color:var(--app-nav-color);overflow-y:auto;overflow-x:hidden;white-space:nowrap;will-change:width}.psdk-appshell-nav:hover{width:var(--app-nav-width-expanded)}.psdk-appshell-topnav{display:flex;flex-direction:column;justify-content:flex-start;background:var(--app-nav-bg);width:var(--app-nav-width);height:15%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-appshell-middlenav{display:flex;flex-direction:column;justify-content:space-between;background:var(--app-nav-bg);width:var(--app-nav-width);height:50%;color:var(--app-nav-color);overflow:hidden;white-space:nowrap;will-change:width}.psdk-nav-ul-middle{display:block;list-style-type:none;margin:0rem;padding-inline-start:30px}.psdk-nav-li-middle{box-sizing:border-box;text-align:left}.psdk-icon{padding:0rem .125rem;min-width:unset}.psdk-nav-button-span{padding:0 1rem}.psdk-nav-oper-avatar{background-color:var(--mat-sys-primary);margin:0rem;padding:0rem;min-width:2.5rem;min-height:2.5rem;max-width:2.5rem;max-height:2.5rem;border-radius:50%;justify-content:center;align-items:center;text-align:center;display:inline-flex;font-weight:400;font-size:1rem}mat-toolbar{background-color:var(--mat-sys-surface-variant)}mat-list{padding:0}.psdk-profile-list-item{padding-left:24px}mat-list-item{padding:20px 0 20px 30px;cursor:pointer!important;height:auto!important}mat-list-item .flex-box{display:flex;align-items:center;width:100%;text-align:left}.spacer{flex:1 1 auto}\n"] }]
16189
16196
  }], ctorParameters: () => [{ type: AngularPConnectService }, { type: i0.ChangeDetectorRef }, { type: ProgressSpinnerService }, { type: i0.NgZone }, { type: Utils }], propDecorators: { pConn$: [{
16190
16197
  type: Input
16191
16198
  }], appName$: [{
@@ -16889,6 +16896,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
16889
16896
  type: Input
16890
16897
  }] } });
16891
16898
 
16899
+ /**
16900
+ * Returns the value of the key from objectInfo/caseInfo
16901
+ * Added fallback to retrieve from caseInfo if objectInfo not present.
16902
+ * @param pConnect
16903
+ * @param key
16904
+ * @returns the value of key
16905
+ */
16906
+ const getResolvedConstantValue = (pConnect, key) => {
16907
+ return pConnect.getValue(PCore.getResolvedConstantValue(key)) || pConnect.getValue(key);
16908
+ };
16909
+
16892
16910
  class FileUtilityComponent {
16893
16911
  constructor(angularPConnect, utils, ngZone) {
16894
16912
  this.angularPConnect = angularPConnect;
@@ -17074,7 +17092,8 @@ class FileUtilityComponent {
17074
17092
  // // First thing in initialization is registering and subscribing to the AngularPConnect service
17075
17093
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
17076
17094
  const configProps = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
17077
- this.lu_name$ = configProps.label ?? '';
17095
+ const { caseId, label } = configProps;
17096
+ this.lu_name$ = label ?? '';
17078
17097
  this.lu_icon$ = 'paper-clip';
17079
17098
  this.closeSvgIcon$ = this.utils.getImageSrc('times', this.utils.getSDKStaticContentUrl());
17080
17099
  this.addAttachmentsActions = [
@@ -17093,15 +17112,24 @@ class FileUtilityComponent {
17093
17112
  this.lu_onViewAllFunction = { onClick: this.onViewAll.bind(this) };
17094
17113
  this.removeFileFromList$ = { onClick: this.removeFileFromList.bind(this) };
17095
17114
  this.removeLinksFromList$ = { onClick: this.removeLinksFromList.bind(this) };
17115
+ this.debouncedGetAttachments = debounce(this.refreshAttachments.bind(this), 1000);
17096
17116
  this.updateSelf();
17097
17117
  this.createModalButtons();
17098
- PCore.getPubSubUtils().subscribe(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, this.updateSelf.bind(this), 'caseAttachmentsUpdateFromCaseview');
17118
+ const caseID = caseId ?? getResolvedConstantValue(this.pConn$, PCore.getConstants().CASE_INFO.CASE_INFO_ID);
17119
+ const attachSubObject = {
17120
+ matcher: 'ATTACHMENTS',
17121
+ criteria: {
17122
+ ID: caseID
17123
+ }
17124
+ };
17125
+ this.attachSubId = PCore.getMessagingServiceManager().subscribe(attachSubObject, this.debouncedGetAttachments, this.pConn$.getContextName());
17126
+ this.debouncedGetAttachments();
17099
17127
  }
17100
17128
  ngOnDestroy() {
17101
17129
  if (this.angularPConnectData.unsubscribeFn) {
17102
17130
  this.angularPConnectData.unsubscribeFn();
17103
17131
  }
17104
- PCore.getPubSubUtils().unsubscribe(PCore.getEvents().getCaseEvent().CASE_ATTACHMENTS_UPDATED_FROM_CASEVIEW, 'caseAttachmentsUpdateFromCaseview');
17132
+ PCore.getMessagingServiceManager().unsubscribe(this.attachSubId);
17105
17133
  }
17106
17134
  // Callback passed when subscribing to store change
17107
17135
  onStateChange() {
@@ -17117,7 +17145,7 @@ class FileUtilityComponent {
17117
17145
  this.updateSelf();
17118
17146
  }
17119
17147
  }
17120
- onAttachFiles(files) {
17148
+ onAttachFiles(files = []) {
17121
17149
  const attachmentUtils = PCore.getAttachmentUtils();
17122
17150
  const caseID = this.pConn$.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);
17123
17151
  if (files.length > 0) {
@@ -18240,7 +18268,7 @@ class TodoComponent {
18240
18268
  }
18241
18269
  updateList() {
18242
18270
  const { WORK_BASKET: { DATA_PAGES: { D__PY_MY_WORK_LIST } } } = PCore.getConstants();
18243
- updateWorkList(getPConnect, getMappedValue(D__PY_MY_WORK_LIST));
18271
+ updateWorkList(this.pConn$, getMappedValue(D__PY_MY_WORK_LIST));
18244
18272
  }
18245
18273
  updateToDo() {
18246
18274
  this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
@@ -18467,11 +18495,11 @@ class BannerComponent {
18467
18495
  return `url(${this.backgroundImage})`;
18468
18496
  }
18469
18497
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18470
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BannerComponent, isStandalone: true, selector: "app-banner", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", arChildren$: "arChildren$", title: "title", message: "message", backgroundImage: "backgroundImage", layout$: "layout$" }, ngImport: i0, template: "<div style=\"margin-bottom: '2rem'\">\n <div class=\"background-image-style\" [ngStyle]=\"{ 'background-image': getUrl() }\">\n <div class=\"background-style content\">\n <div>\n <h1 class=\"title\">{{ title }}</h1>\n <p class=\"message\">{{ message }}</p>\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"{\n 'psdk-grid-filter-1': this.layout$ === 'two-column',\n 'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n }\"\n >\n <component-mapper\n [name]=\"arChildren$[0].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[0].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[0].getPConnect().getComponentName() }}\"\n ></component-mapper>\n <component-mapper\n [name]=\"arChildren$[1].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[1].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[1].getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-grid-filter-1,.psdk-grid-filter-2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-wide-narrow{display:grid;grid-template-columns:7fr 3fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-narrow-wide{display:grid;grid-template-columns:3fr 7fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-narrow-wide>*:nth-child(2){min-width:0}.background-image-style{margin-left:-16px;margin-right:-16px;height:19rem;background-size:cover;background-position:center center}.background-style{background-color:transparent;width:100%;height:100%;text-align:center}.content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem}.title{margin:0rem;font-size:1.728rem;font-weight:600}.message{margin:0;font-size:1rem;font-weight:400}.banner-layout{padding:1rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
18498
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: BannerComponent, isStandalone: true, selector: "app-banner", inputs: { pConn$: "pConn$", formGroup$: "formGroup$", arChildren$: "arChildren$", title: "title", message: "message", backgroundImage: "backgroundImage", layout$: "layout$" }, ngImport: i0, template: "<div style=\"margin-bottom: '2rem'\">\n <div class=\"background-image-style\" [ngStyle]=\"{ 'background-image': getUrl() }\">\n <div class=\"background-style content\">\n <div>\n <h1 class=\"title\">{{ title }}</h1>\n <p class=\"message\">{{ message }}</p>\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"{\n 'psdk-grid-filter-2': this.layout$ === 'two-column',\n 'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n }\"\n >\n <component-mapper\n [name]=\"arChildren$[0].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[0].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[0].getPConnect().getComponentName() }}\"\n ></component-mapper>\n <component-mapper\n [name]=\"arChildren$[1].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[1].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[1].getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-grid-filter-1{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-wide-narrow{display:grid;grid-template-columns:7fr 3fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-wide-narrow>*:nth-child(1){min-width:0}.psdk-grid-filter-narrow-wide{display:grid;grid-template-columns:3fr 7fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-narrow-wide>*:nth-child(2){min-width:0}.background-image-style{margin-left:-16px;margin-right:-16px;height:19rem;background-size:cover;background-position:center center}.background-style{background-color:transparent;width:100%;height:100%;text-align:center}.content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem}.title{margin:0rem;font-size:1.728rem;font-weight:600}.message{margin:0;font-size:1rem;font-weight:400}.banner-layout{padding:1rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
18471
18499
  }
18472
18500
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: BannerComponent, decorators: [{
18473
18501
  type: Component,
18474
- args: [{ selector: 'app-banner', imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div style=\"margin-bottom: '2rem'\">\n <div class=\"background-image-style\" [ngStyle]=\"{ 'background-image': getUrl() }\">\n <div class=\"background-style content\">\n <div>\n <h1 class=\"title\">{{ title }}</h1>\n <p class=\"message\">{{ message }}</p>\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"{\n 'psdk-grid-filter-1': this.layout$ === 'two-column',\n 'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n }\"\n >\n <component-mapper\n [name]=\"arChildren$[0].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[0].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[0].getPConnect().getComponentName() }}\"\n ></component-mapper>\n <component-mapper\n [name]=\"arChildren$[1].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[1].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[1].getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-grid-filter-1,.psdk-grid-filter-2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-wide-narrow{display:grid;grid-template-columns:7fr 3fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-narrow-wide{display:grid;grid-template-columns:3fr 7fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-narrow-wide>*:nth-child(2){min-width:0}.background-image-style{margin-left:-16px;margin-right:-16px;height:19rem;background-size:cover;background-position:center center}.background-style{background-color:transparent;width:100%;height:100%;text-align:center}.content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem}.title{margin:0rem;font-size:1.728rem;font-weight:600}.message{margin:0;font-size:1rem;font-weight:400}.banner-layout{padding:1rem}\n"] }]
18502
+ args: [{ selector: 'app-banner', imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div style=\"margin-bottom: '2rem'\">\n <div class=\"background-image-style\" [ngStyle]=\"{ 'background-image': getUrl() }\">\n <div class=\"background-style content\">\n <div>\n <h1 class=\"title\">{{ title }}</h1>\n <p class=\"message\">{{ message }}</p>\n </div>\n </div>\n </div>\n <div\n [ngClass]=\"{\n 'psdk-grid-filter-2': this.layout$ === 'two-column',\n 'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',\n 'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'\n }\"\n >\n <component-mapper\n [name]=\"arChildren$[0].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[0].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[0].getPConnect().getComponentName() }}\"\n ></component-mapper>\n <component-mapper\n [name]=\"arChildren$[1].getPConnect().getComponentName()\"\n [props]=\"{ pConn$: arChildren$[1].getPConnect(), formGroup$ }\"\n errorMsg=\"Region wants component not yet available: {{ arChildren$[1].getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-grid-filter-1{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-wide-narrow{display:grid;grid-template-columns:7fr 3fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-wide-narrow>*:nth-child(1){min-width:0}.psdk-grid-filter-narrow-wide{display:grid;grid-template-columns:3fr 7fr;column-gap:1rem;row-gap:1rem;align-items:start}.psdk-grid-filter-narrow-wide>*:nth-child(2){min-width:0}.background-image-style{margin-left:-16px;margin-right:-16px;height:19rem;background-size:cover;background-position:center center}.background-style{background-color:transparent;width:100%;height:100%;text-align:center}.content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem}.title{margin:0rem;font-size:1.728rem;font-weight:600}.message{margin:0;font-size:1rem;font-weight:400}.banner-layout{padding:1rem}\n"] }]
18475
18503
  }], propDecorators: { pConn$: [{
18476
18504
  type: Input
18477
18505
  }], formGroup$: [{
@@ -18973,6 +19001,7 @@ class RichTextEditorComponent {
18973
19001
  this.onBlur = new EventEmitter();
18974
19002
  this.onChange = new EventEmitter();
18975
19003
  this.richText = new FormControl();
19004
+ this.editorConfig = {};
18976
19005
  this.filePickerCallback = cb => {
18977
19006
  const input = document.createElement('input');
18978
19007
  input.setAttribute('type', 'file');
@@ -19013,6 +19042,34 @@ class RichTextEditorComponent {
19013
19042
  if (this.value) {
19014
19043
  this.richText.setValue(this.value);
19015
19044
  }
19045
+ const themeElement = document.querySelector('.dark') || document.body;
19046
+ let textColor = getComputedStyle(themeElement).getPropertyValue('--mat-sys-on-surface').trim();
19047
+ if (!textColor)
19048
+ textColor = '#000000';
19049
+ this.editorConfig = {
19050
+ base_url: '/tinymce',
19051
+ suffix: '.min',
19052
+ menubar: false,
19053
+ placeholder: this.placeholder,
19054
+ statusbar: false,
19055
+ min_height: 130,
19056
+ plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],
19057
+ autoresize_bottom_margin: 0,
19058
+ toolbar: this.disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',
19059
+ toolbar_location: 'bottom',
19060
+ content_style: `
19061
+ body {
19062
+ font-family: Helvetica, Arial, sans-serif;
19063
+ font-size: 14px;
19064
+ color: ${textColor} !important;
19065
+ background: transparent !important;
19066
+ }
19067
+ `,
19068
+ branding: false,
19069
+ paste_data_images: true,
19070
+ file_picker_types: 'image',
19071
+ file_picker_callback: this.filePickerCallback
19072
+ };
19016
19073
  }
19017
19074
  blur() {
19018
19075
  if (tinymce.activeEditor) {
@@ -19024,11 +19081,11 @@ class RichTextEditorComponent {
19024
19081
  this.onChange.emit(event);
19025
19082
  }
19026
19083
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RichTextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19027
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RichTextEditorComponent, isStandalone: true, selector: "app-rich-text-editor", inputs: { placeholder: "placeholder", disabled: "disabled", readonly: "readonly", value: "value", label: "label", required: "required", info: "info", error: "error", testId: "testId" }, outputs: { onBlur: "onBlur", onChange: "onChange" }, providers: [{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }], usesOnChanges: true, ngImport: i0, template: "<div [attr.data-test-id]=\"testId\">\n <label [ngClass]=\"{ 'label-required': required === true }\" class=\"rich-text-label\">{{ label }}</label>\n <div class=\"rich-text-editor\" *ngIf=\"!readonly\">\n <editor\n [formControl]=\"richText\"\n [attr.disabled]=\"disabled\"\n [initialValue]=\"value\"\n [init]=\"{\n base_url: '/tinymce',\n suffix: '.min',\n menubar: false,\n placeholder,\n statusbar: false,\n min_height: 130,\n plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],\n autoresize_bottom_margin: 0,\n toolbar: disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',\n toolbar_location: 'bottom',\n content_style: 'body { font-family:Helvetica, Arial,sans-serif; font-size:14px }',\n branding: false,\n paste_data_images: true,\n file_picker_types: 'image',\n file_picker_callback: filePickerCallback\n }\"\n (onBlur)=\"blur()\"\n (onChange)=\"change($event)\"\n ></editor>\n <p *ngIf=\"richText.invalid\" [ngClass]=\"'text-editor-error'\">{{ info }}</p>\n </div>\n <div *ngIf=\"readonly\">\n <div class=\"readonly-richtext-editor\" style=\"margin: 10px 5px\" [innerHTML]=\"value || '--'\"></div>\n </div>\n</div>\n", styles: [".rich-text-label{margin:5px;font-size:16px}.rich-text-editor{margin:10px 0}.label-required:after{display:inline;content:\" *\";vertical-align:top}.text-editor-error{color:var(--app-error-light-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i2$4.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
19084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RichTextEditorComponent, isStandalone: true, selector: "app-rich-text-editor", inputs: { placeholder: "placeholder", disabled: "disabled", readonly: "readonly", value: "value", label: "label", required: "required", info: "info", error: "error", testId: "testId" }, outputs: { onBlur: "onBlur", onChange: "onChange" }, providers: [{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }], usesOnChanges: true, ngImport: i0, template: "<div [attr.data-test-id]=\"testId\">\n <label [ngClass]=\"{ 'label-required': required === true }\" class=\"rich-text-label\">{{ label }}</label>\n\n <div class=\"rich-text-editor\" *ngIf=\"!readonly\">\n <editor\n [formControl]=\"richText\"\n [attr.disabled]=\"disabled\"\n [initialValue]=\"value\"\n [init]=\"editorConfig\"\n (onBlur)=\"blur()\"\n (onChange)=\"change($event)\"\n ></editor>\n\n <p *ngIf=\"richText.invalid\" [ngClass]=\"'text-editor-error'\">{{ info }}</p>\n </div>\n\n <div *ngIf=\"readonly\">\n <div class=\"readonly-richtext-editor\" style=\"margin: 10px 5px\" [innerHTML]=\"value || '--'\"></div>\n </div>\n</div>\n", styles: [".rich-text-label{margin:5px;font-size:16px}.rich-text-editor{margin:10px 0}.label-required:after{display:inline;content:\" *\";vertical-align:top}.text-editor-error{color:var(--app-error-light-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i2$4.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
19028
19085
  }
19029
19086
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RichTextEditorComponent, decorators: [{
19030
19087
  type: Component,
19031
- args: [{ selector: 'app-rich-text-editor', imports: [CommonModule, EditorModule, ReactiveFormsModule], providers: [{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }], template: "<div [attr.data-test-id]=\"testId\">\n <label [ngClass]=\"{ 'label-required': required === true }\" class=\"rich-text-label\">{{ label }}</label>\n <div class=\"rich-text-editor\" *ngIf=\"!readonly\">\n <editor\n [formControl]=\"richText\"\n [attr.disabled]=\"disabled\"\n [initialValue]=\"value\"\n [init]=\"{\n base_url: '/tinymce',\n suffix: '.min',\n menubar: false,\n placeholder,\n statusbar: false,\n min_height: 130,\n plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],\n autoresize_bottom_margin: 0,\n toolbar: disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',\n toolbar_location: 'bottom',\n content_style: 'body { font-family:Helvetica, Arial,sans-serif; font-size:14px }',\n branding: false,\n paste_data_images: true,\n file_picker_types: 'image',\n file_picker_callback: filePickerCallback\n }\"\n (onBlur)=\"blur()\"\n (onChange)=\"change($event)\"\n ></editor>\n <p *ngIf=\"richText.invalid\" [ngClass]=\"'text-editor-error'\">{{ info }}</p>\n </div>\n <div *ngIf=\"readonly\">\n <div class=\"readonly-richtext-editor\" style=\"margin: 10px 5px\" [innerHTML]=\"value || '--'\"></div>\n </div>\n</div>\n", styles: [".rich-text-label{margin:5px;font-size:16px}.rich-text-editor{margin:10px 0}.label-required:after{display:inline;content:\" *\";vertical-align:top}.text-editor-error{color:var(--app-error-light-color)}\n"] }]
19088
+ args: [{ selector: 'app-rich-text-editor', imports: [CommonModule, EditorModule, ReactiveFormsModule], providers: [{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }], template: "<div [attr.data-test-id]=\"testId\">\n <label [ngClass]=\"{ 'label-required': required === true }\" class=\"rich-text-label\">{{ label }}</label>\n\n <div class=\"rich-text-editor\" *ngIf=\"!readonly\">\n <editor\n [formControl]=\"richText\"\n [attr.disabled]=\"disabled\"\n [initialValue]=\"value\"\n [init]=\"editorConfig\"\n (onBlur)=\"blur()\"\n (onChange)=\"change($event)\"\n ></editor>\n\n <p *ngIf=\"richText.invalid\" [ngClass]=\"'text-editor-error'\">{{ info }}</p>\n </div>\n\n <div *ngIf=\"readonly\">\n <div class=\"readonly-richtext-editor\" style=\"margin: 10px 5px\" [innerHTML]=\"value || '--'\"></div>\n </div>\n</div>\n", styles: [".rich-text-label{margin:5px;font-size:16px}.rich-text-editor{margin:10px 0}.label-required:after{display:inline;content:\" *\";vertical-align:top}.text-editor-error{color:var(--app-error-light-color)}\n"] }]
19032
19089
  }], propDecorators: { placeholder: [{
19033
19090
  type: Input
19034
19091
  }], disabled: [{