@pega/dx-component-builder-sdk
Version:
Utility for building custom UI components
82 lines (73 loc) • 2.73 kB
text/typescript
import { Component, OnInit, Input, forwardRef, OnChanges } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Utils } from '@pega/angular-sdk-components';
import { ComponentMapperComponent } from '@pega/angular-sdk-components';
export class MaterialCaseSummaryComponent implements OnInit, OnChanges {
status$: string;
bShowStatus$: boolean;
primaryFields$: any[];
secondaryFields$: any[];
primaryFieldsWithStatus$: any[];
constructor(private utils: Utils) {}
localizedVal = PCore.getLocaleUtils().getLocaleValue;
localeCategory = 'ModalContainer';
ngOnInit(): void {
this.updatePrimaryWithStatus();
this.updateLabelAndDate(this.primaryFieldsWithStatus$);
this.updateLabelAndDate(this.secondaryFields$);
}
ngOnChanges() {
this.updatePrimaryWithStatus();
this.updateLabelAndDate(this.primaryFieldsWithStatus$);
this.updateLabelAndDate(this.secondaryFields$);
}
updateLabelAndDate(arData: any[]) {
for (const field of arData) {
switch (field.type.toLowerCase()) {
case 'caseoperator':
if (field.config.label.toLowerCase() == 'create operator') {
field.config.displayLabel = field.config.createLabel;
} else if (field.config.label.toLowerCase() == 'update operator') {
field.config.displayLabel = field.config.updateLabel;
}
break;
case 'date':
field.config.value = this.utils.generateDate(field.config.value, 'Date-Long');
break;
case 'userreference':
case 'decimal':
case 'dropdown':
field.config.displayLabel = field.config.label;
break;
case 'checkbox':
field.config.displayLabel = field.config.caption;
break;
default:
break;
}
}
}
updatePrimaryWithStatus() {
this.primaryFieldsWithStatus$ = [];
for (const prim of this.primaryFields$) {
prim.config.value = this.localizedVal(prim.config.value, this.localeCategory);
this.primaryFieldsWithStatus$.push(prim);
}
if (this.bShowStatus$) {
const oStatus = { type: 'status', config: { value: this.status$, label: 'Status' } };
const count = this.primaryFieldsWithStatus$.length;
if (count < 2) {
this.primaryFieldsWithStatus$.push(oStatus);
} else {
this.primaryFieldsWithStatus$.splice(1, 0, oStatus);
}
}
}
}