import { Component, ViewChild } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table';
import { MatPaginator } from '@angular/material/paginator';
import { ViewCbpPlanComponent } from '../view-cbp-plan/view-cbp-plan.component';
import { EditCbpPlanComponent } from '../edit-cbp-plan/edit-cbp-plan.component';
import { ViewCourseRecommendationComponent } from '../view-course-recommendation/view-course-recommendation.component';
import { RejectItemRequestFormComponent } from '../reject-item-request-form/reject-item-request-form.component';
import { PublishRequestFormComponent } from '../publish-request-form/publish-request-form.component';
import { RejectRequestFormComponent } from '../reject-request-form/reject-request-form.component';
import { ListPopupComponent } from '../list-popup/list-popup.component';
import { finalize } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "../../modules/shared/services/shared.service";
import * as i2 from "@angular/material/snack-bar";
import * as i3 from "@angular/router";
import * as i4 from "@angular/material/dialog";
import * as i5 from "@angular/common";
import * as i6 from "@angular/material/divider";
import * as i7 from "@angular/material/legacy-card";
import * as i8 from "@angular/forms";
import * as i9 from "@angular/material/legacy-button";
import * as i10 from "@angular/material/icon";
import * as i11 from "@angular/material/progress-spinner";
import * as i12 from "@angular/material/table";
import * as i13 from "@angular/material/paginator";
import * as i14 from "@angular/material/menu";
export class ReviewRequestComponent {
    constructor(sharedService, snackBar, route, router, dialog) {
        this.sharedService = sharedService;
        this.snackBar = snackBar;
        this.route = route;
        this.router = router;
        this.dialog = dialog;
        this.request = {};
        this.searchText = '';
        this.expandedResponsibilityRows = {};
        this.expandedActivityRows = {};
        this.loading = false;
        this.activeTab = 'matched';
        this.displayedColumns = [
            'designation_name',
            'role_responsibilities',
            'activities',
            'behavioral',
            'functional',
            'domain',
            'action'
        ];
        this.dataSource = new MatTableDataSource([]);
    }
    ngOnInit() {
        this.portalData = this.route.snapshot.data['parentData'];
        const requestId = this.route.snapshot.paramMap.get('request_id');
        if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
            this.portalData?.parentAppData?.fromPortal === 'mdo') {
            this.sharedService.fromMdoPortal = true;
            this.requestData = this.portalData?.parentAppData.requestRowData;
            this.sharedService.requestData = this.portalData?.parentAppData.requestRowData;
            this.sharedService.mdoBaseUrl = this.portalData?.configDetails?.mdoPath;
            this.sharedService.mdoConfigDetails = this.portalData?.configDetails;
            this.sharedService.baseUrl = this.portalData?.configDetails?.mdoPath + "/";
            this.sharedService.configDetails = this.portalData?.configDetails;
            this.getMDORequestDetails(requestId);
        }
        else {
            if (requestId) {
                this.getRequestDetails(requestId);
            }
        }
    }
    getRequestDetails(requestId) {
        this.loading = true;
        this.sharedService.viewApprovalRequests(requestId).subscribe({
            next: (res) => {
                console.log('res', res);
                this.request = res;
                this.loading = false;
                this.dataSource = new MatTableDataSource(res?.items);
                setTimeout(() => {
                    this.dataSource.paginator = this.paginator;
                }, 100);
            },
            error: () => {
                this.loading = false;
                this.snackBar.open('Failed to load the approval request information.', 'X', {
                    duration: 3000,
                    panelClass: ['snackbar-error']
                });
            }
        });
    }
    getMDORequestDetails(requestId) {
        this.loading = true;
        this.sharedService.viewMDOApprovalRequests(requestId).subscribe({
            next: (res) => {
                console.log('res', res);
                this.request = res;
                this.loading = false;
                this.dataSource = new MatTableDataSource(res?.items);
                setTimeout(() => {
                    this.dataSource.paginator = this.paginator;
                }, 100);
            },
            error: () => {
                this.loading = false;
                this.snackBar.open('Failed to load the approval request information.', 'X', {
                    duration: 3000,
                    panelClass: ['snackbar-error']
                });
            }
        });
    }
    toggleResponsibilityExpand(id) {
        this.expandedResponsibilityRows[id] = !this.expandedResponsibilityRows[id];
    }
    isResponisbilityExpanded(id) {
        // const dialogRef = this.dialog.open(ListPopupComponent, {
        //   width: '1000px',
        //   data: this.activeRowElement,
        //    panelClass: 'view-cbp-plan-popup',
        //   minHeight: '400px',          // Set minimum height
        //   maxHeight: '90vh',           // Prevent it from going beyond viewport
        //   disableClose: true // Optional: prevent closing with outside click
        // });
        // dialogRef.afterClosed().subscribe(result => {
        //   return false
        // });
        return this.expandedResponsibilityRows[id];
    }
    toggleActivityExpand(id) {
        this.expandedActivityRows[id] = !this.expandedActivityRows[id];
    }
    isActivityExpanded(id) {
        return this.expandedActivityRows[id];
    }
    getCompetenciesByType(competencies, type) {
        return competencies?.filter(c => c.type === type) || [];
    }
    backToApprovalRequest() {
        if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
            this.portalData?.parentAppData?.fromPortal === 'mdo') {
            history.back();
        }
        else {
            this.router.navigate(['/ai/approve-requests']);
        }
    }
    applyFilter() {
        const filterValue = this.searchText.trim().toLowerCase();
        this.dataSource.filterPredicate = (data, filter) => {
            const designation = data.designation_name?.toLowerCase() || '';
            const wing = data.wing_division_section?.toLowerCase() || '';
            const responsibilities = (data.role_responsibilities || [])
                .join(' ')
                .toLowerCase();
            const activities = (data.activities || [])
                .join(' ')
                .toLowerCase();
            const competencies = (data.competencies || [])
                .map(c => `${c.theme} ${c.sub_theme}`)
                .join(' ')
                .toLowerCase();
            const combined = designation +
                wing +
                responsibilities +
                activities +
                competencies;
            return combined.includes(filter);
        };
        this.dataSource.filter = filterValue;
        if (this.dataSource.paginator) {
            this.dataSource.paginator.firstPage();
        }
    }
    clearSearch() {
        this.searchText = '';
        this.dataSource.filter = '';
        if (this.dataSource.paginator) {
            this.dataSource.paginator.firstPage();
        }
    }
    openFullList(element, type) {
        const listToShow = element[type] || [];
        const title = type === 'role_responsibilities' ? 'Role & Responsibilities' : 'Activities';
        const dialogRef = this.dialog.open(ListPopupComponent, {
            width: '600px',
            data: { element: element, type: type },
            disableClose: true,
            maxHeight: '80vh'
        });
        dialogRef.afterClosed().subscribe(() => {
            // No need to do anything special here to reset inline expanded state
            // Because you're using dialog, not inline expand – view remains in initial (collapsed) state
        });
    }
    editRoleMapping(element) {
        this.activeRowElement = element;
        console.log('Edit Role Mapping clicked', element);
        // Navigate or open modal
        console.log('View CBP Plan clicked', element);
        const dialogRef = this.dialog.open(EditCbpPlanComponent, {
            width: '1000px',
            data: { requestData: this.requestData, element: element },
            panelClass: 'view-cbp-plan-popup',
            minHeight: '300px',
            maxHeight: '80vh',
            disableClose: true // Optional: prevent closing with outside click
        });
        dialogRef.afterClosed().subscribe(result => {
            // if (result === 'saved') {
            //   console.log('Changes saved!');
            //   // Refresh data or show a toast here
            // }
            const requestId = this.route.snapshot.paramMap.get('request_id');
            if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
                this.portalData?.parentAppData?.fromPortal === 'mdo') {
                this.getMDORequestDetails(requestId);
            }
        });
    }
    viewCBPPlan(element) {
        this.activeRowElement = element;
        console.log('View CBP Plan clicked', element);
        const dialogRef = this.dialog.open(ViewCbpPlanComponent, {
            width: '1000px',
            data: element,
            panelClass: 'view-cbp-plan-popup',
            minHeight: '300px',
            maxHeight: '80vh',
            disableClose: true // Optional: prevent closing with outside click
        });
        dialogRef.afterClosed().subscribe(result => {
            if (result === 'saved') {
                console.log('Changes saved!');
                // Refresh data or show a toast here
            }
        });
    }
    viewCourseRecommendation(element) {
        console.log('View Course Recommendation clicked', element);
        this.activeRowElement = element;
        console.log('Edit Role Mapping clicked', element);
        // Navigate or open modal
        console.log('View CBP Plan clicked', element);
        const dialogRef = this.dialog.open(ViewCourseRecommendationComponent, {
            width: '1000px',
            data: element,
            panelClass: 'view-cbp-plan-popup',
            minHeight: '400px',
            maxHeight: '90vh',
            disableClose: true // Optional: prevent closing with outside click
        });
        dialogRef.afterClosed().subscribe(result => {
            if (result === 'saved') {
                console.log('Changes saved!');
                // Refresh data or show a toast here
                console.log(this.sharedService.cbpPlanFinalObj);
                const requestId = this.route.snapshot.paramMap.get('request_id');
                if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
                    this.portalData?.parentAppData?.fromPortal === 'mdo') {
                    this.getMDORequestDetails(requestId);
                }
            }
        });
    }
    approveAndPublish() {
        console.log('approveAndPublish clicked', this.requestData);
        const dialogRef = this.dialog.open(PublishRequestFormComponent, {
            width: '750px',
            maxWidth: '90vw',
            data: this.requestData,
            panelClass: 'publish-request-popup',
            minHeight: '400px',
            maxHeight: '90vh',
            disableClose: true // Optional: prevent closing with outside click
        });
        dialogRef.afterClosed().subscribe(result => {
            if (result === 'saved') {
                console.log('Changes saved!');
                // Refresh data or show a toast here
                console.log(this.sharedService.cbpPlanFinalObj);
                const requestId = this.route.snapshot.paramMap.get('request_id');
                if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
                    this.portalData?.parentAppData?.fromPortal === 'mdo') {
                    this.getMDORequestDetails(requestId);
                }
            }
        });
    }
    rejectRequest() {
        console.log('approveAndPublish clicked', this.requestData);
        const dialogRef = this.dialog.open(RejectRequestFormComponent, {
            width: '750px',
            maxWidth: '90vw',
            data: this.requestData,
            panelClass: 'publish-request-popup',
            minHeight: '400px',
            maxHeight: '90vh',
            disableClose: true // Optional: prevent closing with outside click
        });
        dialogRef.afterClosed().subscribe(result => {
            if (result === 'saved') {
                console.log('Changes saved!');
                // Refresh data or show a toast here
                console.log(this.sharedService.cbpPlanFinalObj);
                const requestId = this.route.snapshot.paramMap.get('request_id');
                if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
                    this.portalData?.parentAppData?.fromPortal === 'mdo') {
                    this.getMDORequestDetails(requestId);
                }
            }
        });
    }
    rejectItemRequest(element) {
        console.log('approveAndPublish clicked', element);
        console.log('View Course Recommendation clicked', element);
        this.activeRowElement = element;
        console.log('Edit Role Mapping clicked', element);
        // Navigate or open modal
        console.log('View CBP Plan clicked', element);
        const dialogRef = this.dialog.open(RejectItemRequestFormComponent, {
            width: '750px',
            maxWidth: '90vw',
            data: { requestData: this.requestData, element: element },
            panelClass: 'publish-request-popup',
            minHeight: '400px',
            maxHeight: '90vh',
            disableClose: true // Optional: prevent closing with outside click
        });
        dialogRef.afterClosed().subscribe(result => {
            if (result === 'saved') {
                console.log('Changes saved!');
                // Refresh data or show a toast here
                console.log(this.sharedService.cbpPlanFinalObj);
                const requestId = this.route.snapshot.paramMap.get('request_id');
                if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
                    this.portalData?.parentAppData?.fromPortal === 'mdo') {
                    this.getMDORequestDetails(requestId);
                }
            }
        });
    }
    rePublish(element) {
        const requestId = this.route.snapshot.paramMap.get('request_id');
        this.loading = true;
        let payload = {
            "request_id": requestId,
            "item_id": element?.demand_id
        };
        this.sharedService.rejectItemMDOApprovalRequests(payload)
            .pipe(finalize(() => {
            this.loading = false;
        }))
            .subscribe({
            next: (res) => {
                console.log('Reject Response =>', res);
                this.snackBar.open('Request Republished successfully', 'X', {
                    duration: 3000,
                    panelClass: ['snackbar-success']
                });
                if (this.portalData && this.portalData?.parentAppData && this.portalData?.parentAppData?.fromPortal &&
                    this.portalData?.parentAppData?.fromPortal === 'mdo') {
                    this.getMDORequestDetails(requestId);
                }
            },
            error: (err) => {
                console.error(err);
                this.loading = false;
                const errorMessage = err?.error?.detail ||
                    err?.error?.message ||
                    'Failed to republish request';
                this.snackBar.open(errorMessage, 'X', {
                    duration: 5000,
                    panelClass: ['snackbar-error']
                });
            }
        });
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewRequestComponent, deps: [{ token: i1.SharedService }, { token: i2.MatSnackBar }, { token: i3.ActivatedRoute }, { token: i3.Router }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ReviewRequestComponent, selector: "app-review-request", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<div class=\"review-container\">\n\n    <!-- HEADER -->\n    <div class=\"page-header\">\n\n        <div class=\"left-section\">\n            <mat-icon class=\"back-icon\" (click)=\"backToApprovalRequest()\">arrow_back</mat-icon>\n\n            <div>\n                <p class=\"section-title\">Review Request</p>\n                <p class=\"request-id\">{{request?.id}}</p>\n            </div>\n        </div>\n\n        <div class=\"status-badge\" *ngIf=\"(request?.status === 'pending' || request?.status === 'PENDING' )\">\n            {{request?.status | titlecase}}\n        </div>\n        <div class=\"status-badge-success\" *ngIf=\"(request?.status === 'approved' || request?.status === 'APPROVED' )\">\n            {{request?.status | titlecase}}\n        </div>\n        <div class=\"status-badge-rejected\" *ngIf=\"(request?.status === 'rejected' || request?.status === 'rejected' )\">\n            {{request?.status | titlecase}}\n        </div>\n\n        <div\n            *ngIf=\"(request?.status === 'pending' || request?.status === 'PENDING' ) && portalData?.parentAppData?.fromPortal === 'mdo'\">\n            <div class=\"action-btn-wrapper\">\n\n                <button mat-raised-button class=\"approve-btn\" (click)=\"approveAndPublish()\">\n\n                    <mat-icon>publish</mat-icon>\n                    Approve & Publish\n                </button>\n\n                <button mat-stroked-button class=\"reject-btn\" (click)=\"rejectRequest()\">\n\n                    <mat-icon>close</mat-icon>\n                    Reject Request\n                </button>\n\n            </div>\n        </div>\n\n    </div>\n\n\n    <!-- REQUEST DETAILS -->\n    <div class=\"inner-container\">\n        <mat-card class=\"details-card\">\n\n            <p class=\"section-title\">Request Details</p>\n\n            <div class=\"details-grid\">\n\n                <div class=\"detail-box\">\n                    <mat-icon>tag</mat-icon>\n                    <div>\n                        <p class=\"label\">Request ID</p>\n                        <p class=\"value\">{{request?.id}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>assignment</mat-icon>\n                    <div>\n                        <p class=\"label\">Request Name</p>\n                        <p class=\"value\">{{request?.request_name}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>mail</mat-icon>\n                    <div>\n                        <p class=\"label\">Requested By</p>\n                        <p class=\"value\">{{request?.user?.username | titlecase}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>event</mat-icon>\n                    <div>\n                        <p class=\"label\">Submitted On</p>\n                        <p class=\"value\">{{request?.created_at | date: 'MMM d, y hh:mm:s a'}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>person</mat-icon>\n                    <div>\n                        <p class=\"label\">No. of Designations</p>\n                        <p class=\"value\">{{request?.designation_count}}</p>\n                    </div>\n                </div>\n\n            </div>\n\n            <mat-divider class=\"divider\"></mat-divider>\n\n            <div class=\"organization\">\n                <p class=\"label\">Organization</p>\n                <p class=\"org-value\">{{request?.state_center_name}} <span\n                        *ngIf=\"request?.department_name\">{{request?.department_name}}</span></p>\n            </div>\n\n        </mat-card>\n\n\n        <!-- ROLE MAPPING SECTION -->\n        <div class=\"role-header\">\n\n            <div>\n                <p class=\"section-title\">Role Mappings for Review</p>\n            </div>\n\n\n            <div class=\"search flex margin-right-m\">\n                <div class=\"mt-2\">\n                    <div class=\"search-container\">\n                        <div class=\"rsearch\">\n                            <mat-icon\n                                class=\"color-60 search-icon mat-icon notranslate material-icons mat-icon-no-color\">search</mat-icon>\n                            <input class=\"sinput color-60 w-full\" [(ngModel)]=\"searchText\" label=\"\"\n                                (input)=\"applyFilter()\" placeholder=\"Search by designation name\" type=\"Standard\">\n                            <mat-icon *ngIf=\"searchText.trim().length > 0\"\n                                class=\"color-60 clear-icon mat-icon notranslate material-icons mat-icon-no-color cursor-pointer\"\n                                (click)=\"clearSearch()\">clear</mat-icon>\n                        </div>\n                        <div class=\"pl-2 mt-2\">\n                            <input [disabled]=\"searchText.trim()?.length === 0\"\n                                [ngClass]=\"searchText.trim()?.length === 0 ? 'btn-disable':'btn-active'\" type=\"button\"\n                                value=\"Search\" (click)=\"applyFilter()\" />\n                        </div>\n                    </div>\n\n\n                </div>\n\n\n            </div>\n\n        </div>\n        <div class=\"table-class\">\n            <ng-container *ngIf=\"dataSource?.data?.length > 0\">\n                <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n                    <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1 table-body\">\n\n                        <ng-container matColumnDef=\"designation_name\">\n                            <th class=\"table-header\" mat-header-cell *matHeaderCellDef> Designation\n                            </th>\n                            <td class=\"cursor-pointer\" mat-cell *matCellDef=\"let element\"\n                                (click)=\"viewCBPPlan(element)\">\n                                <div\n                                    [ngClass]=\"activeTab === 'matched'? 'designation-text': 'designation-text-unmatched'\">\n                                    <p class=\"designation\">{{ element?.designation_name }} </p>\n                                    <p class=\"wing-text mt-2\">Wing/Division - {{\n                                        element?.wing_division_section }} </p>\n                                </div>\n                                <div\n                                    *ngIf=\"(element?.status === 'failed' || element?.status === 'FAILED') && portalData?.parentAppData?.fromPortal === 'mdo'\">\n                                    <button mat-raised-button class=\"approve-btn\" (click)=\"rePublish(element)\">\n                                        <mat-icon>publish</mat-icon>\n                                        Re-Publish\n                                    </button>\n                                </div>\n\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"role_responsibilities\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Role &\n                                Responsibilities </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul>\n                                    <li class=\"role-item\"\n                                        *ngFor=\"let role of (isResponisbilityExpanded(element.id) ? element.role_responsibilities : element.role_responsibilities.slice(0, 2)); let i = index\">\n                                        {{i+1}}. {{ role }}</li>\n                                    <li *ngIf=\"element.role_responsibilities.length > 2\"\n                                        class=\"view-more-less cursor-pointer\"\n                                        (click)=\"openFullList(element, 'role_responsibilities')\">\n                                        <span style=\"color: #1B4CA1;font-size: 16px;\">\n                                            View More\n                                        </span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"activities\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Activities </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul>\n                                    <li class=\"role-item\"\n                                        *ngFor=\"let activity of (isActivityExpanded(element.id) ? element.activities : element.activities.slice(0, 2)); let i = index\">\n                                        {{i+1}}. {{ activity }}</li>\n                                    <li *ngIf=\"element.activities.length > 2\" class=\"view-more-less cursor-pointer\"\n                                        (click)=\"openFullList(element, 'activity')\">\n                                        <span style=\"color: #1B4CA1;font-size: 16px;\">\n                                            View More\n                                        </span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"behavioral\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Behavioral\n                                Competencies </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul class=\"competency-list\">\n                                    <li class=\"behavioural-pill\"\n                                        *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Behavioral')\">\n                                        <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n                                            comp.sub_theme }} </span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"functional\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Functional\n                                Competencies </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul class=\"competency-list\">\n                                    <li class=\"functional-pill\"\n                                        *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Functional')\">\n                                        <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n                                            comp.sub_theme }}</span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"domain\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Domain\n                                Competencies </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul class=\"competency-list\">\n                                    <li class=\"domain-pill\"\n                                        *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Domain')\">\n                                        <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n                                            comp.sub_theme }}</span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <!-- Actions -->\n                        <ng-container matColumnDef=\"action\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Action </th>\n                           \n\n                            <td mat-cell *matCellDef=\"let element\">\n\n                                <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n                                    <mat-icon>more_vert</mat-icon>\n                                </button>\n\n                                <mat-menu #menu=\"matMenu\">\n\n                                    <ng-container *ngIf=\"!sharedService.fromMdoPortal\">\n                                        <button mat-menu-item (click)=\"viewCourseRecommendation(element)\">\n                                            <mat-icon>preview</mat-icon>\n                                            <span>View Course Recommendation</span>\n                                        </button>\n                                    </ng-container>\n\n                                    <ng-container *ngIf=\"sharedService.fromMdoPortal\">\n\n                                        <button mat-menu-item (click)=\"editRoleMapping(element)\">\n                                            <mat-icon>edit</mat-icon>\n                                            <span>Edit Role Mapping</span>\n                                        </button>\n\n                                        <button mat-menu-item (click)=\"viewCBPPlan(element)\">\n                                            <mat-icon>visibility</mat-icon>\n                                            <span>View Role Mapping</span>\n                                        </button>\n\n                                        <button *ngIf=\"request?.status?.toLowerCase() === 'pending' && sharedService.fromMdoPortal\" mat-menu-item\n                                            (click)=\"rejectItemRequest(element)\">\n\n                                            <mat-icon>send</mat-icon>\n                                            <span>Reject Request</span>\n\n                                        </button>\n\n                                    </ng-container>\n\n                                </mat-menu>\n\n                            </td>\n                        </ng-container>\n                        <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n                        <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n                        <tr class=\"mat-row\" *matNoDataRow>\n                            <td class=\"mat-cell no-data-cell\" [attr.colspan]=\"displayedColumns.length\">\n                                No Data Found\n                            </td>\n                        </tr>\n                    </table>\n                    <ng-container *ngIf=\"dataSource?.filteredData?.length || dataSource?.filteredData?.length\">\n                        <mat-paginator [length]=\"dataSource?.data?.length\" [pageSize]=\"5\"\n                            [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n                        </mat-paginator>\n                    </ng-container>\n\n                </div>\n\n            </ng-container>\n\n\n        </div>\n    </div>\n\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n    <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: [".review-container{background:#f5f6fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:#fff;padding:10px 30px 10px 60px;border-radius:8px;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.left-section{display:flex;align-items:center;gap:12px}.back-icon{cursor:pointer;font-size:22px}.request-id{color:#6b7280;font-size:14px}.status-badge{background:orange;color:#fff4e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.status-badge-success{background:#16873a;color:#fff4e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.status-badge-rejected{background:#d32f2f;color:#fff4e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.details-card{padding:25px 30px;border-radius:12px;background:#fff}.section-title{margin:10px 0;font-weight:600;font-size:20px;color:#000}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-bottom:20px}.detail-box{display:flex;gap:12px;align-items:center;min-width:0}.detail-box mat-icon{background:#eef2ff;padding:18px;border-radius:8px;color:#1b4ca1;height:60px;width:60px;vertical-align:middle;text-align:center;display:flex;justify-content:center;align-items:center}.label{font-size:13px;color:#6b7280}.value,.org-value{word-break:break-word}.value{font-weight:600}.organization{margin-top:50px}.org-value{color:#1b4ca1;font-weight:600}.role-header{margin-top:30px;display:flex;justify-content:space-between;align-items:center}.search-box{display:flex;align-items:center;gap:10px;border:1px solid #d1d5db;padding:6px 10px;border-radius:10px;background:#fff}.search-box input{border:none;outline:none;width:250px}.divider{margin:10px 30px;width:88%!important}.inner-container{margin:0 30px 0 60px;width:95%}.container{margin:10px auto}.sub-heading p{color:#000;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.radio-label{color:#000;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.radio-btn-group{display:flex;width:32px;height:32px;padding:2px;gap:10px}.label{color:var(--Body-Text-Body-Color, #212529);font-family:Lato;font-size:18px;font-style:normal;font-weight:700;line-height:150%}::ng-deep mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}::ng-deep .mat-select-panel{background-color:#fff!important}::ng-deep .mat-select-panel .mat-option{border-radius:0!important}::ng-deep mat-form-field .mat-form-field-underline{display:none!important}::ng-deep mat-select .mat-select-placeholder{color:#0006;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}::ng-deep mat-select .mat-select-value-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;line-height:normal!important;padding-top:0!important;padding-bottom:0!important}::ng-deep mat-select .mat-select-value{display:flex!important;align-items:center!important;height:100%!important}.additional-details textarea{display:flex;padding:16px 16px 0;flex-direction:column;align-items:flex-start;gap:10px;flex:1 0 0;align-self:stretch;width:100%;color:#0006;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;resize:none}.section-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.btn-disable{border-radius:var(--Radius-Full-Round, 9999999px);opacity:.4;background:var(--Primary-KB-Primary-Light, #1B4CA1);color:var(--white-kb-white-100, #FFF);text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none}.btn-group{display:flex;flex-direction:row;justify-content:space-between}.pl-2{padding-left:10px}.search-filter-section{display:flex;flex-direction:row;justify-content:space-between}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:15px;font-size:20px;left:10px}.search .clear-icon{position:absolute;top:15px;font-size:20px;right:10px;color:#666}.search .clear-icon:hover{color:#333}.search .sinput{border-radius:32px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato;width:600px}.select-map-route-container{display:flex;flex-direction:row}.selected-mapping-route p{color:#1b4ca1;font-family:Lato;font-size:20px;font-style:normal;font-weight:400;line-height:normal;text-decoration-line:underline;text-decoration-style:solid;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.edit-plan{display:flex;padding:4px 10px;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:17px;font-style:normal;font-weight:400;line-height:normal;margin-left:10px}.search-container{display:flex;flex-direction:row}.course-container{display:flex;width:100%;padding:16px;flex-direction:column;align-items:flex-start;gap:24px;grid-row:2/span 1;grid-column:1/span 1;border-radius:12px;border:1px solid var(--borders-black-border-16-black, rgba(0, 0, 0, .16));background:#fff}.course-header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.course-pill{display:flex;height:24px;padding:8px;align-items:center;gap:4px;border-radius:16px;border:1px solid var(--borders-border-fill-focussed-4-light-100, #EF951E);background:#fefaf4}.ai-recommened-pill{display:flex;padding:4px 8px;align-items:center;gap:8px;border-radius:var(--Radius-4, 4px);border:1px solid #1B4CA1;background:#1b4ca129}.igot-platform-pill{display:flex;padding:4px 8px;align-items:center;gap:8px;border-radius:var(--Radius-4, 4px);border:1px solid #EF951E;background:#ef951e29}.course-title{color:var(--Primary-KB-Primary-Light, #1B4CA1);font-family:Montserrat;font-size:20px;font-style:normal;font-weight:600;line-height:30px}.course-desc{color:#0009;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.relevancy,.competencies-matched{color:var(--accessbility-shades-with-opacity-kb-greys-black-60, rgba(0, 0, 0, .6));font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;align-items:center}.percentage{color:#1d8923;font-family:Lato;font-size:14px;font-style:normal;font-weight:800;line-height:normal}.relevancy-container,.competencies-matched-container{display:flex;flex-direction:row;align-items:center}.dash{padding:0 5px}::ng-deep .mat-radio-checked .mat-radio-inner-circle{background:#1b4ca1!important}.course-list-container{display:flex;flex-wrap:wrap;gap:16px}.course-list-item{flex:0 0 48%;box-sizing:border-box;border:1px solid #ccc;padding:16px;background-color:#fff;border-radius:8px}.checked-course-container{display:flex}.ml-2{margin-left:8px}::ng-deep .mat-checkbox-checked .mat-checkbox-background{background:#1b4ca1!important}.ai-recommened-pill-text,.igot-platform-pill-text{color:#1b4ca1;font-family:Lato;font-size:12px;font-style:normal;font-weight:700;line-height:normal}.course-pill-text{color:var(--accessbility-shades-without-opacity-kb-greys-black-87, #212121);text-align:center;font-family:Poppins;font-size:12px;font-style:normal;font-weight:400;line-height:normal}.ai-loader-icon img,.igot-platform-icon img{width:15.714px;height:15.714px;flex-shrink:0}.competency-container{display:flex}.outside-layer{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px 4px 4px 12px;border-left:2px solid #F8B861;background:#fde8cc;width:132px}.suggest-courses-header{display:flex;flex-direction:row;justify-content:space-between}.suggest-course-control{display:flex;flex-direction:row}.course-card-container{width:172px;border-radius:3.307px;border:.827px solid var(--borders-border-8-black, rgba(0, 0, 0, .08));background-color:#fff}.highlight-ai{font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal;background:linear-gradient(90deg,#3b27ff,#2de3d6);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;display:inline-block}.ai-loader-icon-medium img{width:40px;height:40px;flex-shrink:0}.heading{color:#000;font-family:Montserrat;font-size:20px;font-style:normal;font-weight:600;line-height:normal;margin:10px 0}.progress-popup{display:flex;flex-direction:column;justify-content:center;align-items:center}.progress-popup .desc{color:#000000de;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.behavioural-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.competency-list{display:flex;flex-direction:row;gap:0px;flex-wrap:wrap}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.competency-text-behavioral{color:#654321;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.competency-text-functional{color:#b01669;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.competency-text-domain{color:#301934;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.designation{color:#1b4ca1;font-family:Lato;font-size:17px;font-style:normal;font-weight:700;line-height:normal;text-decoration-line:underline;text-decoration-style:solid;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.wing-text{color:#000000e0;font-family:Lato;font-size:15px;font-style:normal;font-weight:400;line-height:normal}.role-item{color:#000000e0;font-family:Lato;font-size:16px;font-style:normal;font-weight:400;line-height:1.75}.view-final-cbp-plan{display:flex;justify-content:end;align-items:center;gap:8px}.view-final-cbp-plan-text{padding:4px 16px;border-radius:24px;border:2px solid #F3962F;background:var(--white-kb-white-100, #FFF);box-shadow:0 1px 10px #276de599;color:var(--Primary-KB-Primary-Light, #1B4CA1);font-family:Lato;font-size:16px;font-style:normal;font-weight:700;line-height:normal}.btn-active{border-radius:var(--Radius-Full-Round, 9999999px);opacity:1;background:var(--Primary-KB-Primary-Light, #1B4CA1);color:var(--white-kb-white-100, #FFF);text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none}.cursor-pointer{cursor:pointer}.ml-10{margin-left:10px}.table-container{border-top-left-radius:16px;border-top-right-radius:16px;overflow:auto;background:#fff;max-height:70vh}:host ::ng-deep .mat-mdc-header-row{position:sticky;top:0;background:#fff;box-shadow:0 2px 4px #0000001a}:host ::ng-deep .mat-mdc-header-cell{background:#fff;font-weight:600;border-bottom:2px solid #e0e0e0}:host ::ng-deep th.mat-mdc-header-cell:not(:last-child){position:relative;border-right:none}:host ::ng-deep th.mat-mdc-header-cell:not(:last-child):after{content:\"\";position:absolute;top:12px;bottom:12px;right:0;width:1px;background-color:#e0e0e0}.table-header{font-size:16px;font-weight:600;background:#fff!important;color:#333}.table-header-unmatched{font-size:16px;font-weight:600;background:#f4dcde!important;color:#b42318}.table-body{background-color:#fff!important}.table-body-unmatched{background-color:#faf6f7!important}.designation-text-unmatched p{color:#b42318!important}.select-map-flex-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.select-map-flex{display:flex}.search-container-flex{display:flex;flex-direction:row;width:100%;justify-content:space-between;align-items:flex-start}.mt-6{margin-top:1.7rem}.mat-elevation-z1 .mat-mdc-cell{vertical-align:top!important;padding-top:8px;padding-bottom:8px}::ng-deep .radio-style-checkbox .mat-checkbox-frame{border-radius:50%}::ng-deep .radio-style-checkbox .mat-checkbox-background{border-radius:50%}.search-flex{display:flex;flex-direction:row;width:100%}.margin-top-15{margin-top:15px}.btn-active-outline{border-radius:10px;opacity:1;color:#1b4ca1;border:1px solid #1B4CA1!important;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;width:240px;border:none;background-color:transparent;cursor:pointer}.btn-active-outline-disable{border-radius:10px;opacity:.5;color:#1b4ca1;border:1px solid #1B4CA1!important;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;width:auto;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none;width:240px;background-color:transparent;cursor:not-allowed}.role-mapping-tabs{display:flex;gap:16px;align-items:center;font-family:Inter,sans-serif}.role-tab{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:24px;border:1px solid #d0d5dd;background-color:#f9fafb;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease-in-out}.role-tab.active{border-color:#1b4ca1;background-color:#eff6ff;color:#1b4ca1}.dot{width:10px;height:10px;border-radius:50%;background-color:#1b4ca1}.dot.red{background-color:#b42318}.badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px}.badge.blue{background-color:#dbeafe;color:#1b4ca1}.badge.red{background-color:#fee2e2;color:#b42318}.no-data-cell{text-align:center;padding:40px;font-size:16px;color:#888}.action-btn-wrapper{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.approve-btn{background:#1ea84a!important;color:#fff!important;border-radius:10px;padding:0 22px;height:44px;font-size:15px;font-weight:600;box-shadow:none;transition:all .2s ease}.approve-btn mat-icon{font-size:20px;margin-right:8px}.approve-btn:hover{background:#16873a!important}.approve-btn:disabled,.approve-btn.mat-mdc-button-disabled,.approve-btn.mat-button-disabled{background:#cfd8dc!important;color:#8a949b!important;cursor:not-allowed!important;opacity:1!important;box-shadow:none!important}.approve-btn:disabled mat-icon,.approve-btn.mat-mdc-button-disabled mat-icon,.approve-btn.mat-button-disabled mat-icon{color:#8a949b!important}.reject-btn{border:1px solid #d32f2f!important;color:#d32f2f!important;border-radius:10px;padding:0 22px;height:44px;font-size:15px;font-weight:600;background:#fff}.reject-btn mat-icon{font-size:20px;margin-right:8px}.reject-btn:hover{background:#d32f2f0d}.publish-request-popup .mat-mdc-dialog-container{padding:0!important;overflow:hidden!important;border-radius:16px}.publish-request-popup .mat-mdc-dialog-surface{overflow:hidden!important;border-radius:16px}.publish-request-popup .mat-mdc-dialog-content{overflow:hidden!important;max-height:unset!important}.publish-request-popup .mat-mdc-dialog-container .mdc-dialog__content{overflow:hidden!important}::ng-deep .mat-menu-panel,::ng-deep .mat-mdc-menu-panel{background:#fff!important;opacity:1!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button],             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],             button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i12.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i12.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i12.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i12.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i12.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i12.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i12.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i12.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i12.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i12.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i13.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i14.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i14.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i14.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewRequestComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-review-request', template: "<div class=\"review-container\">\n\n    <!-- HEADER -->\n    <div class=\"page-header\">\n\n        <div class=\"left-section\">\n            <mat-icon class=\"back-icon\" (click)=\"backToApprovalRequest()\">arrow_back</mat-icon>\n\n            <div>\n                <p class=\"section-title\">Review Request</p>\n                <p class=\"request-id\">{{request?.id}}</p>\n            </div>\n        </div>\n\n        <div class=\"status-badge\" *ngIf=\"(request?.status === 'pending' || request?.status === 'PENDING' )\">\n            {{request?.status | titlecase}}\n        </div>\n        <div class=\"status-badge-success\" *ngIf=\"(request?.status === 'approved' || request?.status === 'APPROVED' )\">\n            {{request?.status | titlecase}}\n        </div>\n        <div class=\"status-badge-rejected\" *ngIf=\"(request?.status === 'rejected' || request?.status === 'rejected' )\">\n            {{request?.status | titlecase}}\n        </div>\n\n        <div\n            *ngIf=\"(request?.status === 'pending' || request?.status === 'PENDING' ) && portalData?.parentAppData?.fromPortal === 'mdo'\">\n            <div class=\"action-btn-wrapper\">\n\n                <button mat-raised-button class=\"approve-btn\" (click)=\"approveAndPublish()\">\n\n                    <mat-icon>publish</mat-icon>\n                    Approve & Publish\n                </button>\n\n                <button mat-stroked-button class=\"reject-btn\" (click)=\"rejectRequest()\">\n\n                    <mat-icon>close</mat-icon>\n                    Reject Request\n                </button>\n\n            </div>\n        </div>\n\n    </div>\n\n\n    <!-- REQUEST DETAILS -->\n    <div class=\"inner-container\">\n        <mat-card class=\"details-card\">\n\n            <p class=\"section-title\">Request Details</p>\n\n            <div class=\"details-grid\">\n\n                <div class=\"detail-box\">\n                    <mat-icon>tag</mat-icon>\n                    <div>\n                        <p class=\"label\">Request ID</p>\n                        <p class=\"value\">{{request?.id}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>assignment</mat-icon>\n                    <div>\n                        <p class=\"label\">Request Name</p>\n                        <p class=\"value\">{{request?.request_name}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>mail</mat-icon>\n                    <div>\n                        <p class=\"label\">Requested By</p>\n                        <p class=\"value\">{{request?.user?.username | titlecase}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>event</mat-icon>\n                    <div>\n                        <p class=\"label\">Submitted On</p>\n                        <p class=\"value\">{{request?.created_at | date: 'MMM d, y hh:mm:s a'}}</p>\n                    </div>\n                </div>\n\n                <div class=\"detail-box\">\n                    <mat-icon>person</mat-icon>\n                    <div>\n                        <p class=\"label\">No. of Designations</p>\n                        <p class=\"value\">{{request?.designation_count}}</p>\n                    </div>\n                </div>\n\n            </div>\n\n            <mat-divider class=\"divider\"></mat-divider>\n\n            <div class=\"organization\">\n                <p class=\"label\">Organization</p>\n                <p class=\"org-value\">{{request?.state_center_name}} <span\n                        *ngIf=\"request?.department_name\">{{request?.department_name}}</span></p>\n            </div>\n\n        </mat-card>\n\n\n        <!-- ROLE MAPPING SECTION -->\n        <div class=\"role-header\">\n\n            <div>\n                <p class=\"section-title\">Role Mappings for Review</p>\n            </div>\n\n\n            <div class=\"search flex margin-right-m\">\n                <div class=\"mt-2\">\n                    <div class=\"search-container\">\n                        <div class=\"rsearch\">\n                            <mat-icon\n                                class=\"color-60 search-icon mat-icon notranslate material-icons mat-icon-no-color\">search</mat-icon>\n                            <input class=\"sinput color-60 w-full\" [(ngModel)]=\"searchText\" label=\"\"\n                                (input)=\"applyFilter()\" placeholder=\"Search by designation name\" type=\"Standard\">\n                            <mat-icon *ngIf=\"searchText.trim().length > 0\"\n                                class=\"color-60 clear-icon mat-icon notranslate material-icons mat-icon-no-color cursor-pointer\"\n                                (click)=\"clearSearch()\">clear</mat-icon>\n                        </div>\n                        <div class=\"pl-2 mt-2\">\n                            <input [disabled]=\"searchText.trim()?.length === 0\"\n                                [ngClass]=\"searchText.trim()?.length === 0 ? 'btn-disable':'btn-active'\" type=\"button\"\n                                value=\"Search\" (click)=\"applyFilter()\" />\n                        </div>\n                    </div>\n\n\n                </div>\n\n\n            </div>\n\n        </div>\n        <div class=\"table-class\">\n            <ng-container *ngIf=\"dataSource?.data?.length > 0\">\n                <div class=\"table-container mt-4\" style=\"overflow: auto;\">\n                    <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z1 table-body\">\n\n                        <ng-container matColumnDef=\"designation_name\">\n                            <th class=\"table-header\" mat-header-cell *matHeaderCellDef> Designation\n                            </th>\n                            <td class=\"cursor-pointer\" mat-cell *matCellDef=\"let element\"\n                                (click)=\"viewCBPPlan(element)\">\n                                <div\n                                    [ngClass]=\"activeTab === 'matched'? 'designation-text': 'designation-text-unmatched'\">\n                                    <p class=\"designation\">{{ element?.designation_name }} </p>\n                                    <p class=\"wing-text mt-2\">Wing/Division - {{\n                                        element?.wing_division_section }} </p>\n                                </div>\n                                <div\n                                    *ngIf=\"(element?.status === 'failed' || element?.status === 'FAILED') && portalData?.parentAppData?.fromPortal === 'mdo'\">\n                                    <button mat-raised-button class=\"approve-btn\" (click)=\"rePublish(element)\">\n                                        <mat-icon>publish</mat-icon>\n                                        Re-Publish\n                                    </button>\n                                </div>\n\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"role_responsibilities\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Role &\n                                Responsibilities </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul>\n                                    <li class=\"role-item\"\n                                        *ngFor=\"let role of (isResponisbilityExpanded(element.id) ? element.role_responsibilities : element.role_responsibilities.slice(0, 2)); let i = index\">\n                                        {{i+1}}. {{ role }}</li>\n                                    <li *ngIf=\"element.role_responsibilities.length > 2\"\n                                        class=\"view-more-less cursor-pointer\"\n                                        (click)=\"openFullList(element, 'role_responsibilities')\">\n                                        <span style=\"color: #1B4CA1;font-size: 16px;\">\n                                            View More\n                                        </span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"activities\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Activities </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul>\n                                    <li class=\"role-item\"\n                                        *ngFor=\"let activity of (isActivityExpanded(element.id) ? element.activities : element.activities.slice(0, 2)); let i = index\">\n                                        {{i+1}}. {{ activity }}</li>\n                                    <li *ngIf=\"element.activities.length > 2\" class=\"view-more-less cursor-pointer\"\n                                        (click)=\"openFullList(element, 'activity')\">\n                                        <span style=\"color: #1B4CA1;font-size: 16px;\">\n                                            View More\n                                        </span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"behavioral\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Behavioral\n                                Competencies </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul class=\"competency-list\">\n                                    <li class=\"behavioural-pill\"\n                                        *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Behavioral')\">\n                                        <span class=\"competency-text-behavioral\"> {{ comp.theme }} - {{\n                                            comp.sub_theme }} </span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"functional\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Functional\n                                Competencies </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul class=\"competency-list\">\n                                    <li class=\"functional-pill\"\n                                        *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Functional')\">\n                                        <span class=\"competency-text-functional\"> {{ comp.theme }} - {{\n                                            comp.sub_theme }}</span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <ng-container matColumnDef=\"domain\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Domain\n                                Competencies </th>\n                            <td mat-cell *matCellDef=\"let element\">\n                                <ul class=\"competency-list\">\n                                    <li class=\"domain-pill\"\n                                        *ngFor=\"let comp of getCompetenciesByType(element.competencies, 'Domain')\">\n                                        <span class=\"competency-text-domain\"> {{ comp.theme }} - {{\n                                            comp.sub_theme }}</span>\n                                    </li>\n                                </ul>\n                            </td>\n                        </ng-container>\n                        <!-- Actions -->\n                        <ng-container matColumnDef=\"action\">\n                            <th [ngClass]=\"activeTab === 'matched'? 'table-header': 'table-header-unmatched'\"\n                                mat-header-cell *matHeaderCellDef> Action </th>\n                           \n\n                            <td mat-cell *matCellDef=\"let element\">\n\n                                <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n                                    <mat-icon>more_vert</mat-icon>\n                                </button>\n\n                                <mat-menu #menu=\"matMenu\">\n\n                                    <ng-container *ngIf=\"!sharedService.fromMdoPortal\">\n                                        <button mat-menu-item (click)=\"viewCourseRecommendation(element)\">\n                                            <mat-icon>preview</mat-icon>\n                                            <span>View Course Recommendation</span>\n                                        </button>\n                                    </ng-container>\n\n                                    <ng-container *ngIf=\"sharedService.fromMdoPortal\">\n\n                                        <button mat-menu-item (click)=\"editRoleMapping(element)\">\n                                            <mat-icon>edit</mat-icon>\n                                            <span>Edit Role Mapping</span>\n                                        </button>\n\n                                        <button mat-menu-item (click)=\"viewCBPPlan(element)\">\n                                            <mat-icon>visibility</mat-icon>\n                                            <span>View Role Mapping</span>\n                                        </button>\n\n                                        <button *ngIf=\"request?.status?.toLowerCase() === 'pending' && sharedService.fromMdoPortal\" mat-menu-item\n                                            (click)=\"rejectItemRequest(element)\">\n\n                                            <mat-icon>send</mat-icon>\n                                            <span>Reject Request</span>\n\n                                        </button>\n\n                                    </ng-container>\n\n                                </mat-menu>\n\n                            </td>\n                        </ng-container>\n                        <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n                        <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n                        <tr class=\"mat-row\" *matNoDataRow>\n                            <td class=\"mat-cell no-data-cell\" [attr.colspan]=\"displayedColumns.length\">\n                                No Data Found\n                            </td>\n                        </tr>\n                    </table>\n                    <ng-container *ngIf=\"dataSource?.filteredData?.length || dataSource?.filteredData?.length\">\n                        <mat-paginator [length]=\"dataSource?.data?.length\" [pageSize]=\"5\"\n                            [pageSizeOptions]=\"[5, 10, 20]\" showFirstLastButtons>\n                        </mat-paginator>\n                    </ng-container>\n\n                </div>\n\n            </ng-container>\n\n\n        </div>\n    </div>\n\n</div>\n\n<div class=\"overlay-loader\" *ngIf=\"loading\">\n    <mat-spinner diameter=\"50\"></mat-spinner>\n</div>", styles: [".review-container{background:#f5f6fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:#fff;padding:10px 30px 10px 60px;border-radius:8px;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.left-section{display:flex;align-items:center;gap:12px}.back-icon{cursor:pointer;font-size:22px}.request-id{color:#6b7280;font-size:14px}.status-badge{background:orange;color:#fff4e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.status-badge-success{background:#16873a;color:#fff4e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.status-badge-rejected{background:#d32f2f;color:#fff4e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.details-card{padding:25px 30px;border-radius:12px;background:#fff}.section-title{margin:10px 0;font-weight:600;font-size:20px;color:#000}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-bottom:20px}.detail-box{display:flex;gap:12px;align-items:center;min-width:0}.detail-box mat-icon{background:#eef2ff;padding:18px;border-radius:8px;color:#1b4ca1;height:60px;width:60px;vertical-align:middle;text-align:center;display:flex;justify-content:center;align-items:center}.label{font-size:13px;color:#6b7280}.value,.org-value{word-break:break-word}.value{font-weight:600}.organization{margin-top:50px}.org-value{color:#1b4ca1;font-weight:600}.role-header{margin-top:30px;display:flex;justify-content:space-between;align-items:center}.search-box{display:flex;align-items:center;gap:10px;border:1px solid #d1d5db;padding:6px 10px;border-radius:10px;background:#fff}.search-box input{border:none;outline:none;width:250px}.divider{margin:10px 30px;width:88%!important}.inner-container{margin:0 30px 0 60px;width:95%}.container{margin:10px auto}.sub-heading p{color:#000;font-family:Montserrat;font-size:16px;font-style:normal;font-weight:600;line-height:normal}.radio-label{color:#000;font-family:Lato;font-size:18px;font-style:normal;font-weight:400;line-height:normal}.radio-btn-group{display:flex;width:32px;height:32px;padding:2px;gap:10px}.label{color:var(--Body-Text-Body-Color, #212529);font-family:Lato;font-size:18px;font-style:normal;font-weight:700;line-height:150%}::ng-deep mat-form-field{background-color:#fff!important;border-radius:25px!important;padding-left:12px;padding-right:12px;height:42px;width:100%}::ng-deep mat-select{border-radius:25px!important;background-color:#fff!important}::ng-deep .mat-select-panel{background-color:#fff!important}::ng-deep .mat-select-panel .mat-option{border-radius:0!important}::ng-deep mat-form-field .mat-form-field-underline{display:none!important}::ng-deep mat-select .mat-select-placeholder{color:#0006;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}::ng-deep mat-select .mat-select-value-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;line-height:normal!important;padding-top:0!important;padding-bottom:0!important}::ng-deep mat-select .mat-select-value{display:flex!important;align-items:center!important;height:100%!important}.additional-details textarea{display:flex;padding:16px 16px 0;flex-direction:column;align-items:flex-start;gap:10px;flex:1 0 0;align-self:stretch;width:100%;color:#0006;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;resize:none}.section-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.btn-disable{border-radius:var(--Radius-Full-Round, 9999999px);opacity:.4;background:var(--Primary-KB-Primary-Light, #1B4CA1);color:var(--white-kb-white-100, #FFF);text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none}.btn-group{display:flex;flex-direction:row;justify-content:space-between}.pl-2{padding-left:10px}.search-filter-section{display:flex;flex-direction:row;justify-content:space-between}.search .rsearch{position:relative}.search .search-icon{position:absolute;top:15px;font-size:20px;left:10px}.search .clear-icon{position:absolute;top:15px;font-size:20px;right:10px;color:#666}.search .clear-icon:hover{color:#333}.search .sinput{border-radius:32px;border:1px solid #d5d0d0;padding:15px 36px;font:400 14px Lato;width:600px}.select-map-route-container{display:flex;flex-direction:row}.selected-mapping-route p{color:#1b4ca1;font-family:Lato;font-size:20px;font-style:normal;font-weight:400;line-height:normal;text-decoration-line:underline;text-decoration-style:solid;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.edit-plan{display:flex;padding:4px 10px;justify-content:center;align-items:center;gap:8px;border-radius:4px;background:#1b4ca129;color:#1b4ca1;font-family:Lato;font-size:17px;font-style:normal;font-weight:400;line-height:normal;margin-left:10px}.search-container{display:flex;flex-direction:row}.course-container{display:flex;width:100%;padding:16px;flex-direction:column;align-items:flex-start;gap:24px;grid-row:2/span 1;grid-column:1/span 1;border-radius:12px;border:1px solid var(--borders-black-border-16-black, rgba(0, 0, 0, .16));background:#fff}.course-header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.course-pill{display:flex;height:24px;padding:8px;align-items:center;gap:4px;border-radius:16px;border:1px solid var(--borders-border-fill-focussed-4-light-100, #EF951E);background:#fefaf4}.ai-recommened-pill{display:flex;padding:4px 8px;align-items:center;gap:8px;border-radius:var(--Radius-4, 4px);border:1px solid #1B4CA1;background:#1b4ca129}.igot-platform-pill{display:flex;padding:4px 8px;align-items:center;gap:8px;border-radius:var(--Radius-4, 4px);border:1px solid #EF951E;background:#ef951e29}.course-title{color:var(--Primary-KB-Primary-Light, #1B4CA1);font-family:Montserrat;font-size:20px;font-style:normal;font-weight:600;line-height:30px}.course-desc{color:#0009;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.relevancy,.competencies-matched{color:var(--accessbility-shades-with-opacity-kb-greys-black-60, rgba(0, 0, 0, .6));font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal;align-items:center}.percentage{color:#1d8923;font-family:Lato;font-size:14px;font-style:normal;font-weight:800;line-height:normal}.relevancy-container,.competencies-matched-container{display:flex;flex-direction:row;align-items:center}.dash{padding:0 5px}::ng-deep .mat-radio-checked .mat-radio-inner-circle{background:#1b4ca1!important}.course-list-container{display:flex;flex-wrap:wrap;gap:16px}.course-list-item{flex:0 0 48%;box-sizing:border-box;border:1px solid #ccc;padding:16px;background-color:#fff;border-radius:8px}.checked-course-container{display:flex}.ml-2{margin-left:8px}::ng-deep .mat-checkbox-checked .mat-checkbox-background{background:#1b4ca1!important}.ai-recommened-pill-text,.igot-platform-pill-text{color:#1b4ca1;font-family:Lato;font-size:12px;font-style:normal;font-weight:700;line-height:normal}.course-pill-text{color:var(--accessbility-shades-without-opacity-kb-greys-black-87, #212121);text-align:center;font-family:Poppins;font-size:12px;font-style:normal;font-weight:400;line-height:normal}.ai-loader-icon img,.igot-platform-icon img{width:15.714px;height:15.714px;flex-shrink:0}.competency-container{display:flex}.outside-layer{display:flex;padding:4px 12px;justify-content:center;align-items:center;gap:16px;border-radius:12px 4px 4px 12px;border-left:2px solid #F8B861;background:#fde8cc;width:132px}.suggest-courses-header{display:flex;flex-direction:row;justify-content:space-between}.suggest-course-control{display:flex;flex-direction:row}.course-card-container{width:172px;border-radius:3.307px;border:.827px solid var(--borders-border-8-black, rgba(0, 0, 0, .08));background-color:#fff}.highlight-ai{font-family:Montserrat;font-size:24px;font-style:normal;font-weight:600;line-height:normal;background:linear-gradient(90deg,#3b27ff,#2de3d6);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;display:inline-block}.ai-loader-icon-medium img{width:40px;height:40px;flex-shrink:0}.heading{color:#000;font-family:Montserrat;font-size:20px;font-style:normal;font-weight:600;line-height:normal;margin:10px 0}.progress-popup{display:flex;flex-direction:column;justify-content:center;align-items:center}.progress-popup .desc{color:#000000de;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.behavioural-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #F8B861;background:linear-gradient(0deg,#f8b86152 0% 100%),#fff;margin:5px 0}.functional-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #E24577;background:linear-gradient(0deg,#e245773d 0% 100%),#fff;margin:5px 0}.domain-pill{display:flex;padding:4px 8px;justify-content:center;align-items:center;gap:6px;border-radius:8px;border:1px solid #7B47A4;background:linear-gradient(0deg,#7b47a43d 0% 100%),#fff;margin:5px 0}.competency-list{display:flex;flex-direction:row;gap:0px;flex-wrap:wrap}.competency-text{color:#000;font-family:Lato;font-size:14px;font-style:normal;font-weight:400;line-height:normal}.competency-text-behavioral{color:#654321;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.competency-text-functional{color:#b01669;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.competency-text-domain{color:#301934;font-family:Lato;font-size:14px;font-style:normal;line-height:normal;font-weight:550}.designation{color:#1b4ca1;font-family:Lato;font-size:17px;font-style:normal;font-weight:700;line-height:normal;text-decoration-line:underline;text-decoration-style:solid;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.wing-text{color:#000000e0;font-family:Lato;font-size:15px;font-style:normal;font-weight:400;line-height:normal}.role-item{color:#000000e0;font-family:Lato;font-size:16px;font-style:normal;font-weight:400;line-height:1.75}.view-final-cbp-plan{display:flex;justify-content:end;align-items:center;gap:8px}.view-final-cbp-plan-text{padding:4px 16px;border-radius:24px;border:2px solid #F3962F;background:var(--white-kb-white-100, #FFF);box-shadow:0 1px 10px #276de599;color:var(--Primary-KB-Primary-Light, #1B4CA1);font-family:Lato;font-size:16px;font-style:normal;font-weight:700;line-height:normal}.btn-active{border-radius:var(--Radius-Full-Round, 9999999px);opacity:1;background:var(--Primary-KB-Primary-Light, #1B4CA1);color:var(--white-kb-white-100, #FFF);text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none}.cursor-pointer{cursor:pointer}.ml-10{margin-left:10px}.table-container{border-top-left-radius:16px;border-top-right-radius:16px;overflow:auto;background:#fff;max-height:70vh}:host ::ng-deep .mat-mdc-header-row{position:sticky;top:0;background:#fff;box-shadow:0 2px 4px #0000001a}:host ::ng-deep .mat-mdc-header-cell{background:#fff;font-weight:600;border-bottom:2px solid #e0e0e0}:host ::ng-deep th.mat-mdc-header-cell:not(:last-child){position:relative;border-right:none}:host ::ng-deep th.mat-mdc-header-cell:not(:last-child):after{content:\"\";position:absolute;top:12px;bottom:12px;right:0;width:1px;background-color:#e0e0e0}.table-header{font-size:16px;font-weight:600;background:#fff!important;color:#333}.table-header-unmatched{font-size:16px;font-weight:600;background:#f4dcde!important;color:#b42318}.table-body{background-color:#fff!important}.table-body-unmatched{background-color:#faf6f7!important}.designation-text-unmatched p{color:#b42318!important}.select-map-flex-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.select-map-flex{display:flex}.search-container-flex{display:flex;flex-direction:row;width:100%;justify-content:space-between;align-items:flex-start}.mt-6{margin-top:1.7rem}.mat-elevation-z1 .mat-mdc-cell{vertical-align:top!important;padding-top:8px;padding-bottom:8px}::ng-deep .radio-style-checkbox .mat-checkbox-frame{border-radius:50%}::ng-deep .radio-style-checkbox .mat-checkbox-background{border-radius:50%}.search-flex{display:flex;flex-direction:row;width:100%}.margin-top-15{margin-top:15px}.btn-active-outline{border-radius:10px;opacity:1;color:#1b4ca1;border:1px solid #1B4CA1!important;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;padding:0 16px;justify-content:center;align-items:center;gap:8px;width:240px;border:none;background-color:transparent;cursor:pointer}.btn-active-outline-disable{border-radius:10px;opacity:.5;color:#1b4ca1;border:1px solid #1B4CA1!important;text-align:center;font-family:Lato;font-size:14px;font-style:normal;font-weight:700;line-height:normal;display:flex;height:32px;width:auto;padding:0 16px;justify-content:center;align-items:center;gap:8px;border:none;width:240px;background-color:transparent;cursor:not-allowed}.role-mapping-tabs{display:flex;gap:16px;align-items:center;font-family:Inter,sans-serif}.role-tab{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:24px;border:1px solid #d0d5dd;background-color:#f9fafb;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease-in-out}.role-tab.active{border-color:#1b4ca1;background-color:#eff6ff;color:#1b4ca1}.dot{width:10px;height:10px;border-radius:50%;background-color:#1b4ca1}.dot.red{background-color:#b42318}.badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px}.badge.blue{background-color:#dbeafe;color:#1b4ca1}.badge.red{background-color:#fee2e2;color:#b42318}.no-data-cell{text-align:center;padding:40px;font-size:16px;color:#888}.action-btn-wrapper{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.approve-btn{background:#1ea84a!important;color:#fff!important;border-radius:10px;padding:0 22px;height:44px;font-size:15px;font-weight:600;box-shadow:none;transition:all .2s ease}.approve-btn mat-icon{font-size:20px;margin-right:8px}.approve-btn:hover{background:#16873a!important}.approve-btn:disabled,.approve-btn.mat-mdc-button-disabled,.approve-btn.mat-button-disabled{background:#cfd8dc!important;color:#8a949b!important;cursor:not-allowed!important;opacity:1!important;box-shadow:none!important}.approve-btn:disabled mat-icon,.approve-btn.mat-mdc-button-disabled mat-icon,.approve-btn.mat-button-disabled mat-icon{color:#8a949b!important}.reject-btn{border:1px solid #d32f2f!important;color:#d32f2f!important;border-radius:10px;padding:0 22px;height:44px;font-size:15px;font-weight:600;background:#fff}.reject-btn mat-icon{font-size:20px;margin-right:8px}.reject-btn:hover{background:#d32f2f0d}.publish-request-popup .mat-mdc-dialog-container{padding:0!important;overflow:hidden!important;border-radius:16px}.publish-request-popup .mat-mdc-dialog-surface{overflow:hidden!important;border-radius:16px}.publish-request-popup .mat-mdc-dialog-content{overflow:hidden!important;max-height:unset!important}.publish-request-popup .mat-mdc-dialog-container .mdc-dialog__content{overflow:hidden!important}::ng-deep .mat-menu-panel,::ng-deep .mat-mdc-menu-panel{background:#fff!important;opacity:1!important}\n"] }]
        }], ctorParameters: function () { return [{ type: i1.SharedService }, { type: i2.MatSnackBar }, { type: i3.ActivatedRoute }, { type: i3.Router }, { type: i4.MatDialog }]; }, propDecorators: { paginator: [{
                type: ViewChild,
                args: [MatPaginator]
            }] } });
//# sourceMappingURL=data:application/json;base64, 