import { Component, OnInit, Input, Output, EventEmitter, forwardRef } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormGroup } from '@angular/forms'; import { Utils } from '@pega/angular-sdk-components'; import { ComponentMapperComponent } from '@pega/angular-sdk-components'; @Component({ selector: 'app-multi-step', templateUrl: './multi-step.component.html', styleUrls: ['./multi-step.component.scss'], providers: [Utils], imports: [CommonModule, forwardRef(() => ComponentMapperComponent)] }) export class MultiStepComponent implements OnInit { @Input() pConn$: typeof PConnect; @Input() formGroup$: FormGroup; @Input() arMainButtons$: any[]; @Input() arSecondaryButtons$: any[]; @Input() arChildren$: any[]; @Input() bIsVertical$: boolean; @Input() arCurrentStepIndicies$: number[]; @Input() arNavigationSteps$: any[]; @Output() actionButtonClick: EventEmitter = new EventEmitter(); svgCurrent$: string; svgNotCurrent$: string; bShow$ = true; constructor(private utils: Utils) {} ngOnInit(): void { // svg icons this.svgCurrent$ = this.utils.getImageSrc('circle-solid', this.utils.getSDKStaticContentUrl()); this.svgNotCurrent$ = this.utils.getImageSrc('circle-solid', this.utils.getSDKStaticContentUrl()); } onActionButtonClick(oData: any) { this.actionButtonClick.emit(oData); } _getVIconClass(status): string { if (status == 'current') { return 'psdk-vertical-step-icon-selected'; } return 'psdk-vertical-step-icon'; } _getVLabelClass(status): string { if (status == 'current') { return 'psdk-vertical-step-label-selected'; } return 'psdk-vertical-step-label'; } _getVBodyClass(index: number): string { if (index < this.arNavigationSteps$.length - 1) { return 'psdk-vertical-step-body psdk-vertical-step-line'; } return 'psdk-vertical-step-body'; } _getHIconClass(status): string { if (status == 'current') { return 'psdk-horizontal-step-icon-selected'; } return 'psdk-horizontal-step-icon'; } _getHLabelClass(status): string { if (status == 'current') { return 'psdk-horizontal-step-label-selected'; } return 'psdk-horizontal-step-label'; } _showHLine(index: number): boolean { return index < this.arNavigationSteps$.length - 1; } }